@g1cloud/page-builder-editor 1.0.0-alpha.71 → 1.0.0-alpha.73

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.
@@ -17,6 +17,7 @@
17
17
  display: flex;
18
18
  flex-direction: column;
19
19
  width: 100%;
20
+ background-color: #fff;
20
21
 
21
22
  &.selected::before {
22
23
  content: "";
@@ -6,18 +6,15 @@
6
6
  background-repeat: no-repeat;
7
7
  background-size: cover;
8
8
  outline: 1px dashed #ccc;
9
- background-color: #fff;
9
+
10
+ &:empty {
11
+ background-color: #fff;
12
+ }
10
13
 
11
14
  &:hover:not(:has(.pb-block:hover)) {
12
15
  background-color: #f0f0f0;
13
16
  }
14
17
 
15
- //&.selected {
16
- // outline: 2px solid #4998f8;
17
- // outline-offset: -2px;
18
- // z-index: 999;
19
- //}
20
-
21
18
  &.selected::before {
22
19
  content: "";
23
20
  position: absolute;
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, withDirectives, unref, createVNode } from "vue";
2
2
  import { vT, BSTextInput } from "@g1cloud/bluesea";
3
- import { P as PbColorPicker } from "./index-D_Af8_UC.js";
3
+ import { P as PbColorPicker } from "./index-CEBGHWjv.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-color" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = { class: "bs-layout-horizontal flex-align-center color" };
@@ -0,0 +1,42 @@
1
+ import { defineComponent, openBlock, createElementBlock, createElementVNode, withDirectives, unref, createVNode } from "vue";
2
+ import { vT, BSTextInput } from "@g1cloud/bluesea";
3
+ import { t as toCssLength } from "./index-CEBGHWjv.js";
4
+ const _hoisted_1 = { class: "property-editor property-editor-number flex-align-center" };
5
+ const _hoisted_2 = { class: "title" };
6
+ const _sfc_main = /* @__PURE__ */ defineComponent({
7
+ __name: "PbPropertyEditorCssLength",
8
+ props: {
9
+ property: {},
10
+ value: {}
11
+ },
12
+ emits: ["update-property-value"],
13
+ setup(__props, { emit: __emit }) {
14
+ const props = __props;
15
+ const emit = __emit;
16
+ const emitUpdatePropertyValue = (value) => {
17
+ const cssLength = toCssLength(value || "");
18
+ const properties = {};
19
+ properties[props.property.propertyName] = `${cssLength}`;
20
+ emit("update-property-value", properties);
21
+ };
22
+ return (_ctx, _cache) => {
23
+ return openBlock(), createElementBlock("div", _hoisted_1, [
24
+ createElementVNode("div", _hoisted_2, [
25
+ withDirectives(createElementVNode("label", null, null, 512), [
26
+ [unref(vT), { key: _ctx.property.caption }]
27
+ ])
28
+ ]),
29
+ createElementVNode("div", null, [
30
+ createVNode(unref(BSTextInput), {
31
+ "model-value": _ctx.value,
32
+ width: "100%",
33
+ "onUpdate:modelValue": emitUpdatePropertyValue
34
+ }, null, 8, ["model-value"])
35
+ ])
36
+ ]);
37
+ };
38
+ }
39
+ });
40
+ export {
41
+ _sfc_main as default
42
+ };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, withDirectives, unref, createTextVNode, defineAsyncComponent } from "vue";
2
2
  import { useModal, vT } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-D_Af8_UC.js";
3
+ import { u as usePageBuilderEditor } from "./index-CEBGHWjv.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-html flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, createElementVNode, withDirectives, unref, createTextVNode, toDisplayString, createVNode, createCommentVNode, Fragment } from "vue";
2
- import { u as usePageBuilderEditor, C as ChangePropertyCommand } from "./index-D_Af8_UC.js";
2
+ import { u as usePageBuilderEditor, C as ChangePropertyCommand } from "./index-CEBGHWjv.js";
3
3
  import { useModal, vT, BSButton, BSMultiLangTextInput, showNotification } from "@g1cloud/bluesea";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-image" };
5
5
  const _hoisted_2 = { class: "title" };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, createElementVNode, withDirectives, unref, createBlock } from "vue";
2
2
  import { vT, BSMultiLangTextArea, BSTextArea } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-D_Af8_UC.js";
3
+ import { u as usePageBuilderEditor } from "./index-CEBGHWjv.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-multiline-text" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, createElementVNode, withDirectives, unref, createBlock } from "vue";
2
2
  import { vT, BSMultiLangTextInput, BSTextInput } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-D_Af8_UC.js";
3
+ import { u as usePageBuilderEditor } from "./index-CEBGHWjv.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-text flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, withDirectives, unref } from "vue";
2
2
  import { useModal, vT } from "@g1cloud/bluesea";
3
- import { s as selectYoutubeVideo } from "./index-D_Af8_UC.js";
3
+ import { s as selectYoutubeVideo } from "./index-CEBGHWjv.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, createElementBlock, Fragment, renderList, toDisplayString } from "vue";
2
2
  import { useModalHandle, BSModalFrame } from "@g1cloud/bluesea";
3
- import { w as widgetPartDefinitions } from "./index-D_Af8_UC.js";
3
+ import { w as widgetPartDefinitions } from "./index-CEBGHWjv.js";
4
4
  const _hoisted_1 = { class: "bs-layout-vertical pb-part-add-modal" };
5
5
  const _hoisted_2 = { class: "bs-layout-horizontal-wrap ml-16 mb-8 gap-8" };
6
6
  const _hoisted_3 = ["onClick", "textContent"];
@@ -0,0 +1,23 @@
1
+ import { PartProperty } from '../../../model/part-property.ts';
2
+
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
4
+ property: PartProperty;
5
+ value?: string | undefined;
6
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
+ "update-property-value": (properties: Record<string, unknown>) => void;
8
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
9
+ property: PartProperty;
10
+ value?: string | undefined;
11
+ }>>> & Readonly<{
12
+ "onUpdate-property-value"?: ((properties: Record<string, unknown>) => any) | undefined;
13
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
14
+ export default _default;
15
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
16
+ type __VLS_TypePropsToRuntimeProps<T> = {
17
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
18
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
19
+ } : {
20
+ type: import('vue').PropType<T[K]>;
21
+ required: true;
22
+ };
23
+ };
@@ -6957,7 +6957,7 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
6957
6957
  innerHTML: styleTag.value
6958
6958
  }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
6959
6959
  withDirectives(createElementVNode("div", {
6960
- class: normalizeClass([classNames.value, "pb-block"]),
6960
+ class: normalizeClass(classNames.value),
6961
6961
  "data-part-id": _ctx.part.partId,
6962
6962
  style: normalizeStyle(style.value)
6963
6963
  }, [
@@ -7003,7 +7003,7 @@ const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
7003
7003
  innerHTML: styleTag.value
7004
7004
  }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
7005
7005
  withDirectives(createElementVNode("div", {
7006
- class: normalizeClass([classNames.value, "pb-section"]),
7006
+ class: normalizeClass(classNames.value),
7007
7007
  "data-part-id": _ctx.part.partId,
7008
7008
  style: normalizeStyle(style.value)
7009
7009
  }, [
@@ -8210,15 +8210,16 @@ class PartManager {
8210
8210
  const defaultPartPropertyEditors = () => {
8211
8211
  return {
8212
8212
  "readonly-text": () => defineAsyncComponent(() => import("./PbPropertyEditorReadonlyText-BJ5qx69O.js")),
8213
- "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-BlUBlNyG.js")),
8213
+ "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-BFZszY0B.js")),
8214
8214
  "number": () => defineAsyncComponent(() => import("./PbPropertyEditorNumber-B76ArSb5.js")),
8215
8215
  "boolean": () => defineAsyncComponent(() => import("./PbPropertyEditorBoolean-c5CNiTpt.js")),
8216
- "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-DYbAZ4hz.js")),
8216
+ "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-Lm27UPXU.js")),
8217
8217
  "select": () => defineAsyncComponent(() => import("./PbPropertyEditorSelect-B5sfulvx.js")),
8218
- "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-DE3eH4kY.js")),
8219
- "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-BR8g41aN.js")),
8220
- "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-CNeTyj09.js")),
8221
- "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-HsOJ6Oxj.js"))
8218
+ "css-length": () => defineAsyncComponent(() => import("./PbPropertyEditorCssLength-Cku7TH0H.js")),
8219
+ "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-Bburxcfo.js")),
8220
+ "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-D-ZvZqEl.js")),
8221
+ "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-BlzCBvjh.js")),
8222
+ "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-veiAlowu.js"))
8222
8223
  };
8223
8224
  };
8224
8225
  const getPropertyValueOfParts = (parts, propertyName) => {
@@ -9316,6 +9317,18 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
9316
9317
  };
9317
9318
  }
9318
9319
  });
9320
+ function toCssLength(value) {
9321
+ const cssLengthPattern = /^-?\d+(\.\d+)?(px|em|rem|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/;
9322
+ value = value.trim().replace(/\s+(?=[a-zA-Z%]+)/g, "");
9323
+ if (cssLengthPattern.test(value)) {
9324
+ return value;
9325
+ }
9326
+ const numberMatch = value.match(/-?\d+(\.\d+)?/);
9327
+ if (!numberMatch) {
9328
+ return "";
9329
+ }
9330
+ return `${numberMatch[0]}px`;
9331
+ }
9319
9332
  const _hoisted_1$o = { class: "group-editor group-editor-position" };
9320
9333
  const _hoisted_2$f = { class: "flex-align-center" };
9321
9334
  const _hoisted_3$c = { class: "title" };
@@ -9343,10 +9356,10 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9343
9356
  { properties, targetParts: props.selectedParts }
9344
9357
  );
9345
9358
  };
9346
- const updateLeft = (value) => updatePropertyValue({ left: value });
9347
- const updateRight = (value) => updatePropertyValue({ right: value });
9348
- const updateTop = (value) => updatePropertyValue({ top: value });
9349
- const updateBottom = (value) => updatePropertyValue({ bottom: value });
9359
+ const updateLeft = (value) => updatePropertyValue({ left: toCssLength(value) });
9360
+ const updateRight = (value) => updatePropertyValue({ right: toCssLength(value) });
9361
+ const updateTop = (value) => updatePropertyValue({ top: toCssLength(value) });
9362
+ const updateBottom = (value) => updatePropertyValue({ bottom: toCssLength(value) });
9350
9363
  return (_ctx, _cache) => {
9351
9364
  return openBlock(), createElementBlock("div", _hoisted_1$o, [
9352
9365
  createElementVNode("div", _hoisted_2$f, [
@@ -9435,12 +9448,12 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
9435
9448
  { properties, targetParts: props.selectedParts }
9436
9449
  );
9437
9450
  };
9438
- const updateWidth = (value) => updatePropertyValue({ width: value });
9439
- const updateHeight = (value) => updatePropertyValue({ height: value });
9440
- const updateMaxWidth = (value) => updatePropertyValue({ maxWidth: value });
9441
- const updateMaxHeight = (value) => updatePropertyValue({ maxHeight: value });
9442
- const updateMinWidth = (value) => updatePropertyValue({ minWidth: value });
9443
- const updateMinHeight = (value) => updatePropertyValue({ minHeight: value });
9451
+ const updateWidth = (value) => updatePropertyValue({ width: toCssLength(value) });
9452
+ const updateHeight = (value) => updatePropertyValue({ height: toCssLength(value) });
9453
+ const updateMaxWidth = (value) => updatePropertyValue({ maxWidth: toCssLength(value) });
9454
+ const updateMaxHeight = (value) => updatePropertyValue({ maxHeight: toCssLength(value) });
9455
+ const updateMinWidth = (value) => updatePropertyValue({ minWidth: toCssLength(value) });
9456
+ const updateMinHeight = (value) => updatePropertyValue({ minHeight: toCssLength(value) });
9444
9457
  return (_ctx, _cache) => {
9445
9458
  return openBlock(), createElementBlock("div", _hoisted_1$n, [
9446
9459
  createElementVNode("div", _hoisted_2$e, [
@@ -11584,14 +11597,14 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
11584
11597
  const saveOriginalColor = () => {
11585
11598
  };
11586
11599
  const updateColor = (value) => updatePropertyValue({ borderColor: value });
11587
- const updateBorderLeftWidth = (value) => updatePropertyValue({ borderLeftWidth: value });
11588
- const updateBorderRightWidth = (value) => updatePropertyValue({ borderRightWidth: value });
11589
- const updateBorderTopWidth = (value) => updatePropertyValue({ borderTopWidth: value });
11590
- const updateBorderBottomWidth = (value) => updatePropertyValue({ borderBottomWidth: value });
11591
- const updateBorderTopLeftRadius = (value) => updatePropertyValue({ borderTopLeftRadius: value });
11592
- const updateBorderTopRightRadius = (value) => updatePropertyValue({ borderTopRightRadius: value });
11593
- const updateBorderBottomLeftRadius = (value) => updatePropertyValue({ borderBottomLeftRadius: value });
11594
- const updateBorderBottomRightRadius = (value) => updatePropertyValue({ borderBottomRightRadius: value });
11600
+ const updateBorderLeftWidth = (value) => updatePropertyValue({ borderLeftWidth: toCssLength(value) });
11601
+ const updateBorderRightWidth = (value) => updatePropertyValue({ borderRightWidth: toCssLength(value) });
11602
+ const updateBorderTopWidth = (value) => updatePropertyValue({ borderTopWidth: toCssLength(value) });
11603
+ const updateBorderBottomWidth = (value) => updatePropertyValue({ borderBottomWidth: toCssLength(value) });
11604
+ const updateBorderTopLeftRadius = (value) => updatePropertyValue({ borderTopLeftRadius: toCssLength(value) });
11605
+ const updateBorderTopRightRadius = (value) => updatePropertyValue({ borderTopRightRadius: toCssLength(value) });
11606
+ const updateBorderBottomLeftRadius = (value) => updatePropertyValue({ borderBottomLeftRadius: toCssLength(value) });
11607
+ const updateBorderBottomRightRadius = (value) => updatePropertyValue({ borderBottomRightRadius: toCssLength(value) });
11595
11608
  return (_ctx, _cache) => {
11596
11609
  return openBlock(), createElementBlock("div", _hoisted_1$f, [
11597
11610
  createElementVNode("div", _hoisted_2$6, [
@@ -11750,10 +11763,10 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
11750
11763
  { properties, targetParts: props.selectedParts }
11751
11764
  );
11752
11765
  };
11753
- const updateLeft = (value) => updatePropertyValue({ marginLeft: value });
11754
- const updateRight = (value) => updatePropertyValue({ marginRight: value });
11755
- const updateTop = (value) => updatePropertyValue({ marginTop: value });
11756
- const updateBottom = (value) => updatePropertyValue({ marginBottom: value });
11766
+ const updateLeft = (value) => updatePropertyValue({ marginLeft: toCssLength(value) });
11767
+ const updateRight = (value) => updatePropertyValue({ marginRight: toCssLength(value) });
11768
+ const updateTop = (value) => updatePropertyValue({ marginTop: toCssLength(value) });
11769
+ const updateBottom = (value) => updatePropertyValue({ marginBottom: toCssLength(value) });
11757
11770
  return (_ctx, _cache) => {
11758
11771
  return openBlock(), createElementBlock("div", _hoisted_1$e, [
11759
11772
  createElementVNode("div", _hoisted_2$5, [
@@ -11838,10 +11851,10 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
11838
11851
  { properties, targetParts: props.selectedParts }
11839
11852
  );
11840
11853
  };
11841
- const updateLeft = (value) => updatePropertyValue({ paddingLeft: value });
11842
- const updateRight = (value) => updatePropertyValue({ paddingRight: value });
11843
- const updateTop = (value) => updatePropertyValue({ paddingTop: value });
11844
- const updateBottom = (value) => updatePropertyValue({ paddingBottom: value });
11854
+ const updateLeft = (value) => updatePropertyValue({ paddingLeft: toCssLength(value) });
11855
+ const updateRight = (value) => updatePropertyValue({ paddingRight: toCssLength(value) });
11856
+ const updateTop = (value) => updatePropertyValue({ paddingTop: toCssLength(value) });
11857
+ const updateBottom = (value) => updatePropertyValue({ paddingBottom: toCssLength(value) });
11845
11858
  return (_ctx, _cache) => {
11846
11859
  return openBlock(), createElementBlock("div", _hoisted_1$d, [
11847
11860
  createElementVNode("div", _hoisted_2$4, [
@@ -11907,22 +11920,22 @@ const positionGroup = () => {
11907
11920
  {
11908
11921
  propertyName: "left",
11909
11922
  caption: "Left",
11910
- propertyType: "text"
11923
+ propertyType: "css-length"
11911
11924
  },
11912
11925
  {
11913
11926
  propertyName: "right",
11914
11927
  caption: "Right",
11915
- propertyType: "text"
11928
+ propertyType: "css-length"
11916
11929
  },
11917
11930
  {
11918
11931
  propertyName: "top",
11919
11932
  caption: "Top",
11920
- propertyType: "text"
11933
+ propertyType: "css-length"
11921
11934
  },
11922
11935
  {
11923
11936
  propertyName: "bottom",
11924
11937
  caption: "Bottom",
11925
- propertyType: "text"
11938
+ propertyType: "css-length"
11926
11939
  }
11927
11940
  ],
11928
11941
  propertyGroupEditor: () => _sfc_main$k
@@ -11936,32 +11949,32 @@ const sizeGroup = () => {
11936
11949
  {
11937
11950
  propertyName: "width",
11938
11951
  caption: "Width",
11939
- propertyType: "text"
11952
+ propertyType: "css-length"
11940
11953
  },
11941
11954
  {
11942
11955
  propertyName: "height",
11943
11956
  caption: "Height",
11944
- propertyType: "text"
11957
+ propertyType: "css-length"
11945
11958
  },
11946
11959
  {
11947
11960
  propertyName: "minWidth",
11948
11961
  caption: "Min Width",
11949
- propertyType: "text"
11962
+ propertyType: "css-length"
11950
11963
  },
11951
11964
  {
11952
11965
  propertyName: "minHeight",
11953
11966
  caption: "Min Height",
11954
- propertyType: "text"
11967
+ propertyType: "css-length"
11955
11968
  },
11956
11969
  {
11957
11970
  propertyName: "maxWidth",
11958
11971
  caption: "Max Width",
11959
- propertyType: "text"
11972
+ propertyType: "css-length"
11960
11973
  },
11961
11974
  {
11962
11975
  propertyName: "maxHeight",
11963
11976
  caption: "Max Height",
11964
- propertyType: "text"
11977
+ propertyType: "css-length"
11965
11978
  }
11966
11979
  ],
11967
11980
  propertyGroupEditor: () => _sfc_main$j
@@ -11975,22 +11988,22 @@ const marginGroup = () => {
11975
11988
  {
11976
11989
  propertyName: "marginLeft",
11977
11990
  caption: "Left",
11978
- propertyType: "text"
11991
+ propertyType: "css-length"
11979
11992
  },
11980
11993
  {
11981
11994
  propertyName: "marginRight",
11982
11995
  caption: "Right",
11983
- propertyType: "text"
11996
+ propertyType: "css-length"
11984
11997
  },
11985
11998
  {
11986
11999
  propertyName: "marginTop",
11987
12000
  caption: "Top",
11988
- propertyType: "text"
12001
+ propertyType: "css-length"
11989
12002
  },
11990
12003
  {
11991
12004
  propertyName: "marginBottom",
11992
12005
  caption: "Bottom",
11993
- propertyType: "text"
12006
+ propertyType: "css-length"
11994
12007
  }
11995
12008
  ],
11996
12009
  propertyGroupEditor: () => _sfc_main$f
@@ -12004,22 +12017,22 @@ const paddingGroup = () => {
12004
12017
  {
12005
12018
  propertyName: "paddingLeft",
12006
12019
  caption: "Left",
12007
- propertyType: "text"
12020
+ propertyType: "css-length"
12008
12021
  },
12009
12022
  {
12010
12023
  propertyName: "paddingRight",
12011
12024
  caption: "Right",
12012
- propertyType: "text"
12025
+ propertyType: "css-length"
12013
12026
  },
12014
12027
  {
12015
12028
  propertyName: "paddingTop",
12016
12029
  caption: "Top",
12017
- propertyType: "text"
12030
+ propertyType: "css-length"
12018
12031
  },
12019
12032
  {
12020
12033
  propertyName: "paddingBottom",
12021
12034
  caption: "Bottom",
12022
- propertyType: "text"
12035
+ propertyType: "css-length"
12023
12036
  }
12024
12037
  ],
12025
12038
  propertyGroupEditor: () => _sfc_main$e
@@ -12174,42 +12187,42 @@ const borderGroup = () => {
12174
12187
  {
12175
12188
  propertyName: "borderLeftWidth",
12176
12189
  caption: "Border Left Width",
12177
- propertyType: "text"
12190
+ propertyType: "css-length"
12178
12191
  },
12179
12192
  {
12180
12193
  propertyName: "borderRightWidth",
12181
12194
  caption: "Border Right Width",
12182
- propertyType: "text"
12195
+ propertyType: "css-length"
12183
12196
  },
12184
12197
  {
12185
12198
  propertyName: "borderTopWidth",
12186
12199
  caption: "Border Top Width",
12187
- propertyType: "text"
12200
+ propertyType: "css-length"
12188
12201
  },
12189
12202
  {
12190
12203
  propertyName: "borderBottomWidth",
12191
12204
  caption: "Border Bottom Width",
12192
- propertyType: "text"
12205
+ propertyType: "css-length"
12193
12206
  },
12194
12207
  {
12195
12208
  propertyName: "borderTopLeftRadius",
12196
12209
  caption: "Border Top Left Radius",
12197
- propertyType: "text"
12210
+ propertyType: "css-length"
12198
12211
  },
12199
12212
  {
12200
12213
  propertyName: "borderTopRightRadius",
12201
12214
  caption: "Border Top Right Radius",
12202
- propertyType: "text"
12215
+ propertyType: "css-length"
12203
12216
  },
12204
12217
  {
12205
12218
  propertyName: "borderBottomLeftRadius",
12206
12219
  caption: "Border Bottom Left Radius",
12207
- propertyType: "text"
12220
+ propertyType: "css-length"
12208
12221
  },
12209
12222
  {
12210
12223
  propertyName: "borderBottomRightRadius",
12211
12224
  caption: "Border Bottom Right Radius",
12212
- propertyType: "text"
12225
+ propertyType: "css-length"
12213
12226
  }
12214
12227
  ],
12215
12228
  propertyGroupEditor: () => _sfc_main$g
@@ -12757,7 +12770,7 @@ __publicField(_OpenAddWidgetModalCommand, "COMMAND_ID", "OpenAddWidgetModal");
12757
12770
  let OpenAddWidgetModalCommand = _OpenAddWidgetModalCommand;
12758
12771
  const openWidgetAddModal = (modal, args, callback) => {
12759
12772
  modal.openModal({
12760
- component: defineAsyncComponent(() => import("./PbWidgetAddModal-C_6443Z3.js")),
12773
+ component: defineAsyncComponent(() => import("./PbWidgetAddModal-8BvUYv62.js")),
12761
12774
  style: {
12762
12775
  width: "80%",
12763
12776
  height: "80%",
@@ -14545,8 +14558,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14545
14558
  const rowMoved = (event) => {
14546
14559
  var _a, _b, _c, _d, _e, _f;
14547
14560
  let page2 = pageBuilder.context.getSelectedPage();
14548
- const parentPartId = ((_a = event.destParent) == null ? void 0 : _a.partId) || (page2 == null ? void 0 : page2.partId);
14549
- if (!parentPartId) return;
14561
+ const destPartId = ((_a = event.destParent) == null ? void 0 : _a.partId) || (page2 == null ? void 0 : page2.partId);
14562
+ if (!destPartId) return;
14550
14563
  let ok = false;
14551
14564
  if (event.row.isSection()) {
14552
14565
  if ((_b = event.destParent) == null ? void 0 : _b.isPage()) ok = true;
@@ -14561,7 +14574,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14561
14574
  }
14562
14575
  if (ok) {
14563
14576
  backupPartSelection();
14564
- pageBuilder.model.moveElements(event.row.partId, parentPartId, event.destIndex, void 0, true);
14577
+ pageBuilder.model.moveElements(event.row.partId, destPartId, event.destIndex, void 0, true);
14565
14578
  }
14566
14579
  };
14567
14580
  const selectedRows = computed({
@@ -14655,7 +14668,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14655
14668
  "key-provider": (part) => part.partId,
14656
14669
  "label-provider": labelProvider,
14657
14670
  class: "max-w-320",
14658
- "dont-change-data-when-rowmoved": "",
14671
+ "dont-change-data-when-row-moved": "",
14659
14672
  "multi-select": "",
14660
14673
  "show-move-button": "",
14661
14674
  onRowMoved: rowMoved
@@ -14887,7 +14900,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
14887
14900
  };
14888
14901
  }
14889
14902
  });
14890
- 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 > .invalid-widget {\n display: flex;\n height: 50px;\n justify-content: center;\n align-items: center;\n width: 100%;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\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-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}';
14903
+ 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 background-color: #fff;\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}\n\n.pb-section:empty {\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 > .invalid-widget {\n display: flex;\n height: 50px;\n justify-content: center;\n align-items: center;\n width: 100%;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\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-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}';
14891
14904
  const _hoisted_1$2 = ["width"];
14892
14905
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
14893
14906
  __name: "PbPageFrame",
@@ -16461,10 +16474,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16461
16474
  }
16462
16475
  });
16463
16476
  export {
16464
- usePageBuilder as A,
16477
+ providePageBuilderViewer as A,
16465
16478
  BLOCK_TYPE$1 as B,
16466
16479
  ChangePropertyCommand as C,
16467
- usePageBuilderViewer as D,
16480
+ usePageBuilder as D,
16481
+ usePageBuilderViewer as E,
16468
16482
  Model$1 as M,
16469
16483
  PbColorPicker as P,
16470
16484
  ROOT_TYPE$1 as R,
@@ -16490,11 +16504,11 @@ export {
16490
16504
  Widget as q,
16491
16505
  createPageBuilderViewer as r,
16492
16506
  selectYoutubeVideo as s,
16493
- createPartComponent as t,
16507
+ toCssLength as t,
16494
16508
  usePageBuilderEditor as u,
16495
- createPartComponents as v,
16509
+ createPartComponent as v,
16496
16510
  widgetPartDefinitions as w,
16497
- getPartClassName as x,
16498
- providePageBuilder as y,
16499
- providePageBuilderViewer as z
16511
+ createPartComponents as x,
16512
+ getPartClassName as y,
16513
+ providePageBuilder as z
16500
16514
  };
@@ -1,7 +1,7 @@
1
1
  import { IPart } from '@g1cloud/page-builder-viewer';
2
2
  import { Component } from 'vue';
3
3
 
4
- export type PartPropertyType = 'readonly-text' | 'text' | 'number' | 'boolean' | 'multiline-text' | 'select' | string;
4
+ export type PartPropertyType = 'readonly-text' | 'text' | 'number' | 'boolean' | 'multiline-text' | 'select' | 'css-length' | string;
5
5
  export type PartPropertyEditor = (property: PartProperty, parts: IPart[]) => Component | undefined;
6
6
  export type PartProperty = {
7
7
  propertyName: string;
@@ -1,4 +1,4 @@
1
- import { B, b, M, c, d, e, _, a, f, g, h, i, j, k, l, m, n, R, o, S, p, W, q, r, t, v, x, y, z, A, D } from "./index-D_Af8_UC.js";
1
+ import { B, b, M, c, d, e, _, a, f, g, h, i, j, k, l, m, n, R, o, S, p, W, q, r, v, x, y, z, A, D, E } from "./index-CEBGHWjv.js";
2
2
  export {
3
3
  B as BLOCK_TYPE,
4
4
  b as Block,
@@ -24,11 +24,11 @@ export {
24
24
  W as WIDGET_TYPE,
25
25
  q as Widget,
26
26
  r as createPageBuilderViewer,
27
- t as createPartComponent,
28
- v as createPartComponents,
29
- x as getPartClassName,
30
- y as providePageBuilder,
31
- z as providePageBuilderViewer,
32
- A as usePageBuilder,
33
- D as usePageBuilderViewer
27
+ v as createPartComponent,
28
+ x as createPartComponents,
29
+ y as getPartClassName,
30
+ z as providePageBuilder,
31
+ A as providePageBuilderViewer,
32
+ D as usePageBuilder,
33
+ E as usePageBuilderViewer
34
34
  };