@g1cloud/page-builder-editor 1.0.0-alpha.21 → 1.0.0-alpha.22

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.
@@ -4,8 +4,8 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { ref, defineComponent, openBlock, createElementBlock, createCommentVNode, computed, mergeProps, toDisplayString, onMounted, onBeforeUnmount, provide, inject, watch, createBlock as createBlock$1, resolveDynamicComponent, normalizeProps, createElementVNode, normalizeClass, Fragment, renderList, reactive, defineAsyncComponent, withDirectives, unref, createVNode, normalizeStyle, resolveComponent, vModelText, resolveDirective, withModifiers, renderSlot, guardReactiveProps, markRaw, Teleport, toHandlers } from "vue";
8
- import { notNull, BSTextInput, vClickOutside, useModal, useContextMenu, BSSelect, BSTree } from "@g1cloud/bluesea";
7
+ import { ref, defineComponent, computed, openBlock, createElementBlock, normalizeClass, normalizeStyle, createCommentVNode, mergeProps, toDisplayString, onMounted, onBeforeUnmount, provide, inject, watch, Fragment, unref, createElementVNode, createBlock as createBlock$1, resolveDynamicComponent, normalizeProps, renderList, reactive, defineAsyncComponent, withDirectives, createVNode, resolveComponent, vModelText, resolveDirective, withModifiers, renderSlot, guardReactiveProps, markRaw, Teleport, toHandlers } from "vue";
8
+ import { notNull, BSTextInput, vClickOutside, useModal, BSSelect, useContextMenu, BSTree } from "@g1cloud/bluesea";
9
9
  const create$5 = () => /* @__PURE__ */ new Map();
10
10
  const copy = (m) => {
11
11
  const r = create$5();
@@ -6691,10 +6691,11 @@ class Part {
6691
6691
  return propertyName === PART_ID_KEY$1 ? this.partId : (_a = this.properties) == null ? void 0 : _a[propertyName];
6692
6692
  }
6693
6693
  getClassNames() {
6694
- return "";
6694
+ var _a;
6695
+ return ((_a = this.properties) == null ? void 0 : _a.classNames) || "";
6695
6696
  }
6696
6697
  getStyles() {
6697
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J;
6698
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N;
6698
6699
  const style = {};
6699
6700
  if (((_a = this.properties) == null ? void 0 : _a.direction) === "horizontal") {
6700
6701
  style.display = "flex";
@@ -6738,42 +6739,81 @@ class Part {
6738
6739
  style.width = this.properties.width;
6739
6740
  if ((_s = this.properties) == null ? void 0 : _s.height)
6740
6741
  style.height = this.properties.height;
6741
- if ((_t = this.properties) == null ? void 0 : _t.backgroundColor)
6742
+ if ((_t = this.properties) == null ? void 0 : _t.maxWidth)
6743
+ style.width = this.properties.maxWidth;
6744
+ if ((_u = this.properties) == null ? void 0 : _u.maxHeight)
6745
+ style.height = this.properties.maxHeight;
6746
+ if ((_v = this.properties) == null ? void 0 : _v.minWidth)
6747
+ style.width = this.properties.minWidth;
6748
+ if ((_w = this.properties) == null ? void 0 : _w.minHeight)
6749
+ style.height = this.properties.minHeight;
6750
+ if ((_x = this.properties) == null ? void 0 : _x.backgroundColor)
6742
6751
  style.backgroundColor = this.properties.backgroundColor;
6743
- if ((_u = this.properties) == null ? void 0 : _u.borderLeftWidth)
6752
+ if ((_y = this.properties) == null ? void 0 : _y.borderLeftWidth)
6744
6753
  style.borderLeftWidth = this.properties.borderLeftWidth;
6745
- if ((_v = this.properties) == null ? void 0 : _v.borderRightWidth)
6754
+ if ((_z = this.properties) == null ? void 0 : _z.borderRightWidth)
6746
6755
  style.borderRightWidth = this.properties.borderRightWidth;
6747
- if ((_w = this.properties) == null ? void 0 : _w.borderTopWidth)
6756
+ if ((_A = this.properties) == null ? void 0 : _A.borderTopWidth)
6748
6757
  style.borderTopWidth = this.properties.borderTopWidth;
6749
- if ((_x = this.properties) == null ? void 0 : _x.borderBottomWidth)
6758
+ if ((_B = this.properties) == null ? void 0 : _B.borderBottomWidth)
6750
6759
  style.borderBottomWidth = this.properties.borderBottomWidth;
6751
- if ((_y = this.properties) == null ? void 0 : _y.borderTopLeftRadius)
6760
+ if ((_C = this.properties) == null ? void 0 : _C.borderTopLeftRadius)
6752
6761
  style.borderTopLeftRadius = this.properties.borderTopLeftRadius;
6753
- if ((_z = this.properties) == null ? void 0 : _z.borderTopRightRadius)
6762
+ if ((_D = this.properties) == null ? void 0 : _D.borderTopRightRadius)
6754
6763
  style.borderTopRightRadius = this.properties.borderTopRightRadius;
6755
- if ((_A = this.properties) == null ? void 0 : _A.borderBottomLeftRadius)
6764
+ if ((_E = this.properties) == null ? void 0 : _E.borderBottomLeftRadius)
6756
6765
  style.borderBottomLeftRadius = this.properties.borderBottomLeftRadius;
6757
- if ((_B = this.properties) == null ? void 0 : _B.borderBottomRightRadius)
6766
+ if ((_F = this.properties) == null ? void 0 : _F.borderBottomRightRadius)
6758
6767
  style.borderBottomRightRadius = this.properties.borderBottomRightRadius;
6759
- if (((_C = this.properties) == null ? void 0 : _C.borderColor) && style.borderLeftWidth) {
6768
+ if (((_G = this.properties) == null ? void 0 : _G.borderColor) && style.borderLeftWidth) {
6760
6769
  style.borderLeftStyle = "solid";
6761
- style.borderLeftColor = (_D = this.properties) == null ? void 0 : _D.borderColor;
6770
+ style.borderLeftColor = (_H = this.properties) == null ? void 0 : _H.borderColor;
6762
6771
  }
6763
- if (((_E = this.properties) == null ? void 0 : _E.borderColor) && style.borderRightWidth) {
6772
+ if (((_I = this.properties) == null ? void 0 : _I.borderColor) && style.borderRightWidth) {
6764
6773
  style.borderRightStyle = "solid";
6765
- style.borderRightColor = (_F = this.properties) == null ? void 0 : _F.borderColor;
6774
+ style.borderRightColor = (_J = this.properties) == null ? void 0 : _J.borderColor;
6766
6775
  }
6767
- if (((_G = this.properties) == null ? void 0 : _G.borderColor) && style.borderTopWidth) {
6776
+ if (((_K = this.properties) == null ? void 0 : _K.borderColor) && style.borderTopWidth) {
6768
6777
  style.borderTopStyle = "solid";
6769
- style.borderTopColor = (_H = this.properties) == null ? void 0 : _H.borderColor;
6778
+ style.borderTopColor = (_L = this.properties) == null ? void 0 : _L.borderColor;
6770
6779
  }
6771
- if (((_I = this.properties) == null ? void 0 : _I.borderColor) && style.borderBottomWidth) {
6780
+ if (((_M = this.properties) == null ? void 0 : _M.borderColor) && style.borderBottomWidth) {
6772
6781
  style.borderBottomStyle = "solid";
6773
- style.borderBottomColor = (_J = this.properties) == null ? void 0 : _J.borderColor;
6782
+ style.borderBottomColor = (_N = this.properties) == null ? void 0 : _N.borderColor;
6774
6783
  }
6775
6784
  return style;
6776
6785
  }
6786
+ getInlineStyles() {
6787
+ var _a;
6788
+ const styleObject = {};
6789
+ const inlineStyle = (_a = this.properties) == null ? void 0 : _a.inlineStyle;
6790
+ if (!inlineStyle)
6791
+ return styleObject;
6792
+ inlineStyle.split(";").forEach((rule) => {
6793
+ if (rule.trim()) {
6794
+ const [property, value] = rule.split(":").map((part) => part.trim());
6795
+ if (property && value) {
6796
+ const camelCasedProperty = property.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
6797
+ styleObject[camelCasedProperty] = value;
6798
+ }
6799
+ }
6800
+ });
6801
+ return styleObject;
6802
+ }
6803
+ getStyleTag() {
6804
+ var _a;
6805
+ const css = (_a = this.properties) == null ? void 0 : _a.style;
6806
+ if (!css)
6807
+ return "";
6808
+ return css.replace(/([^{]+){/g, (match) => {
6809
+ if (match.trim().startsWith("@")) {
6810
+ return match;
6811
+ }
6812
+ const selectors = match.split(",").map((selector) => selector.trim());
6813
+ const modifiedSelectors = selectors.map((selector) => `[data-part-id=${this.partId}] ${selector}`).join(", ");
6814
+ return `${modifiedSelectors} `;
6815
+ });
6816
+ }
6777
6817
  }
6778
6818
  class RootPart extends Part {
6779
6819
  constructor() {
@@ -6834,8 +6874,8 @@ let Model$1 = class Model {
6834
6874
  this.rootPart = ref(new RootPart());
6835
6875
  }
6836
6876
  };
6837
- const _hoisted_1$8$1 = ["data-model-id"];
6838
- const _hoisted_2$5$1 = {
6877
+ const _hoisted_1$9$1 = ["data-part-id"];
6878
+ const _hoisted_2$6$1 = {
6839
6879
  key: 1,
6840
6880
  class: "pb-nested-widget"
6841
6881
  };
@@ -6846,34 +6886,38 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
6846
6886
  },
6847
6887
  setup(__props) {
6848
6888
  const props = __props;
6849
- const classNames = computed(() => props.part.getClassNames());
6850
6889
  const properties = computed(() => ({ style: props.part.getStyles() }));
6890
+ const styleTag = computed(() => props.part.getStyleTag());
6851
6891
  const thisComponent = computed(() => createPartComponent(props.part));
6852
6892
  const childComponents = computed(() => createPartComponents(props.part.children));
6853
6893
  return (_ctx, _cache) => {
6854
- var _a;
6855
- return openBlock(), createElementBlock("div", mergeProps({
6856
- class: [classNames.value, "pb-widget"],
6857
- "data-model-id": _ctx.part.partId,
6858
- style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
6859
- }, properties.value), [
6860
- thisComponent.value ? (openBlock(), createBlock$1(resolveDynamicComponent(thisComponent.value), {
6894
+ return openBlock(), createElementBlock(Fragment, null, [
6895
+ styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
6861
6896
  key: 0,
6862
- part: _ctx.part
6863
- }, null, 8, ["part"])) : createCommentVNode("", true),
6864
- childComponents.value && childComponents.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_2$5$1, [
6865
- (openBlock(true), createElementBlock(Fragment, null, renderList(childComponents.value, (child) => {
6866
- return openBlock(), createBlock$1(resolveDynamicComponent(child.component), {
6867
- key: child.part.partId,
6868
- part: child.part
6869
- }, null, 8, ["part"]);
6870
- }), 128))
6871
- ])) : createCommentVNode("", true)
6872
- ], 16, _hoisted_1$8$1);
6897
+ innerHTML: styleTag.value
6898
+ }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
6899
+ createElementVNode("div", mergeProps({
6900
+ "data-part-id": _ctx.part.partId,
6901
+ class: "pb-widget"
6902
+ }, properties.value), [
6903
+ thisComponent.value ? (openBlock(), createBlock$1(resolveDynamicComponent(thisComponent.value), {
6904
+ key: 0,
6905
+ part: _ctx.part
6906
+ }, null, 8, ["part"])) : createCommentVNode("", true),
6907
+ childComponents.value && childComponents.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_2$6$1, [
6908
+ (openBlock(true), createElementBlock(Fragment, null, renderList(childComponents.value, (child) => {
6909
+ return openBlock(), createBlock$1(resolveDynamicComponent(child.component), {
6910
+ key: child.part.partId,
6911
+ part: child.part
6912
+ }, null, 8, ["part"]);
6913
+ }), 128))
6914
+ ])) : createCommentVNode("", true)
6915
+ ], 16, _hoisted_1$9$1)
6916
+ ], 64);
6873
6917
  };
6874
6918
  }
6875
6919
  });
6876
- const _hoisted_1$7$1 = ["data-model-id"];
6920
+ const _hoisted_1$8$1 = ["data-part-id"];
6877
6921
  const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
6878
6922
  __name: "PbBlock",
6879
6923
  props: {
@@ -6882,27 +6926,39 @@ const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
6882
6926
  setup(__props) {
6883
6927
  const props = __props;
6884
6928
  const classNames = computed(() => props.part.getClassNames());
6885
- const properties = computed(() => ({ style: props.part.getStyles() }));
6929
+ const styleTag = computed(() => props.part.getStyleTag());
6930
+ const properties = computed(() => ({
6931
+ style: {
6932
+ ...props.part.getStyles(),
6933
+ ...props.part.getInlineStyles()
6934
+ }
6935
+ }));
6886
6936
  computed(() => createPartComponents(props.part.children));
6887
6937
  return (_ctx, _cache) => {
6888
6938
  var _a;
6889
- return openBlock(), createElementBlock("div", mergeProps({
6890
- class: [classNames.value, "pb-block"],
6891
- "data-model-id": _ctx.part.partId,
6892
- style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
6893
- }, properties.value), [
6894
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (child) => {
6895
- return openBlock(), createBlock$1(_sfc_main$a$1, {
6896
- key: child.partId,
6897
- part: child
6898
- }, null, 8, ["part"]);
6899
- }), 128))
6900
- ], 16, _hoisted_1$7$1);
6939
+ return openBlock(), createElementBlock(Fragment, null, [
6940
+ styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
6941
+ key: 0,
6942
+ innerHTML: styleTag.value
6943
+ }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
6944
+ createElementVNode("div", mergeProps({
6945
+ class: [classNames.value, "pb-block"],
6946
+ "data-part-id": _ctx.part.partId,
6947
+ style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
6948
+ }, properties.value), [
6949
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (child) => {
6950
+ return openBlock(), createBlock$1(_sfc_main$a$1, {
6951
+ key: child.partId,
6952
+ part: child
6953
+ }, null, 8, ["part"]);
6954
+ }), 128))
6955
+ ], 16, _hoisted_1$8$1)
6956
+ ], 64);
6901
6957
  };
6902
6958
  }
6903
6959
  });
6904
- const _hoisted_1$6$1 = { class: "pb-block" };
6905
- const _hoisted_2$4$1 = /* @__PURE__ */ createElementVNode("div", {
6960
+ const _hoisted_1$7$1 = { class: "pb-block" };
6961
+ const _hoisted_2$5$1 = /* @__PURE__ */ createElementVNode("div", {
6906
6962
  class: "pb-widget",
6907
6963
  style: { "margin": "0 auto" }
6908
6964
  }, [
@@ -6911,7 +6967,7 @@ const _hoisted_2$4$1 = /* @__PURE__ */ createElementVNode("div", {
6911
6967
  ])
6912
6968
  ], -1);
6913
6969
  const _hoisted_3$4$1 = [
6914
- _hoisted_2$4$1
6970
+ _hoisted_2$5$1
6915
6971
  ];
6916
6972
  const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
6917
6973
  __name: "PbLoginDepart",
@@ -6920,11 +6976,11 @@ const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
6920
6976
  },
6921
6977
  setup(__props) {
6922
6978
  return (_ctx, _cache) => {
6923
- return openBlock(), createElementBlock("div", _hoisted_1$6$1, _hoisted_3$4$1);
6979
+ return openBlock(), createElementBlock("div", _hoisted_1$7$1, _hoisted_3$4$1);
6924
6980
  };
6925
6981
  }
6926
6982
  });
6927
- const _hoisted_1$5$1 = ["data-model-id"];
6983
+ const _hoisted_1$6$1 = ["data-part-id"];
6928
6984
  const _sfc_main$7$1 = /* @__PURE__ */ defineComponent({
6929
6985
  __name: "PbSection",
6930
6986
  props: {
@@ -6932,36 +6988,48 @@ const _sfc_main$7$1 = /* @__PURE__ */ defineComponent({
6932
6988
  },
6933
6989
  setup(__props) {
6934
6990
  const props = __props;
6991
+ const styleTag = computed(() => props.part.getStyleTag());
6935
6992
  const classNames = computed(() => props.part.getClassNames());
6936
- const properties = computed(() => ({ style: props.part.getStyles() }));
6993
+ const properties = computed(() => ({
6994
+ style: {
6995
+ ...props.part.getStyles(),
6996
+ ...props.part.getInlineStyles()
6997
+ }
6998
+ }));
6937
6999
  return (_ctx, _cache) => {
6938
7000
  var _a, _b;
6939
- return openBlock(), createElementBlock("div", mergeProps({
6940
- class: [classNames.value, "pb-section"],
6941
- "data-model-id": _ctx.part.partId,
6942
- style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
6943
- }, properties.value), [
6944
- ((_b = _ctx.part.properties) == null ? void 0 : _b.name) === "Login Design Part" ? (openBlock(), createBlock$1(_sfc_main$8$1, {
7001
+ return openBlock(), createElementBlock(Fragment, null, [
7002
+ styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
6945
7003
  key: 0,
6946
- part: _ctx.part
6947
- }, null, 8, ["part"])) : _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(_ctx.part.children, (block) => {
6948
- return openBlock(), createBlock$1(_sfc_main$9$1, {
6949
- key: block.partId,
6950
- part: block
6951
- }, null, 8, ["part"]);
6952
- }), 128)) : createCommentVNode("", true)
6953
- ], 16, _hoisted_1$5$1);
7004
+ innerHTML: styleTag.value
7005
+ }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
7006
+ createElementVNode("div", mergeProps({
7007
+ class: [classNames.value, "pb-section"],
7008
+ "data-part-id": _ctx.part.partId,
7009
+ style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
7010
+ }, properties.value), [
7011
+ ((_b = _ctx.part.properties) == null ? void 0 : _b.name) === "Login Design Part" ? (openBlock(), createBlock$1(_sfc_main$8$1, {
7012
+ key: 0,
7013
+ part: _ctx.part
7014
+ }, null, 8, ["part"])) : _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(_ctx.part.children, (block) => {
7015
+ return openBlock(), createBlock$1(_sfc_main$9$1, {
7016
+ key: block.partId,
7017
+ part: block
7018
+ }, null, 8, ["part"]);
7019
+ }), 128)) : createCommentVNode("", true)
7020
+ ], 16, _hoisted_1$6$1)
7021
+ ], 64);
6954
7022
  };
6955
7023
  }
6956
7024
  });
6957
- const _hoisted_1$4$1 = { class: "pb-image-widget" };
6958
- const _hoisted_2$3$1 = ["src"];
7025
+ const _hoisted_1$5$1 = { class: "pb-image-widget" };
7026
+ const _hoisted_2$4$1 = ["src"];
6959
7027
  const _hoisted_3$3$1 = {
6960
7028
  key: 1,
6961
7029
  class: "placeholder"
6962
7030
  };
6963
7031
  const _hoisted_4$d = /* @__PURE__ */ createElementVNode("span", { class: "font-icon" }, "image", -1);
6964
- const _hoisted_5$6 = [
7032
+ const _hoisted_5$7 = [
6965
7033
  _hoisted_4$d
6966
7034
  ];
6967
7035
  const _sfc_main$6$1 = /* @__PURE__ */ defineComponent({
@@ -6971,21 +7039,29 @@ const _sfc_main$6$1 = /* @__PURE__ */ defineComponent({
6971
7039
  placeholder: { type: Boolean }
6972
7040
  },
6973
7041
  setup(__props) {
7042
+ const props = __props;
7043
+ const classNames = computed(() => props.part.getClassNames());
7044
+ computed(() => ({
7045
+ style: {
7046
+ ...props.part.getInlineStyles()
7047
+ }
7048
+ }));
6974
7049
  return (_ctx, _cache) => {
6975
- var _a, _b;
6976
- return openBlock(), createElementBlock("div", _hoisted_1$4$1, [
7050
+ var _a, _b, _c;
7051
+ return openBlock(), createElementBlock("div", _hoisted_1$5$1, [
6977
7052
  ((_a = _ctx.part.properties) == null ? void 0 : _a.image) ? (openBlock(), createElementBlock("img", {
6978
7053
  key: 0,
7054
+ class: normalizeClass([classNames.value, "image"]),
6979
7055
  src: (_b = _ctx.part.properties) == null ? void 0 : _b.image,
6980
- alt: "",
6981
- class: "image"
6982
- }, null, 8, _hoisted_2$3$1)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_3$3$1, _hoisted_5$6)) : createCommentVNode("", true)
7056
+ style: normalizeStyle((_c = _ctx.part.properties) == null ? void 0 : _c.inlineStyle),
7057
+ alt: ""
7058
+ }, null, 14, _hoisted_2$4$1)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_3$3$1, _hoisted_5$7)) : createCommentVNode("", true)
6983
7059
  ]);
6984
7060
  };
6985
7061
  }
6986
7062
  });
6987
- const _hoisted_1$3$1 = { class: "pb-text-widget" };
6988
- const _hoisted_2$2$1 = ["textContent"];
7063
+ const _hoisted_1$4$1 = { class: "pb-text-widget" };
7064
+ const _hoisted_2$3$1 = ["textContent"];
6989
7065
  const _hoisted_3$2$1 = {
6990
7066
  key: 1,
6991
7067
  class: "placeholder",
@@ -7011,29 +7087,33 @@ const _sfc_main$5$1 = /* @__PURE__ */ defineComponent({
7011
7087
  }
7012
7088
  }
7013
7089
  });
7090
+ const classNames = computed(() => props.part.getClassNames());
7014
7091
  const style = computed(() => {
7015
- var _a, _b;
7092
+ var _a, _b, _c, _d;
7016
7093
  return {
7017
7094
  style: {
7018
7095
  fontSize: (_a = props.part.properties) == null ? void 0 : _a.fontSize,
7019
- color: (_b = props.part.properties) == null ? void 0 : _b.color
7096
+ fontWeight: (_b = props.part.properties) == null ? void 0 : _b.fontWeight,
7097
+ color: (_c = props.part.properties) == null ? void 0 : _c.color,
7098
+ textAlign: (_d = props.part.properties) == null ? void 0 : _d.textAlign,
7099
+ ...props.part.getInlineStyles()
7020
7100
  }
7021
7101
  };
7022
7102
  });
7023
7103
  return (_ctx, _cache) => {
7024
- return openBlock(), createElementBlock("div", _hoisted_1$3$1, [
7104
+ return openBlock(), createElementBlock("div", _hoisted_1$4$1, [
7025
7105
  text.value ? (openBlock(), createElementBlock("div", mergeProps({
7026
7106
  key: 0,
7027
- class: "text"
7107
+ class: [classNames.value, "text l-header-event__id-text"]
7028
7108
  }, style.value, {
7029
7109
  textContent: toDisplayString(text.value)
7030
- }), null, 16, _hoisted_2$2$1)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_3$2$1)) : createCommentVNode("", true)
7110
+ }), null, 16, _hoisted_2$3$1)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_3$2$1)) : createCommentVNode("", true)
7031
7111
  ]);
7032
7112
  };
7033
7113
  }
7034
7114
  });
7035
- const _hoisted_1$2$1 = { class: "pb-html-widget" };
7036
- const _hoisted_2$1$1 = ["innerHTML"];
7115
+ const _hoisted_1$3$1 = { class: "pb-html-widget" };
7116
+ const _hoisted_2$2$1 = ["innerHTML"];
7037
7117
  const _hoisted_3$1$1 = {
7038
7118
  key: 1,
7039
7119
  class: "placeholder",
@@ -7070,21 +7150,28 @@ ${_html.style}
7070
7150
  var _a;
7071
7151
  return getHtml((_a = props.part.properties) == null ? void 0 : _a.html);
7072
7152
  });
7073
- computed(() => props.placeholder ? !html.value : false);
7153
+ const classNames = computed(() => props.part.getClassNames());
7154
+ computed(() => ({
7155
+ style: {
7156
+ ...props.part.getInlineStyles()
7157
+ }
7158
+ }));
7074
7159
  return (_ctx, _cache) => {
7075
- return openBlock(), createElementBlock("div", _hoisted_1$2$1, [
7160
+ var _a;
7161
+ return openBlock(), createElementBlock("div", _hoisted_1$3$1, [
7076
7162
  html.value ? (openBlock(), createElementBlock("div", {
7077
7163
  key: 0,
7078
- class: "html",
7164
+ class: normalizeClass([classNames.value, "html"]),
7165
+ style: normalizeStyle((_a = _ctx.part.properties) == null ? void 0 : _a.inlineStyle),
7079
7166
  innerHTML: html.value
7080
- }, null, 8, _hoisted_2$1$1)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_3$1$1)) : createCommentVNode("", true)
7167
+ }, null, 14, _hoisted_2$2$1)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_3$1$1)) : createCommentVNode("", true)
7081
7168
  ]);
7082
7169
  };
7083
7170
  }
7084
7171
  });
7085
- const _hoisted_1$1$1 = { class: "pb-iframe-widget" };
7086
- const _hoisted_2$j = ["src"];
7087
- const _hoisted_3$g = {
7172
+ const _hoisted_1$2$1 = { class: "pb-iframe-widget" };
7173
+ const _hoisted_2$1$1 = ["src"];
7174
+ const _hoisted_3$h = {
7088
7175
  key: 1,
7089
7176
  class: "placeholder",
7090
7177
  textContent: "Empty URL"
@@ -7108,10 +7195,12 @@ const _sfc_main$3$1 = /* @__PURE__ */ defineComponent({
7108
7195
  const locale = pageBuilder.getLocale();
7109
7196
  return url2[locale];
7110
7197
  });
7198
+ const classNames = computed(() => props.part.getClassNames());
7111
7199
  const style = computed(() => ({
7112
7200
  style: {
7113
7201
  width: "100%",
7114
- height: `${height.value}px`
7202
+ height: `${height.value}px`,
7203
+ ...props.part.getInlineStyles()
7115
7204
  }
7116
7205
  }));
7117
7206
  const height = ref(200);
@@ -7127,11 +7216,14 @@ const _sfc_main$3$1 = /* @__PURE__ */ defineComponent({
7127
7216
  window.removeEventListener("message", updateHeight);
7128
7217
  });
7129
7218
  return (_ctx, _cache) => {
7130
- return openBlock(), createElementBlock("div", _hoisted_1$1$1, [
7219
+ var _a;
7220
+ return openBlock(), createElementBlock("div", _hoisted_1$2$1, [
7131
7221
  url.value ? (openBlock(), createElementBlock("iframe", mergeProps({
7132
7222
  key: 0,
7133
- src: url.value
7134
- }, style.value), null, 16, _hoisted_2$j)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_3$g)) : createCommentVNode("", true)
7223
+ class: classNames.value,
7224
+ src: url.value,
7225
+ style: (_a = _ctx.part.properties) == null ? void 0 : _a.inlineStyle
7226
+ }, style.value), null, 16, _hoisted_2$1$1)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_3$h)) : createCommentVNode("", true)
7135
7227
  ]);
7136
7228
  };
7137
7229
  }
@@ -7177,6 +7269,8 @@ class PageBuilderViewerImpl {
7177
7269
  __publicField2(this, "locale", ref("en"));
7178
7270
  __publicField2(this, "watchers", {});
7179
7271
  __publicField2(this, "providers", {});
7272
+ __publicField2(this, "externalCssLinks", []);
7273
+ __publicField2(this, "externalCssContent", "");
7180
7274
  this.model = new Model$1();
7181
7275
  }
7182
7276
  getLocale() {
@@ -7190,7 +7284,7 @@ class PageBuilderViewerImpl {
7190
7284
  plugin.widgets.forEach((v) => {
7191
7285
  const w = { ...v };
7192
7286
  w.partType = "Widget";
7193
- w.creator = () => _sfc_main$p;
7287
+ w.creator = () => _sfc_main$q;
7194
7288
  partDefinitions$1[v.partName] = w;
7195
7289
  });
7196
7290
  }
@@ -7200,6 +7294,14 @@ class PageBuilderViewerImpl {
7200
7294
  if (plugin.providers) {
7201
7295
  this.providers = { ...this.providers, ...plugin.providers };
7202
7296
  }
7297
+ if (plugin.css) {
7298
+ if (plugin.css.links) {
7299
+ this.externalCssLinks = plugin.css.links;
7300
+ }
7301
+ if (plugin.css.content) {
7302
+ this.externalCssContent = plugin.css.content;
7303
+ }
7304
+ }
7203
7305
  }
7204
7306
  watchCustomWidgetData(part) {
7205
7307
  const def = partDefinitions$1[part.partName];
@@ -7269,6 +7371,10 @@ class PageBuilderViewerImpl {
7269
7371
  return def.component;
7270
7372
  }
7271
7373
  }
7374
+ getExternalCss() {
7375
+ return `${this.externalCssLinks}
7376
+ <style>${this.externalCssContent}</style>`;
7377
+ }
7272
7378
  }
7273
7379
  const createPageBuilderViewer = () => {
7274
7380
  const viewer = new PageBuilderViewerImpl();
@@ -7307,36 +7413,53 @@ const createPartComponent = (part) => {
7307
7413
  }
7308
7414
  };
7309
7415
  const getPartDefinition = (partName) => partDefinitions$1[partName];
7416
+ const _hoisted_1$1$1 = ["data-part-id"];
7310
7417
  const _sfc_main$2$1 = /* @__PURE__ */ defineComponent({
7311
7418
  __name: "PbPage",
7312
7419
  props: {
7313
- page: {},
7420
+ part: {},
7314
7421
  isMobilePage: { type: Boolean }
7315
7422
  },
7316
7423
  setup(__props) {
7424
+ const props = __props;
7425
+ const classNames = computed(() => {
7426
+ var _a;
7427
+ return `${(_a = props.part) == null ? void 0 : _a.getClassNames()} ${props.isMobilePage ? "mobile" : "pc"}`;
7428
+ });
7429
+ const styleTag = computed(() => props.part.getStyleTag());
7317
7430
  const properties = computed(() => ({
7318
7431
  style: {
7319
- // styles here
7432
+ ...props.part.getStyles(),
7433
+ ...props.part.getInlineStyles()
7320
7434
  }
7321
7435
  }));
7322
7436
  return (_ctx, _cache) => {
7323
- var _a;
7324
- return openBlock(), createElementBlock("div", mergeProps({ class: "pb-page" }, properties.value), [
7325
- createElementVNode("div", {
7326
- class: normalizeClass([[_ctx.isMobilePage ? "mobile" : "pc"], "pb-page-content"])
7327
- }, [
7328
- (openBlock(true), createElementBlock(Fragment, null, renderList((_a = _ctx.page) == null ? void 0 : _a.children, (section) => {
7329
- return openBlock(), createBlock$1(_sfc_main$7$1, {
7330
- key: section.partId,
7331
- part: section
7332
- }, null, 8, ["part"]);
7333
- }), 128))
7334
- ], 2)
7335
- ], 16);
7437
+ return openBlock(), createElementBlock(Fragment, null, [
7438
+ styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
7439
+ key: 0,
7440
+ innerHTML: styleTag.value
7441
+ }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
7442
+ createElementVNode("div", mergeProps({
7443
+ class: [classNames.value, "pb-page"],
7444
+ "data-part-id": _ctx.part.partId
7445
+ }, properties.value), [
7446
+ createElementVNode("div", {
7447
+ class: normalizeClass([[_ctx.isMobilePage ? "mobile" : "pc"], "pb-page-content"])
7448
+ }, [
7449
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (section) => {
7450
+ return openBlock(), createBlock$1(_sfc_main$7$1, {
7451
+ key: section.partId,
7452
+ part: section
7453
+ }, null, 8, ["part"]);
7454
+ }), 128))
7455
+ ], 2)
7456
+ ], 16, _hoisted_1$1$1)
7457
+ ], 64);
7336
7458
  };
7337
7459
  }
7338
7460
  });
7339
- const _hoisted_1$t = { class: "pb-viewer" };
7461
+ const _hoisted_1$u = ["innerHTML"];
7462
+ const _hoisted_2$j = { class: "pb-viewer" };
7340
7463
  const _sfc_main$1$1 = /* @__PURE__ */ defineComponent({
7341
7464
  __name: "PageBuilderViewer",
7342
7465
  props: {
@@ -7347,43 +7470,50 @@ const _sfc_main$1$1 = /* @__PURE__ */ defineComponent({
7347
7470
  },
7348
7471
  setup(__props) {
7349
7472
  const props = __props;
7350
- const pageBuilderViewer = createPageBuilderViewer();
7351
- pageBuilderViewer.setLocale(props.locale);
7473
+ const viewer = createPageBuilderViewer();
7474
+ viewer.setLocale(props.locale);
7352
7475
  if (props.plugin)
7353
- pageBuilderViewer.registerCustomPlugin(props.plugin);
7354
- providePageBuilderViewer(pageBuilderViewer);
7355
- providePageBuilder(pageBuilderViewer);
7356
- const page = computed(() => {
7357
- const pages = pageBuilderViewer.model.rootPart.value.children;
7358
- if (!pages || !pages.length)
7476
+ viewer.registerCustomPlugin(props.plugin);
7477
+ providePageBuilderViewer(viewer);
7478
+ providePageBuilder(viewer);
7479
+ const externalCss = viewer.getExternalCss();
7480
+ const part = computed(() => {
7481
+ const parts = viewer.model.rootPart.value.children;
7482
+ if (!parts || !parts.length)
7359
7483
  return;
7360
- return pages[pages.length === 1 || props.isMobilePage ? 0 : 1];
7484
+ return parts[parts.length === 1 || props.isMobilePage ? 0 : 1];
7361
7485
  });
7362
7486
  onMounted(() => {
7363
7487
  if (props.pageContent) {
7364
- pageBuilderViewer.render(props.pageContent);
7488
+ viewer.render(props.pageContent);
7365
7489
  }
7366
7490
  });
7367
7491
  watch(
7368
7492
  () => props.pageContent,
7369
7493
  (pageContent) => {
7370
7494
  if (pageContent) {
7371
- pageBuilderViewer.render(pageContent);
7495
+ viewer.render(pageContent);
7372
7496
  }
7373
7497
  }
7374
7498
  );
7375
7499
  return (_ctx, _cache) => {
7376
- return openBlock(), createElementBlock("div", _hoisted_1$t, [
7377
- page.value ? (openBlock(), createBlock$1(_sfc_main$2$1, {
7500
+ return openBlock(), createElementBlock(Fragment, null, [
7501
+ unref(externalCss) ? (openBlock(), createElementBlock("div", {
7378
7502
  key: 0,
7379
- "is-mobile-page": _ctx.isMobilePage,
7380
- page: page.value
7381
- }, null, 8, ["is-mobile-page", "page"])) : createCommentVNode("", true)
7382
- ]);
7503
+ innerHTML: unref(externalCss)
7504
+ }, null, 8, _hoisted_1$u)) : createCommentVNode("", true),
7505
+ createElementVNode("div", _hoisted_2$j, [
7506
+ part.value ? (openBlock(), createBlock$1(_sfc_main$2$1, {
7507
+ key: 0,
7508
+ "is-mobile-page": _ctx.isMobilePage,
7509
+ part: part.value
7510
+ }, null, 8, ["is-mobile-page", "part"])) : createCommentVNode("", true)
7511
+ ])
7512
+ ], 64);
7383
7513
  };
7384
7514
  }
7385
7515
  });
7386
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
7516
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
7387
7517
  __name: "PbCustomWidget",
7388
7518
  props: {
7389
7519
  part: {},
@@ -8005,12 +8135,12 @@ class PartManager {
8005
8135
  const defaultPartPropertyEditors = () => {
8006
8136
  return {
8007
8137
  "readonly-text": () => defineAsyncComponent(() => import("./PbPropertyEditorReadonlyText-Dgp_AVOD.js")),
8008
- "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-DmM_LMjC.js")),
8009
- "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-CT3vTbYY.js")),
8138
+ "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-CWmfX2bt.js")),
8139
+ "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-BR1FNVi6.js")),
8010
8140
  "select": () => defineAsyncComponent(() => import("./PbPropertyEditorSelect-CWedbXJI.js")),
8011
- "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-BFMkFOYX.js")),
8012
- "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-BQhiQyNM.js")),
8013
- "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-DZw8qbJH.js"))
8141
+ "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-C554e0iO.js")),
8142
+ "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-CMPr66Dx.js")),
8143
+ "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-CB99C_DG.js"))
8014
8144
  };
8015
8145
  };
8016
8146
  const getPropertyValueOfParts = (parts, propertyName) => {
@@ -8240,22 +8370,22 @@ const _export_sfc = (sfc, props) => {
8240
8370
  }
8241
8371
  return target;
8242
8372
  };
8243
- const _sfc_main$o = {};
8244
- const _hoisted_1$s = { class: "pb-add-widget-button" };
8373
+ const _sfc_main$p = {};
8374
+ const _hoisted_1$t = { class: "pb-add-widget-button" };
8245
8375
  const _hoisted_2$i = /* @__PURE__ */ createElementVNode("span", { class: "icon material-icons-outlined" }, "add_box", -1);
8246
- const _hoisted_3$f = /* @__PURE__ */ createElementVNode("span", { class: "text" }, "Add Widget", -1);
8376
+ const _hoisted_3$g = /* @__PURE__ */ createElementVNode("span", { class: "text" }, "Add Widget", -1);
8247
8377
  const _hoisted_4$c = [
8248
8378
  _hoisted_2$i,
8249
- _hoisted_3$f
8379
+ _hoisted_3$g
8250
8380
  ];
8251
8381
  function _sfc_render$1(_ctx, _cache) {
8252
- return openBlock(), createElementBlock("div", _hoisted_1$s, [
8382
+ return openBlock(), createElementBlock("div", _hoisted_1$t, [
8253
8383
  createElementVNode("button", {
8254
8384
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("add-widget", $event))
8255
8385
  }, _hoisted_4$c)
8256
8386
  ]);
8257
8387
  }
8258
- const PbAddWidgetButton = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$1]]);
8388
+ const PbAddWidgetButton = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$1]]);
8259
8389
  const MOUSE_TRACKER_KEY = "mouseTracker";
8260
8390
  const MOUSE_TRACKER_NOT_FOUND = "MouseTracker not found";
8261
8391
  class MouseTracker {
@@ -8286,12 +8416,12 @@ const useMouseTracker = () => {
8286
8416
  throw Error(MOUSE_TRACKER_NOT_FOUND);
8287
8417
  return mouseTracker;
8288
8418
  };
8289
- const _hoisted_1$r = ["data-model-id", "draggable"];
8419
+ const _hoisted_1$s = ["data-part-id", "draggable"];
8290
8420
  const _hoisted_2$h = {
8291
8421
  key: 1,
8292
8422
  class: "children"
8293
8423
  };
8294
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
8424
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
8295
8425
  __name: "PbWidget",
8296
8426
  props: {
8297
8427
  part: {}
@@ -8351,6 +8481,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
8351
8481
  const pageBuilder = usePageBuilderEditor();
8352
8482
  const selected = computed(() => pageBuilder.context.isSelected(props.part));
8353
8483
  const classNames = computed(() => [selected.value ? "selected" : "", props.part.getClassNames()]);
8484
+ const styleTag = computed(() => props.part.getStyleTag());
8354
8485
  const properties = computed(() => {
8355
8486
  var _a, _b, _c, _d;
8356
8487
  let style = props.part.getStyles();
@@ -8726,45 +8857,51 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
8726
8857
  return index;
8727
8858
  };
8728
8859
  return (_ctx, _cache) => {
8729
- return withDirectives((openBlock(), createElementBlock("div", mergeProps({
8730
- ref_key: "widget",
8731
- ref: widget,
8732
- class: [classNames.value, "pb-widget"],
8733
- "data-model-id": _ctx.part.partId,
8734
- draggable: draggable.value
8735
- }, properties.value), [
8736
- thisComponent.value ? (openBlock(), createBlock$1(resolveDynamicComponent(thisComponent.value), {
8860
+ return openBlock(), createElementBlock(Fragment, null, [
8861
+ styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
8737
8862
  key: 0,
8738
- part: _ctx.part,
8739
- placeholder: true
8740
- }, null, 8, ["part"])) : createCommentVNode("", true),
8741
- childComponents.value && childComponents.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_2$h, [
8742
- (openBlock(true), createElementBlock(Fragment, null, renderList(childComponents.value, (child) => {
8743
- return openBlock(), createBlock$1(resolveDynamicComponent(child.component), {
8744
- key: child.part.partId,
8745
- part: child.part,
8746
- placeholder: true
8747
- }, null, 8, ["part"]);
8748
- }), 128))
8749
- ])) : createCommentVNode("", true),
8750
- selected.value && _ctx.part.isNestedWidget() ? (openBlock(), createElementBlock("div", {
8751
- key: 2,
8752
- class: "pan-handle",
8753
- onMousedown: _pan_mousedown
8754
- }, null, 32)) : createCommentVNode("", true),
8755
- selected.value && _ctx.part.isNestedWidget() ? (openBlock(), createElementBlock("div", {
8756
- key: 3,
8757
- class: "resize-handle",
8758
- onMousedown: _resize_mousedown
8759
- }, null, 32)) : createCommentVNode("", true)
8760
- ], 16, _hoisted_1$r)), [
8761
- [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
8762
- ]);
8863
+ innerHTML: styleTag.value
8864
+ }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
8865
+ withDirectives((openBlock(), createElementBlock("div", mergeProps({
8866
+ ref_key: "widget",
8867
+ ref: widget,
8868
+ class: [classNames.value, "pb-widget"],
8869
+ "data-part-id": _ctx.part.partId,
8870
+ draggable: draggable.value
8871
+ }, properties.value), [
8872
+ thisComponent.value ? (openBlock(), createBlock$1(resolveDynamicComponent(thisComponent.value), {
8873
+ key: 0,
8874
+ part: _ctx.part,
8875
+ placeholder: true
8876
+ }, null, 8, ["part"])) : createCommentVNode("", true),
8877
+ childComponents.value && childComponents.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_2$h, [
8878
+ (openBlock(true), createElementBlock(Fragment, null, renderList(childComponents.value, (child) => {
8879
+ return openBlock(), createBlock$1(resolveDynamicComponent(child.component), {
8880
+ key: child.part.partId,
8881
+ part: child.part,
8882
+ placeholder: true
8883
+ }, null, 8, ["part"]);
8884
+ }), 128))
8885
+ ])) : createCommentVNode("", true),
8886
+ selected.value && _ctx.part.isNestedWidget() ? (openBlock(), createElementBlock("div", {
8887
+ key: 2,
8888
+ class: "pan-handle",
8889
+ onMousedown: _pan_mousedown
8890
+ }, null, 32)) : createCommentVNode("", true),
8891
+ selected.value && _ctx.part.isNestedWidget() ? (openBlock(), createElementBlock("div", {
8892
+ key: 3,
8893
+ class: "resize-handle",
8894
+ onMousedown: _resize_mousedown
8895
+ }, null, 32)) : createCommentVNode("", true)
8896
+ ], 16, _hoisted_1$s)), [
8897
+ [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
8898
+ ])
8899
+ ], 64);
8763
8900
  };
8764
8901
  }
8765
8902
  });
8766
- const _hoisted_1$q = ["data-model-id"];
8767
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
8903
+ const _hoisted_1$r = ["data-part-id"];
8904
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
8768
8905
  __name: "PbBlock",
8769
8906
  props: {
8770
8907
  part: {}
@@ -8777,7 +8914,13 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
8777
8914
  selected.value ? "selected" : "",
8778
8915
  props.part.getClassNames()
8779
8916
  ]);
8780
- const properties = computed(() => ({ style: props.part.getStyles() }));
8917
+ const styleTag = computed(() => props.part.getStyleTag());
8918
+ const properties = computed(() => ({
8919
+ style: {
8920
+ ...props.part.getStyles(),
8921
+ ...props.part.getInlineStyles()
8922
+ }
8923
+ }));
8781
8924
  computed(() => pageBuilder.partManager.createPartComponents(props.part.children));
8782
8925
  const addWidget = () => {
8783
8926
  pageBuilder.commandRegistry.executeCommand(OpenAddWidgetModalCommand.COMMAND_ID);
@@ -8944,28 +9087,34 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
8944
9087
  };
8945
9088
  return (_ctx, _cache) => {
8946
9089
  var _a, _b;
8947
- return withDirectives((openBlock(), createElementBlock("div", mergeProps({
8948
- class: [classNames.value, "pb-block"],
8949
- "data-model-id": _ctx.part.partId,
8950
- style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
8951
- }, properties.value), [
8952
- !_ctx.part.children || ((_b = _ctx.part.children) == null ? void 0 : _b.length) === 0 ? (openBlock(), createBlock$1(PbAddWidgetButton, {
9090
+ return openBlock(), createElementBlock(Fragment, null, [
9091
+ styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
8953
9092
  key: 0,
8954
- onAddWidget: addWidget
8955
- })) : createCommentVNode("", true),
8956
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (child) => {
8957
- return openBlock(), createBlock$1(_sfc_main$n, {
8958
- key: child.partId,
8959
- part: child
8960
- }, null, 8, ["part"]);
8961
- }), 128))
8962
- ], 16, _hoisted_1$q)), [
8963
- [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
8964
- ]);
9093
+ innerHTML: styleTag.value
9094
+ }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
9095
+ withDirectives((openBlock(), createElementBlock("div", mergeProps({
9096
+ class: [classNames.value, "pb-block"],
9097
+ "data-part-id": _ctx.part.partId,
9098
+ style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
9099
+ }, properties.value), [
9100
+ !_ctx.part.children || ((_b = _ctx.part.children) == null ? void 0 : _b.length) === 0 ? (openBlock(), createBlock$1(PbAddWidgetButton, {
9101
+ key: 0,
9102
+ onAddWidget: addWidget
9103
+ })) : createCommentVNode("", true),
9104
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (child) => {
9105
+ return openBlock(), createBlock$1(_sfc_main$o, {
9106
+ key: child.partId,
9107
+ part: child
9108
+ }, null, 8, ["part"]);
9109
+ }), 128))
9110
+ ], 16, _hoisted_1$r)), [
9111
+ [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9112
+ ])
9113
+ ], 64);
8965
9114
  };
8966
9115
  }
8967
9116
  });
8968
- const _hoisted_1$p = { class: "pb-block" };
9117
+ const _hoisted_1$q = { class: "pb-block" };
8969
9118
  const _hoisted_2$g = /* @__PURE__ */ createElementVNode("div", {
8970
9119
  class: "pb-widget",
8971
9120
  style: { "margin": "0 auto" }
@@ -8974,22 +9123,22 @@ const _hoisted_2$g = /* @__PURE__ */ createElementVNode("div", {
8974
9123
  /* @__PURE__ */ createElementVNode("h3", null, "Login Design Part")
8975
9124
  ])
8976
9125
  ], -1);
8977
- const _hoisted_3$e = [
9126
+ const _hoisted_3$f = [
8978
9127
  _hoisted_2$g
8979
9128
  ];
8980
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
9129
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
8981
9130
  __name: "PbLoginDepart",
8982
9131
  props: {
8983
9132
  part: {}
8984
9133
  },
8985
9134
  setup(__props) {
8986
9135
  return (_ctx, _cache) => {
8987
- return openBlock(), createElementBlock("div", _hoisted_1$p, _hoisted_3$e);
9136
+ return openBlock(), createElementBlock("div", _hoisted_1$q, _hoisted_3$f);
8988
9137
  };
8989
9138
  }
8990
9139
  });
8991
- const _hoisted_1$o = ["data-model-id"];
8992
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
9140
+ const _hoisted_1$p = ["data-part-id"];
9141
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
8993
9142
  __name: "PbSection",
8994
9143
  props: {
8995
9144
  part: {}
@@ -9005,7 +9154,13 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9005
9154
  props.part.getClassNames()
9006
9155
  ];
9007
9156
  });
9008
- const properties = computed(() => ({ style: props.part.getStyles() }));
9157
+ const styleTag = computed(() => props.part.getStyleTag());
9158
+ const properties = computed(() => ({
9159
+ style: {
9160
+ ...props.part.getStyles(),
9161
+ ...props.part.getInlineStyles()
9162
+ }
9163
+ }));
9009
9164
  const disabled = computed(() => {
9010
9165
  var _a;
9011
9166
  return ["static"].includes(((_a = props.part.properties) == null ? void 0 : _a.sectionType) || "");
@@ -9088,50 +9243,56 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9088
9243
  };
9089
9244
  return (_ctx, _cache) => {
9090
9245
  var _a, _b, _c;
9091
- return withDirectives((openBlock(), createElementBlock("div", mergeProps({
9092
- class: [classNames.value, "pb-section"],
9093
- "data-model-id": _ctx.part.partId,
9094
- style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
9095
- }, properties.value), [
9096
- ((_b = _ctx.part.properties) == null ? void 0 : _b.sectionType) === "static" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
9097
- ((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (openBlock(), createBlock$1(_sfc_main$l, {
9098
- key: 0,
9099
- part: _ctx.part
9100
- }, null, 8, ["part"])) : createCommentVNode("", true)
9101
- ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
9102
- _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (block) => {
9103
- return openBlock(), createBlock$1(_sfc_main$m, {
9104
- key: block.partId,
9105
- part: block
9106
- }, null, 8, ["part"]);
9107
- }), 128)) : (openBlock(), createBlock$1(PbAddWidgetButton, {
9108
- key: 1,
9109
- onAddWidget: addWidget
9110
- }))
9111
- ], 64))
9112
- ], 16, _hoisted_1$o)), [
9113
- [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9114
- ]);
9246
+ return openBlock(), createElementBlock(Fragment, null, [
9247
+ styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
9248
+ key: 0,
9249
+ innerHTML: styleTag.value
9250
+ }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
9251
+ withDirectives((openBlock(), createElementBlock("div", mergeProps({
9252
+ class: [classNames.value, "pb-section"],
9253
+ "data-part-id": _ctx.part.partId,
9254
+ style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
9255
+ }, properties.value), [
9256
+ ((_b = _ctx.part.properties) == null ? void 0 : _b.sectionType) === "static" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
9257
+ ((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (openBlock(), createBlock$1(_sfc_main$m, {
9258
+ key: 0,
9259
+ part: _ctx.part
9260
+ }, null, 8, ["part"])) : createCommentVNode("", true)
9261
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
9262
+ _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (block) => {
9263
+ return openBlock(), createBlock$1(_sfc_main$n, {
9264
+ key: block.partId,
9265
+ part: block
9266
+ }, null, 8, ["part"]);
9267
+ }), 128)) : (openBlock(), createBlock$1(PbAddWidgetButton, {
9268
+ key: 1,
9269
+ onAddWidget: addWidget
9270
+ }))
9271
+ ], 64))
9272
+ ], 16, _hoisted_1$p)), [
9273
+ [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9274
+ ])
9275
+ ], 64);
9115
9276
  };
9116
9277
  }
9117
9278
  });
9118
- const _hoisted_1$n = { class: "group-editor group-editor-position" };
9279
+ const _hoisted_1$o = { class: "group-editor group-editor-position" };
9119
9280
  const _hoisted_2$f = { class: "flex-align-center" };
9120
- const _hoisted_3$d = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
9281
+ const _hoisted_3$e = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
9121
9282
  /* @__PURE__ */ createElementVNode("label", { textContent: "Position" })
9122
9283
  ], -1);
9123
9284
  const _hoisted_4$b = { class: "flex-grow-1" };
9124
- const _hoisted_5$5 = { class: "bg-gray-100 py-5 rounded-8" };
9125
- const _hoisted_6$4 = { class: "text-center" };
9126
- const _hoisted_7$4 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
9127
- const _hoisted_8$4 = /* @__PURE__ */ createElementVNode("div", {
9285
+ const _hoisted_5$6 = { class: "bg-gray-100 py-5 rounded-8" };
9286
+ const _hoisted_6$5 = { class: "text-center" };
9287
+ const _hoisted_7$5 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
9288
+ const _hoisted_8$5 = /* @__PURE__ */ createElementVNode("div", {
9128
9289
  class: "d-inline-block text-center text-gray-300",
9129
9290
  style: { "width": "30%", "font-size": "12px" }
9130
9291
  }, [
9131
9292
  /* @__PURE__ */ createElementVNode("span", { class: "font-icon" }, "add")
9132
9293
  ], -1);
9133
- const _hoisted_9$4 = { class: "text-center" };
9134
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
9294
+ const _hoisted_9$5 = { class: "text-center" };
9295
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9135
9296
  __name: "PbPropertyGroupEditorPosition",
9136
9297
  props: {
9137
9298
  group: {},
@@ -9155,12 +9316,12 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
9155
9316
  const updateTop = (value) => updatePropertyValue({ top: value });
9156
9317
  const updateBottom = (value) => updatePropertyValue({ bottom: value });
9157
9318
  return (_ctx, _cache) => {
9158
- return openBlock(), createElementBlock("div", _hoisted_1$n, [
9319
+ return openBlock(), createElementBlock("div", _hoisted_1$o, [
9159
9320
  createElementVNode("div", _hoisted_2$f, [
9160
- _hoisted_3$d,
9321
+ _hoisted_3$e,
9161
9322
  createElementVNode("div", _hoisted_4$b, [
9162
- createElementVNode("div", _hoisted_5$5, [
9163
- createElementVNode("div", _hoisted_6$4, [
9323
+ createElementVNode("div", _hoisted_5$6, [
9324
+ createElementVNode("div", _hoisted_6$5, [
9164
9325
  createVNode(unref(BSTextInput), {
9165
9326
  "model-value": top.value,
9166
9327
  class: "ml-4",
@@ -9169,7 +9330,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
9169
9330
  "onUpdate:modelValue": updateTop
9170
9331
  }, null, 8, ["model-value"])
9171
9332
  ]),
9172
- createElementVNode("div", _hoisted_7$4, [
9333
+ createElementVNode("div", _hoisted_7$5, [
9173
9334
  createVNode(unref(BSTextInput), {
9174
9335
  "model-value": left.value,
9175
9336
  class: "ml-4",
@@ -9177,7 +9338,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
9177
9338
  width: "30%",
9178
9339
  "onUpdate:modelValue": updateLeft
9179
9340
  }, null, 8, ["model-value"]),
9180
- _hoisted_8$4,
9341
+ _hoisted_8$5,
9181
9342
  createVNode(unref(BSTextInput), {
9182
9343
  "model-value": right.value,
9183
9344
  class: "ml-4",
@@ -9186,7 +9347,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
9186
9347
  "onUpdate:modelValue": updateRight
9187
9348
  }, null, 8, ["model-value"])
9188
9349
  ]),
9189
- createElementVNode("div", _hoisted_9$4, [
9350
+ createElementVNode("div", _hoisted_9$5, [
9190
9351
  createVNode(unref(BSTextInput), {
9191
9352
  "model-value": bottom.value,
9192
9353
  class: "ml-4",
@@ -9202,13 +9363,23 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
9202
9363
  };
9203
9364
  }
9204
9365
  });
9205
- const _hoisted_1$m = { class: "group-editor group-editor-size" };
9366
+ const _hoisted_1$n = { class: "group-editor group-editor-size" };
9206
9367
  const _hoisted_2$e = { class: "flex-align-center" };
9207
- const _hoisted_3$c = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
9368
+ const _hoisted_3$d = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
9208
9369
  /* @__PURE__ */ createElementVNode("label", { textContent: "Size" })
9209
9370
  ], -1);
9210
9371
  const _hoisted_4$a = { class: "flex-grow-1 bs-layout-horizontal" };
9211
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
9372
+ const _hoisted_5$5 = { class: "flex-align-center mt-12" };
9373
+ const _hoisted_6$4 = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
9374
+ /* @__PURE__ */ createElementVNode("label", { textContent: "Max Size" })
9375
+ ], -1);
9376
+ const _hoisted_7$4 = { class: "flex-grow-1 bs-layout-horizontal" };
9377
+ const _hoisted_8$4 = { class: "flex-align-center mt-12" };
9378
+ const _hoisted_9$4 = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
9379
+ /* @__PURE__ */ createElementVNode("label", { textContent: "Min Size" })
9380
+ ], -1);
9381
+ const _hoisted_10$2 = { class: "flex-grow-1 bs-layout-horizontal" };
9382
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
9212
9383
  __name: "PbPropertyGroupEditorSize",
9213
9384
  props: {
9214
9385
  group: {},
@@ -9219,6 +9390,10 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
9219
9390
  const pageBuilder = usePageBuilderEditor();
9220
9391
  const width = computed(() => getPropertyValueOfParts(props.selectedParts, "width"));
9221
9392
  const height = computed(() => getPropertyValueOfParts(props.selectedParts, "height"));
9393
+ const maxWidth = computed(() => getPropertyValueOfParts(props.selectedParts, "maxWidth"));
9394
+ const maxHeight = computed(() => getPropertyValueOfParts(props.selectedParts, "maxHeight"));
9395
+ const minWidth = computed(() => getPropertyValueOfParts(props.selectedParts, "minWidth"));
9396
+ const minHeight = computed(() => getPropertyValueOfParts(props.selectedParts, "minHeight"));
9222
9397
  const updatePropertyValue = (properties) => {
9223
9398
  pageBuilder.commandRegistry.executeCommand(
9224
9399
  ChangePropertyCommand.COMMAND_ID,
@@ -9227,10 +9402,14 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
9227
9402
  };
9228
9403
  const updateWidth = (value) => updatePropertyValue({ width: value });
9229
9404
  const updateHeight = (value) => updatePropertyValue({ height: value });
9405
+ const updateMaxWidth = (value) => updatePropertyValue({ maxWidth: value });
9406
+ const updateMaxHeight = (value) => updatePropertyValue({ maxWeight: value });
9407
+ const updateMinWidth = (value) => updatePropertyValue({ minWidth: value });
9408
+ const updateMinHeight = (value) => updatePropertyValue({ minHeight: value });
9230
9409
  return (_ctx, _cache) => {
9231
- return openBlock(), createElementBlock("div", _hoisted_1$m, [
9410
+ return openBlock(), createElementBlock("div", _hoisted_1$n, [
9232
9411
  createElementVNode("div", _hoisted_2$e, [
9233
- _hoisted_3$c,
9412
+ _hoisted_3$d,
9234
9413
  createElementVNode("div", _hoisted_4$a, [
9235
9414
  createVNode(unref(BSTextInput), {
9236
9415
  "model-value": width.value,
@@ -9245,6 +9424,40 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
9245
9424
  "onUpdate:modelValue": updateHeight
9246
9425
  }, null, 8, ["model-value"])
9247
9426
  ])
9427
+ ]),
9428
+ createElementVNode("div", _hoisted_5$5, [
9429
+ _hoisted_6$4,
9430
+ createElementVNode("div", _hoisted_7$4, [
9431
+ createVNode(unref(BSTextInput), {
9432
+ "model-value": maxWidth.value,
9433
+ class: "flex-grow-1 mr-2",
9434
+ prefix: "W",
9435
+ "onUpdate:modelValue": updateMaxWidth
9436
+ }, null, 8, ["model-value"]),
9437
+ createVNode(unref(BSTextInput), {
9438
+ "model-value": maxHeight.value,
9439
+ class: "flex-grow-1 ml-2",
9440
+ prefix: "H",
9441
+ "onUpdate:modelValue": updateMaxHeight
9442
+ }, null, 8, ["model-value"])
9443
+ ])
9444
+ ]),
9445
+ createElementVNode("div", _hoisted_8$4, [
9446
+ _hoisted_9$4,
9447
+ createElementVNode("div", _hoisted_10$2, [
9448
+ createVNode(unref(BSTextInput), {
9449
+ "model-value": minWidth.value,
9450
+ class: "flex-grow-1 mr-2",
9451
+ prefix: "W",
9452
+ "onUpdate:modelValue": updateMinWidth
9453
+ }, null, 8, ["model-value"]),
9454
+ createVNode(unref(BSTextInput), {
9455
+ "model-value": minHeight.value,
9456
+ class: "flex-grow-1 ml-2",
9457
+ prefix: "H",
9458
+ "onUpdate:modelValue": updateMinHeight
9459
+ }, null, 8, ["model-value"])
9460
+ ])
9248
9461
  ])
9249
9462
  ]);
9250
9463
  };
@@ -9407,9 +9620,9 @@ var script$4 = {
9407
9620
  }
9408
9621
  }
9409
9622
  };
9410
- const _hoisted_1$l = { class: "vc-alpha" };
9623
+ const _hoisted_1$m = { class: "vc-alpha" };
9411
9624
  const _hoisted_2$d = { class: "vc-alpha-checkboard-wrap" };
9412
- const _hoisted_3$b = /* @__PURE__ */ createElementVNode(
9625
+ const _hoisted_3$c = /* @__PURE__ */ createElementVNode(
9413
9626
  "div",
9414
9627
  { class: "vc-alpha-picker" },
9415
9628
  null,
@@ -9417,11 +9630,11 @@ const _hoisted_3$b = /* @__PURE__ */ createElementVNode(
9417
9630
  /* HOISTED */
9418
9631
  );
9419
9632
  const _hoisted_4$9 = [
9420
- _hoisted_3$b
9633
+ _hoisted_3$c
9421
9634
  ];
9422
9635
  function render$4(_ctx, _cache, $props, $setup, $data, $options) {
9423
9636
  const _component_Checkboard = resolveComponent("Checkboard");
9424
- return openBlock(), createElementBlock("div", _hoisted_1$l, [
9637
+ return openBlock(), createElementBlock("div", _hoisted_1$m, [
9425
9638
  createElementVNode("div", _hoisted_2$d, [
9426
9639
  createVNode(_component_Checkboard)
9427
9640
  ]),
@@ -10525,12 +10738,12 @@ var script$3 = {
10525
10738
  // }
10526
10739
  }
10527
10740
  };
10528
- const _hoisted_1$k = { class: "vc-editable-input" };
10741
+ const _hoisted_1$l = { class: "vc-editable-input" };
10529
10742
  const _hoisted_2$c = ["aria-labelledby"];
10530
- const _hoisted_3$a = ["id", "for"];
10743
+ const _hoisted_3$b = ["id", "for"];
10531
10744
  const _hoisted_4$8 = { class: "vc-input__desc" };
10532
10745
  function render$3(_ctx, _cache, $props, $setup, $data, $options) {
10533
- return openBlock(), createElementBlock("div", _hoisted_1$k, [
10746
+ return openBlock(), createElementBlock("div", _hoisted_1$l, [
10534
10747
  withDirectives(createElementVNode("input", {
10535
10748
  ref: "input",
10536
10749
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $options.val = $event),
@@ -10545,7 +10758,7 @@ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
10545
10758
  id: $options.labelId,
10546
10759
  for: $props.label,
10547
10760
  class: "vc-input__label"
10548
- }, toDisplayString($options.labelSpanText), 9, _hoisted_3$a),
10761
+ }, toDisplayString($options.labelSpanText), 9, _hoisted_3$b),
10549
10762
  createElementVNode(
10550
10763
  "span",
10551
10764
  _hoisted_4$8,
@@ -10625,7 +10838,7 @@ var script$2 = {
10625
10838
  }
10626
10839
  }
10627
10840
  };
10628
- const _hoisted_1$j = /* @__PURE__ */ createElementVNode(
10841
+ const _hoisted_1$k = /* @__PURE__ */ createElementVNode(
10629
10842
  "div",
10630
10843
  { class: "vc-saturation--white" },
10631
10844
  null,
@@ -10639,7 +10852,7 @@ const _hoisted_2$b = /* @__PURE__ */ createElementVNode(
10639
10852
  -1
10640
10853
  /* HOISTED */
10641
10854
  );
10642
- const _hoisted_3$9 = /* @__PURE__ */ createElementVNode(
10855
+ const _hoisted_3$a = /* @__PURE__ */ createElementVNode(
10643
10856
  "div",
10644
10857
  { class: "vc-saturation-circle" },
10645
10858
  null,
@@ -10647,7 +10860,7 @@ const _hoisted_3$9 = /* @__PURE__ */ createElementVNode(
10647
10860
  /* HOISTED */
10648
10861
  );
10649
10862
  const _hoisted_4$7 = [
10650
- _hoisted_3$9
10863
+ _hoisted_3$a
10651
10864
  ];
10652
10865
  function render$2(_ctx, _cache, $props, $setup, $data, $options) {
10653
10866
  return openBlock(), createElementBlock(
@@ -10661,7 +10874,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
10661
10874
  onTouchstart: _cache[2] || (_cache[2] = (...args) => $options.handleChange && $options.handleChange(...args))
10662
10875
  },
10663
10876
  [
10664
- _hoisted_1$j,
10877
+ _hoisted_1$k,
10665
10878
  _hoisted_2$b,
10666
10879
  createElementVNode(
10667
10880
  "div",
@@ -10810,7 +11023,7 @@ var script$1 = {
10810
11023
  }
10811
11024
  }
10812
11025
  };
10813
- const _hoisted_1$i = ["aria-valuenow"];
11026
+ const _hoisted_1$j = ["aria-valuenow"];
10814
11027
  const _hoisted_2$a = /* @__PURE__ */ createElementVNode(
10815
11028
  "div",
10816
11029
  { class: "vc-hue-picker" },
@@ -10818,7 +11031,7 @@ const _hoisted_2$a = /* @__PURE__ */ createElementVNode(
10818
11031
  -1
10819
11032
  /* HOISTED */
10820
11033
  );
10821
- const _hoisted_3$8 = [
11034
+ const _hoisted_3$9 = [
10822
11035
  _hoisted_2$a
10823
11036
  ];
10824
11037
  function render$1(_ctx, _cache, $props, $setup, $data, $options) {
@@ -10846,11 +11059,11 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
10846
11059
  style: normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft }),
10847
11060
  role: "presentation"
10848
11061
  },
10849
- _hoisted_3$8,
11062
+ _hoisted_3$9,
10850
11063
  4
10851
11064
  /* STYLE */
10852
11065
  )
10853
- ], 40, _hoisted_1$i)
11066
+ ], 40, _hoisted_1$j)
10854
11067
  ],
10855
11068
  2
10856
11069
  /* CLASS */
@@ -10946,9 +11159,9 @@ var script = {
10946
11159
  }
10947
11160
  }
10948
11161
  };
10949
- const _hoisted_1$h = { class: "vc-sketch-saturation-wrap" };
11162
+ const _hoisted_1$i = { class: "vc-sketch-saturation-wrap" };
10950
11163
  const _hoisted_2$9 = { class: "vc-sketch-controls" };
10951
- const _hoisted_3$7 = { class: "vc-sketch-sliders" };
11164
+ const _hoisted_3$8 = { class: "vc-sketch-sliders" };
10952
11165
  const _hoisted_4$6 = { class: "vc-sketch-hue-wrap" };
10953
11166
  const _hoisted_5$4 = {
10954
11167
  key: 0,
@@ -10989,14 +11202,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
10989
11202
  class: normalizeClass(["vc-sketch", [$props.disableAlpha ? "vc-sketch__disable-alpha" : ""]])
10990
11203
  },
10991
11204
  [
10992
- createElementVNode("div", _hoisted_1$h, [
11205
+ createElementVNode("div", _hoisted_1$i, [
10993
11206
  createVNode(_component_Saturation, {
10994
11207
  value: _ctx.colors,
10995
11208
  onChange: $options.childChange
10996
11209
  }, null, 8, ["value", "onChange"])
10997
11210
  ]),
10998
11211
  createElementVNode("div", _hoisted_2$9, [
10999
- createElementVNode("div", _hoisted_3$7, [
11212
+ createElementVNode("div", _hoisted_3$8, [
11000
11213
  createElementVNode("div", _hoisted_4$6, [
11001
11214
  createVNode(_component_Hue, {
11002
11215
  value: _ctx.colors,
@@ -11101,7 +11314,7 @@ styleInject(css_248z);
11101
11314
  script.render = render;
11102
11315
  script.__file = "src/components/sketch/sketch.vue";
11103
11316
  script.install = install;
11104
- const _sfc_main$h = defineComponent({
11317
+ const _sfc_main$i = defineComponent({
11105
11318
  name: "PbColorPicker",
11106
11319
  components: {
11107
11320
  Sketch: script
@@ -11165,9 +11378,9 @@ const _sfc_main$h = defineComponent({
11165
11378
  };
11166
11379
  }
11167
11380
  });
11168
- const _hoisted_1$g = { class: "buttons" };
11381
+ const _hoisted_1$h = { class: "buttons" };
11169
11382
  const _hoisted_2$8 = /* @__PURE__ */ createElementVNode("i", { class: "material-icons-outlined" }, "delete", -1);
11170
- const _hoisted_3$6 = [
11383
+ const _hoisted_3$7 = [
11171
11384
  _hoisted_2$8
11172
11385
  ];
11173
11386
  const _hoisted_4$5 = { class: "sketch-wrap" };
@@ -11179,7 +11392,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11179
11392
  onKeydown: _cache[3] || (_cache[3] = withModifiers(() => {
11180
11393
  }, ["stop"]))
11181
11394
  }, [
11182
- createElementVNode("div", _hoisted_1$g, [
11395
+ createElementVNode("div", _hoisted_1$h, [
11183
11396
  renderSlot(_ctx.$slots, "button", normalizeProps(guardReactiveProps({ toggle: _ctx.toggle, color: _ctx.color })), () => [
11184
11397
  createElementVNode("button", {
11185
11398
  class: normalizeClass([{ none: !_ctx.color }, "pb-button picker-button"]),
@@ -11191,7 +11404,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11191
11404
  key: 0,
11192
11405
  class: "pb-button",
11193
11406
  onClick: _cache[1] || (_cache[1] = (...args) => _ctx.emptyColor && _ctx.emptyColor(...args))
11194
- }, _hoisted_3$6)) : createCommentVNode("", true)
11407
+ }, _hoisted_3$7)) : createCommentVNode("", true)
11195
11408
  ]),
11196
11409
  createElementVNode("div", _hoisted_4$5, [
11197
11410
  _ctx.isShowColorPicker ? (openBlock(), createBlock$1(_component_Sketch, {
@@ -11205,15 +11418,15 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11205
11418
  [_directive_click_outside, () => _ctx.toggle(false)]
11206
11419
  ]);
11207
11420
  }
11208
- const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render]]);
11209
- const _hoisted_1$f = { class: "group-editor group-editor-background" };
11421
+ const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render]]);
11422
+ const _hoisted_1$g = { class: "group-editor group-editor-background" };
11210
11423
  const _hoisted_2$7 = { class: "flex-align-center" };
11211
- const _hoisted_3$5 = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
11424
+ const _hoisted_3$6 = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
11212
11425
  /* @__PURE__ */ createElementVNode("label", { textContent: "Background" })
11213
11426
  ], -1);
11214
11427
  const _hoisted_4$4 = { class: "bs-layout-horizontal" };
11215
11428
  const _hoisted_5$3 = { class: "color" };
11216
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
11429
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
11217
11430
  __name: "PbPropertyGroupEditorBackground",
11218
11431
  props: {
11219
11432
  group: {},
@@ -11244,9 +11457,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
11244
11457
  }
11245
11458
  };
11246
11459
  return (_ctx, _cache) => {
11247
- return openBlock(), createElementBlock("div", _hoisted_1$f, [
11460
+ return openBlock(), createElementBlock("div", _hoisted_1$g, [
11248
11461
  createElementVNode("div", _hoisted_2$7, [
11249
- _hoisted_3$5,
11462
+ _hoisted_3$6,
11250
11463
  createElementVNode("div", _hoisted_4$4, [
11251
11464
  createElementVNode("div", _hoisted_5$3, [
11252
11465
  createVNode(PbColorPicker, {
@@ -11277,9 +11490,9 @@ const TopLeftCornerIcon = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W
11277
11490
  const TopRightCornerIcon = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23000000'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cg%3e%3cpath%20fill='none'%20d='M0%200H24V24H0z'/%3e%3cpath%20d='M21%2019v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2H7v-2h2zm-4%200v2H3v-2h2zm16-4v2h-2v-2h2zM5%2015v2H3v-2h2zm0-4v2H3v-2h2zm11-8c2.687%200%204.882%202.124%204.995%204.783L21%208v5h-2V8c0-1.591-1.255-2.903-2.824-2.995L16%205h-5V3h5zM5%207v2H3V7h2zm0-4v2H3V3h2zm4%200v2H7V3h2z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
11278
11491
  const BottomLeftCornerIcon = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23000000'%20transform='rotate(180)'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cg%3e%3cpath%20fill='none'%20d='M0%200H24V24H0z'/%3e%3cpath%20d='M21%2019v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2H7v-2h2zm-4%200v2H3v-2h2zm16-4v2h-2v-2h2zM5%2015v2H3v-2h2zm0-4v2H3v-2h2zm11-8c2.687%200%204.882%202.124%204.995%204.783L21%208v5h-2V8c0-1.591-1.255-2.903-2.824-2.995L16%205h-5V3h5zM5%207v2H3V7h2zm0-4v2H3V3h2zm4%200v2H7V3h2z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
11279
11492
  const BottomRightCornerIcon = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23000000'%20transform='rotate(90)'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cg%3e%3cpath%20fill='none'%20d='M0%200H24V24H0z'/%3e%3cpath%20d='M21%2019v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2H7v-2h2zm-4%200v2H3v-2h2zm16-4v2h-2v-2h2zM5%2015v2H3v-2h2zm0-4v2H3v-2h2zm11-8c2.687%200%204.882%202.124%204.995%204.783L21%208v5h-2V8c0-1.591-1.255-2.903-2.824-2.995L16%205h-5V3h5zM5%207v2H3V7h2zm0-4v2H3V3h2zm4%200v2H7V3h2z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
11280
- const _hoisted_1$e = { class: "group-editor group-editor-border" };
11493
+ const _hoisted_1$f = { class: "group-editor group-editor-border" };
11281
11494
  const _hoisted_2$6 = { class: "flex-align-center" };
11282
- const _hoisted_3$4 = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
11495
+ const _hoisted_3$5 = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
11283
11496
  /* @__PURE__ */ createElementVNode("label", { textContent: "Border" })
11284
11497
  ], -1);
11285
11498
  const _hoisted_4$3 = { class: "" };
@@ -11310,7 +11523,7 @@ const _hoisted_17 = { class: "flex-grow-1 mt-4" };
11310
11523
  const _hoisted_18 = { class: "bg-gray-100 py-5 rounded-8" };
11311
11524
  const _hoisted_19 = { class: "" };
11312
11525
  const _hoisted_20 = { class: "mt-2" };
11313
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
11526
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
11314
11527
  __name: "PbPropertyGroupEditorBorder",
11315
11528
  props: {
11316
11529
  group: {},
@@ -11348,9 +11561,9 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
11348
11561
  const updateBorderBottomLeftRadius = (value) => updatePropertyValue({ borderBottomLeftRadius: value });
11349
11562
  const updateBorderBottomRightRadius = (value) => updatePropertyValue({ borderBottomRightRadius: value });
11350
11563
  return (_ctx, _cache) => {
11351
- return openBlock(), createElementBlock("div", _hoisted_1$e, [
11564
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
11352
11565
  createElementVNode("div", _hoisted_2$6, [
11353
- _hoisted_3$4,
11566
+ _hoisted_3$5,
11354
11567
  createElementVNode("div", _hoisted_4$3, [
11355
11568
  _hoisted_5$2,
11356
11569
  createElementVNode("div", _hoisted_6$2, [
@@ -11457,9 +11670,9 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
11457
11670
  };
11458
11671
  }
11459
11672
  });
11460
- const _hoisted_1$d = { class: "group-editor group-editor-margin" };
11673
+ const _hoisted_1$e = { class: "group-editor group-editor-margin" };
11461
11674
  const _hoisted_2$5 = { class: "flex-align-center" };
11462
- const _hoisted_3$3 = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
11675
+ const _hoisted_3$4 = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
11463
11676
  /* @__PURE__ */ createElementVNode("label", { textContent: "Margin" })
11464
11677
  ], -1);
11465
11678
  const _hoisted_4$2 = { class: "flex-grow-1" };
@@ -11473,7 +11686,7 @@ const _hoisted_8$1 = /* @__PURE__ */ createElementVNode("div", {
11473
11686
  /* @__PURE__ */ createElementVNode("span", { class: "font-icon" }, "add")
11474
11687
  ], -1);
11475
11688
  const _hoisted_9$1 = { class: "text-center" };
11476
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
11689
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
11477
11690
  __name: "PbPropertyGroupEditorMargin",
11478
11691
  props: {
11479
11692
  group: {},
@@ -11497,9 +11710,9 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
11497
11710
  const updateTop = (value) => updatePropertyValue({ marginTop: value });
11498
11711
  const updateBottom = (value) => updatePropertyValue({ marginBottom: value });
11499
11712
  return (_ctx, _cache) => {
11500
- return openBlock(), createElementBlock("div", _hoisted_1$d, [
11713
+ return openBlock(), createElementBlock("div", _hoisted_1$e, [
11501
11714
  createElementVNode("div", _hoisted_2$5, [
11502
- _hoisted_3$3,
11715
+ _hoisted_3$4,
11503
11716
  createElementVNode("div", _hoisted_4$2, [
11504
11717
  createElementVNode("div", _hoisted_5$1, [
11505
11718
  createElementVNode("div", _hoisted_6$1, [
@@ -11544,9 +11757,9 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
11544
11757
  };
11545
11758
  }
11546
11759
  });
11547
- const _hoisted_1$c = { class: "group-editor group-editor-padding" };
11760
+ const _hoisted_1$d = { class: "group-editor group-editor-padding" };
11548
11761
  const _hoisted_2$4 = { class: "flex-align-center" };
11549
- const _hoisted_3$2 = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
11762
+ const _hoisted_3$3 = /* @__PURE__ */ createElementVNode("div", { class: "title" }, [
11550
11763
  /* @__PURE__ */ createElementVNode("label", { textContent: "Padding" })
11551
11764
  ], -1);
11552
11765
  const _hoisted_4$1 = { class: "flex-grow-1" };
@@ -11560,7 +11773,7 @@ const _hoisted_8 = /* @__PURE__ */ createElementVNode("div", {
11560
11773
  /* @__PURE__ */ createElementVNode("span", { class: "font-icon" }, "add")
11561
11774
  ], -1);
11562
11775
  const _hoisted_9 = { class: "text-center" };
11563
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
11776
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
11564
11777
  __name: "PbPropertyGroupEditorPadding",
11565
11778
  props: {
11566
11779
  group: {},
@@ -11584,9 +11797,9 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
11584
11797
  const updateTop = (value) => updatePropertyValue({ paddingTop: value });
11585
11798
  const updateBottom = (value) => updatePropertyValue({ paddingBottom: value });
11586
11799
  return (_ctx, _cache) => {
11587
- return openBlock(), createElementBlock("div", _hoisted_1$c, [
11800
+ return openBlock(), createElementBlock("div", _hoisted_1$d, [
11588
11801
  createElementVNode("div", _hoisted_2$4, [
11589
- _hoisted_3$2,
11802
+ _hoisted_3$3,
11590
11803
  createElementVNode("div", _hoisted_4$1, [
11591
11804
  createElementVNode("div", _hoisted_5, [
11592
11805
  createElementVNode("div", _hoisted_6, [
@@ -11657,7 +11870,7 @@ const positionGroup = () => {
11657
11870
  propertyType: "text"
11658
11871
  }
11659
11872
  ],
11660
- propertyGroupEditor: () => _sfc_main$j
11873
+ propertyGroupEditor: () => _sfc_main$k
11661
11874
  };
11662
11875
  };
11663
11876
  const sizeGroup = () => {
@@ -11696,7 +11909,7 @@ const sizeGroup = () => {
11696
11909
  propertyType: "text"
11697
11910
  }
11698
11911
  ],
11699
- propertyGroupEditor: () => _sfc_main$i
11912
+ propertyGroupEditor: () => _sfc_main$j
11700
11913
  };
11701
11914
  };
11702
11915
  const marginGroup = () => {
@@ -11725,7 +11938,7 @@ const marginGroup = () => {
11725
11938
  propertyType: "text"
11726
11939
  }
11727
11940
  ],
11728
- propertyGroupEditor: () => _sfc_main$e
11941
+ propertyGroupEditor: () => _sfc_main$f
11729
11942
  };
11730
11943
  };
11731
11944
  const paddingGroup = () => {
@@ -11754,7 +11967,7 @@ const paddingGroup = () => {
11754
11967
  propertyType: "text"
11755
11968
  }
11756
11969
  ],
11757
- propertyGroupEditor: () => _sfc_main$d
11970
+ propertyGroupEditor: () => _sfc_main$e
11758
11971
  };
11759
11972
  };
11760
11973
  const commonGroup = () => {
@@ -11773,8 +11986,18 @@ const commonGroup = () => {
11773
11986
  propertyType: "text"
11774
11987
  },
11775
11988
  {
11776
- propertyName: "css",
11777
- caption: "CSS",
11989
+ propertyName: "classNames",
11990
+ caption: "Class Names",
11991
+ propertyType: "text"
11992
+ },
11993
+ {
11994
+ propertyName: "inlineStyle",
11995
+ caption: "Inline Style",
11996
+ propertyType: "multiline-text"
11997
+ },
11998
+ {
11999
+ propertyName: "style",
12000
+ caption: "Style",
11778
12001
  propertyType: "multiline-text"
11779
12002
  },
11780
12003
  {
@@ -11821,7 +12044,7 @@ const backgroundGroup = () => {
11821
12044
  propertyType: "image"
11822
12045
  }
11823
12046
  ],
11824
- propertyGroupEditor: () => _sfc_main$g
12047
+ propertyGroupEditor: () => _sfc_main$h
11825
12048
  };
11826
12049
  };
11827
12050
  const borderGroup = () => {
@@ -11875,7 +12098,7 @@ const borderGroup = () => {
11875
12098
  propertyType: "text"
11876
12099
  }
11877
12100
  ],
11878
- propertyGroupEditor: () => _sfc_main$f
12101
+ propertyGroupEditor: () => _sfc_main$g
11879
12102
  };
11880
12103
  };
11881
12104
  const defaultPropertyGroups = () => {
@@ -11898,7 +12121,7 @@ const pageParts = [
11898
12121
  initialProperties: {},
11899
12122
  localized: false,
11900
12123
  allowsChild: () => true,
11901
- creator: () => _sfc_main$k
12124
+ creator: () => _sfc_main$l
11902
12125
  }
11903
12126
  ];
11904
12127
  const sectionParts = [
@@ -11915,7 +12138,7 @@ const sectionParts = [
11915
12138
  },
11916
12139
  localized: false,
11917
12140
  allowsChild: () => true,
11918
- creator: () => _sfc_main$k
12141
+ creator: () => _sfc_main$l
11919
12142
  }
11920
12143
  ];
11921
12144
  const blockParts = [
@@ -11930,7 +12153,7 @@ const blockParts = [
11930
12153
  initialProperties: {},
11931
12154
  localized: false,
11932
12155
  allowsChild: () => true,
11933
- creator: () => _sfc_main$m
12156
+ creator: () => _sfc_main$n
11934
12157
  }
11935
12158
  ];
11936
12159
  const widgets = [
@@ -11958,11 +12181,23 @@ const widgets = [
11958
12181
  propertyType: "text",
11959
12182
  params: ""
11960
12183
  },
12184
+ {
12185
+ propertyName: "fontWeight",
12186
+ caption: "Weight",
12187
+ propertyType: "text",
12188
+ params: ""
12189
+ },
11961
12190
  {
11962
12191
  propertyName: "color",
11963
12192
  caption: "Font Color",
11964
12193
  propertyType: "color",
11965
12194
  params: ""
12195
+ },
12196
+ {
12197
+ propertyName: "textAlign",
12198
+ caption: "Align",
12199
+ propertyType: "select",
12200
+ params: "left,center,right"
11966
12201
  }
11967
12202
  ]
11968
12203
  },
@@ -12142,7 +12377,7 @@ __publicField(_OpenAddWidgetModalCommand, "COMMAND_ID", "OpenAddWidgetModal");
12142
12377
  let OpenAddWidgetModalCommand = _OpenAddWidgetModalCommand;
12143
12378
  const openWidgetAddModal = (modal, args, callback) => {
12144
12379
  modal.openModal({
12145
- component: defineAsyncComponent(() => import("./PbWidgetAddModal-BoYfb0dm.js")),
12380
+ component: defineAsyncComponent(() => import("./PbWidgetAddModal-haOQfRIi.js")),
12146
12381
  style: {
12147
12382
  width: "80%",
12148
12383
  height: "80%",
@@ -13285,6 +13520,8 @@ class PageBuilderEditorImpl {
13285
13520
  __publicField(this, "customWidgets", []);
13286
13521
  __publicField(this, "watchers", {});
13287
13522
  __publicField(this, "providers", {});
13523
+ __publicField(this, "externalCssLinks", []);
13524
+ __publicField(this, "externalCssContent", "");
13288
13525
  this.model = new Model2();
13289
13526
  this.context = new PageBuilderContextImpl(this);
13290
13527
  this.scale.value = 1;
@@ -13351,7 +13588,7 @@ class PageBuilderEditorImpl {
13351
13588
  plugin.widgets.forEach((v) => {
13352
13589
  const w = { ...v };
13353
13590
  w.partType = "Widget";
13354
- w.creator = () => _sfc_main$p;
13591
+ w.creator = () => _sfc_main$q;
13355
13592
  w.propertyGroups = [...w.propertyGroups, ...defaultWidgetPropertyGroups()];
13356
13593
  partDefinitions2[v.partName] = w;
13357
13594
  const found = this.customWidgets.find((x) => x.partName === v.partName);
@@ -13370,6 +13607,14 @@ class PageBuilderEditorImpl {
13370
13607
  if (plugin.propertyEditors) {
13371
13608
  this.partManager.registerPartPropertyEditors(plugin.propertyEditors);
13372
13609
  }
13610
+ if (plugin.css) {
13611
+ if (plugin.css.links) {
13612
+ this.externalCssLinks = plugin.css.links;
13613
+ }
13614
+ if (plugin.css.content) {
13615
+ this.externalCssContent = plugin.css.content;
13616
+ }
13617
+ }
13373
13618
  }
13374
13619
  initData(data) {
13375
13620
  const _data = JSON.parse(data || "{}") || {};
@@ -13493,6 +13738,10 @@ class PageBuilderEditorImpl {
13493
13738
  }
13494
13739
  }
13495
13740
  }
13741
+ getExternalCss() {
13742
+ return `${this.externalCssLinks}
13743
+ <style>${this.externalCssContent}</style>`;
13744
+ }
13496
13745
  extractMediaFromPart(part, urls) {
13497
13746
  if (part.properties) {
13498
13747
  for (const name in part.properties) {
@@ -13591,74 +13840,119 @@ class PageBuilderEditorImpl {
13591
13840
  });
13592
13841
  }
13593
13842
  }
13594
- const _hoisted_1$b = /* @__PURE__ */ createElementVNode("i", { class: "material-icons-outlined" }, "add_circle_outline", -1);
13595
- const _hoisted_2$3 = [
13596
- _hoisted_1$b
13843
+ const _hoisted_1$c = ["data-part-id"];
13844
+ const _hoisted_2$3 = /* @__PURE__ */ createElementVNode("i", { class: "material-icons-outlined" }, "add_circle_outline", -1);
13845
+ const _hoisted_3$2 = [
13846
+ _hoisted_2$3
13597
13847
  ];
13598
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
13848
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
13599
13849
  __name: "PbPage",
13600
13850
  props: {
13601
- page: {},
13851
+ part: {},
13602
13852
  width: {},
13603
13853
  isMobilePage: { type: Boolean }
13604
13854
  },
13605
13855
  setup(__props) {
13606
13856
  const props = __props;
13607
13857
  const editor = usePageBuilderEditor();
13858
+ const styleTag = computed(() => props.part.getStyleTag());
13608
13859
  const style = computed(() => {
13609
13860
  var _a, _b;
13610
13861
  return {
13611
13862
  width: `${props.width || 420}px`,
13612
- minHeight: ((_b = (_a = props.page) == null ? void 0 : _a.children) == null ? void 0 : _b.length) ? void 0 : "200px"
13863
+ minHeight: ((_b = (_a = props.part) == null ? void 0 : _a.children) == null ? void 0 : _b.length) ? void 0 : "200px"
13613
13864
  };
13614
13865
  });
13615
13866
  const properties = computed(() => {
13616
- var _a;
13617
- return { style: ((_a = props.page) == null ? void 0 : _a.getStyles()) || {} };
13867
+ var _a, _b;
13868
+ return {
13869
+ style: {
13870
+ ...(_a = props.part) == null ? void 0 : _a.getStyles(),
13871
+ ...(_b = props.part) == null ? void 0 : _b.getInlineStyles()
13872
+ }
13873
+ };
13618
13874
  });
13619
- const selected = computed(() => !!props.page && editor.context.isSelected(props.page));
13875
+ const selected = computed(() => !!props.part && editor.context.isSelected(props.part));
13620
13876
  const insertSection = (index) => {
13621
- if (!props.page)
13622
- return;
13623
13877
  editor.commandRegistry.executeCommand(AddSectionCommand.COMMAND_ID);
13624
13878
  };
13625
13879
  return (_ctx, _cache) => {
13626
- var _a;
13627
- return openBlock(), createElementBlock("div", {
13628
- style: normalizeStyle(style.value),
13629
- class: "pb-page"
13630
- }, [
13631
- createElementVNode("div", mergeProps({
13632
- class: [selected.value && "selected", _ctx.isMobilePage ? "mobile" : "pc", "pb-page-content"]
13633
- }, properties.value), [
13634
- (openBlock(true), createElementBlock(Fragment, null, renderList((_a = _ctx.page) == null ? void 0 : _a.children, (section, index) => {
13635
- return openBlock(), createBlock$1(_sfc_main$k, {
13636
- key: section.partId,
13637
- part: section
13638
- }, null, 8, ["part"]);
13639
- }), 128))
13640
- ], 16),
13880
+ var _a, _b;
13881
+ return openBlock(), createElementBlock(Fragment, null, [
13882
+ styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
13883
+ key: 0,
13884
+ innerHTML: styleTag.value
13885
+ }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
13641
13886
  createElementVNode("div", {
13642
- class: "pb-add-section-handle bottom",
13643
- onClick: _cache[0] || (_cache[0] = ($event) => {
13644
- var _a2, _b;
13645
- return insertSection(((_b = (_a2 = _ctx.page) == null ? void 0 : _a2.children) == null ? void 0 : _b.length) || 0);
13646
- })
13647
- }, _hoisted_2$3)
13648
- ], 4);
13887
+ "data-part-id": (_a = _ctx.part) == null ? void 0 : _a.partId,
13888
+ style: normalizeStyle(style.value),
13889
+ class: "pb-page"
13890
+ }, [
13891
+ createElementVNode("div", mergeProps({
13892
+ class: [selected.value && "selected", _ctx.isMobilePage ? "mobile" : "pc", "pb-page-content"]
13893
+ }, properties.value), [
13894
+ (openBlock(true), createElementBlock(Fragment, null, renderList((_b = _ctx.part) == null ? void 0 : _b.children, (section, index) => {
13895
+ return openBlock(), createBlock$1(_sfc_main$l, {
13896
+ key: section.partId,
13897
+ part: section
13898
+ }, null, 8, ["part"]);
13899
+ }), 128))
13900
+ ], 16),
13901
+ createElementVNode("div", {
13902
+ class: "pb-add-section-handle bottom",
13903
+ onClick: _cache[0] || (_cache[0] = ($event) => {
13904
+ var _a2, _b2;
13905
+ return insertSection(((_b2 = (_a2 = _ctx.part) == null ? void 0 : _a2.children) == null ? void 0 : _b2.length) || 0);
13906
+ })
13907
+ }, _hoisted_3$2)
13908
+ ], 12, _hoisted_1$c)
13909
+ ], 64);
13910
+ };
13911
+ }
13912
+ });
13913
+ const _hoisted_1$b = { class: "pb-page-wrapper" };
13914
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
13915
+ __name: "PbPageWrapper",
13916
+ props: {
13917
+ part: {},
13918
+ width: {},
13919
+ isMobilePage: { type: Boolean }
13920
+ },
13921
+ setup(__props) {
13922
+ const props = __props;
13923
+ const width = ref(props.width);
13924
+ return (_ctx, _cache) => {
13925
+ return openBlock(), createElementBlock("div", _hoisted_1$b, [
13926
+ createVNode(unref(BSSelect), {
13927
+ modelValue: width.value,
13928
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => width.value = $event),
13929
+ items: [480, 768, 1024, 1280],
13930
+ "label-provider": (v) => `${v}`,
13931
+ "value-provider": (v) => v,
13932
+ "view-model": false
13933
+ }, null, 8, ["modelValue", "label-provider", "value-provider"]),
13934
+ createVNode(_sfc_main$d, {
13935
+ "is-mobile-page": _ctx.isMobilePage,
13936
+ part: _ctx.part,
13937
+ width: width.value
13938
+ }, null, 8, ["is-mobile-page", "part", "width"])
13939
+ ]);
13649
13940
  };
13650
13941
  }
13651
13942
  });
13652
- const _hoisted_1$a = /* @__PURE__ */ createElementVNode("div", { style: { "width": "20px" } }, null, -1);
13943
+ const _hoisted_1$a = {
13944
+ key: 1,
13945
+ style: { "width": "20px" }
13946
+ };
13653
13947
  const _sfc_main$b = /* @__PURE__ */ defineComponent({
13654
13948
  __name: "PbCanvas",
13655
13949
  setup(__props) {
13656
13950
  const pageBuilder = usePageBuilderEditor();
13657
- const pageS = computed(() => {
13951
+ const partS = computed(() => {
13658
13952
  var _a;
13659
13953
  return (_a = pageBuilder.model.rootPart.children) == null ? void 0 : _a[0];
13660
13954
  });
13661
- const pageL = computed(() => {
13955
+ const partL = computed(() => {
13662
13956
  var _a;
13663
13957
  return (_a = pageBuilder.model.rootPart.children) == null ? void 0 : _a[1];
13664
13958
  });
@@ -13670,7 +13964,11 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
13670
13964
  const contextMenu = useContextMenu();
13671
13965
  const style = computed(() => {
13672
13966
  const scale = pageBuilder.scale.value;
13673
- return `transform: scale(${scale}); flex-grow: 1;`;
13967
+ return {
13968
+ style: {
13969
+ transform: `scale(${scale})`
13970
+ }
13971
+ };
13674
13972
  });
13675
13973
  const showContextMenu = (event) => {
13676
13974
  var _a, _b;
@@ -13693,27 +13991,26 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
13693
13991
  onContextmenu: showContextMenu,
13694
13992
  onMousedown: withModifiers(handleClick, ["stop"])
13695
13993
  }, [
13696
- createElementVNode("div", {
13697
- style: normalizeStyle(style.value),
13698
- class: "pb-canvas"
13699
- }, [
13700
- createVNode(_sfc_main$c, {
13994
+ createElementVNode("div", mergeProps({ class: "pb-canvas" }, style.value), [
13995
+ partS.value ? (openBlock(), createBlock$1(_sfc_main$c, {
13996
+ key: 0,
13701
13997
  "is-mobile-page": true,
13702
- page: pageS.value,
13703
- width: 420
13704
- }, null, 8, ["page"]),
13705
- _hoisted_1$a,
13706
- createVNode(_sfc_main$c, {
13998
+ part: partS.value,
13999
+ width: 480
14000
+ }, null, 8, ["part"])) : createCommentVNode("", true),
14001
+ partL.value ? (openBlock(), createElementBlock("div", _hoisted_1$a)) : createCommentVNode("", true),
14002
+ partL.value ? (openBlock(), createBlock$1(_sfc_main$c, {
14003
+ key: 2,
13707
14004
  "is-mobile-page": false,
13708
- page: pageL.value,
14005
+ part: partL.value,
13709
14006
  width: 1024
13710
- }, null, 8, ["page"])
13711
- ], 4)
14007
+ }, null, 8, ["part"])) : createCommentVNode("", true)
14008
+ ], 16)
13712
14009
  ], 32);
13713
14010
  };
13714
14011
  }
13715
14012
  });
13716
- const canvasStyle = '.pb-page {\n margin: 0 auto;\n margin-top: 20px;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n.pb-page .pb-page-content.selected {\n outline: 2px solid #4998f8;\n outline-offset: 5px;\n}\n.pb-page * {\n box-sizing: border-box;\n}\n.pb-add-widget-button {\n width: 100%;\n height: 100%;\n min-height: 200px;\n position: relative;\n}\n.pb-add-widget-button button {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n padding: 8px;\n background: none;\n border: none;\n cursor: pointer;\n}\n.pb-add-widget-button button:hover {\n background-color: #eeeeee;\n}\n.pb-add-widget-button .icon {\n font-size: 1rem;\n vertical-align: middle;\n}\n.pb-add-widget-button .text {\n font-size: 1rem;\n vertical-align: middle;\n margin-left: 0.4rem;\n}\n.pb-section {\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n outline: 1px dashed #ccc;\n background-color: #fff;\n}\n.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\n.pb-section.selected {\n outline: 2px solid #4998f8;\n outline-offset: 1px;\n z-index: 999;\n}\n.pb-section.pb-section-static {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n.pb-section.pb-section-static:after {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.2);\n}\n.pb-section-static .pb-widget {\n outline: none;\n}\n.pb-block {\n display: flex;\n min-width: 1px;\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n outline: 1px dashed #ccc;\n}\n.pb-block:hover:not(:has(.pb-widget:hover)) {\n background-color: #f0f0f0;\n}\n.pb-block.selected {\n outline: 2px solid #4998f8;\n outline-offset: 1px;\n z-index: 999;\n}\n.pb-widget {\n position: relative;\n outline: 1px dashed #ccc;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n.pb-widget.selected {\n outline: 2px solid #4998f8;\n outline-offset: 1px;\n z-index: 999;\n}\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.pb-widget .pan-handle {\n position: absolute;\n left: -6px;\n top: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: move;\n}\n.pb-widget .resize-handle {\n position: absolute;\n right: -6px;\n bottom: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: nwse-resize;\n}\n.pb-widget {\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n}\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-text-widget .text {\n color: #333;\n}\n.pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-image-widget {\n width: 100%;\n}\n.pb-image-widget .image {\n width: 100%;\n}\n.pb-image-widget .empty {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n.pb-image-widget .empty span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n.pb-html-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-html-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-iframe-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-iframe-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-product-list-widget {\n width: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-items: center;\n}\n.pb-product-list-widget .product-wrapper {\n width: 25%;\n}\n.pb-product-list-widget .product-wrapper .product {\n width: 95%;\n margin: 0 auto;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.pb-product-list-widget .product-wrapper img {\n width: 100%;\n}\n.pb-product-list-widget .product-wrapper .name {\n margin-top: 8px;\n font-size: 14px;\n}\n.pb-product-list-widget .product-wrapper .price {\n margin-top: 8px;\n font-size: 14px;\n font-weight: bold;\n}\n.pb-product-list-widget .product-wrapper .empty {\n height: 200px;\n background-color: #eee;\n text-align: center;\n}\n.pb-product-list-widget .product-wrapper .empty span {\n font-size: 40px;\n color: #999;\n line-height: 200px;\n vertical-align: middle;\n}\n@media (max-width: 768px) {\n .pb-product-list-widget .product-wrapper {\n width: 50%;\n }\n}\n.mobile .pb-product-list-widget .product-wrapper {\n width: 50%;\n}\n.pb-login-widget {\n height: 200px;\n text-align: center;\n}\n.pb-login-widget h3 {\n padding: 0;\n margin: 0;\n font-size: 32px;\n font-weight: bold;\n color: #ccc;\n line-height: 200px;\n vertical-align: middle;\n}\n.font-icon {\n font-family: Material Symbols Outlined, monospace;\n font-size: 1rem;\n max-width: 1em;\n}\nhtml, body {\n font-family: Noto Sans, Noto Sans KR, Noto Sans JP, Arial, sans-serif;\n font-size: 12px;\n}\nbody {\n background-color: white;\n height: 100%;\n margin: 0;\n}\n.pb-canvas-wrapper {\n padding: 32px 40px 56px 40px;\n height: 100%;\n background-color: #aaa;\n overflow: auto;\n}\n.pb-canvas-wrapper .pb-canvas {\n display: flex;\n flex-direction: row;\n transform-origin: top left;\n width: fit-content;\n min-width: 40px;\n min-height: 40px;\n margin: 0 auto;\n}\n.pb-position-mark {\n background-color: #ff3333;\n opacity: 0.5;\n border-radius: 2px;\n}\n.pb-add-section-handle {\n position: relative;\n text-align: center;\n cursor: pointer;\n z-index: 5;\n height: 0;\n}\n.pb-add-section-handle.top::before, .pb-add-section-handle.bottom::before, .pb-add-section-handle.middle::before {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n opacity: 0;\n pointer-events: none;\n}\n.pb-add-section-handle.bottom {\n left: 50%;\n bottom: -32px;\n}\n.pb-add-section-handle:hover.top::before, .pb-add-section-handle:hover.bottom::before, .pb-add-section-handle:hover.middle::before,\n.pb-add-section-handle:hover > i {\n opacity: 1;\n}\n.pb-add-section-handle > i {\n vertical-align: middle;\n position: absolute;\n top: 50%;\n left: 0;\n font-size: 2rem;\n transform: translate(-50%, -50%);\n opacity: 0.2;\n}\n.pb-button {\n background: none;\n border: none;\n cursor: pointer;\n vertical-align: middle;\n}\n.pb-guideline {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n.pb-guideline.selected {\n z-index: 3;\n}\n.pb-guideline.preselect {\n z-index: 4;\n}';
14013
+ const canvasStyle = '.pb-page-wrapper {\n margin: 0 auto;\n padding: 0;\n}\n\n.pb-page {\n margin: 20px 0 auto 0;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n.pb-page .pb-page-content.selected {\n outline: 2px solid #4998f8;\n outline-offset: 5px;\n}\n\n.pb-page * {\n box-sizing: border-box;\n}\n\n.pb-add-widget-button {\n width: 100%;\n height: 100%;\n min-height: 200px;\n position: relative;\n}\n\n.pb-add-widget-button button {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n padding: 8px;\n background: none;\n border: none;\n cursor: pointer;\n}\n\n.pb-add-widget-button button:hover {\n background-color: #eeeeee;\n}\n\n.pb-add-widget-button .icon {\n font-size: 1rem;\n vertical-align: middle;\n}\n\n.pb-add-widget-button .text {\n font-size: 1rem;\n vertical-align: middle;\n margin-left: 0.4rem;\n}\n\n.pb-section {\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n outline: 1px dashed #ccc;\n background-color: #fff;\n}\n\n.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\n\n.pb-section.selected {\n outline: 2px solid #4998f8;\n outline-offset: 1px;\n z-index: 999;\n}\n\n.pb-section.pb-section-static {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\n.pb-section.pb-section-static:after {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n.pb-section-static .pb-widget {\n outline: none;\n}\n\n.pb-block {\n display: flex;\n min-width: 1px;\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n outline: 1px dashed #ccc;\n}\n\n.pb-block:hover:not(:has(.pb-widget:hover)) {\n background-color: #f0f0f0;\n}\n\n.pb-block.selected {\n outline: 2px solid #4998f8;\n outline-offset: 1px;\n z-index: 999;\n}\n\n.pb-widget {\n position: relative;\n outline: 1px dashed #ccc;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n.pb-widget.selected {\n outline: 2px solid #4998f8;\n outline-offset: 1px;\n z-index: 999;\n}\n\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-widget .pan-handle {\n position: absolute;\n left: -6px;\n top: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: move;\n}\n\n.pb-widget .resize-handle {\n position: absolute;\n right: -6px;\n bottom: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: nwse-resize;\n}\n\n.pb-widget {\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n}\n\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-text-widget .text {\n color: #333;\n}\n\n.pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-image-widget {\n width: 100%;\n}\n\n.pb-image-widget .image {\n width: 100%;\n}\n\n.pb-image-widget .empty {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-image-widget .empty span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-html-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-html-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-iframe-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-iframe-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-product-list-widget {\n width: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-items: center;\n}\n\n.pb-product-list-widget .product-wrapper {\n width: 25%;\n}\n\n.pb-product-list-widget .product-wrapper .product {\n width: 95%;\n margin: 0 auto;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n.pb-product-list-widget .product-wrapper img {\n width: 100%;\n}\n\n.pb-product-list-widget .product-wrapper .name {\n margin-top: 8px;\n font-size: 14px;\n}\n\n.pb-product-list-widget .product-wrapper .price {\n margin-top: 8px;\n font-size: 14px;\n font-weight: bold;\n}\n\n.pb-product-list-widget .product-wrapper .empty {\n height: 200px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-product-list-widget .product-wrapper .empty span {\n font-size: 40px;\n color: #999;\n line-height: 200px;\n vertical-align: middle;\n}\n\n@media (max-width: 768px) {\n .pb-product-list-widget .product-wrapper {\n width: 50%;\n }\n}\n\n.mobile .pb-product-list-widget .product-wrapper {\n width: 50%;\n}\n\n.pb-login-widget {\n height: 200px;\n text-align: center;\n}\n\n.pb-login-widget h3 {\n padding: 0;\n margin: 0;\n font-size: 32px;\n font-weight: bold;\n color: #ccc;\n line-height: 200px;\n vertical-align: middle;\n}\n\n.font-icon {\n font-family: Material Symbols Outlined, monospace;\n font-size: 1rem;\n max-width: 1em;\n}\n\nhtml, body {\n font-family: Noto Sans, Noto Sans KR, Noto Sans JP, Arial, sans-serif;\n font-size: 12px;\n}\n\nbody {\n margin: 0;\n padding: 0;\n background-color: #aaa;\n overflow: auto;\n}\n\n.pb-canvas-wrapper {\n margin: 0;\n padding: 0;\n width: fit-content;\n}\n\n.pb-canvas-wrapper .pb-canvas {\n display: flex;\n flex-direction: row;\n flex: 1 1 auto;\n transform-origin: top left;\n width: fit-content;\n margin: 0;\n padding: 32px 40px 56px 40px;\n}\n\n.pb-position-mark {\n background-color: #ff3333;\n opacity: 0.5;\n border-radius: 2px;\n}\n\n.pb-add-section-handle {\n position: relative;\n text-align: center;\n cursor: pointer;\n z-index: 5;\n height: 0;\n}\n\n.pb-add-section-handle.top::before, .pb-add-section-handle.bottom::before, .pb-add-section-handle.middle::before {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.pb-add-section-handle.bottom {\n left: 50%;\n bottom: -32px;\n}\n\n.pb-add-section-handle:hover.top::before, .pb-add-section-handle:hover.bottom::before, .pb-add-section-handle:hover.middle::before,\n.pb-add-section-handle:hover > i {\n opacity: 1;\n}\n\n.pb-add-section-handle > i {\n vertical-align: middle;\n position: absolute;\n top: 50%;\n left: 0;\n font-size: 2rem;\n transform: translate(-50%, -50%);\n opacity: 0.2;\n}\n\n.pb-button {\n background: none;\n border: none;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.pb-guideline {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\n.pb-guideline.selected {\n z-index: 3;\n}\n\n.pb-guideline.preselect {\n z-index: 4;\n}';
13717
14014
  const _hoisted_1$9 = { class: "pb-canvas-frame" };
13718
14015
  const _sfc_main$a = /* @__PURE__ */ defineComponent({
13719
14016
  __name: "PbCanvasFrame",
@@ -13729,6 +14026,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
13729
14026
  () => {
13730
14027
  var _a, _b, _c, _d, _e, _f, _g, _h;
13731
14028
  if ((_c = (_b = (_a = iframeRef.value) == null ? void 0 : _a.contentWindow) == null ? void 0 : _b.document) == null ? void 0 : _c.head) {
14029
+ const externalCss = pageBuilderEditor.getExternalCss();
13732
14030
  const head = (_e = (_d = iframeRef.value) == null ? void 0 : _d.contentWindow) == null ? void 0 : _e.document.head;
13733
14031
  head.innerHTML = `
13734
14032
  <meta charset="UTF-8"/>
@@ -13744,10 +14042,12 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
13744
14042
  <link
13745
14043
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block"
13746
14044
  rel="stylesheet"/>
13747
- <!--
13748
- <link href="https://bluesea5.g1project.net/assets/index-j48PwPDr.css" rel="stylesheet">
13749
- -->
13750
14045
  <link href="https://fonts.googleapis.com/css2?family=Material+Icons+Outlined" rel="stylesheet" />
14046
+
14047
+ <link href="https://bluesea5.g1project.net/assets/index-DjQFWKLW.css" rel="stylesheet" />
14048
+
14049
+ ${externalCss}
14050
+
13751
14051
  <style>${canvasStyle}</style>
13752
14052
  `;
13753
14053
  const script2 = (_g = (_f = iframeRef.value) == null ? void 0 : _f.contentWindow) == null ? void 0 : _g.document.createElement("script");
@@ -14296,7 +14596,7 @@ export {
14296
14596
  Page as e,
14297
14597
  _sfc_main$1$1 as f,
14298
14598
  Part as g,
14299
- _sfc_main$p as h,
14599
+ _sfc_main$q as h,
14300
14600
  _sfc_main$4$1 as i,
14301
14601
  _sfc_main$3$1 as j,
14302
14602
  _sfc_main$6$1 as k,