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

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: {},
@@ -7994,7 +8083,10 @@ class Model2 {
7994
8083
  return node;
7995
8084
  }
7996
8085
  setElementAttribute(node, name, value) {
7997
- if (!value || typeof value === "string") {
8086
+ if (value === void 0 || value === null || value === "") {
8087
+ node.removeAttribute(name);
8088
+ node.removeAttribute(`${name}.object`);
8089
+ } else if (!value || typeof value === "string") {
7998
8090
  node.setAttribute(name, value ? value : "");
7999
8091
  } else if (typeof value === "object") {
8000
8092
  node.setAttribute(`${name}.object`, JSON.stringify(value));
@@ -8176,15 +8268,15 @@ class PartManager {
8176
8268
  const defaultPartPropertyEditors = () => {
8177
8269
  return {
8178
8270
  "readonly-text": () => defineAsyncComponent(() => import("./PbPropertyEditorReadonlyText-Dgp_AVOD.js")),
8179
- "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-CLz-HW0c.js")),
8271
+ "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-CtHSUEX_.js")),
8180
8272
  "number": () => defineAsyncComponent(() => import("./PbPropertyEditorNumber-TTgo0zbQ.js")),
8181
8273
  "boolean": () => defineAsyncComponent(() => import("./PbPropertyEditorBoolean-C7-iSAtn.js")),
8182
- "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-DHqDdVCb.js")),
8274
+ "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-BeOlO8l-.js")),
8183
8275
  "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"))
8276
+ "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-DLlgxhjM.js")),
8277
+ "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-CIRglunW.js")),
8278
+ "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-BXuxLbsP.js")),
8279
+ "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-yWHO0Z_y.js"))
8188
8280
  };
8189
8281
  };
8190
8282
  const getPropertyValueOfParts = (parts, propertyName) => {
@@ -8433,10 +8525,10 @@ const _export_sfc = (sfc, props) => {
8433
8525
  }
8434
8526
  return target;
8435
8527
  };
8436
- const _sfc_main$p = {};
8437
- const _hoisted_1$s = { class: "pb-add-widget-button" };
8528
+ const _sfc_main$q = {};
8529
+ const _hoisted_1$t = { class: "pb-add-widget-button" };
8438
8530
  function _sfc_render$1(_ctx, _cache) {
8439
- return openBlock(), createElementBlock("div", _hoisted_1$s, [
8531
+ return openBlock(), createElementBlock("div", _hoisted_1$t, [
8440
8532
  createElementVNode("button", {
8441
8533
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("add-widget", $event))
8442
8534
  }, _cache[1] || (_cache[1] = [
@@ -8445,7 +8537,7 @@ function _sfc_render$1(_ctx, _cache) {
8445
8537
  ]))
8446
8538
  ]);
8447
8539
  }
8448
- const PbAddWidgetButton = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$1]]);
8540
+ const PbAddWidgetButton = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$1]]);
8449
8541
  const MOUSE_TRACKER_KEY = "mouseTracker";
8450
8542
  const MOUSE_TRACKER_NOT_FOUND = "MouseTracker not found";
8451
8543
  class MouseTracker {
@@ -8473,8 +8565,8 @@ const useMouseTracker = () => {
8473
8565
  if (!mouseTracker) throw Error(MOUSE_TRACKER_NOT_FOUND);
8474
8566
  return mouseTracker;
8475
8567
  };
8476
- const _hoisted_1$r = ["data-part-id", "draggable"];
8477
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
8568
+ const _hoisted_1$s = ["data-part-id", "draggable"];
8569
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
8478
8570
  __name: "PbWidget",
8479
8571
  props: {
8480
8572
  part: {},
@@ -8910,15 +9002,15 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
8910
9002
  class: "resize-handle",
8911
9003
  onMousedown: resizeChild
8912
9004
  }, null, 32)) : createCommentVNode("", true)
8913
- ], 14, _hoisted_1$r)), [
9005
+ ], 14, _hoisted_1$s)), [
8914
9006
  [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
8915
9007
  ])
8916
9008
  ], 64);
8917
9009
  };
8918
9010
  }
8919
9011
  });
8920
- const _hoisted_1$q = ["data-part-id"];
8921
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
9012
+ const _hoisted_1$r = ["data-part-id"];
9013
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
8922
9014
  __name: "PbBlock",
8923
9015
  props: {
8924
9016
  part: {},
@@ -9109,27 +9201,27 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
9109
9201
  onAddWidget: addWidget
9110
9202
  })) : createCommentVNode("", true),
9111
9203
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (child) => {
9112
- return openBlock(), createBlock$1(_sfc_main$o, {
9204
+ return openBlock(), createBlock$1(_sfc_main$p, {
9113
9205
  key: child.partId,
9114
9206
  part: child
9115
9207
  }, null, 8, ["part"]);
9116
9208
  }), 128))
9117
- ], 16, _hoisted_1$q)), [
9209
+ ], 16, _hoisted_1$r)), [
9118
9210
  [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9119
9211
  ])
9120
9212
  ], 64);
9121
9213
  };
9122
9214
  }
9123
9215
  });
9124
- const _hoisted_1$p = { class: "pb-block" };
9125
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
9216
+ const _hoisted_1$q = { class: "pb-block" };
9217
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
9126
9218
  __name: "PbLoginDepart",
9127
9219
  props: {
9128
9220
  part: {}
9129
9221
  },
9130
9222
  setup(__props) {
9131
9223
  return (_ctx, _cache) => {
9132
- return openBlock(), createElementBlock("div", _hoisted_1$p, _cache[0] || (_cache[0] = [
9224
+ return openBlock(), createElementBlock("div", _hoisted_1$q, _cache[0] || (_cache[0] = [
9133
9225
  createElementVNode("div", {
9134
9226
  class: "pb-widget",
9135
9227
  style: { "margin": "0 auto" }
@@ -9142,8 +9234,8 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
9142
9234
  };
9143
9235
  }
9144
9236
  });
9145
- const _hoisted_1$o = ["data-part-id"];
9146
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
9237
+ const _hoisted_1$p = ["data-part-id"];
9238
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
9147
9239
  __name: "PbSection",
9148
9240
  props: {
9149
9241
  part: {},
@@ -9254,13 +9346,13 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
9254
9346
  style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
9255
9347
  }, properties.value), [
9256
9348
  ((_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, {
9349
+ ((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (openBlock(), createBlock$1(_sfc_main$n, {
9258
9350
  key: 0,
9259
9351
  part: _ctx.part
9260
9352
  }, null, 8, ["part"])) : createCommentVNode("", true)
9261
9353
  ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
9262
9354
  _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, {
9355
+ return openBlock(), createBlock$1(_sfc_main$o, {
9264
9356
  key: block.partId,
9265
9357
  "is-mobile-page": _ctx.isMobilePage,
9266
9358
  part: block
@@ -9270,21 +9362,21 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
9270
9362
  onAddWidget: addWidget
9271
9363
  }))
9272
9364
  ], 64))
9273
- ], 16, _hoisted_1$o)), [
9365
+ ], 16, _hoisted_1$p)), [
9274
9366
  [unref(vPartHandler), { pageBuilder: unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9275
9367
  ])
9276
9368
  ], 64);
9277
9369
  };
9278
9370
  }
9279
9371
  });
9280
- const _hoisted_1$n = { class: "group-editor group-editor-position" };
9372
+ const _hoisted_1$o = { class: "group-editor group-editor-position" };
9281
9373
  const _hoisted_2$f = { class: "flex-align-center" };
9282
9374
  const _hoisted_3$c = { class: "flex-grow-1" };
9283
9375
  const _hoisted_4$9 = { class: "bg-gray-100 py-5 rounded-8" };
9284
9376
  const _hoisted_5$5 = { class: "text-center" };
9285
9377
  const _hoisted_6$5 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
9286
9378
  const _hoisted_7$5 = { class: "text-center" };
9287
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
9379
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
9288
9380
  __name: "PbPropertyGroupEditorPosition",
9289
9381
  props: {
9290
9382
  group: {},
@@ -9308,7 +9400,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9308
9400
  const updateTop = (value) => updatePropertyValue({ top: value });
9309
9401
  const updateBottom = (value) => updatePropertyValue({ bottom: value });
9310
9402
  return (_ctx, _cache) => {
9311
- return openBlock(), createElementBlock("div", _hoisted_1$n, [
9403
+ return openBlock(), createElementBlock("div", _hoisted_1$o, [
9312
9404
  createElementVNode("div", _hoisted_2$f, [
9313
9405
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "title" }, [
9314
9406
  createElementVNode("label", { textContent: "Position" })
@@ -9362,14 +9454,14 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9362
9454
  };
9363
9455
  }
9364
9456
  });
9365
- const _hoisted_1$m = { class: "group-editor group-editor-size" };
9457
+ const _hoisted_1$n = { class: "group-editor group-editor-size" };
9366
9458
  const _hoisted_2$e = { class: "flex-align-center" };
9367
9459
  const _hoisted_3$b = { class: "flex-grow-1 bs-layout-horizontal" };
9368
9460
  const _hoisted_4$8 = { class: "flex-align-center mt-12" };
9369
9461
  const _hoisted_5$4 = { class: "flex-grow-1 bs-layout-horizontal" };
9370
9462
  const _hoisted_6$4 = { class: "flex-align-center mt-12" };
9371
9463
  const _hoisted_7$4 = { class: "flex-grow-1 bs-layout-horizontal" };
9372
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
9464
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9373
9465
  __name: "PbPropertyGroupEditorSize",
9374
9466
  props: {
9375
9467
  group: {},
@@ -9397,7 +9489,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
9397
9489
  const updateMinWidth = (value) => updatePropertyValue({ minWidth: value });
9398
9490
  const updateMinHeight = (value) => updatePropertyValue({ minHeight: value });
9399
9491
  return (_ctx, _cache) => {
9400
- return openBlock(), createElementBlock("div", _hoisted_1$m, [
9492
+ return openBlock(), createElementBlock("div", _hoisted_1$n, [
9401
9493
  createElementVNode("div", _hoisted_2$e, [
9402
9494
  _cache[0] || (_cache[0] = createElementVNode("div", { class: "title" }, [
9403
9495
  createElementVNode("label", { textContent: "Size" })
@@ -9615,7 +9707,7 @@ var script$4 = {
9615
9707
  }
9616
9708
  }
9617
9709
  };
9618
- const _hoisted_1$l = { class: "vc-alpha" };
9710
+ const _hoisted_1$m = { class: "vc-alpha" };
9619
9711
  const _hoisted_2$d = { class: "vc-alpha-checkboard-wrap" };
9620
9712
  const _hoisted_3$a = /* @__PURE__ */ createElementVNode(
9621
9713
  "div",
@@ -9629,7 +9721,7 @@ const _hoisted_4$7 = [
9629
9721
  ];
9630
9722
  function render$4(_ctx, _cache, $props, $setup, $data, $options) {
9631
9723
  const _component_Checkboard = resolveComponent("Checkboard");
9632
- return openBlock(), createElementBlock("div", _hoisted_1$l, [
9724
+ return openBlock(), createElementBlock("div", _hoisted_1$m, [
9633
9725
  createElementVNode("div", _hoisted_2$d, [
9634
9726
  createVNode(_component_Checkboard)
9635
9727
  ]),
@@ -10733,12 +10825,12 @@ var script$3 = {
10733
10825
  // }
10734
10826
  }
10735
10827
  };
10736
- const _hoisted_1$k = { class: "vc-editable-input" };
10828
+ const _hoisted_1$l = { class: "vc-editable-input" };
10737
10829
  const _hoisted_2$c = ["aria-labelledby"];
10738
10830
  const _hoisted_3$9 = ["id", "for"];
10739
10831
  const _hoisted_4$6 = { class: "vc-input__desc" };
10740
10832
  function render$3(_ctx, _cache, $props, $setup, $data, $options) {
10741
- return openBlock(), createElementBlock("div", _hoisted_1$k, [
10833
+ return openBlock(), createElementBlock("div", _hoisted_1$l, [
10742
10834
  withDirectives(createElementVNode("input", {
10743
10835
  ref: "input",
10744
10836
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $options.val = $event),
@@ -10833,7 +10925,7 @@ var script$2 = {
10833
10925
  }
10834
10926
  }
10835
10927
  };
10836
- const _hoisted_1$j = /* @__PURE__ */ createElementVNode(
10928
+ const _hoisted_1$k = /* @__PURE__ */ createElementVNode(
10837
10929
  "div",
10838
10930
  { class: "vc-saturation--white" },
10839
10931
  null,
@@ -10869,7 +10961,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
10869
10961
  onTouchstart: _cache[2] || (_cache[2] = (...args) => $options.handleChange && $options.handleChange(...args))
10870
10962
  },
10871
10963
  [
10872
- _hoisted_1$j,
10964
+ _hoisted_1$k,
10873
10965
  _hoisted_2$b,
10874
10966
  createElementVNode(
10875
10967
  "div",
@@ -11018,7 +11110,7 @@ var script$1 = {
11018
11110
  }
11019
11111
  }
11020
11112
  };
11021
- const _hoisted_1$i = ["aria-valuenow"];
11113
+ const _hoisted_1$j = ["aria-valuenow"];
11022
11114
  const _hoisted_2$a = /* @__PURE__ */ createElementVNode(
11023
11115
  "div",
11024
11116
  { class: "vc-hue-picker" },
@@ -11058,7 +11150,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
11058
11150
  4
11059
11151
  /* STYLE */
11060
11152
  )
11061
- ], 40, _hoisted_1$i)
11153
+ ], 40, _hoisted_1$j)
11062
11154
  ],
11063
11155
  2
11064
11156
  /* CLASS */
@@ -11154,7 +11246,7 @@ var script = {
11154
11246
  }
11155
11247
  }
11156
11248
  };
11157
- const _hoisted_1$h = { class: "vc-sketch-saturation-wrap" };
11249
+ const _hoisted_1$i = { class: "vc-sketch-saturation-wrap" };
11158
11250
  const _hoisted_2$9 = { class: "vc-sketch-controls" };
11159
11251
  const _hoisted_3$6 = { class: "vc-sketch-sliders" };
11160
11252
  const _hoisted_4$4 = { class: "vc-sketch-hue-wrap" };
@@ -11197,7 +11289,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
11197
11289
  class: normalizeClass(["vc-sketch", [$props.disableAlpha ? "vc-sketch__disable-alpha" : ""]])
11198
11290
  },
11199
11291
  [
11200
- createElementVNode("div", _hoisted_1$h, [
11292
+ createElementVNode("div", _hoisted_1$i, [
11201
11293
  createVNode(_component_Saturation, {
11202
11294
  value: _ctx.colors,
11203
11295
  onChange: $options.childChange
@@ -11309,7 +11401,7 @@ styleInject(css_248z);
11309
11401
  script.render = render;
11310
11402
  script.__file = "src/components/sketch/sketch.vue";
11311
11403
  script.install = install;
11312
- const _sfc_main$i = defineComponent({
11404
+ const _sfc_main$j = defineComponent({
11313
11405
  name: "PbColorPicker",
11314
11406
  components: {
11315
11407
  Sketch: script
@@ -11369,7 +11461,7 @@ const _sfc_main$i = defineComponent({
11369
11461
  };
11370
11462
  }
11371
11463
  });
11372
- const _hoisted_1$g = { class: "buttons" };
11464
+ const _hoisted_1$h = { class: "buttons" };
11373
11465
  const _hoisted_2$8 = { class: "sketch-wrap" };
11374
11466
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11375
11467
  const _component_Sketch = resolveComponent("Sketch");
@@ -11379,7 +11471,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11379
11471
  onKeydown: _cache[3] || (_cache[3] = withModifiers(() => {
11380
11472
  }, ["stop"]))
11381
11473
  }, [
11382
- createElementVNode("div", _hoisted_1$g, [
11474
+ createElementVNode("div", _hoisted_1$h, [
11383
11475
  renderSlot(_ctx.$slots, "button", normalizeProps(guardReactiveProps({ toggle: _ctx.toggle, color: _ctx.color })), () => [
11384
11476
  createElementVNode("button", {
11385
11477
  class: normalizeClass([{ none: !_ctx.color }, "picker-button"]),
@@ -11406,12 +11498,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11406
11498
  [_directive_click_outside, () => _ctx.toggle(false)]
11407
11499
  ]);
11408
11500
  }
11409
- const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render]]);
11410
- const _hoisted_1$f = { class: "group-editor group-editor-background" };
11501
+ const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render]]);
11502
+ const _hoisted_1$g = { class: "group-editor group-editor-background" };
11411
11503
  const _hoisted_2$7 = { class: "flex-align-center" };
11412
11504
  const _hoisted_3$5 = { class: "bs-layout-horizontal" };
11413
11505
  const _hoisted_4$3 = { class: "color" };
11414
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
11506
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
11415
11507
  __name: "PbPropertyGroupEditorBackground",
11416
11508
  props: {
11417
11509
  group: {},
@@ -11444,7 +11536,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
11444
11536
  }
11445
11537
  };
11446
11538
  return (_ctx, _cache) => {
11447
- return openBlock(), createElementBlock("div", _hoisted_1$f, [
11539
+ return openBlock(), createElementBlock("div", _hoisted_1$g, [
11448
11540
  createElementVNode("div", _hoisted_2$7, [
11449
11541
  _cache[3] || (_cache[3] = createElementVNode("div", { class: "title" }, [
11450
11542
  createElementVNode("label", { textContent: "Background" })
@@ -11479,7 +11571,7 @@ const TopLeftCornerIcon = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W
11479
11571
  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
11572
  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
11573
  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" };
11574
+ const _hoisted_1$f = { class: "group-editor group-editor-border" };
11483
11575
  const _hoisted_2$6 = { class: "flex-align-center" };
11484
11576
  const _hoisted_3$4 = { class: "" };
11485
11577
  const _hoisted_4$2 = { class: "color" };
@@ -11494,7 +11586,7 @@ const _hoisted_12 = { class: "flex-grow-1 mt-4" };
11494
11586
  const _hoisted_13 = { class: "bg-gray-100 py-5 rounded-8" };
11495
11587
  const _hoisted_14 = { class: "" };
11496
11588
  const _hoisted_15 = { class: "mt-2" };
11497
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
11589
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
11498
11590
  __name: "PbPropertyGroupEditorBorder",
11499
11591
  props: {
11500
11592
  group: {},
@@ -11532,7 +11624,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
11532
11624
  const updateBorderBottomLeftRadius = (value) => updatePropertyValue({ borderBottomLeftRadius: value });
11533
11625
  const updateBorderBottomRightRadius = (value) => updatePropertyValue({ borderBottomRightRadius: value });
11534
11626
  return (_ctx, _cache) => {
11535
- return openBlock(), createElementBlock("div", _hoisted_1$e, [
11627
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
11536
11628
  createElementVNode("div", _hoisted_2$6, [
11537
11629
  _cache[7] || (_cache[7] = createElementVNode("div", { class: "title" }, [
11538
11630
  createElementVNode("label", { textContent: "Border" })
@@ -11654,14 +11746,14 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
11654
11746
  };
11655
11747
  }
11656
11748
  });
11657
- const _hoisted_1$d = { class: "group-editor group-editor-margin" };
11749
+ const _hoisted_1$e = { class: "group-editor group-editor-margin" };
11658
11750
  const _hoisted_2$5 = { class: "flex-align-center" };
11659
11751
  const _hoisted_3$3 = { class: "flex-grow-1" };
11660
11752
  const _hoisted_4$1 = { class: "bg-gray-100 py-5 rounded-8" };
11661
11753
  const _hoisted_5$1 = { class: "text-center" };
11662
11754
  const _hoisted_6$1 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
11663
11755
  const _hoisted_7$1 = { class: "text-center" };
11664
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
11756
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
11665
11757
  __name: "PbPropertyGroupEditorMargin",
11666
11758
  props: {
11667
11759
  group: {},
@@ -11685,7 +11777,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
11685
11777
  const updateTop = (value) => updatePropertyValue({ marginTop: value });
11686
11778
  const updateBottom = (value) => updatePropertyValue({ marginBottom: value });
11687
11779
  return (_ctx, _cache) => {
11688
- return openBlock(), createElementBlock("div", _hoisted_1$d, [
11780
+ return openBlock(), createElementBlock("div", _hoisted_1$e, [
11689
11781
  createElementVNode("div", _hoisted_2$5, [
11690
11782
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "title" }, [
11691
11783
  createElementVNode("label", { textContent: "Margin" })
@@ -11739,14 +11831,14 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
11739
11831
  };
11740
11832
  }
11741
11833
  });
11742
- const _hoisted_1$c = { class: "group-editor group-editor-padding" };
11834
+ const _hoisted_1$d = { class: "group-editor group-editor-padding" };
11743
11835
  const _hoisted_2$4 = { class: "flex-align-center" };
11744
11836
  const _hoisted_3$2 = { class: "flex-grow-1" };
11745
11837
  const _hoisted_4 = { class: "bg-gray-100 py-5 rounded-8" };
11746
11838
  const _hoisted_5 = { class: "text-center" };
11747
11839
  const _hoisted_6 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
11748
11840
  const _hoisted_7 = { class: "text-center" };
11749
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
11841
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
11750
11842
  __name: "PbPropertyGroupEditorPadding",
11751
11843
  props: {
11752
11844
  group: {},
@@ -11770,7 +11862,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
11770
11862
  const updateTop = (value) => updatePropertyValue({ paddingTop: value });
11771
11863
  const updateBottom = (value) => updatePropertyValue({ paddingBottom: value });
11772
11864
  return (_ctx, _cache) => {
11773
- return openBlock(), createElementBlock("div", _hoisted_1$c, [
11865
+ return openBlock(), createElementBlock("div", _hoisted_1$d, [
11774
11866
  createElementVNode("div", _hoisted_2$4, [
11775
11867
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "title" }, [
11776
11868
  createElementVNode("label", { textContent: "Padding" })
@@ -11850,7 +11942,7 @@ const positionGroup = () => {
11850
11942
  propertyType: "text"
11851
11943
  }
11852
11944
  ],
11853
- propertyGroupEditor: () => _sfc_main$k
11945
+ propertyGroupEditor: () => _sfc_main$l
11854
11946
  };
11855
11947
  };
11856
11948
  const sizeGroup = () => {
@@ -11889,7 +11981,7 @@ const sizeGroup = () => {
11889
11981
  propertyType: "text"
11890
11982
  }
11891
11983
  ],
11892
- propertyGroupEditor: () => _sfc_main$j
11984
+ propertyGroupEditor: () => _sfc_main$k
11893
11985
  };
11894
11986
  };
11895
11987
  const marginGroup = () => {
@@ -11918,7 +12010,7 @@ const marginGroup = () => {
11918
12010
  propertyType: "text"
11919
12011
  }
11920
12012
  ],
11921
- propertyGroupEditor: () => _sfc_main$f
12013
+ propertyGroupEditor: () => _sfc_main$g
11922
12014
  };
11923
12015
  };
11924
12016
  const paddingGroup = () => {
@@ -11947,7 +12039,7 @@ const paddingGroup = () => {
11947
12039
  propertyType: "text"
11948
12040
  }
11949
12041
  ],
11950
- propertyGroupEditor: () => _sfc_main$e
12042
+ propertyGroupEditor: () => _sfc_main$f
11951
12043
  };
11952
12044
  };
11953
12045
  const commonGroup = () => {
@@ -12083,7 +12175,7 @@ const backgroundGroup = () => {
12083
12175
  propertyType: "image"
12084
12176
  }
12085
12177
  ],
12086
- propertyGroupEditor: () => _sfc_main$h
12178
+ propertyGroupEditor: () => _sfc_main$i
12087
12179
  };
12088
12180
  };
12089
12181
  const borderGroup = () => {
@@ -12137,7 +12229,7 @@ const borderGroup = () => {
12137
12229
  propertyType: "text"
12138
12230
  }
12139
12231
  ],
12140
- propertyGroupEditor: () => _sfc_main$g
12232
+ propertyGroupEditor: () => _sfc_main$h
12141
12233
  };
12142
12234
  };
12143
12235
  const defaultPropertyGroups = () => {
@@ -12146,7 +12238,7 @@ const defaultPropertyGroups = () => {
12146
12238
  const defaultWidgetPropertyGroups = () => {
12147
12239
  return [alignSelfGroup(), positionGroup(), sizeGroup(), marginGroup(), paddingGroup(), borderGroup(), backgroundGroup(), commonGroup()];
12148
12240
  };
12149
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
12241
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
12150
12242
  __name: "PbContainerWidget",
12151
12243
  props: {
12152
12244
  part: {},
@@ -12161,7 +12253,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
12161
12253
  var _a;
12162
12254
  return openBlock(), createElementBlock(Fragment, null, [
12163
12255
  _ctx.part.children ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (child) => {
12164
- return openBlock(), createBlock$1(_sfc_main$o, {
12256
+ return openBlock(), createBlock$1(_sfc_main$p, {
12165
12257
  key: child.partId,
12166
12258
  "is-mobile-page": false,
12167
12259
  part: child
@@ -12175,6 +12267,111 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
12175
12267
  };
12176
12268
  }
12177
12269
  });
12270
+ const _hoisted_1$c = { class: "group-editor group-editor-media" };
12271
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
12272
+ __name: "PbPropertyGroupEditorMedia",
12273
+ props: {
12274
+ property: {},
12275
+ value: {}
12276
+ },
12277
+ setup(__props) {
12278
+ const pageBuilder = usePageBuilderEditor();
12279
+ const part = pageBuilder.context.getSelectedParts();
12280
+ const modal = useModal();
12281
+ const selectMedia = () => {
12282
+ const imageProvider = pageBuilder.getProvider("imageProvider");
12283
+ if (imageProvider) {
12284
+ imageProvider({ modal }, (media2) => {
12285
+ if (media2.mediaType === "Image") {
12286
+ updateProperty({ media: media2, altText: media2.altText, thumbnail: "" });
12287
+ } else if (media2.mediaType === "Video") {
12288
+ updateProperty({ media: media2, altText: media2.altText, link: "", linkTarget: "" });
12289
+ }
12290
+ });
12291
+ }
12292
+ };
12293
+ const updateProperty = (properties) => {
12294
+ pageBuilder.commandRegistry.executeCommand(ChangePropertyCommand.COMMAND_ID, { properties, targetParts: part });
12295
+ };
12296
+ const locales = computed(() => pageBuilder.getLocales());
12297
+ const media = computed(() => {
12298
+ var _a, _b;
12299
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.media;
12300
+ });
12301
+ const altText = computed(() => {
12302
+ var _a, _b;
12303
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.altText;
12304
+ });
12305
+ const link = computed(() => {
12306
+ var _a, _b;
12307
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.link;
12308
+ });
12309
+ const linkTarget = computed(() => {
12310
+ var _a, _b;
12311
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.linkTarget;
12312
+ });
12313
+ const thumbnail = computed(() => {
12314
+ var _a, _b;
12315
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.thumbnail;
12316
+ });
12317
+ return (_ctx, _cache) => {
12318
+ var _a, _b;
12319
+ return openBlock(), createElementBlock("div", _hoisted_1$c, [
12320
+ _cache[8] || (_cache[8] = createElementVNode("div", { class: "title" }, [
12321
+ createElementVNode("label", { textContent: "Media" })
12322
+ ], -1)),
12323
+ createElementVNode("div", null, [
12324
+ createElementVNode("button", { onClick: selectMedia }, "Select Media")
12325
+ ]),
12326
+ ((_a = media.value) == null ? void 0 : _a.mediaType) === "Image" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
12327
+ _cache[4] || (_cache[4] = createElementVNode("div", { class: "title mt-12" }, [
12328
+ createElementVNode("label", { textContent: "Alt Text" })
12329
+ ], -1)),
12330
+ createElementVNode("div", null, [
12331
+ createVNode(unref(BSMultiLangTextInput), {
12332
+ locales: locales.value,
12333
+ "model-value": altText.value,
12334
+ width: "100%",
12335
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = (value) => updateProperty({ altText: value }))
12336
+ }, null, 8, ["locales", "model-value"])
12337
+ ]),
12338
+ _cache[5] || (_cache[5] = createElementVNode("div", { class: "title mt-12" }, [
12339
+ createElementVNode("label", { textContent: "Link" })
12340
+ ], -1)),
12341
+ createElementVNode("div", null, [
12342
+ createVNode(unref(BSTextInput), {
12343
+ "model-value": link.value,
12344
+ width: "100%",
12345
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = (value) => updateProperty({ link: value }))
12346
+ }, null, 8, ["model-value"])
12347
+ ]),
12348
+ _cache[6] || (_cache[6] = createElementVNode("div", { class: "title mt-12" }, [
12349
+ createElementVNode("label", { textContent: "Link Target" })
12350
+ ], -1)),
12351
+ createElementVNode("div", null, [
12352
+ createVNode(unref(BSTextInput), {
12353
+ "model-value": linkTarget.value,
12354
+ width: "100%",
12355
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = (value) => updateProperty({ linkTarget: value }))
12356
+ }, null, 8, ["model-value"])
12357
+ ])
12358
+ ], 64)) : createCommentVNode("", true),
12359
+ ((_b = media.value) == null ? void 0 : _b.mediaType) === "Video" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
12360
+ _cache[7] || (_cache[7] = createElementVNode("div", { class: "title mt-12" }, [
12361
+ createElementVNode("label", { textContent: "Thumbnail" })
12362
+ ], -1)),
12363
+ createElementVNode("div", null, [
12364
+ createVNode(unref(BSTextInput), {
12365
+ "model-value": thumbnail.value,
12366
+ width: "100%",
12367
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = (value) => updateProperty({ thumbnail: value }))
12368
+ }, null, 8, ["model-value"])
12369
+ ])
12370
+ ], 64)) : createCommentVNode("", true)
12371
+ ]);
12372
+ };
12373
+ }
12374
+ });
12178
12375
  const pageParts = [
12179
12376
  {
12180
12377
  partType: "Page",
@@ -12184,7 +12381,7 @@ const pageParts = [
12184
12381
  className: "pb-page",
12185
12382
  propertyGroups: [
12186
12383
  {
12187
- groupName: "size",
12384
+ groupName: "Size",
12188
12385
  caption: "Size",
12189
12386
  properties: [
12190
12387
  {
@@ -12204,7 +12401,7 @@ const pageParts = [
12204
12401
  alignItems: "center"
12205
12402
  },
12206
12403
  allowsChild: () => true,
12207
- creator: () => _sfc_main$l
12404
+ creator: () => _sfc_main$m
12208
12405
  }
12209
12406
  ];
12210
12407
  const sectionParts = [
@@ -12223,7 +12420,7 @@ const sectionParts = [
12223
12420
  justifyContent: "start"
12224
12421
  },
12225
12422
  allowsChild: () => true,
12226
- creator: () => _sfc_main$l
12423
+ creator: () => _sfc_main$m
12227
12424
  }
12228
12425
  ];
12229
12426
  const blockParts = [
@@ -12242,7 +12439,7 @@ const blockParts = [
12242
12439
  justifyContent: "start"
12243
12440
  },
12244
12441
  allowsChild: () => true,
12245
- creator: () => _sfc_main$n
12442
+ creator: () => _sfc_main$o
12246
12443
  }
12247
12444
  ];
12248
12445
  const widgets = [
@@ -12254,7 +12451,7 @@ const widgets = [
12254
12451
  className: "pb-text-widget",
12255
12452
  propertyGroups: [
12256
12453
  {
12257
- groupName: "text",
12454
+ groupName: "Text",
12258
12455
  caption: "Text",
12259
12456
  properties: [
12260
12457
  {
@@ -12308,11 +12505,11 @@ const widgets = [
12308
12505
  partType: "Widget",
12309
12506
  partName: "ImageWidget",
12310
12507
  caption: "Image",
12311
- icon: "imagesmode",
12508
+ icon: "image",
12312
12509
  className: "pb-image-widget",
12313
12510
  propertyGroups: [
12314
12511
  {
12315
- groupName: "image",
12512
+ groupName: "Image",
12316
12513
  caption: "Image",
12317
12514
  properties: [
12318
12515
  {
@@ -12346,6 +12543,53 @@ const widgets = [
12346
12543
  ],
12347
12544
  initialProperties: {},
12348
12545
  allowsChild: () => false,
12546
+ creator: () => _sfc_main$9$1
12547
+ },
12548
+ {
12549
+ partType: "Widget",
12550
+ partName: "MediaWidget",
12551
+ caption: "Media",
12552
+ icon: "smart_display",
12553
+ className: "pb-media-widget",
12554
+ propertyGroups: [
12555
+ {
12556
+ groupName: "Media",
12557
+ caption: "Media",
12558
+ properties: [
12559
+ {
12560
+ propertyName: "Media",
12561
+ caption: "Media",
12562
+ propertyType: "media"
12563
+ },
12564
+ {
12565
+ propertyName: "altText",
12566
+ caption: "Alt Text",
12567
+ propertyType: "text",
12568
+ multiLang: true
12569
+ },
12570
+ {
12571
+ propertyName: "link",
12572
+ caption: "Link",
12573
+ propertyType: "text"
12574
+ },
12575
+ {
12576
+ propertyName: "linkTarget",
12577
+ caption: "Link Target",
12578
+ propertyType: "text"
12579
+ },
12580
+ {
12581
+ propertyName: "thumbnail",
12582
+ caption: "Thumbnail URL",
12583
+ propertyType: "text",
12584
+ readonly: true
12585
+ }
12586
+ ],
12587
+ propertyGroupEditor: () => _sfc_main$d
12588
+ },
12589
+ ...defaultWidgetPropertyGroups()
12590
+ ],
12591
+ initialProperties: {},
12592
+ allowsChild: () => false,
12349
12593
  creator: () => _sfc_main$8$1
12350
12594
  },
12351
12595
  {
@@ -12356,7 +12600,7 @@ const widgets = [
12356
12600
  className: "pb-html-widget",
12357
12601
  propertyGroups: [
12358
12602
  {
12359
- groupName: "html",
12603
+ groupName: "HTML",
12360
12604
  caption: "HTML",
12361
12605
  properties: [
12362
12606
  {
@@ -12382,7 +12626,7 @@ const widgets = [
12382
12626
  className: "pb-iframe-widget",
12383
12627
  propertyGroups: [
12384
12628
  {
12385
- groupName: "iframe",
12629
+ groupName: "Iframe",
12386
12630
  caption: "Iframe",
12387
12631
  properties: [
12388
12632
  {
@@ -12408,7 +12652,7 @@ const widgets = [
12408
12652
  className: "pb-youtube-widget",
12409
12653
  propertyGroups: [
12410
12654
  {
12411
- groupName: "youtube",
12655
+ groupName: "Youtube",
12412
12656
  caption: "Youtube",
12413
12657
  properties: [
12414
12658
  {
@@ -12441,7 +12685,7 @@ const widgets = [
12441
12685
  className: "pb-container-widget",
12442
12686
  propertyGroups: [
12443
12687
  {
12444
- groupName: "container",
12688
+ groupName: "Container",
12445
12689
  caption: "Container",
12446
12690
  properties: []
12447
12691
  },
@@ -12451,7 +12695,7 @@ const widgets = [
12451
12695
  height: "300px"
12452
12696
  },
12453
12697
  allowsChild: () => true,
12454
- creator: () => _sfc_main$d
12698
+ creator: () => _sfc_main$e
12455
12699
  }
12456
12700
  ];
12457
12701
  const partDefinitions = {};
@@ -12538,7 +12782,7 @@ __publicField(_OpenAddWidgetModalCommand, "COMMAND_ID", "OpenAddWidgetModal");
12538
12782
  let OpenAddWidgetModalCommand = _OpenAddWidgetModalCommand;
12539
12783
  const openWidgetAddModal = (modal, args, callback) => {
12540
12784
  modal.openModal({
12541
- component: defineAsyncComponent(() => import("./PbWidgetAddModal-eVGTb1x1.js")),
12785
+ component: defineAsyncComponent(() => import("./PbWidgetAddModal-DkOxvb6V.js")),
12542
12786
  style: {
12543
12787
  width: "80%",
12544
12788
  height: "80%",
@@ -13860,7 +14104,7 @@ class PageBuilderEditorImpl {
13860
14104
  group.partDefinitions.forEach((part) => {
13861
14105
  const p = { ...part };
13862
14106
  p.partType = "Widget";
13863
- p.creator = () => _sfc_main$q;
14107
+ p.creator = () => _sfc_main$r;
13864
14108
  p.propertyGroups = [...p.propertyGroups, ...defaultWidgetPropertyGroups()];
13865
14109
  partDefinitions2[p.partName] = p;
13866
14110
  g.partDefinitions.push(p);
@@ -14463,11 +14707,15 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
14463
14707
  group: _ctx.group,
14464
14708
  "selected-parts": _ctx.selectedParts
14465
14709
  }, 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"]);
14710
+ return openBlock(), createElementBlock(Fragment, {
14711
+ key: `${_ctx.partsKey}_${property.propertyName}`
14712
+ }, [
14713
+ !property.readonly ? (openBlock(), createBlock$1(_sfc_main$7, {
14714
+ key: 0,
14715
+ property,
14716
+ "selected-parts": _ctx.selectedParts
14717
+ }, null, 8, ["property", "selected-parts"])) : createCommentVNode("", true)
14718
+ ], 64);
14471
14719
  }), 128))
14472
14720
  ], 64)) : createCommentVNode("", true)
14473
14721
  ]);
@@ -14593,7 +14841,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
14593
14841
  style: normalizeStyle(contentStyle.value)
14594
14842
  }, [
14595
14843
  (openBlock(true), createElementBlock(Fragment, null, renderList((_b = _ctx.part) == null ? void 0 : _b.children, (section, index) => {
14596
- return openBlock(), createBlock$1(_sfc_main$l, {
14844
+ return openBlock(), createBlock$1(_sfc_main$m, {
14597
14845
  key: section.partId,
14598
14846
  "is-mobile-page": _ctx.isMobilePage,
14599
14847
  part: section
@@ -14611,7 +14859,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
14611
14859
  };
14612
14860
  }
14613
14861
  });
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}';
14862
+ 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
14863
  const _hoisted_1$2 = ["width"];
14616
14864
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
14617
14865
  __name: "PbPageFrame",
@@ -14846,9 +15094,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
14846
15094
  }
14847
15095
  });
14848
15096
  export {
14849
- usePageBuilder as A,
15097
+ providePageBuilderViewer as A,
14850
15098
  BLOCK_TYPE$1 as B,
14851
- usePageBuilderViewer as C,
15099
+ usePageBuilder as C,
15100
+ usePageBuilderViewer as D,
14852
15101
  Model$1 as M,
14853
15102
  PbColorPicker as P,
14854
15103
  ROOT_TYPE$1 as R,
@@ -14863,22 +15112,22 @@ export {
14863
15112
  _sfc_main$2$1 as f,
14864
15113
  Part as g,
14865
15114
  _sfc_main$1$1 as h,
14866
- _sfc_main$q as i,
15115
+ _sfc_main$r as i,
14867
15116
  _sfc_main$6$1 as j,
14868
15117
  _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,
15118
+ _sfc_main$9$1 as l,
15119
+ _sfc_main$8$1 as m,
15120
+ _sfc_main$7$1 as n,
15121
+ _sfc_main$4$1 as o,
15122
+ RootPart as p,
15123
+ Section as q,
15124
+ Widget as r,
14876
15125
  selectYoutubeVideo as s,
14877
- createPartComponent as t,
15126
+ createPageBuilderViewer as t,
14878
15127
  usePageBuilderEditor as u,
14879
- createPartComponents as v,
15128
+ createPartComponent as v,
14880
15129
  widgetPartDefinitions as w,
14881
- getPartClassName as x,
14882
- providePageBuilder as y,
14883
- providePageBuilderViewer as z
15130
+ createPartComponents as x,
15131
+ getPartClassName as y,
15132
+ providePageBuilder as z
14884
15133
  };