@g1cloud/page-builder-editor 1.0.0-alpha.45 → 1.0.0-alpha.46

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.
@@ -2,7 +2,7 @@ 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
4
  import { ref, defineComponent, computed, openBlock, createElementBlock, Fragment, createElementVNode, normalizeStyle, createCommentVNode, toDisplayString, onMounted, onBeforeUnmount, createBlock as createBlock$1, resolveDynamicComponent, unref, provide, inject, watch, renderList, normalizeProps, mergeProps, normalizeClass, withDirectives, vShow, reactive, defineAsyncComponent, createVNode, resolveComponent, vModelText, resolveDirective, withModifiers, renderSlot, guardReactiveProps, markRaw, toHandlers, Teleport } from "vue";
5
- import { notNull, BSTextInput, vClickOutside, useModal, BSSelect, BSTree, useContextMenu } from "@g1cloud/bluesea";
5
+ import { notNull, BSTextInput, vClickOutside, useModal, BSMultiLangTextInput, BSSelect, BSTree, useContextMenu } from "@g1cloud/bluesea";
6
6
  import YouTube from "vue3-youtube";
7
7
  const create$5 = () => /* @__PURE__ */ new Map();
8
8
  const copy = (m) => {
@@ -6879,8 +6879,8 @@ let Model$1 = class Model {
6879
6879
  this.rootPart = ref(new RootPart());
6880
6880
  }
6881
6881
  };
6882
- const _hoisted_1$a$1 = ["data-part-id"];
6883
- const _sfc_main$b$1 = /* @__PURE__ */ defineComponent({
6882
+ const _hoisted_1$b$1 = ["data-part-id"];
6883
+ const _sfc_main$c$1 = /* @__PURE__ */ defineComponent({
6884
6884
  __name: "PbWidget",
6885
6885
  props: {
6886
6886
  part: {}
@@ -6917,15 +6917,15 @@ const _sfc_main$b$1 = /* @__PURE__ */ defineComponent({
6917
6917
  part: _ctx.part,
6918
6918
  "onUpdate:visible": updateVisible
6919
6919
  }, null, 40, ["part"])) : createCommentVNode("", true)
6920
- ], 14, _hoisted_1$a$1), [
6920
+ ], 14, _hoisted_1$b$1), [
6921
6921
  [vShow, visible.value]
6922
6922
  ])
6923
6923
  ], 64);
6924
6924
  };
6925
6925
  }
6926
6926
  });
6927
- const _hoisted_1$9$1 = ["data-part-id"];
6928
- const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
6927
+ const _hoisted_1$a$1 = ["data-part-id"];
6928
+ const _sfc_main$b$1 = /* @__PURE__ */ defineComponent({
6929
6929
  __name: "PbBlock",
6930
6930
  props: {
6931
6931
  part: {},
@@ -6960,21 +6960,21 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
6960
6960
  style: normalizeStyle(style.value)
6961
6961
  }, [
6962
6962
  _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (child) => {
6963
- return openBlock(), createBlock$1(_sfc_main$b$1, {
6963
+ return openBlock(), createBlock$1(_sfc_main$c$1, {
6964
6964
  key: child.partId,
6965
6965
  part: child,
6966
6966
  "onUpdate:visible": (value) => updateVisible(child.partId, value)
6967
6967
  }, null, 8, ["part", "onUpdate:visible"]);
6968
6968
  }), 128)) : createCommentVNode("", true)
6969
- ], 14, _hoisted_1$9$1), [
6969
+ ], 14, _hoisted_1$a$1), [
6970
6970
  [vShow, visible.value]
6971
6971
  ])
6972
6972
  ], 64);
6973
6973
  };
6974
6974
  }
6975
6975
  });
6976
- const _hoisted_1$8$1 = ["data-part-id"];
6977
- const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
6976
+ const _hoisted_1$9$1 = ["data-part-id"];
6977
+ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
6978
6978
  __name: "PbSection",
6979
6979
  props: {
6980
6980
  part: {},
@@ -7006,28 +7006,28 @@ const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
7006
7006
  style: normalizeStyle(style.value)
7007
7007
  }, [
7008
7008
  _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (child) => {
7009
- return openBlock(), createBlock$1(_sfc_main$a$1, {
7009
+ return openBlock(), createBlock$1(_sfc_main$b$1, {
7010
7010
  key: child.partId,
7011
7011
  "is-mobile-page": _ctx.isMobilePage,
7012
7012
  part: child,
7013
7013
  "onUpdate:visible": (value) => updateVisible(child.partId, value)
7014
7014
  }, null, 8, ["is-mobile-page", "part", "onUpdate:visible"]);
7015
7015
  }), 128)) : createCommentVNode("", true)
7016
- ], 14, _hoisted_1$8$1), [
7016
+ ], 14, _hoisted_1$9$1), [
7017
7017
  [vShow, visible.value]
7018
7018
  ])
7019
7019
  ], 64);
7020
7020
  };
7021
7021
  }
7022
7022
  });
7023
- const _hoisted_1$7$1 = ["href", "target"];
7024
- const _hoisted_2$4$1 = ["alt", "src"];
7025
- const _hoisted_3$d = ["alt", "src"];
7026
- const _hoisted_4$a = {
7023
+ const _hoisted_1$8$1 = ["href", "target"];
7024
+ const _hoisted_2$5$1 = ["alt", "src"];
7025
+ const _hoisted_3$1$1 = ["alt", "src"];
7026
+ const _hoisted_4$1$1 = {
7027
7027
  key: 1,
7028
7028
  class: "placeholder"
7029
7029
  };
7030
- const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
7030
+ const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
7031
7031
  __name: "PbImageWidget",
7032
7032
  props: {
7033
7033
  part: {},
@@ -7068,20 +7068,103 @@ const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
7068
7068
  src: ((_e = _ctx.part.properties) == null ? void 0 : _e.media).url,
7069
7069
  style: normalizeStyle(style.value),
7070
7070
  class: "image"
7071
- }, null, 12, _hoisted_2$4$1)
7072
- ], 8, _hoisted_1$7$1)) : (openBlock(), createElementBlock("img", {
7071
+ }, null, 12, _hoisted_2$5$1)
7072
+ ], 8, _hoisted_1$8$1)) : (openBlock(), createElementBlock("img", {
7073
7073
  key: 1,
7074
7074
  alt: altText.value,
7075
7075
  src: ((_f = _ctx.part.properties) == null ? void 0 : _f.media).url,
7076
7076
  style: normalizeStyle(style.value),
7077
7077
  class: "image"
7078
- }, null, 12, _hoisted_3$d))
7079
- ], 64)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_4$a, _cache[0] || (_cache[0] = [
7078
+ }, null, 12, _hoisted_3$1$1))
7079
+ ], 64)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_4$1$1, _cache[0] || (_cache[0] = [
7080
7080
  createElementVNode("span", { class: "font-icon" }, "image", -1)
7081
7081
  ]))) : createCommentVNode("", true);
7082
7082
  };
7083
7083
  }
7084
7084
  });
7085
+ const _hoisted_1$7$1 = ["href", "target"];
7086
+ const _hoisted_2$4$1 = ["alt", "src"];
7087
+ const _hoisted_3$d = ["alt", "src"];
7088
+ const _hoisted_4$a = ["poster"];
7089
+ const _hoisted_5$6 = ["src"];
7090
+ const _hoisted_6$6 = {
7091
+ key: 1,
7092
+ class: "placeholder"
7093
+ };
7094
+ const _hoisted_7$6 = { class: "font-icon" };
7095
+ const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
7096
+ __name: "PbMediaWidget",
7097
+ props: {
7098
+ part: {},
7099
+ placeholder: { type: Boolean }
7100
+ },
7101
+ setup(__props) {
7102
+ const props = __props;
7103
+ const pageBuilder = usePageBuilder();
7104
+ const media = computed(() => {
7105
+ var _a;
7106
+ return (_a = props.part.properties) == null ? void 0 : _a.media;
7107
+ });
7108
+ const altText = computed(() => {
7109
+ if (media.value && media.value.altText) {
7110
+ const locale = pageBuilder.getLocale();
7111
+ return media.value.altText[locale] || "";
7112
+ }
7113
+ return "";
7114
+ });
7115
+ const placeholderIcon = computed(() => {
7116
+ var _a;
7117
+ return ((_a = media.value) == null ? void 0 : _a.mediaType) === "Video" ? "smart_display" : "image";
7118
+ });
7119
+ const style = computed(() => {
7120
+ var _a;
7121
+ const media2 = (_a = props.part.properties) == null ? void 0 : _a.media;
7122
+ if (media2.width && media2.height) {
7123
+ return {
7124
+ aspectRatio: media2.width / media2.height
7125
+ };
7126
+ }
7127
+ return {};
7128
+ });
7129
+ return (_ctx, _cache) => {
7130
+ var _a, _b, _c, _d, _e, _f;
7131
+ return media.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
7132
+ media.value.mediaType === "Image" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
7133
+ ((_a = _ctx.part.properties) == null ? void 0 : _a.link) ? (openBlock(), createElementBlock("a", {
7134
+ key: 0,
7135
+ href: (_b = _ctx.part.properties) == null ? void 0 : _b.link,
7136
+ target: (_c = _ctx.part.properties) == null ? void 0 : _c.linkTarget
7137
+ }, [
7138
+ createElementVNode("img", {
7139
+ alt: altText.value,
7140
+ src: ((_d = _ctx.part.properties) == null ? void 0 : _d.media).url,
7141
+ style: normalizeStyle(style.value),
7142
+ class: "image"
7143
+ }, null, 12, _hoisted_2$4$1)
7144
+ ], 8, _hoisted_1$7$1)) : (openBlock(), createElementBlock("img", {
7145
+ key: 1,
7146
+ alt: altText.value,
7147
+ src: ((_e = _ctx.part.properties) == null ? void 0 : _e.media).url,
7148
+ style: normalizeStyle(style.value),
7149
+ class: "image"
7150
+ }, null, 12, _hoisted_3$d))
7151
+ ], 64)) : media.value.mediaType === "Video" ? (openBlock(), createElementBlock("video", {
7152
+ key: 1,
7153
+ ref: "video",
7154
+ poster: (_f = _ctx.part.properties) == null ? void 0 : _f.thumbnail,
7155
+ class: "video",
7156
+ controls: ""
7157
+ }, [
7158
+ createElementVNode("source", {
7159
+ src: `${media.value.url}#t=0.01`
7160
+ }, null, 8, _hoisted_5$6)
7161
+ ], 8, _hoisted_4$a)) : createCommentVNode("", true)
7162
+ ], 64)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_6$6, [
7163
+ createElementVNode("span", _hoisted_7$6, toDisplayString(placeholderIcon.value), 1)
7164
+ ])) : createCommentVNode("", true);
7165
+ };
7166
+ }
7167
+ });
7085
7168
  const _hoisted_1$6$1 = ["textContent"];
7086
7169
  const _hoisted_2$3$1 = {
7087
7170
  key: 1,
@@ -7243,7 +7326,7 @@ const _sfc_main$4$1 = /* @__PURE__ */ defineComponent({
7243
7326
  const isYTReady = ref(false);
7244
7327
  onMounted(() => {
7245
7328
  const interval = setInterval(() => {
7246
- if (window.YT) {
7329
+ if (window && window.YT) {
7247
7330
  isYTReady.value = true;
7248
7331
  clearInterval(interval);
7249
7332
  }
@@ -7279,13 +7362,13 @@ const defaultPartDefinitions = {
7279
7362
  partType: "Section",
7280
7363
  partName: "Section",
7281
7364
  className: "pb-section",
7282
- creator: () => _sfc_main$9$1
7365
+ creator: () => _sfc_main$a$1
7283
7366
  },
7284
7367
  "Block": {
7285
7368
  partType: "Block",
7286
7369
  partName: "Block",
7287
7370
  className: "pb-block",
7288
- creator: () => _sfc_main$a$1
7371
+ creator: () => _sfc_main$b$1
7289
7372
  },
7290
7373
  "TextWidget": {
7291
7374
  partType: "Widget",
@@ -7297,6 +7380,12 @@ const defaultPartDefinitions = {
7297
7380
  partType: "Widget",
7298
7381
  partName: "ImageWidget",
7299
7382
  className: "pb-image-widget",
7383
+ creator: () => _sfc_main$9$1
7384
+ },
7385
+ "MediaWidget": {
7386
+ partType: "Widget",
7387
+ partName: "MediaWidget",
7388
+ className: "pb-media-widget",
7300
7389
  creator: () => _sfc_main$8$1
7301
7390
  },
7302
7391
  "HtmlWidget": {
@@ -7348,7 +7437,7 @@ class PageBuilderViewerImpl {
7348
7437
  plugin.widgets.forEach((v) => {
7349
7438
  const w = { ...v };
7350
7439
  w.partType = "Widget";
7351
- w.creator = () => _sfc_main$q;
7440
+ w.creator = () => _sfc_main$r;
7352
7441
  partDefinitions$1[v.partName] = w;
7353
7442
  });
7354
7443
  }
@@ -7490,7 +7579,7 @@ const _sfc_main$3$1 = /* @__PURE__ */ defineComponent({
7490
7579
  style: normalizeStyle(style.value)
7491
7580
  }, [
7492
7581
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (section) => {
7493
- return openBlock(), createBlock$1(_sfc_main$9$1, {
7582
+ return openBlock(), createBlock$1(_sfc_main$a$1, {
7494
7583
  key: section.partId,
7495
7584
  "is-mobile-page": _ctx.isMobilePage,
7496
7585
  part: section
@@ -7554,7 +7643,7 @@ const _sfc_main$2$1 = /* @__PURE__ */ defineComponent({
7554
7643
  };
7555
7644
  }
7556
7645
  });
7557
- const _hoisted_1$t = {
7646
+ const _hoisted_1$u = {
7558
7647
  key: 1,
7559
7648
  class: "placeholder",
7560
7649
  textContent: "Empty Widget"
@@ -7575,11 +7664,11 @@ const _sfc_main$1$1 = /* @__PURE__ */ defineComponent({
7575
7664
  key: child.part.partId,
7576
7665
  part: child.part
7577
7666
  }, null, 8, ["part"]);
7578
- }), 128)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_1$t)) : createCommentVNode("", true);
7667
+ }), 128)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_1$u)) : createCommentVNode("", true);
7579
7668
  };
7580
7669
  }
7581
7670
  });
7582
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
7671
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
7583
7672
  __name: "PbCustomWidget",
7584
7673
  props: {
7585
7674
  part: {},
@@ -8176,15 +8265,15 @@ class PartManager {
8176
8265
  const defaultPartPropertyEditors = () => {
8177
8266
  return {
8178
8267
  "readonly-text": () => defineAsyncComponent(() => import("./PbPropertyEditorReadonlyText-Dgp_AVOD.js")),
8179
- "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-CLz-HW0c.js")),
8268
+ "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-CHuYGiYv.js")),
8180
8269
  "number": () => defineAsyncComponent(() => import("./PbPropertyEditorNumber-TTgo0zbQ.js")),
8181
8270
  "boolean": () => defineAsyncComponent(() => import("./PbPropertyEditorBoolean-C7-iSAtn.js")),
8182
- "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-DHqDdVCb.js")),
8271
+ "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-CmOtpbXF.js")),
8183
8272
  "select": () => defineAsyncComponent(() => import("./PbPropertyEditorSelect-CWedbXJI.js")),
8184
- "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-DHIK8xLM.js")),
8185
- "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-DaQ6AzHk.js")),
8186
- "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-Jh4spLgs.js")),
8187
- "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-Dqi0T67b.js"))
8273
+ "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-B41u2J0P.js")),
8274
+ "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-Hfb9KA23.js")),
8275
+ "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-CVVHK_Aw.js")),
8276
+ "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-ei6b733c.js"))
8188
8277
  };
8189
8278
  };
8190
8279
  const getPropertyValueOfParts = (parts, propertyName) => {
@@ -8433,10 +8522,10 @@ const _export_sfc = (sfc, props) => {
8433
8522
  }
8434
8523
  return target;
8435
8524
  };
8436
- const _sfc_main$p = {};
8437
- const _hoisted_1$s = { class: "pb-add-widget-button" };
8525
+ const _sfc_main$q = {};
8526
+ const _hoisted_1$t = { class: "pb-add-widget-button" };
8438
8527
  function _sfc_render$1(_ctx, _cache) {
8439
- return openBlock(), createElementBlock("div", _hoisted_1$s, [
8528
+ return openBlock(), createElementBlock("div", _hoisted_1$t, [
8440
8529
  createElementVNode("button", {
8441
8530
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("add-widget", $event))
8442
8531
  }, _cache[1] || (_cache[1] = [
@@ -8445,7 +8534,7 @@ function _sfc_render$1(_ctx, _cache) {
8445
8534
  ]))
8446
8535
  ]);
8447
8536
  }
8448
- const PbAddWidgetButton = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$1]]);
8537
+ const PbAddWidgetButton = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$1]]);
8449
8538
  const MOUSE_TRACKER_KEY = "mouseTracker";
8450
8539
  const MOUSE_TRACKER_NOT_FOUND = "MouseTracker not found";
8451
8540
  class MouseTracker {
@@ -8473,8 +8562,8 @@ const useMouseTracker = () => {
8473
8562
  if (!mouseTracker) throw Error(MOUSE_TRACKER_NOT_FOUND);
8474
8563
  return mouseTracker;
8475
8564
  };
8476
- const _hoisted_1$r = ["data-part-id", "draggable"];
8477
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
8565
+ const _hoisted_1$s = ["data-part-id", "draggable"];
8566
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
8478
8567
  __name: "PbWidget",
8479
8568
  props: {
8480
8569
  part: {},
@@ -8910,15 +8999,15 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
8910
8999
  class: "resize-handle",
8911
9000
  onMousedown: resizeChild
8912
9001
  }, null, 32)) : createCommentVNode("", true)
8913
- ], 14, _hoisted_1$r)), [
9002
+ ], 14, _hoisted_1$s)), [
8914
9003
  [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
8915
9004
  ])
8916
9005
  ], 64);
8917
9006
  };
8918
9007
  }
8919
9008
  });
8920
- const _hoisted_1$q = ["data-part-id"];
8921
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
9009
+ const _hoisted_1$r = ["data-part-id"];
9010
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
8922
9011
  __name: "PbBlock",
8923
9012
  props: {
8924
9013
  part: {},
@@ -9109,27 +9198,27 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
9109
9198
  onAddWidget: addWidget
9110
9199
  })) : createCommentVNode("", true),
9111
9200
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (child) => {
9112
- return openBlock(), createBlock$1(_sfc_main$o, {
9201
+ return openBlock(), createBlock$1(_sfc_main$p, {
9113
9202
  key: child.partId,
9114
9203
  part: child
9115
9204
  }, null, 8, ["part"]);
9116
9205
  }), 128))
9117
- ], 16, _hoisted_1$q)), [
9206
+ ], 16, _hoisted_1$r)), [
9118
9207
  [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9119
9208
  ])
9120
9209
  ], 64);
9121
9210
  };
9122
9211
  }
9123
9212
  });
9124
- const _hoisted_1$p = { class: "pb-block" };
9125
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
9213
+ const _hoisted_1$q = { class: "pb-block" };
9214
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
9126
9215
  __name: "PbLoginDepart",
9127
9216
  props: {
9128
9217
  part: {}
9129
9218
  },
9130
9219
  setup(__props) {
9131
9220
  return (_ctx, _cache) => {
9132
- return openBlock(), createElementBlock("div", _hoisted_1$p, _cache[0] || (_cache[0] = [
9221
+ return openBlock(), createElementBlock("div", _hoisted_1$q, _cache[0] || (_cache[0] = [
9133
9222
  createElementVNode("div", {
9134
9223
  class: "pb-widget",
9135
9224
  style: { "margin": "0 auto" }
@@ -9142,8 +9231,8 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
9142
9231
  };
9143
9232
  }
9144
9233
  });
9145
- const _hoisted_1$o = ["data-part-id"];
9146
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
9234
+ const _hoisted_1$p = ["data-part-id"];
9235
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
9147
9236
  __name: "PbSection",
9148
9237
  props: {
9149
9238
  part: {},
@@ -9254,13 +9343,13 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
9254
9343
  style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
9255
9344
  }, properties.value), [
9256
9345
  ((_b = _ctx.part.properties) == null ? void 0 : _b.sectionType) === "static" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
9257
- ((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (openBlock(), createBlock$1(_sfc_main$m, {
9346
+ ((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (openBlock(), createBlock$1(_sfc_main$n, {
9258
9347
  key: 0,
9259
9348
  part: _ctx.part
9260
9349
  }, null, 8, ["part"])) : createCommentVNode("", true)
9261
9350
  ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
9262
9351
  _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (block) => {
9263
- return openBlock(), createBlock$1(_sfc_main$n, {
9352
+ return openBlock(), createBlock$1(_sfc_main$o, {
9264
9353
  key: block.partId,
9265
9354
  "is-mobile-page": _ctx.isMobilePage,
9266
9355
  part: block
@@ -9270,21 +9359,21 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
9270
9359
  onAddWidget: addWidget
9271
9360
  }))
9272
9361
  ], 64))
9273
- ], 16, _hoisted_1$o)), [
9362
+ ], 16, _hoisted_1$p)), [
9274
9363
  [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9275
9364
  ])
9276
9365
  ], 64);
9277
9366
  };
9278
9367
  }
9279
9368
  });
9280
- const _hoisted_1$n = { class: "group-editor group-editor-position" };
9369
+ const _hoisted_1$o = { class: "group-editor group-editor-position" };
9281
9370
  const _hoisted_2$f = { class: "flex-align-center" };
9282
9371
  const _hoisted_3$c = { class: "flex-grow-1" };
9283
9372
  const _hoisted_4$9 = { class: "bg-gray-100 py-5 rounded-8" };
9284
9373
  const _hoisted_5$5 = { class: "text-center" };
9285
9374
  const _hoisted_6$5 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
9286
9375
  const _hoisted_7$5 = { class: "text-center" };
9287
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
9376
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
9288
9377
  __name: "PbPropertyGroupEditorPosition",
9289
9378
  props: {
9290
9379
  group: {},
@@ -9308,7 +9397,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9308
9397
  const updateTop = (value) => updatePropertyValue({ top: value });
9309
9398
  const updateBottom = (value) => updatePropertyValue({ bottom: value });
9310
9399
  return (_ctx, _cache) => {
9311
- return openBlock(), createElementBlock("div", _hoisted_1$n, [
9400
+ return openBlock(), createElementBlock("div", _hoisted_1$o, [
9312
9401
  createElementVNode("div", _hoisted_2$f, [
9313
9402
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "title" }, [
9314
9403
  createElementVNode("label", { textContent: "Position" })
@@ -9362,14 +9451,14 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9362
9451
  };
9363
9452
  }
9364
9453
  });
9365
- const _hoisted_1$m = { class: "group-editor group-editor-size" };
9454
+ const _hoisted_1$n = { class: "group-editor group-editor-size" };
9366
9455
  const _hoisted_2$e = { class: "flex-align-center" };
9367
9456
  const _hoisted_3$b = { class: "flex-grow-1 bs-layout-horizontal" };
9368
9457
  const _hoisted_4$8 = { class: "flex-align-center mt-12" };
9369
9458
  const _hoisted_5$4 = { class: "flex-grow-1 bs-layout-horizontal" };
9370
9459
  const _hoisted_6$4 = { class: "flex-align-center mt-12" };
9371
9460
  const _hoisted_7$4 = { class: "flex-grow-1 bs-layout-horizontal" };
9372
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
9461
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9373
9462
  __name: "PbPropertyGroupEditorSize",
9374
9463
  props: {
9375
9464
  group: {},
@@ -9397,7 +9486,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
9397
9486
  const updateMinWidth = (value) => updatePropertyValue({ minWidth: value });
9398
9487
  const updateMinHeight = (value) => updatePropertyValue({ minHeight: value });
9399
9488
  return (_ctx, _cache) => {
9400
- return openBlock(), createElementBlock("div", _hoisted_1$m, [
9489
+ return openBlock(), createElementBlock("div", _hoisted_1$n, [
9401
9490
  createElementVNode("div", _hoisted_2$e, [
9402
9491
  _cache[0] || (_cache[0] = createElementVNode("div", { class: "title" }, [
9403
9492
  createElementVNode("label", { textContent: "Size" })
@@ -9615,7 +9704,7 @@ var script$4 = {
9615
9704
  }
9616
9705
  }
9617
9706
  };
9618
- const _hoisted_1$l = { class: "vc-alpha" };
9707
+ const _hoisted_1$m = { class: "vc-alpha" };
9619
9708
  const _hoisted_2$d = { class: "vc-alpha-checkboard-wrap" };
9620
9709
  const _hoisted_3$a = /* @__PURE__ */ createElementVNode(
9621
9710
  "div",
@@ -9629,7 +9718,7 @@ const _hoisted_4$7 = [
9629
9718
  ];
9630
9719
  function render$4(_ctx, _cache, $props, $setup, $data, $options) {
9631
9720
  const _component_Checkboard = resolveComponent("Checkboard");
9632
- return openBlock(), createElementBlock("div", _hoisted_1$l, [
9721
+ return openBlock(), createElementBlock("div", _hoisted_1$m, [
9633
9722
  createElementVNode("div", _hoisted_2$d, [
9634
9723
  createVNode(_component_Checkboard)
9635
9724
  ]),
@@ -10733,12 +10822,12 @@ var script$3 = {
10733
10822
  // }
10734
10823
  }
10735
10824
  };
10736
- const _hoisted_1$k = { class: "vc-editable-input" };
10825
+ const _hoisted_1$l = { class: "vc-editable-input" };
10737
10826
  const _hoisted_2$c = ["aria-labelledby"];
10738
10827
  const _hoisted_3$9 = ["id", "for"];
10739
10828
  const _hoisted_4$6 = { class: "vc-input__desc" };
10740
10829
  function render$3(_ctx, _cache, $props, $setup, $data, $options) {
10741
- return openBlock(), createElementBlock("div", _hoisted_1$k, [
10830
+ return openBlock(), createElementBlock("div", _hoisted_1$l, [
10742
10831
  withDirectives(createElementVNode("input", {
10743
10832
  ref: "input",
10744
10833
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $options.val = $event),
@@ -10833,7 +10922,7 @@ var script$2 = {
10833
10922
  }
10834
10923
  }
10835
10924
  };
10836
- const _hoisted_1$j = /* @__PURE__ */ createElementVNode(
10925
+ const _hoisted_1$k = /* @__PURE__ */ createElementVNode(
10837
10926
  "div",
10838
10927
  { class: "vc-saturation--white" },
10839
10928
  null,
@@ -10869,7 +10958,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
10869
10958
  onTouchstart: _cache[2] || (_cache[2] = (...args) => $options.handleChange && $options.handleChange(...args))
10870
10959
  },
10871
10960
  [
10872
- _hoisted_1$j,
10961
+ _hoisted_1$k,
10873
10962
  _hoisted_2$b,
10874
10963
  createElementVNode(
10875
10964
  "div",
@@ -11018,7 +11107,7 @@ var script$1 = {
11018
11107
  }
11019
11108
  }
11020
11109
  };
11021
- const _hoisted_1$i = ["aria-valuenow"];
11110
+ const _hoisted_1$j = ["aria-valuenow"];
11022
11111
  const _hoisted_2$a = /* @__PURE__ */ createElementVNode(
11023
11112
  "div",
11024
11113
  { class: "vc-hue-picker" },
@@ -11058,7 +11147,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
11058
11147
  4
11059
11148
  /* STYLE */
11060
11149
  )
11061
- ], 40, _hoisted_1$i)
11150
+ ], 40, _hoisted_1$j)
11062
11151
  ],
11063
11152
  2
11064
11153
  /* CLASS */
@@ -11154,7 +11243,7 @@ var script = {
11154
11243
  }
11155
11244
  }
11156
11245
  };
11157
- const _hoisted_1$h = { class: "vc-sketch-saturation-wrap" };
11246
+ const _hoisted_1$i = { class: "vc-sketch-saturation-wrap" };
11158
11247
  const _hoisted_2$9 = { class: "vc-sketch-controls" };
11159
11248
  const _hoisted_3$6 = { class: "vc-sketch-sliders" };
11160
11249
  const _hoisted_4$4 = { class: "vc-sketch-hue-wrap" };
@@ -11197,7 +11286,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
11197
11286
  class: normalizeClass(["vc-sketch", [$props.disableAlpha ? "vc-sketch__disable-alpha" : ""]])
11198
11287
  },
11199
11288
  [
11200
- createElementVNode("div", _hoisted_1$h, [
11289
+ createElementVNode("div", _hoisted_1$i, [
11201
11290
  createVNode(_component_Saturation, {
11202
11291
  value: _ctx.colors,
11203
11292
  onChange: $options.childChange
@@ -11309,7 +11398,7 @@ styleInject(css_248z);
11309
11398
  script.render = render;
11310
11399
  script.__file = "src/components/sketch/sketch.vue";
11311
11400
  script.install = install;
11312
- const _sfc_main$i = defineComponent({
11401
+ const _sfc_main$j = defineComponent({
11313
11402
  name: "PbColorPicker",
11314
11403
  components: {
11315
11404
  Sketch: script
@@ -11369,7 +11458,7 @@ const _sfc_main$i = defineComponent({
11369
11458
  };
11370
11459
  }
11371
11460
  });
11372
- const _hoisted_1$g = { class: "buttons" };
11461
+ const _hoisted_1$h = { class: "buttons" };
11373
11462
  const _hoisted_2$8 = { class: "sketch-wrap" };
11374
11463
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11375
11464
  const _component_Sketch = resolveComponent("Sketch");
@@ -11379,7 +11468,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11379
11468
  onKeydown: _cache[3] || (_cache[3] = withModifiers(() => {
11380
11469
  }, ["stop"]))
11381
11470
  }, [
11382
- createElementVNode("div", _hoisted_1$g, [
11471
+ createElementVNode("div", _hoisted_1$h, [
11383
11472
  renderSlot(_ctx.$slots, "button", normalizeProps(guardReactiveProps({ toggle: _ctx.toggle, color: _ctx.color })), () => [
11384
11473
  createElementVNode("button", {
11385
11474
  class: normalizeClass([{ none: !_ctx.color }, "picker-button"]),
@@ -11406,12 +11495,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11406
11495
  [_directive_click_outside, () => _ctx.toggle(false)]
11407
11496
  ]);
11408
11497
  }
11409
- const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render]]);
11410
- const _hoisted_1$f = { class: "group-editor group-editor-background" };
11498
+ const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render]]);
11499
+ const _hoisted_1$g = { class: "group-editor group-editor-background" };
11411
11500
  const _hoisted_2$7 = { class: "flex-align-center" };
11412
11501
  const _hoisted_3$5 = { class: "bs-layout-horizontal" };
11413
11502
  const _hoisted_4$3 = { class: "color" };
11414
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
11503
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
11415
11504
  __name: "PbPropertyGroupEditorBackground",
11416
11505
  props: {
11417
11506
  group: {},
@@ -11444,7 +11533,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
11444
11533
  }
11445
11534
  };
11446
11535
  return (_ctx, _cache) => {
11447
- return openBlock(), createElementBlock("div", _hoisted_1$f, [
11536
+ return openBlock(), createElementBlock("div", _hoisted_1$g, [
11448
11537
  createElementVNode("div", _hoisted_2$7, [
11449
11538
  _cache[3] || (_cache[3] = createElementVNode("div", { class: "title" }, [
11450
11539
  createElementVNode("label", { textContent: "Background" })
@@ -11479,7 +11568,7 @@ const TopLeftCornerIcon = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W
11479
11568
  const TopRightCornerIcon = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23000000'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cg%3e%3cpath%20fill='none'%20d='M0%200H24V24H0z'/%3e%3cpath%20d='M21%2019v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2H7v-2h2zm-4%200v2H3v-2h2zm16-4v2h-2v-2h2zM5%2015v2H3v-2h2zm0-4v2H3v-2h2zm11-8c2.687%200%204.882%202.124%204.995%204.783L21%208v5h-2V8c0-1.591-1.255-2.903-2.824-2.995L16%205h-5V3h5zM5%207v2H3V7h2zm0-4v2H3V3h2zm4%200v2H7V3h2z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
11480
11569
  const BottomLeftCornerIcon = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23000000'%20transform='rotate(180)'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cg%3e%3cpath%20fill='none'%20d='M0%200H24V24H0z'/%3e%3cpath%20d='M21%2019v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2H7v-2h2zm-4%200v2H3v-2h2zm16-4v2h-2v-2h2zM5%2015v2H3v-2h2zm0-4v2H3v-2h2zm11-8c2.687%200%204.882%202.124%204.995%204.783L21%208v5h-2V8c0-1.591-1.255-2.903-2.824-2.995L16%205h-5V3h5zM5%207v2H3V7h2zm0-4v2H3V3h2zm4%200v2H7V3h2z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
11481
11570
  const BottomRightCornerIcon = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23000000'%20transform='rotate(90)'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cg%3e%3cpath%20fill='none'%20d='M0%200H24V24H0z'/%3e%3cpath%20d='M21%2019v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2H7v-2h2zm-4%200v2H3v-2h2zm16-4v2h-2v-2h2zM5%2015v2H3v-2h2zm0-4v2H3v-2h2zm11-8c2.687%200%204.882%202.124%204.995%204.783L21%208v5h-2V8c0-1.591-1.255-2.903-2.824-2.995L16%205h-5V3h5zM5%207v2H3V7h2zm0-4v2H3V3h2zm4%200v2H7V3h2z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
11482
- const _hoisted_1$e = { class: "group-editor group-editor-border" };
11571
+ const _hoisted_1$f = { class: "group-editor group-editor-border" };
11483
11572
  const _hoisted_2$6 = { class: "flex-align-center" };
11484
11573
  const _hoisted_3$4 = { class: "" };
11485
11574
  const _hoisted_4$2 = { class: "color" };
@@ -11494,7 +11583,7 @@ const _hoisted_12 = { class: "flex-grow-1 mt-4" };
11494
11583
  const _hoisted_13 = { class: "bg-gray-100 py-5 rounded-8" };
11495
11584
  const _hoisted_14 = { class: "" };
11496
11585
  const _hoisted_15 = { class: "mt-2" };
11497
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
11586
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
11498
11587
  __name: "PbPropertyGroupEditorBorder",
11499
11588
  props: {
11500
11589
  group: {},
@@ -11532,7 +11621,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
11532
11621
  const updateBorderBottomLeftRadius = (value) => updatePropertyValue({ borderBottomLeftRadius: value });
11533
11622
  const updateBorderBottomRightRadius = (value) => updatePropertyValue({ borderBottomRightRadius: value });
11534
11623
  return (_ctx, _cache) => {
11535
- return openBlock(), createElementBlock("div", _hoisted_1$e, [
11624
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
11536
11625
  createElementVNode("div", _hoisted_2$6, [
11537
11626
  _cache[7] || (_cache[7] = createElementVNode("div", { class: "title" }, [
11538
11627
  createElementVNode("label", { textContent: "Border" })
@@ -11654,14 +11743,14 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
11654
11743
  };
11655
11744
  }
11656
11745
  });
11657
- const _hoisted_1$d = { class: "group-editor group-editor-margin" };
11746
+ const _hoisted_1$e = { class: "group-editor group-editor-margin" };
11658
11747
  const _hoisted_2$5 = { class: "flex-align-center" };
11659
11748
  const _hoisted_3$3 = { class: "flex-grow-1" };
11660
11749
  const _hoisted_4$1 = { class: "bg-gray-100 py-5 rounded-8" };
11661
11750
  const _hoisted_5$1 = { class: "text-center" };
11662
11751
  const _hoisted_6$1 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
11663
11752
  const _hoisted_7$1 = { class: "text-center" };
11664
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
11753
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
11665
11754
  __name: "PbPropertyGroupEditorMargin",
11666
11755
  props: {
11667
11756
  group: {},
@@ -11685,7 +11774,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
11685
11774
  const updateTop = (value) => updatePropertyValue({ marginTop: value });
11686
11775
  const updateBottom = (value) => updatePropertyValue({ marginBottom: value });
11687
11776
  return (_ctx, _cache) => {
11688
- return openBlock(), createElementBlock("div", _hoisted_1$d, [
11777
+ return openBlock(), createElementBlock("div", _hoisted_1$e, [
11689
11778
  createElementVNode("div", _hoisted_2$5, [
11690
11779
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "title" }, [
11691
11780
  createElementVNode("label", { textContent: "Margin" })
@@ -11739,14 +11828,14 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
11739
11828
  };
11740
11829
  }
11741
11830
  });
11742
- const _hoisted_1$c = { class: "group-editor group-editor-padding" };
11831
+ const _hoisted_1$d = { class: "group-editor group-editor-padding" };
11743
11832
  const _hoisted_2$4 = { class: "flex-align-center" };
11744
11833
  const _hoisted_3$2 = { class: "flex-grow-1" };
11745
11834
  const _hoisted_4 = { class: "bg-gray-100 py-5 rounded-8" };
11746
11835
  const _hoisted_5 = { class: "text-center" };
11747
11836
  const _hoisted_6 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
11748
11837
  const _hoisted_7 = { class: "text-center" };
11749
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
11838
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
11750
11839
  __name: "PbPropertyGroupEditorPadding",
11751
11840
  props: {
11752
11841
  group: {},
@@ -11770,7 +11859,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
11770
11859
  const updateTop = (value) => updatePropertyValue({ paddingTop: value });
11771
11860
  const updateBottom = (value) => updatePropertyValue({ paddingBottom: value });
11772
11861
  return (_ctx, _cache) => {
11773
- return openBlock(), createElementBlock("div", _hoisted_1$c, [
11862
+ return openBlock(), createElementBlock("div", _hoisted_1$d, [
11774
11863
  createElementVNode("div", _hoisted_2$4, [
11775
11864
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "title" }, [
11776
11865
  createElementVNode("label", { textContent: "Padding" })
@@ -11850,7 +11939,7 @@ const positionGroup = () => {
11850
11939
  propertyType: "text"
11851
11940
  }
11852
11941
  ],
11853
- propertyGroupEditor: () => _sfc_main$k
11942
+ propertyGroupEditor: () => _sfc_main$l
11854
11943
  };
11855
11944
  };
11856
11945
  const sizeGroup = () => {
@@ -11889,7 +11978,7 @@ const sizeGroup = () => {
11889
11978
  propertyType: "text"
11890
11979
  }
11891
11980
  ],
11892
- propertyGroupEditor: () => _sfc_main$j
11981
+ propertyGroupEditor: () => _sfc_main$k
11893
11982
  };
11894
11983
  };
11895
11984
  const marginGroup = () => {
@@ -11918,7 +12007,7 @@ const marginGroup = () => {
11918
12007
  propertyType: "text"
11919
12008
  }
11920
12009
  ],
11921
- propertyGroupEditor: () => _sfc_main$f
12010
+ propertyGroupEditor: () => _sfc_main$g
11922
12011
  };
11923
12012
  };
11924
12013
  const paddingGroup = () => {
@@ -11947,7 +12036,7 @@ const paddingGroup = () => {
11947
12036
  propertyType: "text"
11948
12037
  }
11949
12038
  ],
11950
- propertyGroupEditor: () => _sfc_main$e
12039
+ propertyGroupEditor: () => _sfc_main$f
11951
12040
  };
11952
12041
  };
11953
12042
  const commonGroup = () => {
@@ -12083,7 +12172,7 @@ const backgroundGroup = () => {
12083
12172
  propertyType: "image"
12084
12173
  }
12085
12174
  ],
12086
- propertyGroupEditor: () => _sfc_main$h
12175
+ propertyGroupEditor: () => _sfc_main$i
12087
12176
  };
12088
12177
  };
12089
12178
  const borderGroup = () => {
@@ -12137,7 +12226,7 @@ const borderGroup = () => {
12137
12226
  propertyType: "text"
12138
12227
  }
12139
12228
  ],
12140
- propertyGroupEditor: () => _sfc_main$g
12229
+ propertyGroupEditor: () => _sfc_main$h
12141
12230
  };
12142
12231
  };
12143
12232
  const defaultPropertyGroups = () => {
@@ -12146,7 +12235,7 @@ const defaultPropertyGroups = () => {
12146
12235
  const defaultWidgetPropertyGroups = () => {
12147
12236
  return [alignSelfGroup(), positionGroup(), sizeGroup(), marginGroup(), paddingGroup(), borderGroup(), backgroundGroup(), commonGroup()];
12148
12237
  };
12149
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
12238
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
12150
12239
  __name: "PbContainerWidget",
12151
12240
  props: {
12152
12241
  part: {},
@@ -12161,7 +12250,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
12161
12250
  var _a;
12162
12251
  return openBlock(), createElementBlock(Fragment, null, [
12163
12252
  _ctx.part.children ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (child) => {
12164
- return openBlock(), createBlock$1(_sfc_main$o, {
12253
+ return openBlock(), createBlock$1(_sfc_main$p, {
12165
12254
  key: child.partId,
12166
12255
  "is-mobile-page": false,
12167
12256
  part: child
@@ -12175,6 +12264,111 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
12175
12264
  };
12176
12265
  }
12177
12266
  });
12267
+ const _hoisted_1$c = { class: "group-editor group-editor-media" };
12268
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
12269
+ __name: "PbPropertyGroupEditorMedia",
12270
+ props: {
12271
+ property: {},
12272
+ value: {}
12273
+ },
12274
+ setup(__props) {
12275
+ const pageBuilder = usePageBuilderEditor();
12276
+ const part = pageBuilder.context.getSelectedParts();
12277
+ const modal = useModal();
12278
+ const selectMedia = () => {
12279
+ const imageProvider = pageBuilder.getProvider("imageProvider");
12280
+ if (imageProvider) {
12281
+ imageProvider({ modal }, (media2) => {
12282
+ if (media2.mediaType === "Image") {
12283
+ updateProperty({ media: media2, altText: media2.altText, thumbnail: "" });
12284
+ } else if (media2.mediaType === "Video") {
12285
+ updateProperty({ media: media2, altText: media2.altText, link: "", linkTarget: "" });
12286
+ }
12287
+ });
12288
+ }
12289
+ };
12290
+ const updateProperty = (properties) => {
12291
+ pageBuilder.commandRegistry.executeCommand(ChangePropertyCommand.COMMAND_ID, { properties, targetParts: part });
12292
+ };
12293
+ const locales = computed(() => pageBuilder.getLocales());
12294
+ const media = computed(() => {
12295
+ var _a, _b;
12296
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.media;
12297
+ });
12298
+ const altText = computed(() => {
12299
+ var _a, _b;
12300
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.altText;
12301
+ });
12302
+ const link = computed(() => {
12303
+ var _a, _b;
12304
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.link;
12305
+ });
12306
+ const linkTarget = computed(() => {
12307
+ var _a, _b;
12308
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.linkTarget;
12309
+ });
12310
+ const thumbnail = computed(() => {
12311
+ var _a, _b;
12312
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.thumbnail;
12313
+ });
12314
+ return (_ctx, _cache) => {
12315
+ var _a, _b;
12316
+ return openBlock(), createElementBlock("div", _hoisted_1$c, [
12317
+ _cache[8] || (_cache[8] = createElementVNode("div", { class: "title" }, [
12318
+ createElementVNode("label", { textContent: "Media" })
12319
+ ], -1)),
12320
+ createElementVNode("div", null, [
12321
+ createElementVNode("button", { onClick: selectMedia }, "Select Media")
12322
+ ]),
12323
+ ((_a = media.value) == null ? void 0 : _a.mediaType) === "Image" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
12324
+ _cache[4] || (_cache[4] = createElementVNode("div", { class: "title mt-12" }, [
12325
+ createElementVNode("label", { textContent: "Alt Text" })
12326
+ ], -1)),
12327
+ createElementVNode("div", null, [
12328
+ createVNode(unref(BSMultiLangTextInput), {
12329
+ locales: locales.value,
12330
+ "model-value": altText.value,
12331
+ width: "100%",
12332
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = (value) => updateProperty({ altText: value }))
12333
+ }, null, 8, ["locales", "model-value"])
12334
+ ]),
12335
+ _cache[5] || (_cache[5] = createElementVNode("div", { class: "title mt-12" }, [
12336
+ createElementVNode("label", { textContent: "Link" })
12337
+ ], -1)),
12338
+ createElementVNode("div", null, [
12339
+ createVNode(unref(BSTextInput), {
12340
+ "model-value": link.value,
12341
+ width: "100%",
12342
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = (value) => updateProperty({ link: value }))
12343
+ }, null, 8, ["model-value"])
12344
+ ]),
12345
+ _cache[6] || (_cache[6] = createElementVNode("div", { class: "title mt-12" }, [
12346
+ createElementVNode("label", { textContent: "Link Target" })
12347
+ ], -1)),
12348
+ createElementVNode("div", null, [
12349
+ createVNode(unref(BSTextInput), {
12350
+ "model-value": linkTarget.value,
12351
+ width: "100%",
12352
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = (value) => updateProperty({ linkTarget: value }))
12353
+ }, null, 8, ["model-value"])
12354
+ ])
12355
+ ], 64)) : createCommentVNode("", true),
12356
+ ((_b = media.value) == null ? void 0 : _b.mediaType) === "Video" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
12357
+ _cache[7] || (_cache[7] = createElementVNode("div", { class: "title mt-12" }, [
12358
+ createElementVNode("label", { textContent: "Thumbnail" })
12359
+ ], -1)),
12360
+ createElementVNode("div", null, [
12361
+ createVNode(unref(BSTextInput), {
12362
+ "model-value": thumbnail.value,
12363
+ width: "100%",
12364
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = (value) => updateProperty({ thumbnail: value }))
12365
+ }, null, 8, ["model-value"])
12366
+ ])
12367
+ ], 64)) : createCommentVNode("", true)
12368
+ ]);
12369
+ };
12370
+ }
12371
+ });
12178
12372
  const pageParts = [
12179
12373
  {
12180
12374
  partType: "Page",
@@ -12184,7 +12378,7 @@ const pageParts = [
12184
12378
  className: "pb-page",
12185
12379
  propertyGroups: [
12186
12380
  {
12187
- groupName: "size",
12381
+ groupName: "Size",
12188
12382
  caption: "Size",
12189
12383
  properties: [
12190
12384
  {
@@ -12204,7 +12398,7 @@ const pageParts = [
12204
12398
  alignItems: "center"
12205
12399
  },
12206
12400
  allowsChild: () => true,
12207
- creator: () => _sfc_main$l
12401
+ creator: () => _sfc_main$m
12208
12402
  }
12209
12403
  ];
12210
12404
  const sectionParts = [
@@ -12223,7 +12417,7 @@ const sectionParts = [
12223
12417
  justifyContent: "start"
12224
12418
  },
12225
12419
  allowsChild: () => true,
12226
- creator: () => _sfc_main$l
12420
+ creator: () => _sfc_main$m
12227
12421
  }
12228
12422
  ];
12229
12423
  const blockParts = [
@@ -12242,7 +12436,7 @@ const blockParts = [
12242
12436
  justifyContent: "start"
12243
12437
  },
12244
12438
  allowsChild: () => true,
12245
- creator: () => _sfc_main$n
12439
+ creator: () => _sfc_main$o
12246
12440
  }
12247
12441
  ];
12248
12442
  const widgets = [
@@ -12254,7 +12448,7 @@ const widgets = [
12254
12448
  className: "pb-text-widget",
12255
12449
  propertyGroups: [
12256
12450
  {
12257
- groupName: "text",
12451
+ groupName: "Text",
12258
12452
  caption: "Text",
12259
12453
  properties: [
12260
12454
  {
@@ -12308,11 +12502,11 @@ const widgets = [
12308
12502
  partType: "Widget",
12309
12503
  partName: "ImageWidget",
12310
12504
  caption: "Image",
12311
- icon: "imagesmode",
12505
+ icon: "image",
12312
12506
  className: "pb-image-widget",
12313
12507
  propertyGroups: [
12314
12508
  {
12315
- groupName: "image",
12509
+ groupName: "Image",
12316
12510
  caption: "Image",
12317
12511
  properties: [
12318
12512
  {
@@ -12346,6 +12540,53 @@ const widgets = [
12346
12540
  ],
12347
12541
  initialProperties: {},
12348
12542
  allowsChild: () => false,
12543
+ creator: () => _sfc_main$9$1
12544
+ },
12545
+ {
12546
+ partType: "Widget",
12547
+ partName: "MediaWidget",
12548
+ caption: "Media",
12549
+ icon: "smart_display",
12550
+ className: "pb-media-widget",
12551
+ propertyGroups: [
12552
+ {
12553
+ groupName: "Media",
12554
+ caption: "Media",
12555
+ properties: [
12556
+ {
12557
+ propertyName: "Media",
12558
+ caption: "Media",
12559
+ propertyType: "media"
12560
+ },
12561
+ {
12562
+ propertyName: "altText",
12563
+ caption: "Alt Text",
12564
+ propertyType: "text",
12565
+ multiLang: true
12566
+ },
12567
+ {
12568
+ propertyName: "link",
12569
+ caption: "Link",
12570
+ propertyType: "text"
12571
+ },
12572
+ {
12573
+ propertyName: "linkTarget",
12574
+ caption: "Link Target",
12575
+ propertyType: "text"
12576
+ },
12577
+ {
12578
+ propertyName: "thumbnail",
12579
+ caption: "Thumbnail URL",
12580
+ propertyType: "text",
12581
+ readonly: true
12582
+ }
12583
+ ],
12584
+ propertyGroupEditor: () => _sfc_main$d
12585
+ },
12586
+ ...defaultWidgetPropertyGroups()
12587
+ ],
12588
+ initialProperties: {},
12589
+ allowsChild: () => false,
12349
12590
  creator: () => _sfc_main$8$1
12350
12591
  },
12351
12592
  {
@@ -12356,7 +12597,7 @@ const widgets = [
12356
12597
  className: "pb-html-widget",
12357
12598
  propertyGroups: [
12358
12599
  {
12359
- groupName: "html",
12600
+ groupName: "HTML",
12360
12601
  caption: "HTML",
12361
12602
  properties: [
12362
12603
  {
@@ -12382,7 +12623,7 @@ const widgets = [
12382
12623
  className: "pb-iframe-widget",
12383
12624
  propertyGroups: [
12384
12625
  {
12385
- groupName: "iframe",
12626
+ groupName: "Iframe",
12386
12627
  caption: "Iframe",
12387
12628
  properties: [
12388
12629
  {
@@ -12408,7 +12649,7 @@ const widgets = [
12408
12649
  className: "pb-youtube-widget",
12409
12650
  propertyGroups: [
12410
12651
  {
12411
- groupName: "youtube",
12652
+ groupName: "Youtube",
12412
12653
  caption: "Youtube",
12413
12654
  properties: [
12414
12655
  {
@@ -12441,7 +12682,7 @@ const widgets = [
12441
12682
  className: "pb-container-widget",
12442
12683
  propertyGroups: [
12443
12684
  {
12444
- groupName: "container",
12685
+ groupName: "Container",
12445
12686
  caption: "Container",
12446
12687
  properties: []
12447
12688
  },
@@ -12451,7 +12692,7 @@ const widgets = [
12451
12692
  height: "300px"
12452
12693
  },
12453
12694
  allowsChild: () => true,
12454
- creator: () => _sfc_main$d
12695
+ creator: () => _sfc_main$e
12455
12696
  }
12456
12697
  ];
12457
12698
  const partDefinitions = {};
@@ -12538,7 +12779,7 @@ __publicField(_OpenAddWidgetModalCommand, "COMMAND_ID", "OpenAddWidgetModal");
12538
12779
  let OpenAddWidgetModalCommand = _OpenAddWidgetModalCommand;
12539
12780
  const openWidgetAddModal = (modal, args, callback) => {
12540
12781
  modal.openModal({
12541
- component: defineAsyncComponent(() => import("./PbWidgetAddModal-eVGTb1x1.js")),
12782
+ component: defineAsyncComponent(() => import("./PbWidgetAddModal-BcAVsLH4.js")),
12542
12783
  style: {
12543
12784
  width: "80%",
12544
12785
  height: "80%",
@@ -13860,7 +14101,7 @@ class PageBuilderEditorImpl {
13860
14101
  group.partDefinitions.forEach((part) => {
13861
14102
  const p = { ...part };
13862
14103
  p.partType = "Widget";
13863
- p.creator = () => _sfc_main$q;
14104
+ p.creator = () => _sfc_main$r;
13864
14105
  p.propertyGroups = [...p.propertyGroups, ...defaultWidgetPropertyGroups()];
13865
14106
  partDefinitions2[p.partName] = p;
13866
14107
  g.partDefinitions.push(p);
@@ -14463,11 +14704,15 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
14463
14704
  group: _ctx.group,
14464
14705
  "selected-parts": _ctx.selectedParts
14465
14706
  }, null, 8, ["group", "selected-parts"])) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(_ctx.group.properties, (property) => {
14466
- return openBlock(), createBlock$1(_sfc_main$7, {
14467
- key: `${_ctx.partsKey}_${property.propertyName}`,
14468
- property,
14469
- "selected-parts": _ctx.selectedParts
14470
- }, null, 8, ["property", "selected-parts"]);
14707
+ return openBlock(), createElementBlock(Fragment, {
14708
+ key: `${_ctx.partsKey}_${property.propertyName}`
14709
+ }, [
14710
+ !property.readonly ? (openBlock(), createBlock$1(_sfc_main$7, {
14711
+ key: 0,
14712
+ property,
14713
+ "selected-parts": _ctx.selectedParts
14714
+ }, null, 8, ["property", "selected-parts"])) : createCommentVNode("", true)
14715
+ ], 64);
14471
14716
  }), 128))
14472
14717
  ], 64)) : createCommentVNode("", true)
14473
14718
  ]);
@@ -14593,7 +14838,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
14593
14838
  style: normalizeStyle(contentStyle.value)
14594
14839
  }, [
14595
14840
  (openBlock(true), createElementBlock(Fragment, null, renderList((_b = _ctx.part) == null ? void 0 : _b.children, (section, index) => {
14596
- return openBlock(), createBlock$1(_sfc_main$l, {
14841
+ return openBlock(), createBlock$1(_sfc_main$m, {
14597
14842
  key: section.partId,
14598
14843
  "is-mobile-page": _ctx.isMobilePage,
14599
14844
  part: section
@@ -14611,7 +14856,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
14611
14856
  };
14612
14857
  }
14613
14858
  });
14614
- const canvasStyle = '.pb-page-wrapper {\n margin: 0 auto;\n padding: 0;\n}\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\n.pb-page .pb-page-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\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\n.pb-page * {\n box-sizing: border-box;\n}\n\n.pb-add-widget-button {\n width: 100%;\n height: 100%;\n min-height: 200px;\n position: relative;\n}\n\n.pb-add-widget-button button {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n padding: 8px;\n background: none;\n border: none;\n cursor: pointer;\n}\n\n.pb-add-widget-button button:hover {\n background-color: #eeeeee;\n}\n\n.pb-add-widget-button .icon {\n font-size: 1rem;\n vertical-align: middle;\n}\n\n.pb-add-widget-button .text {\n font-size: 1rem;\n vertical-align: middle;\n margin-left: 0.4rem;\n}\n\n.pb-section {\n 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 background-color: #fff;\n}\n\n.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\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\n.pb-section.pb-section-static {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\n.pb-section.pb-section-static:after {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n.pb-section-static .pb-widget {\n outline: none;\n}\n\n.pb-block {\n display: flex;\n min-width: 1px;\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n outline: 1px dashed #ccc;\n}\n\n.pb-block:hover:not(:has(.pb-widget:hover)) {\n background-color: #f0f0f0;\n}\n\n.pb-block.selected::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\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\n.pb-widget * {\n pointer-events: none;\n}\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\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-widget .pan-handle {\n position: absolute;\n left: -6px;\n top: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: move;\n pointer-events: auto !important;\n}\n\n.pb-widget .resize-handle {\n position: absolute;\n right: -6px;\n bottom: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: nwse-resize;\n pointer-events: auto !important;\n}\n\n.pb-widget {\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n}\n\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-text-widget .text {\n color: #333;\n}\n\n.pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-image-widget {\n width: 100%;\n}\n\n.pb-image-widget .image {\n width: 100%;\n}\n\n.pb-image-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-image-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-html-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-html-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-iframe-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-iframe-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-youtube-widget {\n width: 100%;\n}\n\n.pb-youtube-widget .youtube {\n width: 100%;\n height: 100%;\n}\n\n.pb-youtube-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-youtube-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-container-widget {\n width: 100%;\n}\n\n.pb-container-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-container-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-product-list-widget {\n width: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-items: center;\n}\n\n.pb-product-list-widget .product-wrapper {\n width: 25%;\n}\n\n.pb-product-list-widget .product-wrapper .product {\n width: 95%;\n margin: 0 auto;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n.pb-product-list-widget .product-wrapper img {\n width: 100%;\n}\n\n.pb-product-list-widget .product-wrapper .name {\n margin-top: 8px;\n font-size: 14px;\n}\n\n.pb-product-list-widget .product-wrapper .price {\n margin-top: 8px;\n font-size: 14px;\n font-weight: bold;\n}\n\n.pb-product-list-widget .product-wrapper .empty {\n height: 200px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-product-list-widget .product-wrapper .empty span {\n font-size: 40px;\n color: #999;\n line-height: 200px;\n vertical-align: middle;\n}\n\n@media (max-width: 768px) {\n .pb-product-list-widget .product-wrapper {\n width: 50%;\n }\n}\n\n.mobile .pb-product-list-widget .product-wrapper {\n width: 50%;\n}\n\n.pb-login-widget {\n height: 200px;\n text-align: center;\n}\n\n.pb-login-widget h3 {\n padding: 0;\n margin: 0;\n font-size: 32px;\n font-weight: bold;\n color: #ccc;\n line-height: 200px;\n vertical-align: middle;\n}\n\nbody {\n margin: 0;\n padding: 0;\n background-color: #aaa;\n overflow: hidden;\n}\n\n.font-icon, .material-icons-outlined {\n font-family: "Material Symbols Outlined", monospace;\n font-size: 1rem;\n max-width: 1em;\n}\n\n.pb-position-mark {\n background-color: #ff3333;\n opacity: 0.5;\n border-radius: 2px;\n}\n\n.pb-add-section-handle {\n position: relative;\n text-align: center;\n cursor: pointer;\n z-index: 5;\n height: 0;\n}\n\n.pb-add-section-handle.top::before, .pb-add-section-handle.bottom::before, .pb-add-section-handle.middle::before {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.pb-add-section-handle.bottom {\n bottom: -32px;\n}\n\n.pb-add-section-handle:hover.top::before, .pb-add-section-handle:hover.bottom::before, .pb-add-section-handle:hover.middle::before,\n.pb-add-section-handle:hover > i {\n opacity: 1;\n}\n\n.pb-add-section-handle > i {\n 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}';
14859
+ const canvasStyle = '.pb-page-wrapper {\n margin: 0 auto;\n padding: 0;\n}\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\n.pb-page .pb-page-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\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\n.pb-page * {\n box-sizing: border-box;\n}\n\n.pb-add-widget-button {\n width: 100%;\n height: 100%;\n min-height: 200px;\n position: relative;\n}\n\n.pb-add-widget-button button {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n padding: 8px;\n background: none;\n border: none;\n cursor: pointer;\n}\n\n.pb-add-widget-button button:hover {\n background-color: #eeeeee;\n}\n\n.pb-add-widget-button .icon {\n font-size: 1rem;\n vertical-align: middle;\n}\n\n.pb-add-widget-button .text {\n font-size: 1rem;\n vertical-align: middle;\n margin-left: 0.4rem;\n}\n\n.pb-section {\n 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 background-color: #fff;\n}\n\n.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\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\n.pb-section.pb-section-static {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\n.pb-section.pb-section-static:after {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n.pb-section-static .pb-widget {\n outline: none;\n}\n\n.pb-block {\n display: flex;\n min-width: 1px;\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n outline: 1px dashed #ccc;\n}\n\n.pb-block:hover:not(:has(.pb-widget:hover)) {\n background-color: #f0f0f0;\n}\n\n.pb-block.selected::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\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\n.pb-widget * {\n pointer-events: none;\n}\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\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-widget .pan-handle {\n position: absolute;\n left: -6px;\n top: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: move;\n pointer-events: auto !important;\n}\n\n.pb-widget .resize-handle {\n position: absolute;\n right: -6px;\n bottom: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: nwse-resize;\n pointer-events: auto !important;\n}\n\n.pb-widget {\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n}\n\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-text-widget .text {\n color: #333;\n}\n\n.pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-image-widget {\n width: 100%;\n}\n\n.pb-image-widget .image {\n width: 100%;\n}\n\n.pb-image-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-image-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-media-widget {\n width: 100%;\n}\n\n.pb-media-widget .image {\n width: 100%;\n}\n\n.pb-media-widget .video {\n width: 100%;\n}\n\n.pb-media-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-media-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-html-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-html-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-iframe-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-iframe-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-youtube-widget {\n width: 100%;\n}\n\n.pb-youtube-widget .youtube {\n width: 100%;\n height: 100%;\n}\n\n.pb-youtube-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-youtube-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-container-widget {\n width: 100%;\n}\n\n.pb-container-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-container-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-product-list-widget {\n width: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-items: center;\n}\n\n.pb-product-list-widget .product-wrapper {\n width: 25%;\n}\n\n.pb-product-list-widget .product-wrapper .product {\n width: 95%;\n margin: 0 auto;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n.pb-product-list-widget .product-wrapper img {\n width: 100%;\n}\n\n.pb-product-list-widget .product-wrapper .name {\n margin-top: 8px;\n font-size: 14px;\n}\n\n.pb-product-list-widget .product-wrapper .price {\n margin-top: 8px;\n font-size: 14px;\n font-weight: bold;\n}\n\n.pb-product-list-widget .product-wrapper .empty {\n height: 200px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-product-list-widget .product-wrapper .empty span {\n font-size: 40px;\n color: #999;\n line-height: 200px;\n vertical-align: middle;\n}\n\n@media (max-width: 768px) {\n .pb-product-list-widget .product-wrapper {\n width: 50%;\n }\n}\n\n.mobile .pb-product-list-widget .product-wrapper {\n width: 50%;\n}\n\n.pb-login-widget {\n height: 200px;\n text-align: center;\n}\n\n.pb-login-widget h3 {\n padding: 0;\n margin: 0;\n font-size: 32px;\n font-weight: bold;\n color: #ccc;\n line-height: 200px;\n vertical-align: middle;\n}\n\nbody {\n margin: 0;\n padding: 0;\n background-color: #aaa;\n overflow: hidden;\n}\n\n.font-icon, .material-icons-outlined {\n font-family: "Material Symbols Outlined", monospace;\n font-size: 1rem;\n max-width: 1em;\n}\n\n.pb-position-mark {\n background-color: #ff3333;\n opacity: 0.5;\n border-radius: 2px;\n}\n\n.pb-add-section-handle {\n position: relative;\n text-align: center;\n cursor: pointer;\n z-index: 5;\n height: 0;\n}\n\n.pb-add-section-handle.top::before, .pb-add-section-handle.bottom::before, .pb-add-section-handle.middle::before {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.pb-add-section-handle.bottom {\n bottom: -32px;\n}\n\n.pb-add-section-handle:hover.top::before, .pb-add-section-handle:hover.bottom::before, .pb-add-section-handle:hover.middle::before,\n.pb-add-section-handle:hover > i {\n opacity: 1;\n}\n\n.pb-add-section-handle > i {\n 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}';
14615
14860
  const _hoisted_1$2 = ["width"];
14616
14861
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
14617
14862
  __name: "PbPageFrame",
@@ -14846,9 +15091,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
14846
15091
  }
14847
15092
  });
14848
15093
  export {
14849
- usePageBuilder as A,
15094
+ providePageBuilderViewer as A,
14850
15095
  BLOCK_TYPE$1 as B,
14851
- usePageBuilderViewer as C,
15096
+ usePageBuilder as C,
15097
+ usePageBuilderViewer as D,
14852
15098
  Model$1 as M,
14853
15099
  PbColorPicker as P,
14854
15100
  ROOT_TYPE$1 as R,
@@ -14863,22 +15109,22 @@ export {
14863
15109
  _sfc_main$2$1 as f,
14864
15110
  Part as g,
14865
15111
  _sfc_main$1$1 as h,
14866
- _sfc_main$q as i,
15112
+ _sfc_main$r as i,
14867
15113
  _sfc_main$6$1 as j,
14868
15114
  _sfc_main$5$1 as k,
14869
- _sfc_main$8$1 as l,
14870
- _sfc_main$7$1 as m,
14871
- _sfc_main$4$1 as n,
14872
- RootPart as o,
14873
- Section as p,
14874
- Widget as q,
14875
- createPageBuilderViewer as r,
15115
+ _sfc_main$9$1 as l,
15116
+ _sfc_main$8$1 as m,
15117
+ _sfc_main$7$1 as n,
15118
+ _sfc_main$4$1 as o,
15119
+ RootPart as p,
15120
+ Section as q,
15121
+ Widget as r,
14876
15122
  selectYoutubeVideo as s,
14877
- createPartComponent as t,
15123
+ createPageBuilderViewer as t,
14878
15124
  usePageBuilderEditor as u,
14879
- createPartComponents as v,
15125
+ createPartComponent as v,
14880
15126
  widgetPartDefinitions as w,
14881
- getPartClassName as x,
14882
- providePageBuilder as y,
14883
- providePageBuilderViewer as z
15127
+ createPartComponents as x,
15128
+ getPartClassName as y,
15129
+ providePageBuilder as z
14884
15130
  };