@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,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { ref, defineComponent, computed, openBlock, createElementBlock, Fragment, createElementVNode, normalizeStyle, createCommentVNode, toDisplayString, watch, onMounted, onBeforeUnmount, createBlock as createBlock$1, resolveDynamicComponent, unref, provide, inject, renderList, normalizeProps, mergeProps, normalizeClass, withDirectives, vShow, reactive, defineAsyncComponent, createVNode, resolveComponent, vModelText, resolveDirective, withModifiers, renderSlot, guardReactiveProps, createTextVNode, markRaw, toHandlers, Teleport } from "vue";
4
+ import { ref, defineComponent, computed, openBlock, createElementBlock, Fragment, createElementVNode, normalizeStyle, createCommentVNode, toDisplayString, createBlock as createBlock$1, resolveDynamicComponent, watch, onMounted, onBeforeUnmount, unref, provide, inject, renderList, normalizeProps, mergeProps, normalizeClass, withDirectives, withCtx, vShow, reactive, defineAsyncComponent, createVNode, resolveComponent, vModelText, resolveDirective, withModifiers, renderSlot, guardReactiveProps, createTextVNode, markRaw, toHandlers, Teleport } from "vue";
5
5
  import { notNull, vT, BSTextInput, vClickOutside, useModal, BSButton, BSMultiLangTextInput, showNotification, BSSelect, BSTree, useContextMenu, i18n, BSHorizontalLayoutResizer } from "@g1cloud/bluesea";
6
6
  import YouTube from "vue3-youtube";
7
7
  const create$5 = () => /* @__PURE__ */ new Map();
@@ -6880,7 +6880,7 @@ let Model$1 = class Model {
6880
6880
  this.rootPart = ref(new RootPart());
6881
6881
  }
6882
6882
  };
6883
- const _hoisted_1$a$1 = ["data-part-id"];
6883
+ const _hoisted_1$8$1 = ["data-part-id"];
6884
6884
  const _sfc_main$b$1 = /* @__PURE__ */ defineComponent({
6885
6885
  __name: "PbWidget",
6886
6886
  props: {
@@ -6940,13 +6940,12 @@ const _sfc_main$b$1 = /* @__PURE__ */ defineComponent({
6940
6940
  part: _ctx.part,
6941
6941
  "onUpdate:visible": updateVisible
6942
6942
  }, null, 40, ["part"])) : createCommentVNode("", true)
6943
- ], 14, _hoisted_1$a$1)), [
6943
+ ], 14, _hoisted_1$8$1)), [
6944
6944
  [vShow, visible.value]
6945
6945
  ]);
6946
6946
  };
6947
6947
  }
6948
6948
  });
6949
- const _hoisted_1$9$1 = ["data-part-id"];
6950
6949
  const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
6951
6950
  __name: "PbBlock",
6952
6951
  props: {
@@ -6964,6 +6963,12 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
6964
6963
  }
6965
6964
  emit("update:visible", visible.value, hideParentWhenInvisible);
6966
6965
  };
6966
+ const validTags = ["div", "section", "li"];
6967
+ const tag = computed(() => {
6968
+ var _a;
6969
+ const _tag = (_a = props.part.properties) == null ? void 0 : _a.tag;
6970
+ return validTags.includes(_tag) ? _tag : "div";
6971
+ });
6967
6972
  const classNames = computed(() => [getPartClassName(props.part), props.part.getClassNames()]);
6968
6973
  const style = computed(() => ({
6969
6974
  ...props.part.getStyles(props.isMobilePage),
@@ -6997,25 +7002,27 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
6997
7002
  removeStyleTag();
6998
7003
  });
6999
7004
  return (_ctx, _cache) => {
7000
- return withDirectives((openBlock(), createElementBlock("div", {
7005
+ return withDirectives((openBlock(), createBlock$1(resolveDynamicComponent(tag.value), {
7001
7006
  class: normalizeClass(classNames.value),
7002
7007
  "data-part-id": _ctx.part.partId,
7003
7008
  style: normalizeStyle(style.value)
7004
- }, [
7005
- _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (child) => {
7006
- return openBlock(), createBlock$1(_sfc_main$b$1, {
7007
- key: child.partId,
7008
- part: child,
7009
- "onUpdate:visible": _cache[0] || (_cache[0] = (value, hideParentWhenInvisible) => updateVisible(value, hideParentWhenInvisible))
7010
- }, null, 8, ["part"]);
7011
- }), 128)) : createCommentVNode("", true)
7012
- ], 14, _hoisted_1$9$1)), [
7009
+ }, {
7010
+ default: withCtx(() => [
7011
+ _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (child) => {
7012
+ return openBlock(), createBlock$1(_sfc_main$b$1, {
7013
+ key: child.partId,
7014
+ part: child,
7015
+ "onUpdate:visible": _cache[0] || (_cache[0] = (value, hideParentWhenInvisible) => updateVisible(value, hideParentWhenInvisible))
7016
+ }, null, 8, ["part"]);
7017
+ }), 128)) : createCommentVNode("", true)
7018
+ ]),
7019
+ _: 1
7020
+ }, 8, ["class", "data-part-id", "style"])), [
7013
7021
  [vShow, visible.value]
7014
7022
  ]);
7015
7023
  };
7016
7024
  }
7017
7025
  });
7018
- const _hoisted_1$8$1 = ["data-part-id"];
7019
7026
  const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
7020
7027
  __name: "PbSection",
7021
7028
  props: {
@@ -7030,6 +7037,12 @@ const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
7030
7037
  visible.value = false;
7031
7038
  }
7032
7039
  };
7040
+ const validTags = ["div", "section", "ul"];
7041
+ const tag = computed(() => {
7042
+ var _a;
7043
+ const _tag = (_a = props.part.properties) == null ? void 0 : _a.tag;
7044
+ return validTags.includes(_tag) ? _tag : "div";
7045
+ });
7033
7046
  const classNames = computed(() => [getPartClassName(props.part), props.part.getClassNames()]);
7034
7047
  const style = computed(() => ({
7035
7048
  ...props.part.getStyles(props.isMobilePage),
@@ -7063,27 +7076,30 @@ const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
7063
7076
  removeStyleTag();
7064
7077
  });
7065
7078
  return (_ctx, _cache) => {
7066
- return withDirectives((openBlock(), createElementBlock("div", {
7079
+ return withDirectives((openBlock(), createBlock$1(resolveDynamicComponent(tag.value), {
7067
7080
  class: normalizeClass(classNames.value),
7068
7081
  "data-part-id": _ctx.part.partId,
7069
7082
  style: normalizeStyle(style.value)
7070
- }, [
7071
- _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (child) => {
7072
- return openBlock(), createBlock$1(_sfc_main$a$1, {
7073
- key: child.partId,
7074
- "is-mobile-page": _ctx.isMobilePage,
7075
- part: child,
7076
- "onUpdate:visible": _cache[0] || (_cache[0] = (value, hideParentWhenInvisible) => updateVisible(value, hideParentWhenInvisible))
7077
- }, null, 8, ["is-mobile-page", "part"]);
7078
- }), 128)) : createCommentVNode("", true)
7079
- ], 14, _hoisted_1$8$1)), [
7083
+ }, {
7084
+ default: withCtx(() => [
7085
+ _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (child) => {
7086
+ return openBlock(), createBlock$1(_sfc_main$a$1, {
7087
+ key: child.partId,
7088
+ "is-mobile-page": _ctx.isMobilePage,
7089
+ part: child,
7090
+ "onUpdate:visible": _cache[0] || (_cache[0] = (value, hideParentWhenInvisible) => updateVisible(value, hideParentWhenInvisible))
7091
+ }, null, 8, ["is-mobile-page", "part"]);
7092
+ }), 128)) : createCommentVNode("", true)
7093
+ ]),
7094
+ _: 1
7095
+ }, 8, ["class", "data-part-id", "style"])), [
7080
7096
  [vShow, visible.value]
7081
7097
  ]);
7082
7098
  };
7083
7099
  }
7084
7100
  });
7085
7101
  const _hoisted_1$7$1 = ["href", "target"];
7086
- const _hoisted_2$4$1 = ["alt", "src"];
7102
+ const _hoisted_2$3$1 = ["alt", "src"];
7087
7103
  const _hoisted_3$d = ["alt", "src"];
7088
7104
  const _hoisted_4$b = ["poster"];
7089
7105
  const _hoisted_5$8 = ["src"];
@@ -7142,7 +7158,7 @@ const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
7142
7158
  src: ((_d = _ctx.part.properties) == null ? void 0 : _d.media).fileUrl,
7143
7159
  style: normalizeStyle(style.value),
7144
7160
  class: "image"
7145
- }, null, 12, _hoisted_2$4$1)
7161
+ }, null, 12, _hoisted_2$3$1)
7146
7162
  ], 8, _hoisted_1$7$1)) : (openBlock(), createElementBlock("img", {
7147
7163
  key: 1,
7148
7164
  alt: altText.value,
@@ -7167,8 +7183,7 @@ const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
7167
7183
  };
7168
7184
  }
7169
7185
  });
7170
- const _hoisted_1$6$1 = ["textContent"];
7171
- const _hoisted_2$3$1 = {
7186
+ const _hoisted_1$6$1 = {
7172
7187
  key: 1,
7173
7188
  class: "placeholder",
7174
7189
  textContent: "Empty Text"
@@ -7182,6 +7197,12 @@ const _sfc_main$7$1 = /* @__PURE__ */ defineComponent({
7182
7197
  setup(__props) {
7183
7198
  const props = __props;
7184
7199
  const pageBuilder = usePageBuilder();
7200
+ const validTags = ["div", "h1", "h2", "h3", "h4", "h5", "h6", "p", "span"];
7201
+ const tag = computed(() => {
7202
+ var _a;
7203
+ const _tag = (_a = props.part.properties) == null ? void 0 : _a.tag;
7204
+ return validTags.includes(_tag) ? _tag : "div";
7205
+ });
7185
7206
  const text = computed(() => {
7186
7207
  var _a;
7187
7208
  if ((_a = props.part.properties) == null ? void 0 : _a.text) {
@@ -7203,12 +7224,12 @@ const _sfc_main$7$1 = /* @__PURE__ */ defineComponent({
7203
7224
  };
7204
7225
  });
7205
7226
  return (_ctx, _cache) => {
7206
- return text.value ? (openBlock(), createElementBlock("div", {
7227
+ return text.value ? (openBlock(), createBlock$1(resolveDynamicComponent(tag.value), {
7207
7228
  key: 0,
7208
7229
  style: normalizeStyle(style.value),
7209
7230
  class: "text",
7210
7231
  textContent: toDisplayString(text.value)
7211
- }, null, 12, _hoisted_1$6$1)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_2$3$1)) : createCommentVNode("", true);
7232
+ }, null, 8, ["style", "textContent"])) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_1$6$1)) : createCommentVNode("", true);
7212
7233
  };
7213
7234
  }
7214
7235
  });
@@ -7852,7 +7873,7 @@ const _sfc_main$2$1 = /* @__PURE__ */ defineComponent({
7852
7873
  };
7853
7874
  }
7854
7875
  });
7855
- const _hoisted_1$u = {
7876
+ const _hoisted_1$s = {
7856
7877
  key: 1,
7857
7878
  class: "placeholder",
7858
7879
  textContent: "Empty Widget"
@@ -7873,7 +7894,7 @@ const _sfc_main$1$1 = /* @__PURE__ */ defineComponent({
7873
7894
  key: child.part.partId,
7874
7895
  part: child.part
7875
7896
  }, null, 8, ["part"]);
7876
- }), 128)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_1$u)) : createCommentVNode("", true);
7897
+ }), 128)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_1$s)) : createCommentVNode("", true);
7877
7898
  };
7878
7899
  }
7879
7900
  });
@@ -8481,16 +8502,16 @@ class PartManager {
8481
8502
  const defaultPartPropertyEditors = () => {
8482
8503
  return {
8483
8504
  "readonly-text": () => defineAsyncComponent(() => import("./PbPropertyEditorReadonlyText-BJ5qx69O.js")),
8484
- "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-DdZJDy5K.js")),
8505
+ "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-m-3a8SCn.js")),
8485
8506
  "number": () => defineAsyncComponent(() => import("./PbPropertyEditorNumber-B76ArSb5.js")),
8486
8507
  "boolean": () => defineAsyncComponent(() => import("./PbPropertyEditorBoolean-c5CNiTpt.js")),
8487
- "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-2DV3EbNx.js")),
8508
+ "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-DN65aoYn.js")),
8488
8509
  "select": () => defineAsyncComponent(() => import("./PbPropertyEditorSelect-B5sfulvx.js")),
8489
- "css-length": () => defineAsyncComponent(() => import("./PbPropertyEditorCssLength-BEUxumJw.js")),
8490
- "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-DHYODwQa.js")),
8491
- "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-CkuJ28-N.js")),
8492
- "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-B1GJNEmo.js")),
8493
- "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-B7uPo3aW.js"))
8510
+ "css-length": () => defineAsyncComponent(() => import("./PbPropertyEditorCssLength-DK8skXh9.js")),
8511
+ "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-B-jrHxiq.js")),
8512
+ "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-CzTbfsnI.js")),
8513
+ "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-CRfpz6rQ.js")),
8514
+ "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-BlCOiRCh.js"))
8494
8515
  };
8495
8516
  };
8496
8517
  const getPropertyValueOfParts = (parts, propertyName) => {
@@ -8740,9 +8761,9 @@ const _export_sfc = (sfc, props) => {
8740
8761
  return target;
8741
8762
  };
8742
8763
  const _sfc_main$p = {};
8743
- const _hoisted_1$t = { class: "pb-add-widget-button" };
8764
+ const _hoisted_1$r = { class: "pb-add-widget-button" };
8744
8765
  function _sfc_render$1(_ctx, _cache) {
8745
- return openBlock(), createElementBlock("div", _hoisted_1$t, [
8766
+ return openBlock(), createElementBlock("div", _hoisted_1$r, [
8746
8767
  createElementVNode("button", {
8747
8768
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("add-widget", $event))
8748
8769
  }, _cache[1] || (_cache[1] = [
@@ -8779,7 +8800,7 @@ const useMouseTracker = () => {
8779
8800
  if (!mouseTracker) throw Error(MOUSE_TRACKER_NOT_FOUND);
8780
8801
  return mouseTracker;
8781
8802
  };
8782
- const _hoisted_1$s = ["data-part-id", "draggable"];
8803
+ const _hoisted_1$q = ["data-part-id", "draggable"];
8783
8804
  const _hoisted_2$h = {
8784
8805
  key: 1,
8785
8806
  class: "invalid-widget",
@@ -9249,13 +9270,12 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
9249
9270
  class: "resize-handle",
9250
9271
  onMousedown: resizeChild
9251
9272
  }, null, 32)) : createCommentVNode("", true)
9252
- ], 14, _hoisted_1$s)), [
9273
+ ], 14, _hoisted_1$q)), [
9253
9274
  [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9254
9275
  ]);
9255
9276
  };
9256
9277
  }
9257
9278
  });
9258
- const _hoisted_1$r = ["data-part-id"];
9259
9279
  const _sfc_main$n = /* @__PURE__ */ defineComponent({
9260
9280
  __name: "PbBlock",
9261
9281
  props: {
@@ -9266,6 +9286,12 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
9266
9286
  setup(__props) {
9267
9287
  const props = __props;
9268
9288
  const pageBuilder = usePageBuilderEditor();
9289
+ const validTags = ["div", "section", "li"];
9290
+ const tag = computed(() => {
9291
+ var _a;
9292
+ const _tag = (_a = props.part.properties) == null ? void 0 : _a.tag;
9293
+ return validTags.includes(_tag) ? _tag : "div";
9294
+ });
9269
9295
  const selected = computed(() => pageBuilder.context.isSelected(props.part));
9270
9296
  const classNames = computed(() => [
9271
9297
  selected.value ? "selected" : "",
@@ -9465,31 +9491,37 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
9465
9491
  return index;
9466
9492
  };
9467
9493
  return (_ctx, _cache) => {
9468
- var _a, _b;
9469
- return withDirectives((openBlock(), createElementBlock("div", mergeProps({
9494
+ var _a;
9495
+ return withDirectives((openBlock(), createBlock$1(resolveDynamicComponent(tag.value), mergeProps({
9470
9496
  ref_key: "partRef",
9471
9497
  ref: partRef,
9472
9498
  class: [classNames.value, "pb-block"],
9473
9499
  "data-part-id": _ctx.part.partId,
9474
9500
  style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
9475
- }, properties.value), [
9476
- !_ctx.part.children || ((_b = _ctx.part.children) == null ? void 0 : _b.length) === 0 ? (openBlock(), createBlock$1(PbAddWidgetButton, {
9477
- key: 0,
9478
- onAddWidget: addWidget
9479
- })) : createCommentVNode("", true),
9480
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (child) => {
9481
- return openBlock(), createBlock$1(_sfc_main$o, {
9482
- key: child.partId,
9483
- part: child
9484
- }, null, 8, ["part"]);
9485
- }), 128))
9486
- ], 16, _hoisted_1$r)), [
9501
+ }, properties.value), {
9502
+ default: withCtx(() => {
9503
+ var _a2;
9504
+ return [
9505
+ !_ctx.part.children || ((_a2 = _ctx.part.children) == null ? void 0 : _a2.length) === 0 ? (openBlock(), createBlock$1(PbAddWidgetButton, {
9506
+ key: 0,
9507
+ onAddWidget: addWidget
9508
+ })) : createCommentVNode("", true),
9509
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (child) => {
9510
+ return openBlock(), createBlock$1(_sfc_main$o, {
9511
+ key: child.partId,
9512
+ part: child
9513
+ }, null, 8, ["part"]);
9514
+ }), 128))
9515
+ ];
9516
+ }),
9517
+ _: 1
9518
+ }, 16, ["class", "data-part-id", "style"])), [
9487
9519
  [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9488
9520
  ]);
9489
9521
  };
9490
9522
  }
9491
9523
  });
9492
- const _hoisted_1$q = { class: "pb-block" };
9524
+ const _hoisted_1$p = { class: "pb-block" };
9493
9525
  const _sfc_main$m = /* @__PURE__ */ defineComponent({
9494
9526
  __name: "PbLoginDepart",
9495
9527
  props: {
@@ -9497,7 +9529,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
9497
9529
  },
9498
9530
  setup(__props) {
9499
9531
  return (_ctx, _cache) => {
9500
- return openBlock(), createElementBlock("div", _hoisted_1$q, _cache[0] || (_cache[0] = [
9532
+ return openBlock(), createElementBlock("div", _hoisted_1$p, _cache[0] || (_cache[0] = [
9501
9533
  createElementVNode("div", {
9502
9534
  class: "pb-widget",
9503
9535
  style: { "margin": "0 auto" }
@@ -9510,7 +9542,6 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
9510
9542
  };
9511
9543
  }
9512
9544
  });
9513
- const _hoisted_1$p = ["data-part-id"];
9514
9545
  const _sfc_main$l = /* @__PURE__ */ defineComponent({
9515
9546
  __name: "PbSection",
9516
9547
  props: {
@@ -9521,6 +9552,12 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
9521
9552
  setup(__props) {
9522
9553
  const props = __props;
9523
9554
  const pageBuilder = usePageBuilderEditor();
9555
+ const validTags = ["div", "section", "ul"];
9556
+ const tag = computed(() => {
9557
+ var _a;
9558
+ const _tag = (_a = props.part.properties) == null ? void 0 : _a.tag;
9559
+ return validTags.includes(_tag) ? _tag : "div";
9560
+ });
9524
9561
  const selected = computed(() => pageBuilder.context.isSelected(props.part));
9525
9562
  const classNames = computed(() => {
9526
9563
  return [
@@ -9644,32 +9681,38 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
9644
9681
  return index;
9645
9682
  };
9646
9683
  return (_ctx, _cache) => {
9647
- var _a, _b, _c;
9648
- return withDirectives((openBlock(), createElementBlock("div", mergeProps({
9684
+ var _a;
9685
+ return withDirectives((openBlock(), createBlock$1(resolveDynamicComponent(tag.value), mergeProps({
9649
9686
  ref_key: "partRef",
9650
9687
  ref: partRef,
9651
9688
  class: [classNames.value, "pb-section"],
9652
9689
  "data-part-id": _ctx.part.partId,
9653
9690
  style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
9654
- }, properties.value), [
9655
- ((_b = _ctx.part.properties) == null ? void 0 : _b.sectionType) === "static" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
9656
- ((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (openBlock(), createBlock$1(_sfc_main$m, {
9657
- key: 0,
9658
- part: _ctx.part
9659
- }, null, 8, ["part"])) : createCommentVNode("", true)
9660
- ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
9661
- _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (block) => {
9662
- return openBlock(), createBlock$1(_sfc_main$n, {
9663
- key: block.partId,
9664
- "is-mobile-page": _ctx.isMobilePage,
9665
- part: block
9666
- }, null, 8, ["is-mobile-page", "part"]);
9667
- }), 128)) : (openBlock(), createBlock$1(PbAddWidgetButton, {
9668
- key: 1,
9669
- onAddWidget: addWidget
9670
- }))
9671
- ], 64))
9672
- ], 16, _hoisted_1$p)), [
9691
+ }, properties.value), {
9692
+ default: withCtx(() => {
9693
+ var _a2, _b;
9694
+ return [
9695
+ ((_a2 = _ctx.part.properties) == null ? void 0 : _a2.sectionType) === "static" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
9696
+ ((_b = _ctx.part.properties) == null ? void 0 : _b.name) === "Login Design Part" ? (openBlock(), createBlock$1(_sfc_main$m, {
9697
+ key: 0,
9698
+ part: _ctx.part
9699
+ }, null, 8, ["part"])) : createCommentVNode("", true)
9700
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
9701
+ _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (block) => {
9702
+ return openBlock(), createBlock$1(_sfc_main$n, {
9703
+ key: block.partId,
9704
+ "is-mobile-page": _ctx.isMobilePage,
9705
+ part: block
9706
+ }, null, 8, ["is-mobile-page", "part"]);
9707
+ }), 128)) : (openBlock(), createBlock$1(PbAddWidgetButton, {
9708
+ key: 1,
9709
+ onAddWidget: addWidget
9710
+ }))
9711
+ ], 64))
9712
+ ];
9713
+ }),
9714
+ _: 1
9715
+ }, 16, ["class", "data-part-id", "style"])), [
9673
9716
  [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9674
9717
  ]);
9675
9718
  };
@@ -12439,7 +12482,7 @@ const commonGroup = () => {
12439
12482
  ]
12440
12483
  };
12441
12484
  };
12442
- const layoutGroup = () => {
12485
+ const sectionLayoutGroup = () => {
12443
12486
  return {
12444
12487
  groupName: "layout",
12445
12488
  caption: "pb.prop.layout",
@@ -12460,6 +12503,43 @@ const layoutGroup = () => {
12460
12503
  propertyName: "gap",
12461
12504
  caption: "pb.prop.gap",
12462
12505
  propertyType: "text"
12506
+ },
12507
+ {
12508
+ propertyName: "tag",
12509
+ caption: "pb.prop.tag",
12510
+ propertyType: "select",
12511
+ params: "div,section,ul"
12512
+ }
12513
+ ]
12514
+ };
12515
+ };
12516
+ const blockLayoutGroup = () => {
12517
+ return {
12518
+ groupName: "layout",
12519
+ caption: "pb.prop.layout",
12520
+ properties: [
12521
+ {
12522
+ propertyName: "direction",
12523
+ caption: "pb.prop.layout",
12524
+ propertyType: "select",
12525
+ params: "vertical,horizontal"
12526
+ },
12527
+ {
12528
+ propertyName: "wrap",
12529
+ caption: "pb.prop.wrap",
12530
+ propertyType: "select",
12531
+ params: "nowrap,wrap"
12532
+ },
12533
+ {
12534
+ propertyName: "gap",
12535
+ caption: "pb.prop.gap",
12536
+ propertyType: "text"
12537
+ },
12538
+ {
12539
+ propertyName: "tag",
12540
+ caption: "pb.prop.tag",
12541
+ propertyType: "select",
12542
+ params: "div,section,li"
12463
12543
  }
12464
12544
  ]
12465
12545
  };
@@ -12604,8 +12684,11 @@ const hideParentGroup = () => {
12604
12684
  ]
12605
12685
  };
12606
12686
  };
12607
- const defaultPropertyGroups = () => {
12608
- return [layoutGroup(), alignGroup(), sizeGroup(), marginGroup(), paddingGroup(), backgroundGroup(), commonGroup()];
12687
+ const defaultSectionPropertyGroups = () => {
12688
+ return [sectionLayoutGroup(), alignGroup(), sizeGroup(), marginGroup(), paddingGroup(), backgroundGroup(), commonGroup()];
12689
+ };
12690
+ const defaultBlockPropertyGroups = () => {
12691
+ return [blockLayoutGroup(), alignGroup(), sizeGroup(), marginGroup(), paddingGroup(), backgroundGroup(), commonGroup()];
12609
12692
  };
12610
12693
  const defaultWidgetPropertyGroups = () => {
12611
12694
  return [alignSelfGroup(), positionGroup(), sizeGroup(), marginGroup(), paddingGroup(), borderGroup(), backgroundGroup(), commonGroup(), hideParentGroup()];
@@ -12806,7 +12889,7 @@ const sectionParts = [
12806
12889
  icon: "rectangle",
12807
12890
  className: "pb-section",
12808
12891
  propertyGroups: [
12809
- ...defaultPropertyGroups()
12892
+ ...defaultSectionPropertyGroups()
12810
12893
  ],
12811
12894
  initialProperties: {
12812
12895
  direction: "horizontal",
@@ -12825,7 +12908,7 @@ const blockParts = [
12825
12908
  icon: "space_dashboard",
12826
12909
  className: "pb-block",
12827
12910
  propertyGroups: [
12828
- ...defaultPropertyGroups()
12911
+ ...defaultBlockPropertyGroups()
12829
12912
  ],
12830
12913
  initialProperties: {
12831
12914
  direction: "vertical",
@@ -12878,6 +12961,12 @@ const widgets = [
12878
12961
  caption: "pb.prop.fontColor",
12879
12962
  propertyType: "color",
12880
12963
  params: ""
12964
+ },
12965
+ {
12966
+ propertyName: "tag",
12967
+ caption: "pb.prop.tag",
12968
+ propertyType: "select",
12969
+ params: "div,h1,h2,h3,h4,h5,h6,p,span"
12881
12970
  }
12882
12971
  ]
12883
12972
  },
@@ -12890,7 +12979,8 @@ const widgets = [
12890
12979
  paddingBottom: "12px",
12891
12980
  paddingLeft: "12px",
12892
12981
  paddingRight: "12px",
12893
- align: "center"
12982
+ align: "center",
12983
+ tag: "div"
12894
12984
  },
12895
12985
  allowsChild: () => false,
12896
12986
  creator: () => _sfc_main$7$1
@@ -13130,7 +13220,7 @@ __publicField(_OpenAddWidgetModalCommand, "COMMAND_ID", "OpenAddWidgetModal");
13130
13220
  let OpenAddWidgetModalCommand = _OpenAddWidgetModalCommand;
13131
13221
  const openWidgetAddModal = (modal, args, callback) => {
13132
13222
  modal.openModal({
13133
- component: defineAsyncComponent(() => import("./PbWidgetAddModal-BqYB3aeV.js")),
13223
+ component: defineAsyncComponent(() => import("./PbWidgetAddModal-5UHKpA-8.js")),
13134
13224
  style: {
13135
13225
  width: "80%",
13136
13226
  height: "80%",
@@ -15302,7 +15392,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
15302
15392
  };
15303
15393
  }
15304
15394
  });
15305
- 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}';
15395
+ 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}';
15306
15396
  const _hoisted_1$2 = ["width"];
15307
15397
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
15308
15398
  __name: "PbPageFrame",
@@ -15727,6 +15817,10 @@ const enTexts = [
15727
15817
  key: "pb.prop.fontColor",
15728
15818
  text: "Font Color"
15729
15819
  },
15820
+ {
15821
+ key: "pb.prop.tag",
15822
+ text: "HTML Tag"
15823
+ },
15730
15824
  {
15731
15825
  key: "pb.prop.image",
15732
15826
  text: "Image"
@@ -16061,6 +16155,10 @@ const jaTexts = [
16061
16155
  key: "pb.prop.fontColor",
16062
16156
  text: "フォントの色"
16063
16157
  },
16158
+ {
16159
+ key: "pb.prop.tag",
16160
+ text: "HTMLのタグ"
16161
+ },
16064
16162
  {
16065
16163
  key: "pb.prop.image",
16066
16164
  text: "画像"
@@ -16395,6 +16493,10 @@ const koTexts = [
16395
16493
  key: "pb.prop.fontColor",
16396
16494
  text: "텍스트 색상"
16397
16495
  },
16496
+ {
16497
+ key: "pb.prop.tag",
16498
+ text: "HTML 태그"
16499
+ },
16398
16500
  {
16399
16501
  key: "pb.prop.image",
16400
16502
  text: "이미지"
@@ -16729,6 +16831,10 @@ const zhTexts = [
16729
16831
  key: "pb.prop.fontColor",
16730
16832
  text: "字体颜色"
16731
16833
  },
16834
+ {
16835
+ key: "pb.prop.tag",
16836
+ text: "HTML 标签"
16837
+ },
16732
16838
  {
16733
16839
  key: "pb.prop.image",
16734
16840
  text: "图片"
@@ -17063,6 +17169,10 @@ const frTexts = [
17063
17169
  key: "pb.prop.fontColor",
17064
17170
  text: "Couleur de police"
17065
17171
  },
17172
+ {
17173
+ key: "pb.prop.tag",
17174
+ text: "balise HTML"
17175
+ },
17066
17176
  {
17067
17177
  key: "pb.prop.image",
17068
17178
  text: "Image"
@@ -5,12 +5,14 @@ export declare const sizeGroup: () => PartPropertyGroup;
5
5
  export declare const marginGroup: () => PartPropertyGroup;
6
6
  export declare const paddingGroup: () => PartPropertyGroup;
7
7
  export declare const commonGroup: () => PartPropertyGroup;
8
- export declare const layoutGroup: () => PartPropertyGroup;
8
+ export declare const sectionLayoutGroup: () => PartPropertyGroup;
9
+ export declare const blockLayoutGroup: () => PartPropertyGroup;
9
10
  export declare const alignGroup: () => PartPropertyGroup;
10
11
  export declare const alignItemsGroup: () => PartPropertyGroup;
11
12
  export declare const alignSelfGroup: () => PartPropertyGroup;
12
13
  export declare const backgroundGroup: () => PartPropertyGroup;
13
14
  export declare const borderGroup: () => PartPropertyGroup;
14
15
  export declare const hideParentGroup: () => PartPropertyGroup;
15
- export declare const defaultPropertyGroups: () => PartPropertyGroup[];
16
+ export declare const defaultSectionPropertyGroups: () => PartPropertyGroup[];
17
+ export declare const defaultBlockPropertyGroups: () => PartPropertyGroup[];
16
18
  export declare const defaultWidgetPropertyGroups: () => PartPropertyGroup[];