@g1cloud/page-builder-editor 1.0.0-alpha.87 → 1.0.0-alpha.89

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.
@@ -1,4 +1,4 @@
1
- import { B, b, M, c, d, e, _, a, f, g, h, i, j, k, l, m, n, R, o, S, p, W, q, r, v, x, y, z, A, D, E } from "./index-CKM2TN0Q.js";
1
+ import { B, b, M, c, d, e, _, a, f, g, h, i, j, k, l, m, n, R, o, S, p, W, q, r, v, x, y, z, A, D, E } from "./index-BMmTgFTs.js";
2
2
  export {
3
3
  B as BLOCK_TYPE,
4
4
  b as Block,
@@ -6881,7 +6881,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6881
6881
  this.rootPart = vue.ref(new RootPart());
6882
6882
  }
6883
6883
  };
6884
- const _hoisted_1$a$1 = ["data-part-id"];
6884
+ const _hoisted_1$8$1 = ["data-part-id"];
6885
6885
  const _sfc_main$b$1 = /* @__PURE__ */ vue.defineComponent({
6886
6886
  __name: "PbWidget",
6887
6887
  props: {
@@ -6941,13 +6941,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6941
6941
  part: _ctx.part,
6942
6942
  "onUpdate:visible": updateVisible
6943
6943
  }, null, 40, ["part"])) : vue.createCommentVNode("", true)
6944
- ], 14, _hoisted_1$a$1)), [
6944
+ ], 14, _hoisted_1$8$1)), [
6945
6945
  [vue.vShow, visible.value]
6946
6946
  ]);
6947
6947
  };
6948
6948
  }
6949
6949
  });
6950
- const _hoisted_1$9$1 = ["data-part-id"];
6951
6950
  const _sfc_main$a$1 = /* @__PURE__ */ vue.defineComponent({
6952
6951
  __name: "PbBlock",
6953
6952
  props: {
@@ -6965,6 +6964,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6965
6964
  }
6966
6965
  emit("update:visible", visible.value, hideParentWhenInvisible);
6967
6966
  };
6967
+ const validTags = ["div", "section", "li"];
6968
+ const tag = vue.computed(() => {
6969
+ var _a;
6970
+ const _tag = (_a = props.part.properties) == null ? void 0 : _a.tag;
6971
+ return validTags.includes(_tag) ? _tag : "div";
6972
+ });
6968
6973
  const classNames = vue.computed(() => [getPartClassName(props.part), props.part.getClassNames()]);
6969
6974
  const style = vue.computed(() => ({
6970
6975
  ...props.part.getStyles(props.isMobilePage),
@@ -6998,25 +7003,27 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6998
7003
  removeStyleTag();
6999
7004
  });
7000
7005
  return (_ctx, _cache) => {
7001
- return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
7006
+ return vue.withDirectives((vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tag.value), {
7002
7007
  class: vue.normalizeClass(classNames.value),
7003
7008
  "data-part-id": _ctx.part.partId,
7004
7009
  style: vue.normalizeStyle(style.value)
7005
- }, [
7006
- _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (child) => {
7007
- return vue.openBlock(), vue.createBlock(_sfc_main$b$1, {
7008
- key: child.partId,
7009
- part: child,
7010
- "onUpdate:visible": _cache[0] || (_cache[0] = (value, hideParentWhenInvisible) => updateVisible(value, hideParentWhenInvisible))
7011
- }, null, 8, ["part"]);
7012
- }), 128)) : vue.createCommentVNode("", true)
7013
- ], 14, _hoisted_1$9$1)), [
7010
+ }, {
7011
+ default: vue.withCtx(() => [
7012
+ _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (child) => {
7013
+ return vue.openBlock(), vue.createBlock(_sfc_main$b$1, {
7014
+ key: child.partId,
7015
+ part: child,
7016
+ "onUpdate:visible": _cache[0] || (_cache[0] = (value, hideParentWhenInvisible) => updateVisible(value, hideParentWhenInvisible))
7017
+ }, null, 8, ["part"]);
7018
+ }), 128)) : vue.createCommentVNode("", true)
7019
+ ]),
7020
+ _: 1
7021
+ }, 8, ["class", "data-part-id", "style"])), [
7014
7022
  [vue.vShow, visible.value]
7015
7023
  ]);
7016
7024
  };
7017
7025
  }
7018
7026
  });
7019
- const _hoisted_1$8$1 = ["data-part-id"];
7020
7027
  const _sfc_main$9$1 = /* @__PURE__ */ vue.defineComponent({
7021
7028
  __name: "PbSection",
7022
7029
  props: {
@@ -7031,6 +7038,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7031
7038
  visible.value = false;
7032
7039
  }
7033
7040
  };
7041
+ const validTags = ["div", "section", "ul"];
7042
+ const tag = vue.computed(() => {
7043
+ var _a;
7044
+ const _tag = (_a = props.part.properties) == null ? void 0 : _a.tag;
7045
+ return validTags.includes(_tag) ? _tag : "div";
7046
+ });
7034
7047
  const classNames = vue.computed(() => [getPartClassName(props.part), props.part.getClassNames()]);
7035
7048
  const style = vue.computed(() => ({
7036
7049
  ...props.part.getStyles(props.isMobilePage),
@@ -7064,27 +7077,30 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7064
7077
  removeStyleTag();
7065
7078
  });
7066
7079
  return (_ctx, _cache) => {
7067
- return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
7080
+ return vue.withDirectives((vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tag.value), {
7068
7081
  class: vue.normalizeClass(classNames.value),
7069
7082
  "data-part-id": _ctx.part.partId,
7070
7083
  style: vue.normalizeStyle(style.value)
7071
- }, [
7072
- _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (child) => {
7073
- return vue.openBlock(), vue.createBlock(_sfc_main$a$1, {
7074
- key: child.partId,
7075
- "is-mobile-page": _ctx.isMobilePage,
7076
- part: child,
7077
- "onUpdate:visible": _cache[0] || (_cache[0] = (value, hideParentWhenInvisible) => updateVisible(value, hideParentWhenInvisible))
7078
- }, null, 8, ["is-mobile-page", "part"]);
7079
- }), 128)) : vue.createCommentVNode("", true)
7080
- ], 14, _hoisted_1$8$1)), [
7084
+ }, {
7085
+ default: vue.withCtx(() => [
7086
+ _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (child) => {
7087
+ return vue.openBlock(), vue.createBlock(_sfc_main$a$1, {
7088
+ key: child.partId,
7089
+ "is-mobile-page": _ctx.isMobilePage,
7090
+ part: child,
7091
+ "onUpdate:visible": _cache[0] || (_cache[0] = (value, hideParentWhenInvisible) => updateVisible(value, hideParentWhenInvisible))
7092
+ }, null, 8, ["is-mobile-page", "part"]);
7093
+ }), 128)) : vue.createCommentVNode("", true)
7094
+ ]),
7095
+ _: 1
7096
+ }, 8, ["class", "data-part-id", "style"])), [
7081
7097
  [vue.vShow, visible.value]
7082
7098
  ]);
7083
7099
  };
7084
7100
  }
7085
7101
  });
7086
7102
  const _hoisted_1$7$1 = ["href", "target"];
7087
- const _hoisted_2$4$1 = ["alt", "src"];
7103
+ const _hoisted_2$3$1 = ["alt", "src"];
7088
7104
  const _hoisted_3$k = ["alt", "src"];
7089
7105
  const _hoisted_4$f = ["poster"];
7090
7106
  const _hoisted_5$b = ["src"];
@@ -7143,7 +7159,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7143
7159
  src: ((_d = _ctx.part.properties) == null ? void 0 : _d.media).fileUrl,
7144
7160
  style: vue.normalizeStyle(style.value),
7145
7161
  class: "image"
7146
- }, null, 12, _hoisted_2$4$1)
7162
+ }, null, 12, _hoisted_2$3$1)
7147
7163
  ], 8, _hoisted_1$7$1)) : (vue.openBlock(), vue.createElementBlock("img", {
7148
7164
  key: 1,
7149
7165
  alt: altText.value,
@@ -7168,8 +7184,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7168
7184
  };
7169
7185
  }
7170
7186
  });
7171
- const _hoisted_1$6$1 = ["textContent"];
7172
- const _hoisted_2$3$1 = {
7187
+ const _hoisted_1$6$1 = {
7173
7188
  key: 1,
7174
7189
  class: "placeholder",
7175
7190
  textContent: "Empty Text"
@@ -7183,6 +7198,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7183
7198
  setup(__props) {
7184
7199
  const props = __props;
7185
7200
  const pageBuilder = usePageBuilder();
7201
+ const validTags = ["div", "h1", "h2", "h3", "h4", "h5", "h6", "p", "span"];
7202
+ const tag = vue.computed(() => {
7203
+ var _a;
7204
+ const _tag = (_a = props.part.properties) == null ? void 0 : _a.tag;
7205
+ return validTags.includes(_tag) ? _tag : "div";
7206
+ });
7186
7207
  const text = vue.computed(() => {
7187
7208
  var _a;
7188
7209
  if ((_a = props.part.properties) == null ? void 0 : _a.text) {
@@ -7204,12 +7225,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7204
7225
  };
7205
7226
  });
7206
7227
  return (_ctx, _cache) => {
7207
- return text.value ? (vue.openBlock(), vue.createElementBlock("div", {
7228
+ return text.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tag.value), {
7208
7229
  key: 0,
7209
7230
  style: vue.normalizeStyle(style.value),
7210
7231
  class: "text",
7211
7232
  textContent: vue.toDisplayString(text.value)
7212
- }, null, 12, _hoisted_1$6$1)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$3$1)) : vue.createCommentVNode("", true);
7233
+ }, null, 8, ["style", "textContent"])) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6$1)) : vue.createCommentVNode("", true);
7213
7234
  };
7214
7235
  }
7215
7236
  });
@@ -7853,7 +7874,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7853
7874
  };
7854
7875
  }
7855
7876
  });
7856
- const _hoisted_1$J = {
7877
+ const _hoisted_1$H = {
7857
7878
  key: 1,
7858
7879
  class: "placeholder",
7859
7880
  textContent: "Empty Widget"
@@ -7874,7 +7895,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7874
7895
  key: child.part.partId,
7875
7896
  part: child.part
7876
7897
  }, null, 8, ["part"]);
7877
- }), 128)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$J)) : vue.createCommentVNode("", true);
7898
+ }), 128)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$H)) : vue.createCommentVNode("", true);
7878
7899
  };
7879
7900
  }
7880
7901
  });
@@ -8741,9 +8762,9 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
8741
8762
  return target;
8742
8763
  };
8743
8764
  const _sfc_main$E = {};
8744
- const _hoisted_1$I = { class: "pb-add-widget-button" };
8765
+ const _hoisted_1$G = { class: "pb-add-widget-button" };
8745
8766
  function _sfc_render$1(_ctx, _cache) {
8746
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$I, [
8767
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$G, [
8747
8768
  vue.createElementVNode("button", {
8748
8769
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("add-widget", $event))
8749
8770
  }, _cache[1] || (_cache[1] = [
@@ -8780,7 +8801,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
8780
8801
  if (!mouseTracker) throw Error(MOUSE_TRACKER_NOT_FOUND);
8781
8802
  return mouseTracker;
8782
8803
  };
8783
- const _hoisted_1$H = ["data-part-id", "draggable"];
8804
+ const _hoisted_1$F = ["data-part-id", "draggable"];
8784
8805
  const _hoisted_2$v = {
8785
8806
  key: 1,
8786
8807
  class: "invalid-widget",
@@ -9250,13 +9271,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
9250
9271
  class: "resize-handle",
9251
9272
  onMousedown: resizeChild
9252
9273
  }, null, 32)) : vue.createCommentVNode("", true)
9253
- ], 14, _hoisted_1$H)), [
9274
+ ], 14, _hoisted_1$F)), [
9254
9275
  [vue.unref(vPartHandler), { pageBuilder: vue.unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9255
9276
  ]);
9256
9277
  };
9257
9278
  }
9258
9279
  });
9259
- const _hoisted_1$G = ["data-part-id"];
9260
9280
  const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
9261
9281
  __name: "PbBlock",
9262
9282
  props: {
@@ -9267,6 +9287,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
9267
9287
  setup(__props) {
9268
9288
  const props = __props;
9269
9289
  const pageBuilder = usePageBuilderEditor();
9290
+ const validTags = ["div", "section", "li"];
9291
+ const tag = vue.computed(() => {
9292
+ var _a;
9293
+ const _tag = (_a = props.part.properties) == null ? void 0 : _a.tag;
9294
+ return validTags.includes(_tag) ? _tag : "div";
9295
+ });
9270
9296
  const selected = vue.computed(() => pageBuilder.context.isSelected(props.part));
9271
9297
  const classNames = vue.computed(() => [
9272
9298
  selected.value ? "selected" : "",
@@ -9466,31 +9492,37 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
9466
9492
  return index;
9467
9493
  };
9468
9494
  return (_ctx, _cache) => {
9469
- var _a, _b;
9470
- return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
9495
+ var _a;
9496
+ return vue.withDirectives((vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tag.value), vue.mergeProps({
9471
9497
  ref_key: "partRef",
9472
9498
  ref: partRef,
9473
9499
  class: [classNames.value, "pb-block"],
9474
9500
  "data-part-id": _ctx.part.partId,
9475
9501
  style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
9476
- }, properties.value), [
9477
- !_ctx.part.children || ((_b = _ctx.part.children) == null ? void 0 : _b.length) === 0 ? (vue.openBlock(), vue.createBlock(PbAddWidgetButton, {
9478
- key: 0,
9479
- onAddWidget: addWidget
9480
- })) : vue.createCommentVNode("", true),
9481
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.part.children, (child) => {
9482
- return vue.openBlock(), vue.createBlock(_sfc_main$D, {
9483
- key: child.partId,
9484
- part: child
9485
- }, null, 8, ["part"]);
9486
- }), 128))
9487
- ], 16, _hoisted_1$G)), [
9502
+ }, properties.value), {
9503
+ default: vue.withCtx(() => {
9504
+ var _a2;
9505
+ return [
9506
+ !_ctx.part.children || ((_a2 = _ctx.part.children) == null ? void 0 : _a2.length) === 0 ? (vue.openBlock(), vue.createBlock(PbAddWidgetButton, {
9507
+ key: 0,
9508
+ onAddWidget: addWidget
9509
+ })) : vue.createCommentVNode("", true),
9510
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.part.children, (child) => {
9511
+ return vue.openBlock(), vue.createBlock(_sfc_main$D, {
9512
+ key: child.partId,
9513
+ part: child
9514
+ }, null, 8, ["part"]);
9515
+ }), 128))
9516
+ ];
9517
+ }),
9518
+ _: 1
9519
+ }, 16, ["class", "data-part-id", "style"])), [
9488
9520
  [vue.unref(vPartHandler), { pageBuilder: vue.unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9489
9521
  ]);
9490
9522
  };
9491
9523
  }
9492
9524
  });
9493
- const _hoisted_1$F = { class: "pb-block" };
9525
+ const _hoisted_1$E = { class: "pb-block" };
9494
9526
  const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
9495
9527
  __name: "PbLoginDepart",
9496
9528
  props: {
@@ -9498,7 +9530,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
9498
9530
  },
9499
9531
  setup(__props) {
9500
9532
  return (_ctx, _cache) => {
9501
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$F, _cache[0] || (_cache[0] = [
9533
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$E, _cache[0] || (_cache[0] = [
9502
9534
  vue.createElementVNode("div", {
9503
9535
  class: "pb-widget",
9504
9536
  style: { "margin": "0 auto" }
@@ -9511,7 +9543,6 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
9511
9543
  };
9512
9544
  }
9513
9545
  });
9514
- const _hoisted_1$E = ["data-part-id"];
9515
9546
  const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
9516
9547
  __name: "PbSection",
9517
9548
  props: {
@@ -9522,6 +9553,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
9522
9553
  setup(__props) {
9523
9554
  const props = __props;
9524
9555
  const pageBuilder = usePageBuilderEditor();
9556
+ const validTags = ["div", "section", "ul"];
9557
+ const tag = vue.computed(() => {
9558
+ var _a;
9559
+ const _tag = (_a = props.part.properties) == null ? void 0 : _a.tag;
9560
+ return validTags.includes(_tag) ? _tag : "div";
9561
+ });
9525
9562
  const selected = vue.computed(() => pageBuilder.context.isSelected(props.part));
9526
9563
  const classNames = vue.computed(() => {
9527
9564
  return [
@@ -9645,32 +9682,38 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
9645
9682
  return index;
9646
9683
  };
9647
9684
  return (_ctx, _cache) => {
9648
- var _a, _b, _c;
9649
- return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
9685
+ var _a;
9686
+ return vue.withDirectives((vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tag.value), vue.mergeProps({
9650
9687
  ref_key: "partRef",
9651
9688
  ref: partRef,
9652
9689
  class: [classNames.value, "pb-section"],
9653
9690
  "data-part-id": _ctx.part.partId,
9654
9691
  style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
9655
- }, properties.value), [
9656
- ((_b = _ctx.part.properties) == null ? void 0 : _b.sectionType) === "static" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
9657
- ((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (vue.openBlock(), vue.createBlock(_sfc_main$B, {
9658
- key: 0,
9659
- part: _ctx.part
9660
- }, null, 8, ["part"])) : vue.createCommentVNode("", true)
9661
- ], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
9662
- _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (block) => {
9663
- return vue.openBlock(), vue.createBlock(_sfc_main$C, {
9664
- key: block.partId,
9665
- "is-mobile-page": _ctx.isMobilePage,
9666
- part: block
9667
- }, null, 8, ["is-mobile-page", "part"]);
9668
- }), 128)) : (vue.openBlock(), vue.createBlock(PbAddWidgetButton, {
9669
- key: 1,
9670
- onAddWidget: addWidget
9671
- }))
9672
- ], 64))
9673
- ], 16, _hoisted_1$E)), [
9692
+ }, properties.value), {
9693
+ default: vue.withCtx(() => {
9694
+ var _a2, _b;
9695
+ return [
9696
+ ((_a2 = _ctx.part.properties) == null ? void 0 : _a2.sectionType) === "static" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
9697
+ ((_b = _ctx.part.properties) == null ? void 0 : _b.name) === "Login Design Part" ? (vue.openBlock(), vue.createBlock(_sfc_main$B, {
9698
+ key: 0,
9699
+ part: _ctx.part
9700
+ }, null, 8, ["part"])) : vue.createCommentVNode("", true)
9701
+ ], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
9702
+ _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (block) => {
9703
+ return vue.openBlock(), vue.createBlock(_sfc_main$C, {
9704
+ key: block.partId,
9705
+ "is-mobile-page": _ctx.isMobilePage,
9706
+ part: block
9707
+ }, null, 8, ["is-mobile-page", "part"]);
9708
+ }), 128)) : (vue.openBlock(), vue.createBlock(PbAddWidgetButton, {
9709
+ key: 1,
9710
+ onAddWidget: addWidget
9711
+ }))
9712
+ ], 64))
9713
+ ];
9714
+ }),
9715
+ _: 1
9716
+ }, 16, ["class", "data-part-id", "style"])), [
9674
9717
  [vue.unref(vPartHandler), { pageBuilder: vue.unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9675
9718
  ]);
9676
9719
  };
@@ -12440,7 +12483,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
12440
12483
  ]
12441
12484
  };
12442
12485
  };
12443
- const layoutGroup = () => {
12486
+ const sectionLayoutGroup = () => {
12444
12487
  return {
12445
12488
  groupName: "layout",
12446
12489
  caption: "pb.prop.layout",
@@ -12461,6 +12504,43 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
12461
12504
  propertyName: "gap",
12462
12505
  caption: "pb.prop.gap",
12463
12506
  propertyType: "text"
12507
+ },
12508
+ {
12509
+ propertyName: "tag",
12510
+ caption: "pb.prop.tag",
12511
+ propertyType: "select",
12512
+ params: "div,section,ul"
12513
+ }
12514
+ ]
12515
+ };
12516
+ };
12517
+ const blockLayoutGroup = () => {
12518
+ return {
12519
+ groupName: "layout",
12520
+ caption: "pb.prop.layout",
12521
+ properties: [
12522
+ {
12523
+ propertyName: "direction",
12524
+ caption: "pb.prop.layout",
12525
+ propertyType: "select",
12526
+ params: "vertical,horizontal"
12527
+ },
12528
+ {
12529
+ propertyName: "wrap",
12530
+ caption: "pb.prop.wrap",
12531
+ propertyType: "select",
12532
+ params: "nowrap,wrap"
12533
+ },
12534
+ {
12535
+ propertyName: "gap",
12536
+ caption: "pb.prop.gap",
12537
+ propertyType: "text"
12538
+ },
12539
+ {
12540
+ propertyName: "tag",
12541
+ caption: "pb.prop.tag",
12542
+ propertyType: "select",
12543
+ params: "div,section,li"
12464
12544
  }
12465
12545
  ]
12466
12546
  };
@@ -12605,8 +12685,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
12605
12685
  ]
12606
12686
  };
12607
12687
  };
12608
- const defaultPropertyGroups = () => {
12609
- return [layoutGroup(), alignGroup(), sizeGroup(), marginGroup(), paddingGroup(), backgroundGroup(), commonGroup()];
12688
+ const defaultSectionPropertyGroups = () => {
12689
+ return [sectionLayoutGroup(), alignGroup(), sizeGroup(), marginGroup(), paddingGroup(), backgroundGroup(), commonGroup()];
12690
+ };
12691
+ const defaultBlockPropertyGroups = () => {
12692
+ return [blockLayoutGroup(), alignGroup(), sizeGroup(), marginGroup(), paddingGroup(), backgroundGroup(), commonGroup()];
12610
12693
  };
12611
12694
  const defaultWidgetPropertyGroups = () => {
12612
12695
  return [alignSelfGroup(), positionGroup(), sizeGroup(), marginGroup(), paddingGroup(), borderGroup(), backgroundGroup(), commonGroup(), hideParentGroup()];
@@ -12807,7 +12890,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
12807
12890
  icon: "rectangle",
12808
12891
  className: "pb-section",
12809
12892
  propertyGroups: [
12810
- ...defaultPropertyGroups()
12893
+ ...defaultSectionPropertyGroups()
12811
12894
  ],
12812
12895
  initialProperties: {
12813
12896
  direction: "horizontal",
@@ -12826,7 +12909,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
12826
12909
  icon: "space_dashboard",
12827
12910
  className: "pb-block",
12828
12911
  propertyGroups: [
12829
- ...defaultPropertyGroups()
12912
+ ...defaultBlockPropertyGroups()
12830
12913
  ],
12831
12914
  initialProperties: {
12832
12915
  direction: "vertical",
@@ -12879,6 +12962,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
12879
12962
  caption: "pb.prop.fontColor",
12880
12963
  propertyType: "color",
12881
12964
  params: ""
12965
+ },
12966
+ {
12967
+ propertyName: "tag",
12968
+ caption: "pb.prop.tag",
12969
+ propertyType: "select",
12970
+ params: "div,h1,h2,h3,h4,h5,h6,p,span"
12882
12971
  }
12883
12972
  ]
12884
12973
  },
@@ -12891,7 +12980,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
12891
12980
  paddingBottom: "12px",
12892
12981
  paddingLeft: "12px",
12893
12982
  paddingRight: "12px",
12894
- align: "center"
12983
+ align: "center",
12984
+ tag: "div"
12895
12985
  },
12896
12986
  allowsChild: () => false,
12897
12987
  creator: () => _sfc_main$7$1
@@ -15303,7 +15393,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
15303
15393
  };
15304
15394
  }
15305
15395
  });
15306
- const canvasStyle = '.pb-page {\n display: flex;\n flex-direction: column;\n width: 100%;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n overflow-x: hidden;\n}\n.pb-page .pb-section {\n display: flex;\n position: relative;\n width: 100%;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n.pb-page .pb-section .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}\n.pb-page .pb-section .pb-block .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-page .pb-section .pb-block .pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.pb-page .pb-section .pb-block .pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-page .pb-section .pb-block .pb-text-widget .text {\n color: #333;\n}\n.pb-page .pb-section .pb-block .pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-page .pb-section .pb-block .pb-media-widget {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-media-widget .image {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-media-widget .video {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-media-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n.pb-page .pb-section .pb-block .pb-media-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n.pb-page .pb-section .pb-block .pb-html-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-page .pb-section .pb-block .pb-html-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-page .pb-section .pb-block .pb-iframe-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-page .pb-section .pb-block .pb-iframe-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-page .pb-section .pb-block .pb-youtube-widget {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-youtube-widget .youtube {\n width: 100%;\n height: 100%;\n}\n.pb-page .pb-section .pb-block .pb-youtube-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n.pb-page .pb-section .pb-block .pb-youtube-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n.pb-page .pb-section .pb-block .pb-container-widget {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-container-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n.pb-page .pb-section .pb-block .pb-container-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n.pb-page .pb-section .pb-block .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-page .pb-section .pb-block .pb-product-list-widget .product-wrapper {\n width: 25%;\n}\n.pb-page .pb-section .pb-block .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-page .pb-section .pb-block .pb-product-list-widget .product-wrapper img {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-product-list-widget .product-wrapper .name {\n margin-top: 8px;\n font-size: 14px;\n}\n.pb-page .pb-section .pb-block .pb-product-list-widget .product-wrapper .price {\n margin-top: 8px;\n font-size: 14px;\n font-weight: bold;\n}\n.pb-page .pb-section .pb-block .pb-product-list-widget .product-wrapper .empty {\n height: 200px;\n background-color: #eee;\n text-align: center;\n}\n.pb-page .pb-section .pb-block .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-page .pb-section .pb-block .pb-product-list-widget .product-wrapper {\n width: 50%;\n }\n}\n.pb-page .pb-section .pb-block .mobile .pb-product-list-widget .product-wrapper {\n width: 50%;\n}\n.pb-page .pb-section .pb-block .pb-login-widget {\n height: 200px;\n text-align: center;\n}\n.pb-page .pb-section .pb-block .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.pb-page * {\n box-sizing: border-box;\n}\n.pb-viewer {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n overflow-y: auto;\n}\n.pb-page-wrapper {\n margin: 0 auto;\n padding: 0;\n}\n.pb-page {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n padding-bottom: 100px;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n.pb-page .pb-page-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n background-color: #fff;\n}\n.pb-page .pb-page-content.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\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 display: flex;\n position: relative;\n width: 100%;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n outline: 1px dashed #ccc;\n}\n.pb-section:empty {\n background-color: #fff;\n}\n.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\n.pb-section.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\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::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\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 pointer-events: auto !important;\n min-height: 50px;\n}\n.pb-widget * {\n pointer-events: none;\n}\n.pb-widget > .invalid-widget {\n display: flex;\n height: 50px;\n justify-content: center;\n align-items: center;\n width: 100%;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-widget.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\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 pointer-events: auto !important;\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 pointer-events: auto !important;\n}\nbody {\n margin: 0;\n padding: 0;\n background-color: var(--color-canvas-frame-bg);\n overflow: hidden;\n}\n.font-icon, .material-icons-outlined {\n font-family: "Material Symbols Outlined", monospace;\n font-size: 1rem;\n max-width: 1em;\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 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 font-style: normal;\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}';
15396
+ const canvasStyle = '.pb-page {\n display: flex;\n flex-direction: column;\n width: 100%;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n overflow-x: hidden;\n}\n.pb-page .pb-section {\n display: flex;\n position: relative;\n width: 100%;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n.pb-page .pb-section .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}\n.pb-page .pb-section .pb-block .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-page .pb-section .pb-block .pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.pb-page .pb-section .pb-block .pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-page .pb-section .pb-block .pb-text-widget .text {\n display: block;\n color: #333;\n}\n.pb-page .pb-section .pb-block .pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-page .pb-section .pb-block .pb-media-widget {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-media-widget .image {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-media-widget .video {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-media-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n.pb-page .pb-section .pb-block .pb-media-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n.pb-page .pb-section .pb-block .pb-html-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-page .pb-section .pb-block .pb-html-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-page .pb-section .pb-block .pb-iframe-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-page .pb-section .pb-block .pb-iframe-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-page .pb-section .pb-block .pb-youtube-widget {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-youtube-widget .youtube {\n width: 100%;\n height: 100%;\n}\n.pb-page .pb-section .pb-block .pb-youtube-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n.pb-page .pb-section .pb-block .pb-youtube-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n.pb-page .pb-section .pb-block .pb-container-widget {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-container-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n.pb-page .pb-section .pb-block .pb-container-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n.pb-page .pb-section .pb-block .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-page .pb-section .pb-block .pb-product-list-widget .product-wrapper {\n width: 25%;\n}\n.pb-page .pb-section .pb-block .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-page .pb-section .pb-block .pb-product-list-widget .product-wrapper img {\n width: 100%;\n}\n.pb-page .pb-section .pb-block .pb-product-list-widget .product-wrapper .name {\n margin-top: 8px;\n font-size: 14px;\n}\n.pb-page .pb-section .pb-block .pb-product-list-widget .product-wrapper .price {\n margin-top: 8px;\n font-size: 14px;\n font-weight: bold;\n}\n.pb-page .pb-section .pb-block .pb-product-list-widget .product-wrapper .empty {\n height: 200px;\n background-color: #eee;\n text-align: center;\n}\n.pb-page .pb-section .pb-block .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-page .pb-section .pb-block .pb-product-list-widget .product-wrapper {\n width: 50%;\n }\n}\n.pb-page .pb-section .pb-block .mobile .pb-product-list-widget .product-wrapper {\n width: 50%;\n}\n.pb-page .pb-section .pb-block .pb-login-widget {\n height: 200px;\n text-align: center;\n}\n.pb-page .pb-section .pb-block .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.pb-page * {\n box-sizing: border-box;\n}\n.pb-viewer {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n overflow-y: auto;\n}\n.pb-page-wrapper {\n margin: 0 auto;\n padding: 0;\n}\n.pb-page {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n padding-bottom: 100px;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n.pb-page .pb-page-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n background-color: #fff;\n}\n.pb-page .pb-page-content.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\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 display: flex;\n position: relative;\n width: 100%;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n outline: 1px dashed #ccc;\n}\n.pb-section:empty {\n background-color: #fff;\n}\n.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\n.pb-section.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\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::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\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 pointer-events: auto !important;\n min-height: 50px;\n}\n.pb-widget * {\n pointer-events: none;\n}\n.pb-widget > .invalid-widget {\n display: flex;\n height: 50px;\n justify-content: center;\n align-items: center;\n width: 100%;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-widget.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\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 pointer-events: auto !important;\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 pointer-events: auto !important;\n}\nbody {\n margin: 0;\n padding: 0;\n background-color: var(--color-canvas-frame-bg);\n overflow: hidden;\n}\n.font-icon, .material-icons-outlined {\n font-family: "Material Symbols Outlined", monospace;\n font-size: 1rem;\n max-width: 1em;\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 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 font-style: normal;\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}';
15307
15397
  const _hoisted_1$h = ["width"];
15308
15398
  const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
15309
15399
  __name: "PbPageFrame",
@@ -15728,6 +15818,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
15728
15818
  key: "pb.prop.fontColor",
15729
15819
  text: "Font Color"
15730
15820
  },
15821
+ {
15822
+ key: "pb.prop.tag",
15823
+ text: "HTML Tag"
15824
+ },
15731
15825
  {
15732
15826
  key: "pb.prop.image",
15733
15827
  text: "Image"
@@ -16062,6 +16156,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
16062
16156
  key: "pb.prop.fontColor",
16063
16157
  text: "フォントの色"
16064
16158
  },
16159
+ {
16160
+ key: "pb.prop.tag",
16161
+ text: "HTMLのタグ"
16162
+ },
16065
16163
  {
16066
16164
  key: "pb.prop.image",
16067
16165
  text: "画像"
@@ -16396,6 +16494,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
16396
16494
  key: "pb.prop.fontColor",
16397
16495
  text: "텍스트 색상"
16398
16496
  },
16497
+ {
16498
+ key: "pb.prop.tag",
16499
+ text: "HTML 태그"
16500
+ },
16399
16501
  {
16400
16502
  key: "pb.prop.image",
16401
16503
  text: "이미지"
@@ -16730,6 +16832,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
16730
16832
  key: "pb.prop.fontColor",
16731
16833
  text: "字体颜色"
16732
16834
  },
16835
+ {
16836
+ key: "pb.prop.tag",
16837
+ text: "HTML 标签"
16838
+ },
16733
16839
  {
16734
16840
  key: "pb.prop.image",
16735
16841
  text: "图片"
@@ -17064,6 +17170,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
17064
17170
  key: "pb.prop.fontColor",
17065
17171
  text: "Couleur de police"
17066
17172
  },
17173
+ {
17174
+ key: "pb.prop.tag",
17175
+ text: "balise HTML"
17176
+ },
17067
17177
  {
17068
17178
  key: "pb.prop.image",
17069
17179
  text: "Image"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@g1cloud/page-builder-editor",
3
3
  "private": false,
4
- "version": "1.0.0-alpha.87",
4
+ "version": "1.0.0-alpha.89",
5
5
  "engins": {
6
6
  "node": ">= 20.0.0"
7
7
  },
@@ -31,7 +31,7 @@
31
31
  "vue-router": "^4.4.3",
32
32
  "vue3-click-away": "^1.2.4",
33
33
  "yjs": "^13.6.14",
34
- "@g1cloud/page-builder-viewer": "1.0.0-alpha.87"
34
+ "@g1cloud/page-builder-viewer": "1.0.0-alpha.89"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "^20.12.7",