@g1cloud/page-builder-editor 1.0.0-alpha.30 → 1.0.0-alpha.32

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.
@@ -6694,6 +6694,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6694
6694
  const align = ((_a = this.properties) == null ? void 0 : _a.align) || "center";
6695
6695
  if (this.isWidget()) {
6696
6696
  style.alignSelf = this.getAlignStyleValue(align);
6697
+ } else if (this.isPage()) {
6698
+ style.display = "flex";
6699
+ style.flexDirection = "column";
6700
+ style.alignItems = this.getAlignStyleValue(align);
6697
6701
  } else {
6698
6702
  const direction = isMobilePage ? (_b = this.properties) == null ? void 0 : _b.directionSm : (_c = this.properties) == null ? void 0 : _c.directionLg;
6699
6703
  if (direction === "horizontal") {
@@ -6725,10 +6729,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6725
6729
  if ((_r = this.properties) == null ? void 0 : _r.bottom) style.bottom = this.properties.bottom;
6726
6730
  if ((_s = this.properties) == null ? void 0 : _s.width) style.width = this.properties.width;
6727
6731
  if ((_t = this.properties) == null ? void 0 : _t.height) style.height = this.properties.height;
6728
- if ((_u = this.properties) == null ? void 0 : _u.maxWidth) style.width = this.properties.maxWidth;
6729
- if ((_v = this.properties) == null ? void 0 : _v.maxHeight) style.height = this.properties.maxHeight;
6730
- if ((_w = this.properties) == null ? void 0 : _w.minWidth) style.width = this.properties.minWidth;
6731
- if ((_x = this.properties) == null ? void 0 : _x.minHeight) style.height = this.properties.minHeight;
6732
+ if ((_u = this.properties) == null ? void 0 : _u.maxWidth) style.maxWidth = this.properties.maxWidth;
6733
+ if ((_v = this.properties) == null ? void 0 : _v.maxHeight) style.maxHeight = this.properties.maxHeight;
6734
+ if ((_w = this.properties) == null ? void 0 : _w.minWidth) style.minWidth = this.properties.minWidth;
6735
+ if ((_x = this.properties) == null ? void 0 : _x.minHeight) style.minHeight = this.properties.minHeight;
6732
6736
  if ((_y = this.properties) == null ? void 0 : _y.textAlign) style.textAlign = this.properties.textAlign;
6733
6737
  if ((_z = this.properties) == null ? void 0 : _z.backgroundColor) style.backgroundColor = this.properties.backgroundColor;
6734
6738
  if ((_A = this.properties) == null ? void 0 : _A.borderLeftWidth) style.borderLeftWidth = this.properties.borderLeftWidth;
@@ -6982,8 +6986,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6982
6986
  };
6983
6987
  }
6984
6988
  });
6985
- const _hoisted_1$7$1 = ["alt", "src"];
6986
- const _hoisted_2$4$1 = {
6989
+ const _hoisted_1$7$1 = ["href", "target"];
6990
+ const _hoisted_2$4$1 = ["alt", "src"];
6991
+ const _hoisted_3$o = ["alt", "src"];
6992
+ const _hoisted_4$e = {
6987
6993
  key: 1,
6988
6994
  class: "placeholder"
6989
6995
  };
@@ -7016,14 +7022,27 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7016
7022
  return {};
7017
7023
  });
7018
7024
  return (_ctx, _cache) => {
7019
- var _a, _b;
7020
- return ((_a = _ctx.part.properties) == null ? void 0 : _a.media) ? (vue.openBlock(), vue.createElementBlock("img", {
7021
- key: 0,
7022
- alt: altText.value,
7023
- src: ((_b = _ctx.part.properties) == null ? void 0 : _b.media).url,
7024
- style: vue.normalizeStyle(style.value),
7025
- class: "image"
7026
- }, null, 12, _hoisted_1$7$1)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$4$1, _cache[0] || (_cache[0] = [
7025
+ var _a, _b, _c, _d, _e, _f;
7026
+ return ((_a = _ctx.part.properties) == null ? void 0 : _a.media) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
7027
+ ((_b = _ctx.part.properties) == null ? void 0 : _b.link) ? (vue.openBlock(), vue.createElementBlock("a", {
7028
+ key: 0,
7029
+ href: (_c = _ctx.part.properties) == null ? void 0 : _c.link,
7030
+ target: (_d = _ctx.part.properties) == null ? void 0 : _d.linkTarget
7031
+ }, [
7032
+ vue.createElementVNode("img", {
7033
+ alt: altText.value,
7034
+ src: ((_e = _ctx.part.properties) == null ? void 0 : _e.media).url,
7035
+ style: vue.normalizeStyle(style.value),
7036
+ class: "image"
7037
+ }, null, 12, _hoisted_2$4$1)
7038
+ ], 8, _hoisted_1$7$1)) : (vue.openBlock(), vue.createElementBlock("img", {
7039
+ key: 1,
7040
+ alt: altText.value,
7041
+ src: ((_f = _ctx.part.properties) == null ? void 0 : _f.media).url,
7042
+ style: vue.normalizeStyle(style.value),
7043
+ class: "image"
7044
+ }, null, 12, _hoisted_3$o))
7045
+ ], 64)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$e, _cache[0] || (_cache[0] = [
7027
7046
  vue.createElementVNode("span", { class: "font-icon" }, "image", -1)
7028
7047
  ]))) : vue.createCommentVNode("", true);
7029
7048
  };
@@ -7270,7 +7289,7 @@ ${_html.style}
7270
7289
  plugin.widgets.forEach((v) => {
7271
7290
  const w = { ...v };
7272
7291
  w.partType = "Widget";
7273
- w.creator = () => _sfc_main$C;
7292
+ w.creator = () => _sfc_main$D;
7274
7293
  partDefinitions$1[v.partName] = w;
7275
7294
  });
7276
7295
  }
@@ -7428,7 +7447,7 @@ ${_html.style}
7428
7447
  }
7429
7448
  });
7430
7449
  const _hoisted_1$1$1 = ["innerHTML"];
7431
- const _hoisted_2$s = { class: "pb-viewer" };
7450
+ const _hoisted_2$t = { class: "pb-viewer" };
7432
7451
  const _sfc_main$2$1 = /* @__PURE__ */ vue.defineComponent({
7433
7452
  __name: "PageBuilderViewer",
7434
7453
  props: {
@@ -7469,7 +7488,7 @@ ${_html.style}
7469
7488
  key: 0,
7470
7489
  innerHTML: vue.unref(externalCss)
7471
7490
  }, null, 8, _hoisted_1$1$1)) : vue.createCommentVNode("", true),
7472
- vue.createElementVNode("div", _hoisted_2$s, [
7491
+ vue.createElementVNode("div", _hoisted_2$t, [
7473
7492
  part.value ? (vue.openBlock(), vue.createBlock(_sfc_main$3$1, {
7474
7493
  key: 0,
7475
7494
  "is-mobile-page": _ctx.isMobilePage,
@@ -7480,7 +7499,7 @@ ${_html.style}
7480
7499
  };
7481
7500
  }
7482
7501
  });
7483
- const _hoisted_1$F = {
7502
+ const _hoisted_1$G = {
7484
7503
  key: 1,
7485
7504
  class: "placeholder",
7486
7505
  textContent: "Empty Widget"
@@ -7501,11 +7520,11 @@ ${_html.style}
7501
7520
  key: child.part.partId,
7502
7521
  part: child.part
7503
7522
  }, null, 8, ["part"]);
7504
- }), 128)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$F)) : vue.createCommentVNode("", true);
7523
+ }), 128)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$G)) : vue.createCommentVNode("", true);
7505
7524
  };
7506
7525
  }
7507
7526
  });
7508
- const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
7527
+ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
7509
7528
  __name: "PbCustomWidget",
7510
7529
  props: {
7511
7530
  part: {},
@@ -8104,6 +8123,7 @@ ${_html.style}
8104
8123
  return {
8105
8124
  "readonly-text": () => vue.defineAsyncComponent(() => Promise.resolve().then(() => PbPropertyEditorReadonlyText)),
8106
8125
  "text": () => vue.defineAsyncComponent(() => Promise.resolve().then(() => PbPropertyEditorText)),
8126
+ "number": () => vue.defineAsyncComponent(() => Promise.resolve().then(() => PbPropertyEditorNumber)),
8107
8127
  "multiline-text": () => vue.defineAsyncComponent(() => Promise.resolve().then(() => PbPropertyEditorMultilineText)),
8108
8128
  "select": () => vue.defineAsyncComponent(() => Promise.resolve().then(() => PbPropertyEditorSelect)),
8109
8129
  "color": () => vue.defineAsyncComponent(() => Promise.resolve().then(() => PbPropertyEditorColor)),
@@ -8362,10 +8382,10 @@ ${_html.style}
8362
8382
  }
8363
8383
  return target;
8364
8384
  };
8365
- const _sfc_main$B = {};
8366
- const _hoisted_1$E = { class: "pb-add-widget-button" };
8385
+ const _sfc_main$C = {};
8386
+ const _hoisted_1$F = { class: "pb-add-widget-button" };
8367
8387
  function _sfc_render$1(_ctx, _cache) {
8368
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$E, [
8388
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$F, [
8369
8389
  vue.createElementVNode("button", {
8370
8390
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("add-widget", $event))
8371
8391
  }, _cache[1] || (_cache[1] = [
@@ -8374,7 +8394,7 @@ ${_html.style}
8374
8394
  ]))
8375
8395
  ]);
8376
8396
  }
8377
- const PbAddWidgetButton = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["render", _sfc_render$1]]);
8397
+ const PbAddWidgetButton = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["render", _sfc_render$1]]);
8378
8398
  const MOUSE_TRACKER_KEY = "mouseTracker";
8379
8399
  const MOUSE_TRACKER_NOT_FOUND = "MouseTracker not found";
8380
8400
  class MouseTracker {
@@ -8402,8 +8422,8 @@ ${_html.style}
8402
8422
  if (!mouseTracker) throw Error(MOUSE_TRACKER_NOT_FOUND);
8403
8423
  return mouseTracker;
8404
8424
  };
8405
- const _hoisted_1$D = ["data-part-id", "draggable"];
8406
- const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
8425
+ const _hoisted_1$E = ["data-part-id", "draggable"];
8426
+ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
8407
8427
  __name: "PbWidget",
8408
8428
  props: {
8409
8429
  part: {},
@@ -8839,15 +8859,15 @@ ${_html.style}
8839
8859
  class: "resize-handle",
8840
8860
  onMousedown: resizeChild
8841
8861
  }, null, 32)) : vue.createCommentVNode("", true)
8842
- ], 14, _hoisted_1$D)), [
8862
+ ], 14, _hoisted_1$E)), [
8843
8863
  [vue.unref(vPartHandler), { pageBuilder: vue.unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
8844
8864
  ])
8845
8865
  ], 64);
8846
8866
  };
8847
8867
  }
8848
8868
  });
8849
- const _hoisted_1$C = ["data-part-id"];
8850
- const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
8869
+ const _hoisted_1$D = ["data-part-id"];
8870
+ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
8851
8871
  __name: "PbBlock",
8852
8872
  props: {
8853
8873
  part: {},
@@ -9037,27 +9057,27 @@ ${_html.style}
9037
9057
  onAddWidget: addWidget
9038
9058
  })) : vue.createCommentVNode("", true),
9039
9059
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.part.children, (child) => {
9040
- return vue.openBlock(), vue.createBlock(_sfc_main$A, {
9060
+ return vue.openBlock(), vue.createBlock(_sfc_main$B, {
9041
9061
  key: child.partId,
9042
9062
  part: child
9043
9063
  }, null, 8, ["part"]);
9044
9064
  }), 128))
9045
- ], 16, _hoisted_1$C)), [
9065
+ ], 16, _hoisted_1$D)), [
9046
9066
  [vue.unref(vPartHandler), { pageBuilder: vue.unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9047
9067
  ])
9048
9068
  ], 64);
9049
9069
  };
9050
9070
  }
9051
9071
  });
9052
- const _hoisted_1$B = { class: "pb-block" };
9053
- const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
9072
+ const _hoisted_1$C = { class: "pb-block" };
9073
+ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
9054
9074
  __name: "PbLoginDepart",
9055
9075
  props: {
9056
9076
  part: {}
9057
9077
  },
9058
9078
  setup(__props) {
9059
9079
  return (_ctx, _cache) => {
9060
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$B, _cache[0] || (_cache[0] = [
9080
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$C, _cache[0] || (_cache[0] = [
9061
9081
  vue.createElementVNode("div", {
9062
9082
  class: "pb-widget",
9063
9083
  style: { "margin": "0 auto" }
@@ -9070,8 +9090,8 @@ ${_html.style}
9070
9090
  };
9071
9091
  }
9072
9092
  });
9073
- const _hoisted_1$A = ["data-part-id"];
9074
- const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
9093
+ const _hoisted_1$B = ["data-part-id"];
9094
+ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
9075
9095
  __name: "PbSection",
9076
9096
  props: {
9077
9097
  part: {},
@@ -9181,13 +9201,13 @@ ${_html.style}
9181
9201
  style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
9182
9202
  }, properties.value), [
9183
9203
  ((_b = _ctx.part.properties) == null ? void 0 : _b.sectionType) === "static" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
9184
- ((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
9204
+ ((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
9185
9205
  key: 0,
9186
9206
  part: _ctx.part
9187
9207
  }, null, 8, ["part"])) : vue.createCommentVNode("", true)
9188
9208
  ], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
9189
9209
  _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (block) => {
9190
- return vue.openBlock(), vue.createBlock(_sfc_main$z, {
9210
+ return vue.openBlock(), vue.createBlock(_sfc_main$A, {
9191
9211
  key: block.partId,
9192
9212
  "is-mobile-page": _ctx.isMobilePage,
9193
9213
  part: block
@@ -9197,21 +9217,21 @@ ${_html.style}
9197
9217
  onAddWidget: addWidget
9198
9218
  }))
9199
9219
  ], 64))
9200
- ], 16, _hoisted_1$A)), [
9220
+ ], 16, _hoisted_1$B)), [
9201
9221
  [vue.unref(vPartHandler), { pageBuilder: vue.unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
9202
9222
  ])
9203
9223
  ], 64);
9204
9224
  };
9205
9225
  }
9206
9226
  });
9207
- const _hoisted_1$z = { class: "group-editor group-editor-position" };
9208
- const _hoisted_2$r = { class: "flex-align-center" };
9209
- const _hoisted_3$m = { class: "flex-grow-1" };
9227
+ const _hoisted_1$A = { class: "group-editor group-editor-position" };
9228
+ const _hoisted_2$s = { class: "flex-align-center" };
9229
+ const _hoisted_3$n = { class: "flex-grow-1" };
9210
9230
  const _hoisted_4$d = { class: "bg-gray-100 py-5 rounded-8" };
9211
9231
  const _hoisted_5$7 = { class: "text-center" };
9212
9232
  const _hoisted_6$7 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
9213
9233
  const _hoisted_7$6 = { class: "text-center" };
9214
- const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
9234
+ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
9215
9235
  __name: "PbPropertyGroupEditorPosition",
9216
9236
  props: {
9217
9237
  group: {},
@@ -9235,12 +9255,12 @@ ${_html.style}
9235
9255
  const updateTop = (value) => updatePropertyValue({ top: value });
9236
9256
  const updateBottom = (value) => updatePropertyValue({ bottom: value });
9237
9257
  return (_ctx, _cache) => {
9238
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$z, [
9239
- vue.createElementVNode("div", _hoisted_2$r, [
9258
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$A, [
9259
+ vue.createElementVNode("div", _hoisted_2$s, [
9240
9260
  _cache[1] || (_cache[1] = vue.createElementVNode("div", { class: "title" }, [
9241
9261
  vue.createElementVNode("label", { textContent: "Position" })
9242
9262
  ], -1)),
9243
- vue.createElementVNode("div", _hoisted_3$m, [
9263
+ vue.createElementVNode("div", _hoisted_3$n, [
9244
9264
  vue.createElementVNode("div", _hoisted_4$d, [
9245
9265
  vue.createElementVNode("div", _hoisted_5$7, [
9246
9266
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
@@ -9289,14 +9309,14 @@ ${_html.style}
9289
9309
  };
9290
9310
  }
9291
9311
  });
9292
- const _hoisted_1$y = { class: "group-editor group-editor-size" };
9293
- const _hoisted_2$q = { class: "flex-align-center" };
9294
- const _hoisted_3$l = { class: "flex-grow-1 bs-layout-horizontal" };
9312
+ const _hoisted_1$z = { class: "group-editor group-editor-size" };
9313
+ const _hoisted_2$r = { class: "flex-align-center" };
9314
+ const _hoisted_3$m = { class: "flex-grow-1 bs-layout-horizontal" };
9295
9315
  const _hoisted_4$c = { class: "flex-align-center mt-12" };
9296
9316
  const _hoisted_5$6 = { class: "flex-grow-1 bs-layout-horizontal" };
9297
9317
  const _hoisted_6$6 = { class: "flex-align-center mt-12" };
9298
9318
  const _hoisted_7$5 = { class: "flex-grow-1 bs-layout-horizontal" };
9299
- const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
9319
+ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
9300
9320
  __name: "PbPropertyGroupEditorSize",
9301
9321
  props: {
9302
9322
  group: {},
@@ -9320,16 +9340,16 @@ ${_html.style}
9320
9340
  const updateWidth = (value) => updatePropertyValue({ width: value });
9321
9341
  const updateHeight = (value) => updatePropertyValue({ height: value });
9322
9342
  const updateMaxWidth = (value) => updatePropertyValue({ maxWidth: value });
9323
- const updateMaxHeight = (value) => updatePropertyValue({ maxWeight: value });
9343
+ const updateMaxHeight = (value) => updatePropertyValue({ maxHeight: value });
9324
9344
  const updateMinWidth = (value) => updatePropertyValue({ minWidth: value });
9325
9345
  const updateMinHeight = (value) => updatePropertyValue({ minHeight: value });
9326
9346
  return (_ctx, _cache) => {
9327
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$y, [
9328
- vue.createElementVNode("div", _hoisted_2$q, [
9347
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$z, [
9348
+ vue.createElementVNode("div", _hoisted_2$r, [
9329
9349
  _cache[0] || (_cache[0] = vue.createElementVNode("div", { class: "title" }, [
9330
9350
  vue.createElementVNode("label", { textContent: "Size" })
9331
9351
  ], -1)),
9332
- vue.createElementVNode("div", _hoisted_3$l, [
9352
+ vue.createElementVNode("div", _hoisted_3$m, [
9333
9353
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
9334
9354
  "model-value": width.value,
9335
9355
  class: "flex-grow-1 mr-2",
@@ -9542,9 +9562,9 @@ ${_html.style}
9542
9562
  }
9543
9563
  }
9544
9564
  };
9545
- const _hoisted_1$x = { class: "vc-alpha" };
9546
- const _hoisted_2$p = { class: "vc-alpha-checkboard-wrap" };
9547
- const _hoisted_3$k = /* @__PURE__ */ vue.createElementVNode(
9565
+ const _hoisted_1$y = { class: "vc-alpha" };
9566
+ const _hoisted_2$q = { class: "vc-alpha-checkboard-wrap" };
9567
+ const _hoisted_3$l = /* @__PURE__ */ vue.createElementVNode(
9548
9568
  "div",
9549
9569
  { class: "vc-alpha-picker" },
9550
9570
  null,
@@ -9552,12 +9572,12 @@ ${_html.style}
9552
9572
  /* HOISTED */
9553
9573
  );
9554
9574
  const _hoisted_4$b = [
9555
- _hoisted_3$k
9575
+ _hoisted_3$l
9556
9576
  ];
9557
9577
  function render$4(_ctx, _cache, $props, $setup, $data, $options) {
9558
9578
  const _component_Checkboard = vue.resolveComponent("Checkboard");
9559
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$x, [
9560
- vue.createElementVNode("div", _hoisted_2$p, [
9579
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$y, [
9580
+ vue.createElementVNode("div", _hoisted_2$q, [
9561
9581
  vue.createVNode(_component_Checkboard)
9562
9582
  ]),
9563
9583
  vue.createElementVNode(
@@ -10660,12 +10680,12 @@ ${_html.style}
10660
10680
  // }
10661
10681
  }
10662
10682
  };
10663
- const _hoisted_1$w = { class: "vc-editable-input" };
10664
- const _hoisted_2$o = ["aria-labelledby"];
10665
- const _hoisted_3$j = ["id", "for"];
10683
+ const _hoisted_1$x = { class: "vc-editable-input" };
10684
+ const _hoisted_2$p = ["aria-labelledby"];
10685
+ const _hoisted_3$k = ["id", "for"];
10666
10686
  const _hoisted_4$a = { class: "vc-input__desc" };
10667
10687
  function render$3(_ctx, _cache, $props, $setup, $data, $options) {
10668
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$w, [
10688
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$x, [
10669
10689
  vue.withDirectives(vue.createElementVNode("input", {
10670
10690
  ref: "input",
10671
10691
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $options.val = $event),
@@ -10673,14 +10693,14 @@ ${_html.style}
10673
10693
  class: "vc-input__input",
10674
10694
  onKeydown: _cache[1] || (_cache[1] = (...args) => $options.handleKeyDown && $options.handleKeyDown(...args)),
10675
10695
  onInput: _cache[2] || (_cache[2] = (...args) => $options.update && $options.update(...args))
10676
- }, null, 40, _hoisted_2$o), [
10696
+ }, null, 40, _hoisted_2$p), [
10677
10697
  [vue.vModelText, $options.val]
10678
10698
  ]),
10679
10699
  vue.createElementVNode("span", {
10680
10700
  id: $options.labelId,
10681
10701
  for: $props.label,
10682
10702
  class: "vc-input__label"
10683
- }, vue.toDisplayString($options.labelSpanText), 9, _hoisted_3$j),
10703
+ }, vue.toDisplayString($options.labelSpanText), 9, _hoisted_3$k),
10684
10704
  vue.createElementVNode(
10685
10705
  "span",
10686
10706
  _hoisted_4$a,
@@ -10760,21 +10780,21 @@ ${_html.style}
10760
10780
  }
10761
10781
  }
10762
10782
  };
10763
- const _hoisted_1$v = /* @__PURE__ */ vue.createElementVNode(
10783
+ const _hoisted_1$w = /* @__PURE__ */ vue.createElementVNode(
10764
10784
  "div",
10765
10785
  { class: "vc-saturation--white" },
10766
10786
  null,
10767
10787
  -1
10768
10788
  /* HOISTED */
10769
10789
  );
10770
- const _hoisted_2$n = /* @__PURE__ */ vue.createElementVNode(
10790
+ const _hoisted_2$o = /* @__PURE__ */ vue.createElementVNode(
10771
10791
  "div",
10772
10792
  { class: "vc-saturation--black" },
10773
10793
  null,
10774
10794
  -1
10775
10795
  /* HOISTED */
10776
10796
  );
10777
- const _hoisted_3$i = /* @__PURE__ */ vue.createElementVNode(
10797
+ const _hoisted_3$j = /* @__PURE__ */ vue.createElementVNode(
10778
10798
  "div",
10779
10799
  { class: "vc-saturation-circle" },
10780
10800
  null,
@@ -10782,7 +10802,7 @@ ${_html.style}
10782
10802
  /* HOISTED */
10783
10803
  );
10784
10804
  const _hoisted_4$9 = [
10785
- _hoisted_3$i
10805
+ _hoisted_3$j
10786
10806
  ];
10787
10807
  function render$2(_ctx, _cache, $props, $setup, $data, $options) {
10788
10808
  return vue.openBlock(), vue.createElementBlock(
@@ -10796,8 +10816,8 @@ ${_html.style}
10796
10816
  onTouchstart: _cache[2] || (_cache[2] = (...args) => $options.handleChange && $options.handleChange(...args))
10797
10817
  },
10798
10818
  [
10799
- _hoisted_1$v,
10800
- _hoisted_2$n,
10819
+ _hoisted_1$w,
10820
+ _hoisted_2$o,
10801
10821
  vue.createElementVNode(
10802
10822
  "div",
10803
10823
  {
@@ -10945,16 +10965,16 @@ ${_html.style}
10945
10965
  }
10946
10966
  }
10947
10967
  };
10948
- const _hoisted_1$u = ["aria-valuenow"];
10949
- const _hoisted_2$m = /* @__PURE__ */ vue.createElementVNode(
10968
+ const _hoisted_1$v = ["aria-valuenow"];
10969
+ const _hoisted_2$n = /* @__PURE__ */ vue.createElementVNode(
10950
10970
  "div",
10951
10971
  { class: "vc-hue-picker" },
10952
10972
  null,
10953
10973
  -1
10954
10974
  /* HOISTED */
10955
10975
  );
10956
- const _hoisted_3$h = [
10957
- _hoisted_2$m
10976
+ const _hoisted_3$i = [
10977
+ _hoisted_2$n
10958
10978
  ];
10959
10979
  function render$1(_ctx, _cache, $props, $setup, $data, $options) {
10960
10980
  return vue.openBlock(), vue.createElementBlock(
@@ -10981,11 +11001,11 @@ ${_html.style}
10981
11001
  style: vue.normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft }),
10982
11002
  role: "presentation"
10983
11003
  },
10984
- _hoisted_3$h,
11004
+ _hoisted_3$i,
10985
11005
  4
10986
11006
  /* STYLE */
10987
11007
  )
10988
- ], 40, _hoisted_1$u)
11008
+ ], 40, _hoisted_1$v)
10989
11009
  ],
10990
11010
  2
10991
11011
  /* CLASS */
@@ -11081,9 +11101,9 @@ ${_html.style}
11081
11101
  }
11082
11102
  }
11083
11103
  };
11084
- const _hoisted_1$t = { class: "vc-sketch-saturation-wrap" };
11085
- const _hoisted_2$l = { class: "vc-sketch-controls" };
11086
- const _hoisted_3$g = { class: "vc-sketch-sliders" };
11104
+ const _hoisted_1$u = { class: "vc-sketch-saturation-wrap" };
11105
+ const _hoisted_2$m = { class: "vc-sketch-controls" };
11106
+ const _hoisted_3$h = { class: "vc-sketch-sliders" };
11087
11107
  const _hoisted_4$8 = { class: "vc-sketch-hue-wrap" };
11088
11108
  const _hoisted_5$5 = {
11089
11109
  key: 0,
@@ -11124,14 +11144,14 @@ ${_html.style}
11124
11144
  class: vue.normalizeClass(["vc-sketch", [$props.disableAlpha ? "vc-sketch__disable-alpha" : ""]])
11125
11145
  },
11126
11146
  [
11127
- vue.createElementVNode("div", _hoisted_1$t, [
11147
+ vue.createElementVNode("div", _hoisted_1$u, [
11128
11148
  vue.createVNode(_component_Saturation, {
11129
11149
  value: _ctx.colors,
11130
11150
  onChange: $options.childChange
11131
11151
  }, null, 8, ["value", "onChange"])
11132
11152
  ]),
11133
- vue.createElementVNode("div", _hoisted_2$l, [
11134
- vue.createElementVNode("div", _hoisted_3$g, [
11153
+ vue.createElementVNode("div", _hoisted_2$m, [
11154
+ vue.createElementVNode("div", _hoisted_3$h, [
11135
11155
  vue.createElementVNode("div", _hoisted_4$8, [
11136
11156
  vue.createVNode(_component_Hue, {
11137
11157
  value: _ctx.colors,
@@ -11236,7 +11256,7 @@ ${_html.style}
11236
11256
  script.render = render;
11237
11257
  script.__file = "src/components/sketch/sketch.vue";
11238
11258
  script.install = install;
11239
- const _sfc_main$u = vue.defineComponent({
11259
+ const _sfc_main$v = vue.defineComponent({
11240
11260
  name: "PbColorPicker",
11241
11261
  components: {
11242
11262
  Sketch: script
@@ -11296,8 +11316,8 @@ ${_html.style}
11296
11316
  };
11297
11317
  }
11298
11318
  });
11299
- const _hoisted_1$s = { class: "buttons" };
11300
- const _hoisted_2$k = { class: "sketch-wrap" };
11319
+ const _hoisted_1$t = { class: "buttons" };
11320
+ const _hoisted_2$l = { class: "sketch-wrap" };
11301
11321
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11302
11322
  const _component_Sketch = vue.resolveComponent("Sketch");
11303
11323
  const _directive_click_outside = vue.resolveDirective("click-outside");
@@ -11306,7 +11326,7 @@ ${_html.style}
11306
11326
  onKeydown: _cache[3] || (_cache[3] = vue.withModifiers(() => {
11307
11327
  }, ["stop"]))
11308
11328
  }, [
11309
- vue.createElementVNode("div", _hoisted_1$s, [
11329
+ vue.createElementVNode("div", _hoisted_1$t, [
11310
11330
  vue.renderSlot(_ctx.$slots, "button", vue.normalizeProps(vue.guardReactiveProps({ toggle: _ctx.toggle, color: _ctx.color })), () => [
11311
11331
  vue.createElementVNode("button", {
11312
11332
  class: vue.normalizeClass([{ none: !_ctx.color }, "picker-button"]),
@@ -11321,7 +11341,7 @@ ${_html.style}
11321
11341
  vue.createElementVNode("i", { class: "material-icons-outlined" }, "delete", -1)
11322
11342
  ]))) : vue.createCommentVNode("", true)
11323
11343
  ]),
11324
- vue.createElementVNode("div", _hoisted_2$k, [
11344
+ vue.createElementVNode("div", _hoisted_2$l, [
11325
11345
  _ctx.isShowColorPicker ? (vue.openBlock(), vue.createBlock(_component_Sketch, {
11326
11346
  key: 0,
11327
11347
  modelValue: _ctx.color,
@@ -11333,12 +11353,12 @@ ${_html.style}
11333
11353
  [_directive_click_outside, () => _ctx.toggle(false)]
11334
11354
  ]);
11335
11355
  }
11336
- const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render]]);
11337
- const _hoisted_1$r = { class: "group-editor group-editor-background" };
11338
- const _hoisted_2$j = { class: "flex-align-center" };
11339
- const _hoisted_3$f = { class: "bs-layout-horizontal" };
11356
+ const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render]]);
11357
+ const _hoisted_1$s = { class: "group-editor group-editor-background" };
11358
+ const _hoisted_2$k = { class: "flex-align-center" };
11359
+ const _hoisted_3$g = { class: "bs-layout-horizontal" };
11340
11360
  const _hoisted_4$7 = { class: "color" };
11341
- const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
11361
+ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
11342
11362
  __name: "PbPropertyGroupEditorBackground",
11343
11363
  props: {
11344
11364
  group: {},
@@ -11371,12 +11391,12 @@ ${_html.style}
11371
11391
  }
11372
11392
  };
11373
11393
  return (_ctx, _cache) => {
11374
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$r, [
11375
- vue.createElementVNode("div", _hoisted_2$j, [
11394
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$s, [
11395
+ vue.createElementVNode("div", _hoisted_2$k, [
11376
11396
  _cache[3] || (_cache[3] = vue.createElementVNode("div", { class: "title" }, [
11377
11397
  vue.createElementVNode("label", { textContent: "Background" })
11378
11398
  ], -1)),
11379
- vue.createElementVNode("div", _hoisted_3$f, [
11399
+ vue.createElementVNode("div", _hoisted_3$g, [
11380
11400
  vue.createElementVNode("div", _hoisted_4$7, [
11381
11401
  vue.createVNode(PbColorPicker, {
11382
11402
  value: color.value,
@@ -11406,9 +11426,9 @@ ${_html.style}
11406
11426
  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";
11407
11427
  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";
11408
11428
  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";
11409
- const _hoisted_1$q = { class: "group-editor group-editor-border" };
11410
- const _hoisted_2$i = { class: "flex-align-center" };
11411
- const _hoisted_3$e = { class: "" };
11429
+ const _hoisted_1$r = { class: "group-editor group-editor-border" };
11430
+ const _hoisted_2$j = { class: "flex-align-center" };
11431
+ const _hoisted_3$f = { class: "" };
11412
11432
  const _hoisted_4$6 = { class: "color" };
11413
11433
  const _hoisted_5$4 = { class: "mt-8" };
11414
11434
  const _hoisted_6$4 = { class: "flex-grow-1 mt-4" };
@@ -11421,7 +11441,7 @@ ${_html.style}
11421
11441
  const _hoisted_13 = { class: "bg-gray-100 py-5 rounded-8" };
11422
11442
  const _hoisted_14 = { class: "" };
11423
11443
  const _hoisted_15 = { class: "mt-2" };
11424
- const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
11444
+ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
11425
11445
  __name: "PbPropertyGroupEditorBorder",
11426
11446
  props: {
11427
11447
  group: {},
@@ -11459,12 +11479,12 @@ ${_html.style}
11459
11479
  const updateBorderBottomLeftRadius = (value) => updatePropertyValue({ borderBottomLeftRadius: value });
11460
11480
  const updateBorderBottomRightRadius = (value) => updatePropertyValue({ borderBottomRightRadius: value });
11461
11481
  return (_ctx, _cache) => {
11462
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$q, [
11463
- vue.createElementVNode("div", _hoisted_2$i, [
11482
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$r, [
11483
+ vue.createElementVNode("div", _hoisted_2$j, [
11464
11484
  _cache[7] || (_cache[7] = vue.createElementVNode("div", { class: "title" }, [
11465
11485
  vue.createElementVNode("label", { textContent: "Border" })
11466
11486
  ], -1)),
11467
- vue.createElementVNode("div", _hoisted_3$e, [
11487
+ vue.createElementVNode("div", _hoisted_3$f, [
11468
11488
  _cache[3] || (_cache[3] = vue.createElementVNode("div", { class: "sub-title" }, [
11469
11489
  vue.createElementVNode("label", { textContent: "Color" })
11470
11490
  ], -1)),
@@ -11581,14 +11601,14 @@ ${_html.style}
11581
11601
  };
11582
11602
  }
11583
11603
  });
11584
- const _hoisted_1$p = { class: "group-editor group-editor-margin" };
11585
- const _hoisted_2$h = { class: "flex-align-center" };
11586
- const _hoisted_3$d = { class: "flex-grow-1" };
11604
+ const _hoisted_1$q = { class: "group-editor group-editor-margin" };
11605
+ const _hoisted_2$i = { class: "flex-align-center" };
11606
+ const _hoisted_3$e = { class: "flex-grow-1" };
11587
11607
  const _hoisted_4$5 = { class: "bg-gray-100 py-5 rounded-8" };
11588
11608
  const _hoisted_5$3 = { class: "text-center" };
11589
11609
  const _hoisted_6$3 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
11590
11610
  const _hoisted_7$2 = { class: "text-center" };
11591
- const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
11611
+ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
11592
11612
  __name: "PbPropertyGroupEditorMargin",
11593
11613
  props: {
11594
11614
  group: {},
@@ -11612,12 +11632,12 @@ ${_html.style}
11612
11632
  const updateTop = (value) => updatePropertyValue({ marginTop: value });
11613
11633
  const updateBottom = (value) => updatePropertyValue({ marginBottom: value });
11614
11634
  return (_ctx, _cache) => {
11615
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [
11616
- vue.createElementVNode("div", _hoisted_2$h, [
11635
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$q, [
11636
+ vue.createElementVNode("div", _hoisted_2$i, [
11617
11637
  _cache[1] || (_cache[1] = vue.createElementVNode("div", { class: "title" }, [
11618
11638
  vue.createElementVNode("label", { textContent: "Margin" })
11619
11639
  ], -1)),
11620
- vue.createElementVNode("div", _hoisted_3$d, [
11640
+ vue.createElementVNode("div", _hoisted_3$e, [
11621
11641
  vue.createElementVNode("div", _hoisted_4$5, [
11622
11642
  vue.createElementVNode("div", _hoisted_5$3, [
11623
11643
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
@@ -11666,14 +11686,14 @@ ${_html.style}
11666
11686
  };
11667
11687
  }
11668
11688
  });
11669
- const _hoisted_1$o = { class: "group-editor group-editor-padding" };
11670
- const _hoisted_2$g = { class: "flex-align-center" };
11671
- const _hoisted_3$c = { class: "flex-grow-1" };
11689
+ const _hoisted_1$p = { class: "group-editor group-editor-padding" };
11690
+ const _hoisted_2$h = { class: "flex-align-center" };
11691
+ const _hoisted_3$d = { class: "flex-grow-1" };
11672
11692
  const _hoisted_4$4 = { class: "bg-gray-100 py-5 rounded-8" };
11673
11693
  const _hoisted_5$2 = { class: "text-center" };
11674
11694
  const _hoisted_6$2 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
11675
11695
  const _hoisted_7$1 = { class: "text-center" };
11676
- const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
11696
+ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
11677
11697
  __name: "PbPropertyGroupEditorPadding",
11678
11698
  props: {
11679
11699
  group: {},
@@ -11697,12 +11717,12 @@ ${_html.style}
11697
11717
  const updateTop = (value) => updatePropertyValue({ paddingTop: value });
11698
11718
  const updateBottom = (value) => updatePropertyValue({ paddingBottom: value });
11699
11719
  return (_ctx, _cache) => {
11700
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$o, [
11701
- vue.createElementVNode("div", _hoisted_2$g, [
11720
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [
11721
+ vue.createElementVNode("div", _hoisted_2$h, [
11702
11722
  _cache[1] || (_cache[1] = vue.createElementVNode("div", { class: "title" }, [
11703
11723
  vue.createElementVNode("label", { textContent: "Padding" })
11704
11724
  ], -1)),
11705
- vue.createElementVNode("div", _hoisted_3$c, [
11725
+ vue.createElementVNode("div", _hoisted_3$d, [
11706
11726
  vue.createElementVNode("div", _hoisted_4$4, [
11707
11727
  vue.createElementVNode("div", _hoisted_5$2, [
11708
11728
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
@@ -11777,7 +11797,7 @@ ${_html.style}
11777
11797
  propertyType: "text"
11778
11798
  }
11779
11799
  ],
11780
- propertyGroupEditor: () => _sfc_main$w
11800
+ propertyGroupEditor: () => _sfc_main$x
11781
11801
  };
11782
11802
  };
11783
11803
  const sizeGroup = () => {
@@ -11796,27 +11816,27 @@ ${_html.style}
11796
11816
  propertyType: "text"
11797
11817
  },
11798
11818
  {
11799
- propertyName: "min-width",
11819
+ propertyName: "minWidth",
11800
11820
  caption: "Min Width",
11801
11821
  propertyType: "text"
11802
11822
  },
11803
11823
  {
11804
- propertyName: "min-height",
11824
+ propertyName: "minHeight",
11805
11825
  caption: "Min Height",
11806
11826
  propertyType: "text"
11807
11827
  },
11808
11828
  {
11809
- propertyName: "max-width",
11829
+ propertyName: "maxWidth",
11810
11830
  caption: "Max Width",
11811
11831
  propertyType: "text"
11812
11832
  },
11813
11833
  {
11814
- propertyName: "max-height",
11834
+ propertyName: "maxHeight",
11815
11835
  caption: "Max Height",
11816
11836
  propertyType: "text"
11817
11837
  }
11818
11838
  ],
11819
- propertyGroupEditor: () => _sfc_main$v
11839
+ propertyGroupEditor: () => _sfc_main$w
11820
11840
  };
11821
11841
  };
11822
11842
  const marginGroup = () => {
@@ -11845,7 +11865,7 @@ ${_html.style}
11845
11865
  propertyType: "text"
11846
11866
  }
11847
11867
  ],
11848
- propertyGroupEditor: () => _sfc_main$r
11868
+ propertyGroupEditor: () => _sfc_main$s
11849
11869
  };
11850
11870
  };
11851
11871
  const paddingGroup = () => {
@@ -11874,7 +11894,7 @@ ${_html.style}
11874
11894
  propertyType: "text"
11875
11895
  }
11876
11896
  ],
11877
- propertyGroupEditor: () => _sfc_main$q
11897
+ propertyGroupEditor: () => _sfc_main$r
11878
11898
  };
11879
11899
  };
11880
11900
  const commonGroup = () => {
@@ -11971,7 +11991,7 @@ ${_html.style}
11971
11991
  propertyType: "image"
11972
11992
  }
11973
11993
  ],
11974
- propertyGroupEditor: () => _sfc_main$t
11994
+ propertyGroupEditor: () => _sfc_main$u
11975
11995
  };
11976
11996
  };
11977
11997
  const borderGroup = () => {
@@ -12025,7 +12045,7 @@ ${_html.style}
12025
12045
  propertyType: "text"
12026
12046
  }
12027
12047
  ],
12028
- propertyGroupEditor: () => _sfc_main$s
12048
+ propertyGroupEditor: () => _sfc_main$t
12029
12049
  };
12030
12050
  };
12031
12051
  const defaultPropertyGroups = () => {
@@ -12034,7 +12054,7 @@ ${_html.style}
12034
12054
  const defaultWidgetPropertyGroups = () => {
12035
12055
  return [alignGroup(), positionGroup(), sizeGroup(), marginGroup(), paddingGroup(), borderGroup(), backgroundGroup(), commonGroup()];
12036
12056
  };
12037
- const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
12057
+ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
12038
12058
  __name: "PbContainerWidget",
12039
12059
  props: {
12040
12060
  part: {},
@@ -12049,7 +12069,7 @@ ${_html.style}
12049
12069
  var _a;
12050
12070
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
12051
12071
  _ctx.part.children ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (child) => {
12052
- return vue.openBlock(), vue.createBlock(_sfc_main$A, {
12072
+ return vue.openBlock(), vue.createBlock(_sfc_main$B, {
12053
12073
  key: child.partId,
12054
12074
  "is-mobile-page": false,
12055
12075
  part: child
@@ -12071,6 +12091,18 @@ ${_html.style}
12071
12091
  icon: "draft",
12072
12092
  className: "pb-page",
12073
12093
  propertyGroups: [
12094
+ {
12095
+ groupName: "size",
12096
+ caption: "Size",
12097
+ properties: [
12098
+ {
12099
+ propertyName: "maxWidth",
12100
+ caption: "Max Width",
12101
+ propertyType: "text",
12102
+ params: ""
12103
+ }
12104
+ ]
12105
+ },
12074
12106
  alignGroup(),
12075
12107
  paddingGroup(),
12076
12108
  backgroundGroup(),
@@ -12080,7 +12112,7 @@ ${_html.style}
12080
12112
  align: "center"
12081
12113
  },
12082
12114
  allowsChild: () => true,
12083
- creator: () => _sfc_main$x
12115
+ creator: () => _sfc_main$y
12084
12116
  }
12085
12117
  ];
12086
12118
  const sectionParts = [
@@ -12099,7 +12131,7 @@ ${_html.style}
12099
12131
  align: "center"
12100
12132
  },
12101
12133
  allowsChild: () => true,
12102
- creator: () => _sfc_main$x
12134
+ creator: () => _sfc_main$y
12103
12135
  }
12104
12136
  ];
12105
12137
  const blockParts = [
@@ -12118,7 +12150,7 @@ ${_html.style}
12118
12150
  align: "center"
12119
12151
  },
12120
12152
  allowsChild: () => true,
12121
- creator: () => _sfc_main$z
12153
+ creator: () => _sfc_main$A
12122
12154
  }
12123
12155
  ];
12124
12156
  const widgets = [
@@ -12196,6 +12228,18 @@ ${_html.style}
12196
12228
  caption: "Image",
12197
12229
  propertyType: "image",
12198
12230
  params: ""
12231
+ },
12232
+ {
12233
+ propertyName: "link",
12234
+ caption: "Link",
12235
+ propertyType: "text",
12236
+ params: ""
12237
+ },
12238
+ {
12239
+ propertyName: "linkTarget",
12240
+ caption: "Link Target",
12241
+ propertyType: "text",
12242
+ params: ""
12199
12243
  }
12200
12244
  ]
12201
12245
  },
@@ -12300,7 +12344,7 @@ ${_html.style}
12300
12344
  height: "300px"
12301
12345
  },
12302
12346
  allowsChild: () => true,
12303
- creator: () => _sfc_main$p
12347
+ creator: () => _sfc_main$q
12304
12348
  }
12305
12349
  ];
12306
12350
  const partDefinitions = {};
@@ -13537,7 +13581,7 @@ ${_html.style}
13537
13581
  plugin.widgets.forEach((v) => {
13538
13582
  const w = { ...v };
13539
13583
  w.partType = "Widget";
13540
- w.creator = () => _sfc_main$C;
13584
+ w.creator = () => _sfc_main$D;
13541
13585
  w.propertyGroups = [...w.propertyGroups, ...defaultWidgetPropertyGroups()];
13542
13586
  partDefinitions2[v.partName] = w;
13543
13587
  const found = this.customWidgets.find((x) => x.partName === v.partName);
@@ -13582,7 +13626,7 @@ ${_html.style}
13582
13626
  name: "Page (Mobile)"
13583
13627
  };
13584
13628
  parts[1].properties = {
13585
- ...parts[0].properties || {},
13629
+ ...parts[1].properties || {},
13586
13630
  name: "Page (PC)"
13587
13631
  };
13588
13632
  }
@@ -13769,8 +13813,8 @@ ${_html.style}
13769
13813
  });
13770
13814
  }
13771
13815
  }
13772
- const _hoisted_1$n = { class: "pb-tool-button bs-layout-horizontal flex-align-center" };
13773
- const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
13816
+ const _hoisted_1$o = { class: "pb-tool-button bs-layout-horizontal flex-align-center" };
13817
+ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
13774
13818
  __name: "PbToolbarButton",
13775
13819
  props: {
13776
13820
  button: {}
@@ -13783,7 +13827,7 @@ ${_html.style}
13783
13827
  (_b = (_a = props.button).handler) == null ? void 0 : _b.call(_a, pageBuilder);
13784
13828
  };
13785
13829
  return (_ctx, _cache) => {
13786
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
13830
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$o, [
13787
13831
  vue.createElementVNode("div", {
13788
13832
  class: "tool-button bs-clickable",
13789
13833
  onClick: handleClick
@@ -13798,17 +13842,17 @@ ${_html.style}
13798
13842
  };
13799
13843
  }
13800
13844
  });
13801
- const _hoisted_1$m = { class: "pb-tool-button-group bs-layout-horizontal flex-align-center" };
13802
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
13845
+ const _hoisted_1$n = { class: "pb-tool-button-group bs-layout-horizontal flex-align-center" };
13846
+ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
13803
13847
  __name: "PbToolbarButtonGroup",
13804
13848
  props: {
13805
13849
  group: {}
13806
13850
  },
13807
13851
  setup(__props) {
13808
13852
  return (_ctx, _cache) => {
13809
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [
13853
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
13810
13854
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.group.buttons, (button) => {
13811
- return vue.openBlock(), vue.createBlock(_sfc_main$o, {
13855
+ return vue.openBlock(), vue.createBlock(_sfc_main$p, {
13812
13856
  key: button.buttonId,
13813
13857
  button
13814
13858
  }, null, 8, ["button"]);
@@ -13817,10 +13861,10 @@ ${_html.style}
13817
13861
  };
13818
13862
  }
13819
13863
  });
13820
- const _hoisted_1$l = { class: "pb-toolbar bs-layout-horizontal align-items-center" };
13821
- const _hoisted_2$f = { class: "bs-layout-horizontal align-items-center" };
13822
- const _hoisted_3$b = { class: "mr-8" };
13823
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
13864
+ const _hoisted_1$m = { class: "pb-toolbar bs-layout-horizontal align-items-center" };
13865
+ const _hoisted_2$g = { class: "bs-layout-horizontal align-items-center" };
13866
+ const _hoisted_3$c = { class: "mr-8" };
13867
+ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
13824
13868
  __name: "PbToolbar",
13825
13869
  props: {
13826
13870
  plugin: {}
@@ -13869,10 +13913,10 @@ ${_html.style}
13869
13913
  });
13870
13914
  return (_ctx, _cache) => {
13871
13915
  var _a, _b, _c;
13872
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$l, [
13873
- vue.createElementVNode("div", _hoisted_2$f, [
13916
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [
13917
+ vue.createElementVNode("div", _hoisted_2$g, [
13874
13918
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(buttonGroups), (group) => {
13875
- return vue.openBlock(), vue.createBlock(_sfc_main$n, {
13919
+ return vue.openBlock(), vue.createBlock(_sfc_main$o, {
13876
13920
  key: group.groupId,
13877
13921
  group
13878
13922
  }, null, 8, ["group"]);
@@ -13895,29 +13939,29 @@ ${_html.style}
13895
13939
  }, null, 8, ["modelValue"])
13896
13940
  ]),
13897
13941
  _cache[2] || (_cache[2] = vue.createElementVNode("div", { class: "flex-grow-1" }, null, -1)),
13898
- vue.createElementVNode("div", _hoisted_3$b, [
13942
+ vue.createElementVNode("div", _hoisted_3$c, [
13899
13943
  _ctx.plugin ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent((_a = _ctx.plugin) == null ? void 0 : _a.component), vue.mergeProps({ key: 0 }, (_b = _ctx.plugin) == null ? void 0 : _b.bind, vue.toHandlers((_c = _ctx.plugin) == null ? void 0 : _c.on)), null, 16)) : vue.createCommentVNode("", true)
13900
13944
  ])
13901
13945
  ]);
13902
13946
  };
13903
13947
  }
13904
13948
  });
13905
- const _hoisted_1$k = { class: "pb-menu bs-layout-vertical" };
13906
- const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
13949
+ const _hoisted_1$l = { class: "pb-menu bs-layout-vertical" };
13950
+ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
13907
13951
  __name: "PbMenu",
13908
13952
  props: {
13909
13953
  toolbarPlugin: {}
13910
13954
  },
13911
13955
  setup(__props) {
13912
13956
  return (_ctx, _cache) => {
13913
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$k, [
13914
- vue.createVNode(_sfc_main$m, { plugin: _ctx.toolbarPlugin }, null, 8, ["plugin"])
13957
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$l, [
13958
+ vue.createVNode(_sfc_main$n, { plugin: _ctx.toolbarPlugin }, null, 8, ["plugin"])
13915
13959
  ]);
13916
13960
  };
13917
13961
  }
13918
13962
  });
13919
- const _hoisted_1$j = { class: "bs-layout-vertical border" };
13920
- const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
13963
+ const _hoisted_1$k = { class: "bs-layout-vertical border" };
13964
+ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
13921
13965
  __name: "PbNavigator",
13922
13966
  setup(__props) {
13923
13967
  const pageBuilder = usePageBuilderEditor();
@@ -14018,7 +14062,7 @@ ${_html.style}
14018
14062
  }
14019
14063
  };
14020
14064
  const expandParent = (part) => {
14021
- if (part.parent && part.parent.partName !== PAGE_TYPE) {
14065
+ if (part.parent && part.parent.partName !== ROOT_TYPE) {
14022
14066
  expandedRows.value.add(part.parent.partId);
14023
14067
  expandParent(part.parent);
14024
14068
  }
@@ -14039,7 +14083,7 @@ ${_html.style}
14039
14083
  PageBuilderEditorEvent.off.modelUpdatedByUI(modelUpdateHandler);
14040
14084
  });
14041
14085
  return (_ctx, _cache) => {
14042
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
14086
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$k, [
14043
14087
  vue.createElementVNode("div", {
14044
14088
  ref_key: "tree",
14045
14089
  ref: tree,
@@ -14072,7 +14116,7 @@ ${_html.style}
14072
14116
  };
14073
14117
  }
14074
14118
  });
14075
- const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
14119
+ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
14076
14120
  __name: "PbSidebarPropertyEditor",
14077
14121
  props: {
14078
14122
  property: {},
@@ -14107,13 +14151,13 @@ ${_html.style}
14107
14151
  };
14108
14152
  }
14109
14153
  });
14110
- const _hoisted_1$i = { class: "pb-sidebar-property-group" };
14111
- const _hoisted_2$e = {
14154
+ const _hoisted_1$j = { class: "pb-sidebar-property-group" };
14155
+ const _hoisted_2$f = {
14112
14156
  key: 0,
14113
14157
  class: "group-title"
14114
14158
  };
14115
- const _hoisted_3$a = ["textContent"];
14116
- const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14159
+ const _hoisted_3$b = ["textContent"];
14160
+ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
14117
14161
  __name: "PbSidebarPropertyGroupEditor",
14118
14162
  props: {
14119
14163
  group: {},
@@ -14127,11 +14171,11 @@ ${_html.style}
14127
14171
  return (_b = (_a = props.group).propertyGroupEditor) == null ? void 0 : _b.call(_a, props.group, props.selectedParts);
14128
14172
  });
14129
14173
  return (_ctx, _cache) => {
14130
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
14131
- _ctx.group.showGroupName ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$e, [
14174
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
14175
+ _ctx.group.showGroupName ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$f, [
14132
14176
  vue.createElementVNode("label", {
14133
14177
  textContent: vue.toDisplayString(_ctx.group.caption)
14134
- }, null, 8, _hoisted_3$a)
14178
+ }, null, 8, _hoisted_3$b)
14135
14179
  ])) : vue.createCommentVNode("", true),
14136
14180
  _ctx.partsKey ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
14137
14181
  groupEditor.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(groupEditor.value), {
@@ -14139,7 +14183,7 @@ ${_html.style}
14139
14183
  group: _ctx.group,
14140
14184
  "selected-parts": _ctx.selectedParts
14141
14185
  }, null, 8, ["group", "selected-parts"])) : (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(_ctx.group.properties, (property) => {
14142
- return vue.openBlock(), vue.createBlock(_sfc_main$j, {
14186
+ return vue.openBlock(), vue.createBlock(_sfc_main$k, {
14143
14187
  key: `${_ctx.partsKey}_${property.propertyName}`,
14144
14188
  property,
14145
14189
  "selected-parts": _ctx.selectedParts
@@ -14150,8 +14194,8 @@ ${_html.style}
14150
14194
  };
14151
14195
  }
14152
14196
  });
14153
- const _hoisted_1$h = { class: "pb-sidebar-properties" };
14154
- const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14197
+ const _hoisted_1$i = { class: "pb-sidebar-properties" };
14198
+ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14155
14199
  __name: "PbSidebarProperties",
14156
14200
  setup(__props) {
14157
14201
  const pageBuilder = usePageBuilderEditor();
@@ -14169,12 +14213,12 @@ ${_html.style}
14169
14213
  }
14170
14214
  });
14171
14215
  return (_ctx, _cache) => {
14172
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
14216
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
14173
14217
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(properties.value, (group) => {
14174
14218
  return vue.openBlock(), vue.createElementBlock("div", {
14175
14219
  key: `${partsKey.value}_${group.groupName}`
14176
14220
  }, [
14177
- vue.createVNode(_sfc_main$i, {
14221
+ vue.createVNode(_sfc_main$j, {
14178
14222
  group,
14179
14223
  partsKey: partsKey.value,
14180
14224
  "selected-parts": vue.unref(selectedParts)
@@ -14185,19 +14229,19 @@ ${_html.style}
14185
14229
  };
14186
14230
  }
14187
14231
  });
14188
- const _hoisted_1$g = { class: "pb-sidebar" };
14189
- const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14232
+ const _hoisted_1$h = { class: "pb-sidebar" };
14233
+ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14190
14234
  __name: "PbSidebar",
14191
14235
  setup(__props) {
14192
14236
  return (_ctx, _cache) => {
14193
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [
14194
- vue.createVNode(_sfc_main$h)
14237
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
14238
+ vue.createVNode(_sfc_main$i)
14195
14239
  ]);
14196
14240
  };
14197
14241
  }
14198
14242
  });
14199
- const _hoisted_1$f = ["data-part-id"];
14200
- const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
14243
+ const _hoisted_1$g = ["data-part-id"];
14244
+ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14201
14245
  __name: "PbPage",
14202
14246
  props: {
14203
14247
  part: {},
@@ -14271,7 +14315,7 @@ ${_html.style}
14271
14315
  class: [selected.value && "selected", _ctx.isMobilePage ? "mobile" : "pc", "pb-page-content"]
14272
14316
  }, properties.value), [
14273
14317
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList((_b = _ctx.part) == null ? void 0 : _b.children, (section, index) => {
14274
- return vue.openBlock(), vue.createBlock(_sfc_main$x, {
14318
+ return vue.openBlock(), vue.createBlock(_sfc_main$y, {
14275
14319
  key: section.partId,
14276
14320
  "is-mobile-page": _ctx.isMobilePage,
14277
14321
  part: section
@@ -14284,15 +14328,15 @@ ${_html.style}
14284
14328
  }, _cache[0] || (_cache[0] = [
14285
14329
  vue.createElementVNode("i", { class: "material-icons-outlined" }, "add_circle_outline", -1)
14286
14330
  ]))
14287
- ], 46, _hoisted_1$f),
14331
+ ], 46, _hoisted_1$g),
14288
14332
  _cache[1] || (_cache[1] = vue.createElementVNode("div", { style: { "height": "100px" } }, null, -1))
14289
14333
  ], 64);
14290
14334
  };
14291
14335
  }
14292
14336
  });
14293
- const canvasStyle = '.pb-page-wrapper {\n margin: 0 auto;\n padding: 0;\n}\n\n.pb-page {\n width: 100%;\n margin: 0 auto;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\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 position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n outline: 1px dashed #ccc;\n background-color: #fff;\n}\n\n.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\n\n.pb-section.selected::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}\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}\n\n.pb-widget .resize-handle {\n position: absolute;\n right: -6px;\n bottom: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: nwse-resize;\n}\n\n.pb-widget {\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n}\n\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-text-widget .text {\n color: #333;\n}\n\n.pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-image-widget {\n width: 100%;\n}\n\n.pb-image-widget .image {\n width: 100%;\n}\n\n.pb-image-widget .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\n.font-icon {\n font-family: Material Symbols Outlined, monospace;\n font-size: 1rem;\n max-width: 1em;\n}\n\nhtml, body {\n font-family: Noto Sans, Noto Sans KR, Noto Sans JP, Arial, sans-serif;\n font-size: 12px;\n}\n\nbody {\n margin: 0;\n padding: 0;\n background-color: #aaa;\n overflow: hidden;\n}\n\n.pb-position-mark {\n background-color: #ff3333;\n opacity: 0.5;\n border-radius: 2px;\n}\n\n.pb-add-section-handle {\n position: relative;\n text-align: center;\n cursor: pointer;\n z-index: 5;\n height: 0;\n}\n\n.pb-add-section-handle.top::before, .pb-add-section-handle.bottom::before, .pb-add-section-handle.middle::before {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.pb-add-section-handle.bottom {\n left: 50%;\n bottom: -32px;\n}\n\n.pb-add-section-handle:hover.top::before, .pb-add-section-handle:hover.bottom::before, .pb-add-section-handle:hover.middle::before,\n.pb-add-section-handle:hover > i {\n opacity: 1;\n}\n\n.pb-add-section-handle > i {\n vertical-align: middle;\n position: absolute;\n top: 50%;\n left: 0;\n font-size: 2rem;\n transform: translate(-50%, -50%);\n opacity: 0.2;\n}';
14294
- const _hoisted_1$e = ["height", "width"];
14295
- const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
14337
+ const canvasStyle = '.pb-page-wrapper {\n margin: 0 auto;\n padding: 0;\n}\n\n.pb-page {\n width: 100%;\n margin: 0 auto;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\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 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}\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\n.font-icon {\n font-family: Material Symbols Outlined, monospace;\n font-size: 1rem;\n max-width: 1em;\n}\n\nhtml, body {\n font-family: Noto Sans, Noto Sans KR, Noto Sans JP, Arial, sans-serif;\n font-size: 12px;\n}\n\nbody {\n margin: 0;\n padding: 0;\n background-color: #aaa;\n overflow: hidden;\n}\n\n.pb-position-mark {\n background-color: #ff3333;\n opacity: 0.5;\n border-radius: 2px;\n}\n\n.pb-add-section-handle {\n position: relative;\n text-align: center;\n cursor: pointer;\n z-index: 5;\n height: 0;\n}\n\n.pb-add-section-handle.top::before, .pb-add-section-handle.bottom::before, .pb-add-section-handle.middle::before {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.pb-add-section-handle.bottom {\n left: 50%;\n bottom: -32px;\n}\n\n.pb-add-section-handle:hover.top::before, .pb-add-section-handle:hover.bottom::before, .pb-add-section-handle:hover.middle::before,\n.pb-add-section-handle:hover > i {\n opacity: 1;\n}\n\n.pb-add-section-handle > i {\n vertical-align: middle;\n position: absolute;\n top: 50%;\n left: 0;\n font-size: 2rem;\n transform: translate(-50%, -50%);\n opacity: 0.2;\n}';
14338
+ const _hoisted_1$f = ["height", "width"];
14339
+ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
14296
14340
  __name: "PbPageFrame",
14297
14341
  props: {
14298
14342
  part: {},
@@ -14358,7 +14402,7 @@ ${_html.style}
14358
14402
  // width: `${width.value}px`,
14359
14403
  // height: `${height.value}px`,
14360
14404
  }));
14361
- let iframeObserver;
14405
+ let resizeObserver;
14362
14406
  const updateIframeHeight = () => {
14363
14407
  setTimeout(() => {
14364
14408
  if (!iframeRef.value || !iframeRef.value.contentDocument) return;
@@ -14371,13 +14415,15 @@ ${_html.style}
14371
14415
  vue.onMounted(() => {
14372
14416
  if (!iframeRef.value || !iframeRef.value.contentDocument) return;
14373
14417
  const iframeBody = iframeRef.value.contentDocument.body;
14374
- iframeObserver = new MutationObserver(updateIframeHeight);
14375
- iframeObserver.observe(iframeBody, { childList: true, subtree: true });
14418
+ resizeObserver = new ResizeObserver(() => {
14419
+ updateIframeHeight();
14420
+ });
14421
+ resizeObserver.observe(iframeBody, {});
14376
14422
  iframeRef.value.onload = updateIframeHeight;
14377
14423
  });
14378
14424
  vue.onBeforeUnmount(() => {
14379
- if (iframeObserver) {
14380
- iframeObserver.disconnect();
14425
+ if (resizeObserver) {
14426
+ resizeObserver.disconnect();
14381
14427
  }
14382
14428
  });
14383
14429
  return (_ctx, _cache) => {
@@ -14388,7 +14434,10 @@ ${_html.style}
14388
14434
  }, [
14389
14435
  vue.createVNode(vue.unref(bluesea.BSSelect), {
14390
14436
  modelValue: width.value,
14391
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => width.value = $event),
14437
+ "onUpdate:modelValue": [
14438
+ _cache[0] || (_cache[0] = ($event) => width.value = $event),
14439
+ updateIframeHeight
14440
+ ],
14392
14441
  items: [480, 768, 1024, 1280],
14393
14442
  "label-provider": (v) => `Screen Size: ${v}px`,
14394
14443
  "value-provider": (v) => v,
@@ -14401,12 +14450,12 @@ ${_html.style}
14401
14450
  style: vue.normalizeStyle(style.value),
14402
14451
  width: `${width.value}px`,
14403
14452
  class: "page-frame mt-12"
14404
- }, null, 12, _hoisted_1$e),
14453
+ }, null, 12, _hoisted_1$f),
14405
14454
  ((_b = (_a = iframeRef.value) == null ? void 0 : _a.contentWindow) == null ? void 0 : _b.document.body) ? (vue.openBlock(), vue.createBlock(vue.Teleport, {
14406
14455
  key: 0,
14407
14456
  to: (_d = (_c = iframeRef.value) == null ? void 0 : _c.contentWindow) == null ? void 0 : _d.document.body
14408
14457
  }, [
14409
- vue.createVNode(_sfc_main$f, {
14458
+ vue.createVNode(_sfc_main$g, {
14410
14459
  "is-mobile-page": isMobilePage.value,
14411
14460
  part: _ctx.part,
14412
14461
  width: width.value
@@ -14416,12 +14465,12 @@ ${_html.style}
14416
14465
  };
14417
14466
  }
14418
14467
  });
14419
- const _hoisted_1$d = { class: "pb-canvas-wrapper" };
14420
- const _hoisted_2$d = {
14468
+ const _hoisted_1$e = { class: "pb-canvas-wrapper" };
14469
+ const _hoisted_2$e = {
14421
14470
  key: 1,
14422
14471
  style: { "width": "20px" }
14423
14472
  };
14424
- const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
14473
+ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
14425
14474
  __name: "PbCanvas",
14426
14475
  setup(__props) {
14427
14476
  const pageBuilder = usePageBuilderEditor();
@@ -14443,15 +14492,15 @@ ${_html.style}
14443
14492
  };
14444
14493
  });
14445
14494
  return (_ctx, _cache) => {
14446
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$d, [
14495
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
14447
14496
  vue.createElementVNode("div", vue.mergeProps({ class: "pb-canvas" }, style.value), [
14448
- partS.value ? (vue.openBlock(), vue.createBlock(_sfc_main$e, {
14497
+ partS.value ? (vue.openBlock(), vue.createBlock(_sfc_main$f, {
14449
14498
  key: 0,
14450
14499
  part: partS.value,
14451
14500
  width: 480
14452
14501
  }, null, 8, ["part"])) : vue.createCommentVNode("", true),
14453
- partL.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$d)) : vue.createCommentVNode("", true),
14454
- partL.value ? (vue.openBlock(), vue.createBlock(_sfc_main$e, {
14502
+ partL.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$e)) : vue.createCommentVNode("", true),
14503
+ partL.value ? (vue.openBlock(), vue.createBlock(_sfc_main$f, {
14455
14504
  key: 2,
14456
14505
  part: partL.value,
14457
14506
  width: 1024
@@ -14461,9 +14510,9 @@ ${_html.style}
14461
14510
  };
14462
14511
  }
14463
14512
  });
14464
- const _hoisted_1$c = { class: "pb-editor bs-layout-vertical flex-grow-1" };
14465
- const _hoisted_2$c = { class: "pb-editor-body bs-layout-horizontal flex-grow-1" };
14466
- const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
14513
+ const _hoisted_1$d = { class: "pb-editor bs-layout-vertical flex-grow-1" };
14514
+ const _hoisted_2$d = { class: "pb-editor-body bs-layout-horizontal flex-grow-1" };
14515
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
14467
14516
  __name: "PageBuilderEditor",
14468
14517
  props: {
14469
14518
  instanceId: {},
@@ -14506,22 +14555,22 @@ ${_html.style}
14506
14555
  getPageContent
14507
14556
  });
14508
14557
  return (_ctx, _cache) => {
14509
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
14510
- vue.createVNode(_sfc_main$l, { "toolbar-plugin": _ctx.toolbarPlugin }, null, 8, ["toolbar-plugin"]),
14511
- vue.createElementVNode("div", _hoisted_2$c, [
14512
- vue.createVNode(_sfc_main$k),
14513
- vue.createVNode(_sfc_main$d),
14514
- vue.createVNode(_sfc_main$g)
14558
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$d, [
14559
+ vue.createVNode(_sfc_main$m, { "toolbar-plugin": _ctx.toolbarPlugin }, null, 8, ["toolbar-plugin"]),
14560
+ vue.createElementVNode("div", _hoisted_2$d, [
14561
+ vue.createVNode(_sfc_main$l),
14562
+ vue.createVNode(_sfc_main$e),
14563
+ vue.createVNode(_sfc_main$h)
14515
14564
  ])
14516
14565
  ]);
14517
14566
  };
14518
14567
  }
14519
14568
  });
14520
- const _hoisted_1$b = { class: "property-editor property-editor-readonly-text" };
14521
- const _hoisted_2$b = { class: "title" };
14522
- const _hoisted_3$9 = ["textContent"];
14569
+ const _hoisted_1$c = { class: "property-editor property-editor-readonly-text" };
14570
+ const _hoisted_2$c = { class: "title" };
14571
+ const _hoisted_3$a = ["textContent"];
14523
14572
  const _hoisted_4$3 = ["textContent"];
14524
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
14573
+ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
14525
14574
  __name: "PbPropertyEditorReadonlyText",
14526
14575
  props: {
14527
14576
  property: {},
@@ -14529,11 +14578,11 @@ ${_html.style}
14529
14578
  },
14530
14579
  setup(__props) {
14531
14580
  return (_ctx, _cache) => {
14532
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
14533
- vue.createElementVNode("div", _hoisted_2$b, [
14581
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
14582
+ vue.createElementVNode("div", _hoisted_2$c, [
14534
14583
  vue.createElementVNode("label", {
14535
14584
  textContent: vue.toDisplayString(_ctx.property.caption)
14536
- }, null, 8, _hoisted_3$9)
14585
+ }, null, 8, _hoisted_3$a)
14537
14586
  ]),
14538
14587
  vue.createElementVNode("div", null, [
14539
14588
  vue.createElementVNode("div", {
@@ -14546,12 +14595,12 @@ ${_html.style}
14546
14595
  });
14547
14596
  const PbPropertyEditorReadonlyText = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
14548
14597
  __proto__: null,
14549
- default: _sfc_main$b
14598
+ default: _sfc_main$c
14550
14599
  }, Symbol.toStringTag, { value: "Module" }));
14551
- const _hoisted_1$a = { class: "property-editor property-editor-text flex-align-center" };
14552
- const _hoisted_2$a = { class: "title" };
14553
- const _hoisted_3$8 = ["textContent"];
14554
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
14600
+ const _hoisted_1$b = { class: "property-editor property-editor-text flex-align-center" };
14601
+ const _hoisted_2$b = { class: "title" };
14602
+ const _hoisted_3$9 = ["textContent"];
14603
+ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
14555
14604
  __name: "PbPropertyEditorText",
14556
14605
  props: {
14557
14606
  property: {},
@@ -14569,11 +14618,11 @@ ${_html.style}
14569
14618
  emit("update-property-value", properties);
14570
14619
  };
14571
14620
  return (_ctx, _cache) => {
14572
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
14573
- vue.createElementVNode("div", _hoisted_2$a, [
14621
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
14622
+ vue.createElementVNode("div", _hoisted_2$b, [
14574
14623
  vue.createElementVNode("label", {
14575
14624
  textContent: vue.toDisplayString(_ctx.property.caption)
14576
- }, null, 8, _hoisted_3$8)
14625
+ }, null, 8, _hoisted_3$9)
14577
14626
  ]),
14578
14627
  vue.createElementVNode("div", null, [
14579
14628
  _ctx.property.multiLang ? (vue.openBlock(), vue.createBlock(vue.unref(bluesea.BSMultiLangTextInput), {
@@ -14594,6 +14643,46 @@ ${_html.style}
14594
14643
  }
14595
14644
  });
14596
14645
  const PbPropertyEditorText = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
14646
+ __proto__: null,
14647
+ default: _sfc_main$b
14648
+ }, Symbol.toStringTag, { value: "Module" }));
14649
+ const _hoisted_1$a = { class: "property-editor property-editor-number flex-align-center" };
14650
+ const _hoisted_2$a = { class: "title" };
14651
+ const _hoisted_3$8 = ["textContent"];
14652
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
14653
+ __name: "PbPropertyEditorNumber",
14654
+ props: {
14655
+ property: {},
14656
+ value: {}
14657
+ },
14658
+ emits: ["update-property-value"],
14659
+ setup(__props, { emit: __emit }) {
14660
+ const props = __props;
14661
+ const emit = __emit;
14662
+ const emitUpdatePropertyValue = (value) => {
14663
+ const properties = {};
14664
+ properties[props.property.propertyName] = `${value}`;
14665
+ emit("update-property-value", properties);
14666
+ };
14667
+ return (_ctx, _cache) => {
14668
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
14669
+ vue.createElementVNode("div", _hoisted_2$a, [
14670
+ vue.createElementVNode("label", {
14671
+ textContent: vue.toDisplayString(_ctx.property.caption)
14672
+ }, null, 8, _hoisted_3$8)
14673
+ ]),
14674
+ vue.createElementVNode("div", null, [
14675
+ vue.createVNode(vue.unref(bluesea.BSNumberInput), {
14676
+ "model-value": Number(_ctx.value),
14677
+ width: "100%",
14678
+ "onUpdate:modelValue": emitUpdatePropertyValue
14679
+ }, null, 8, ["model-value"])
14680
+ ])
14681
+ ]);
14682
+ };
14683
+ }
14684
+ });
14685
+ const PbPropertyEditorNumber = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
14597
14686
  __proto__: null,
14598
14687
  default: _sfc_main$a
14599
14688
  }, Symbol.toStringTag, { value: "Module" }));
@@ -14916,7 +15005,7 @@ ${_html.style}
14916
15005
  };
14917
15006
  return (_ctx, _cache) => {
14918
15007
  return vue.openBlock(), vue.createBlock(vue.unref(bluesea.BSModalFrame), {
14919
- class: "pb-html-editor-modal",
15008
+ class: "pb-youtube-modal",
14920
15009
  title: "Youtube Video"
14921
15010
  }, {
14922
15011
  default: vue.withCtx(() => [
@@ -15292,12 +15381,12 @@ ${_html.tags}` : "";
15292
15381
  exports2.PAGE_BUILDER_KEY = PAGE_BUILDER_KEY;
15293
15382
  exports2.PAGE_TYPE = PAGE_TYPE$1;
15294
15383
  exports2.Page = Page;
15295
- exports2.PageBuilderEditor = _sfc_main$c;
15384
+ exports2.PageBuilderEditor = _sfc_main$d;
15296
15385
  exports2.PageBuilderEditorEvent = PageBuilderEditorEvent;
15297
15386
  exports2.PageBuilderViewer = _sfc_main$2$1;
15298
15387
  exports2.Part = Part;
15299
15388
  exports2.PbContainerWidget = _sfc_main$1$1;
15300
- exports2.PbCustomWidget = _sfc_main$C;
15389
+ exports2.PbCustomWidget = _sfc_main$D;
15301
15390
  exports2.PbHtmlWidget = _sfc_main$6$1;
15302
15391
  exports2.PbIframeWidget = _sfc_main$5$1;
15303
15392
  exports2.PbImageWidget = _sfc_main$8$1;