@bagelink/blox 1.6.47 → 1.6.49
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.
- package/dist/components/blocks/BlockFooter.vue.d.ts.map +1 -1
- package/dist/components/blocks/BlockNav.vue.d.ts.map +1 -1
- package/dist/components/blocks/Contact.vue.d.ts +1 -1
- package/dist/components/blocks/Contact.vue.d.ts.map +1 -1
- package/dist/components/blocks/Tabs.vue.d.ts +1 -1
- package/dist/components/blocks/Tabs.vue.d.ts.map +1 -1
- package/dist/components/blocks/Team.vue.d.ts.map +1 -1
- package/dist/components/blocks/Testimonials.vue.d.ts.map +1 -1
- package/dist/index.cjs +105 -104
- package/dist/index.mjs +106 -105
- package/dist/style.css +118 -118
- package/dist/views/ExternalPreview.vue.d.ts.map +1 -1
- package/package.json +2 -3
package/dist/index.cjs
CHANGED
|
@@ -62,12 +62,12 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
|
|
|
62
62
|
},
|
|
63
63
|
setup(__props) {
|
|
64
64
|
vue.useCssVars((_ctx) => ({
|
|
65
|
-
"
|
|
65
|
+
"f164f006": _ctx.columns
|
|
66
66
|
}));
|
|
67
67
|
const props = __props;
|
|
68
68
|
const containerStyle = {
|
|
69
|
-
maxWidth:
|
|
70
|
-
padding:
|
|
69
|
+
maxWidth: typeof props.maxWidth === "number" ? `${props.maxWidth}px` : props.maxWidth,
|
|
70
|
+
padding: typeof props.padding === "number" ? `${props.padding}px` : props.padding,
|
|
71
71
|
gap: `${props.gap}px`
|
|
72
72
|
};
|
|
73
73
|
return (_ctx, _cache) => {
|
|
@@ -80,7 +80,7 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
|
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
});
|
|
83
|
-
const Container = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-
|
|
83
|
+
const Container = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-05d5aba4"]]);
|
|
84
84
|
const _hoisted_1$t = { class: "image-wrapper" };
|
|
85
85
|
const _hoisted_2$r = ["href", "target", "rel"];
|
|
86
86
|
const _hoisted_3$o = ["src", "alt"];
|
|
@@ -145,8 +145,8 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
|
|
|
145
145
|
setup(__props) {
|
|
146
146
|
const props = __props;
|
|
147
147
|
function computedHeight() {
|
|
148
|
-
const h = props.isMobile && props.heightMobile ? props.heightMobile : props.height;
|
|
149
|
-
return "number"
|
|
148
|
+
const h = props.isMobile === true && props.heightMobile !== void 0 ? props.heightMobile : props.height;
|
|
149
|
+
return typeof h === "number" ? `${h}px` : h;
|
|
150
150
|
}
|
|
151
151
|
return (_ctx, _cache) => {
|
|
152
152
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -156,7 +156,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
|
|
|
156
156
|
};
|
|
157
157
|
}
|
|
158
158
|
});
|
|
159
|
-
const Spacer = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-
|
|
159
|
+
const Spacer = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-11859d36"]]);
|
|
160
160
|
const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
|
|
161
161
|
__name: "Text",
|
|
162
162
|
props: {
|
|
@@ -173,7 +173,7 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
|
|
|
173
173
|
};
|
|
174
174
|
}
|
|
175
175
|
});
|
|
176
|
-
const Text = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-
|
|
176
|
+
const Text = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-19fd75d2"]]);
|
|
177
177
|
const _hoisted_1$s = {
|
|
178
178
|
key: 1,
|
|
179
179
|
class: "subtitle"
|
|
@@ -205,7 +205,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
|
|
|
205
205
|
};
|
|
206
206
|
}
|
|
207
207
|
});
|
|
208
|
-
const Title$1 = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-
|
|
208
|
+
const Title$1 = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-aa7f2c92"]]);
|
|
209
209
|
const _hoisted_1$r = ["id"];
|
|
210
210
|
const _hoisted_2$q = {
|
|
211
211
|
key: 1,
|
|
@@ -246,7 +246,7 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
|
|
|
246
246
|
};
|
|
247
247
|
}
|
|
248
248
|
});
|
|
249
|
-
const BigImage = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-
|
|
249
|
+
const BigImage = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-44f7dcf0"]]);
|
|
250
250
|
const _hoisted_1$q = ["id"];
|
|
251
251
|
const _hoisted_2$p = {
|
|
252
252
|
key: 1,
|
|
@@ -313,7 +313,7 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
|
|
|
313
313
|
};
|
|
314
314
|
}
|
|
315
315
|
});
|
|
316
|
-
const BigQuote = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-
|
|
316
|
+
const BigQuote = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-13d1e7cc"]]);
|
|
317
317
|
const _hoisted_1$p = ["id"];
|
|
318
318
|
const _hoisted_2$o = { class: "flex w-1200px align-items-center space-between gap-075 m_column m_p-1 m_txt-center" };
|
|
319
319
|
const _hoisted_3$m = { class: "me-auto m_m-0" };
|
|
@@ -339,7 +339,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
|
339
339
|
},
|
|
340
340
|
setup(__props) {
|
|
341
341
|
const defaultItems = vue.computed(() => {
|
|
342
|
-
if (
|
|
342
|
+
if (__props.items.length > 0) {
|
|
343
343
|
return __props.items;
|
|
344
344
|
}
|
|
345
345
|
return [
|
|
@@ -349,7 +349,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
|
349
349
|
];
|
|
350
350
|
});
|
|
351
351
|
const defaultsocalMedia = vue.computed(() => {
|
|
352
|
-
if (
|
|
352
|
+
if (__props.socalMedia.length > 0) {
|
|
353
353
|
return __props.socalMedia;
|
|
354
354
|
}
|
|
355
355
|
return [
|
|
@@ -437,7 +437,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
|
|
|
437
437
|
},
|
|
438
438
|
setup(__props) {
|
|
439
439
|
const defaultItems = vue.computed(() => {
|
|
440
|
-
if (
|
|
440
|
+
if (__props.items.length > 0) {
|
|
441
441
|
return __props.items;
|
|
442
442
|
}
|
|
443
443
|
return [
|
|
@@ -531,7 +531,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
|
|
|
531
531
|
};
|
|
532
532
|
}
|
|
533
533
|
});
|
|
534
|
-
const BlockNav = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-
|
|
534
|
+
const BlockNav = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-351acf8f"]]);
|
|
535
535
|
const _hoisted_1$n = ["id"];
|
|
536
536
|
const _hoisted_2$m = { key: 0 };
|
|
537
537
|
const _hoisted_3$k = { class: "p-1-5" };
|
|
@@ -579,7 +579,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
579
579
|
}
|
|
580
580
|
];
|
|
581
581
|
const itemsList = vue.computed(() => {
|
|
582
|
-
return __props.items &&
|
|
582
|
+
return __props.items && __props.items.length > 0 ? __props.items : defaultItems;
|
|
583
583
|
});
|
|
584
584
|
return (_ctx, _cache) => {
|
|
585
585
|
const _directive_lightbox = vue.resolveDirective("lightbox");
|
|
@@ -655,7 +655,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
655
655
|
};
|
|
656
656
|
}
|
|
657
657
|
});
|
|
658
|
-
const Cards = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-
|
|
658
|
+
const Cards = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-ede9e3db"]]);
|
|
659
659
|
const _hoisted_1$m = ["id"];
|
|
660
660
|
const _hoisted_2$l = {
|
|
661
661
|
key: 0,
|
|
@@ -702,7 +702,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
702
702
|
id: {}
|
|
703
703
|
},
|
|
704
704
|
setup(__props) {
|
|
705
|
-
|
|
705
|
+
const formStatus = vue.ref("");
|
|
706
706
|
const form = vue.reactive({});
|
|
707
707
|
function initForm() {
|
|
708
708
|
Object.assign(form, {
|
|
@@ -718,6 +718,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
718
718
|
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
719
719
|
formStatus.value = "success";
|
|
720
720
|
} catch (error) {
|
|
721
|
+
console.error("Form submission failed:", error);
|
|
721
722
|
formStatus.value = "fail";
|
|
722
723
|
}
|
|
723
724
|
}
|
|
@@ -765,7 +766,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
765
766
|
])) : vue.createCommentVNode("", true)
|
|
766
767
|
])) : vue.createCommentVNode("", true),
|
|
767
768
|
vue.createElementVNode("div", _hoisted_7$4, [
|
|
768
|
-
|
|
769
|
+
formStatus.value !== "success" && _ctx.formStatusView !== "Success" ? (vue.openBlock(), vue.createElementBlock("form", {
|
|
769
770
|
key: 0,
|
|
770
771
|
class: "w-100p",
|
|
771
772
|
onSubmit: vue.withModifiers(sendForm, ["prevent"])
|
|
@@ -806,13 +807,13 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
806
807
|
})
|
|
807
808
|
])
|
|
808
809
|
], 32)) : vue.createCommentVNode("", true),
|
|
809
|
-
|
|
810
|
+
formStatus.value === "success" || _ctx.formStatusView === "Success" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$2, [
|
|
810
811
|
vue.createElementVNode("div", {
|
|
811
812
|
class: "txt-center txt-24",
|
|
812
813
|
innerHTML: _ctx.successMessage
|
|
813
814
|
}, null, 8, _hoisted_11$1)
|
|
814
815
|
])) : vue.createCommentVNode("", true),
|
|
815
|
-
|
|
816
|
+
formStatus.value === "fail" || _ctx.formStatusView === "Fail" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$1, [
|
|
816
817
|
vue.createElementVNode("p", _hoisted_13$1, vue.toDisplayString(_ctx.failMessage), 1)
|
|
817
818
|
])) : vue.createCommentVNode("", true)
|
|
818
819
|
])
|
|
@@ -821,7 +822,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
821
822
|
};
|
|
822
823
|
}
|
|
823
824
|
});
|
|
824
|
-
const Contact = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-
|
|
825
|
+
const Contact = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-6600c2c0"]]);
|
|
825
826
|
const _hoisted_1$l = ["id"];
|
|
826
827
|
const _hoisted_2$k = ["innerHTML"];
|
|
827
828
|
const _hoisted_3$i = {
|
|
@@ -888,7 +889,7 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
|
888
889
|
};
|
|
889
890
|
}
|
|
890
891
|
});
|
|
891
|
-
const Cta = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-
|
|
892
|
+
const Cta = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-639daae0"]]);
|
|
892
893
|
const _hoisted_1$k = ["id"];
|
|
893
894
|
const _hoisted_2$j = { class: "txt-20 balance m-0 relative z-2" };
|
|
894
895
|
const _hoisted_3$h = { class: "txt20 line-height-13 py-1 flex-grow-2 txt-start ps-1" };
|
|
@@ -933,7 +934,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
|
933
934
|
}
|
|
934
935
|
];
|
|
935
936
|
const itemsList = vue.computed(() => {
|
|
936
|
-
return __props.items &&
|
|
937
|
+
return __props.items && __props.items.length > 0 ? __props.items : defaultItems;
|
|
937
938
|
});
|
|
938
939
|
return (_ctx, _cache) => {
|
|
939
940
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -994,7 +995,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
|
994
995
|
};
|
|
995
996
|
}
|
|
996
997
|
});
|
|
997
|
-
const Faq = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-
|
|
998
|
+
const Faq = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-4be9591d"]]);
|
|
998
999
|
const _hoisted_1$j = ["id"];
|
|
999
1000
|
const _hoisted_2$i = { class: "relative z-2 w-100p mt-auto line-height-14 color-white" };
|
|
1000
1001
|
const _hoisted_3$g = { class: "m-0 txt30 regular balance max-w400px pb-025" };
|
|
@@ -1064,7 +1065,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
1064
1065
|
}
|
|
1065
1066
|
];
|
|
1066
1067
|
const itemsList = vue.computed(() => {
|
|
1067
|
-
return __props.items &&
|
|
1068
|
+
return __props.items && __props.items.length > 0 ? __props.items : defaultItems;
|
|
1068
1069
|
});
|
|
1069
1070
|
return (_ctx, _cache) => {
|
|
1070
1071
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -1154,7 +1155,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
1154
1155
|
}
|
|
1155
1156
|
];
|
|
1156
1157
|
const itemsList = vue.computed(() => {
|
|
1157
|
-
return __props.items &&
|
|
1158
|
+
return __props.items && __props.items.length > 0 ? __props.items : defaultItems;
|
|
1158
1159
|
});
|
|
1159
1160
|
return (_ctx, _cache) => {
|
|
1160
1161
|
return vue.openBlock(), vue.createElementBlock("div", { id: _ctx.id }, [
|
|
@@ -1191,7 +1192,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
1191
1192
|
};
|
|
1192
1193
|
}
|
|
1193
1194
|
});
|
|
1194
|
-
const Icons = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-
|
|
1195
|
+
const Icons = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-452babdb"]]);
|
|
1195
1196
|
const _hoisted_1$h = ["id"];
|
|
1196
1197
|
const _hoisted_2$g = { class: "txt-20 balance m-0" };
|
|
1197
1198
|
const _hoisted_3$e = { class: "txt24 line-height-13 pb-025" };
|
|
@@ -1231,7 +1232,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
1231
1232
|
}
|
|
1232
1233
|
];
|
|
1233
1234
|
const itemsList = vue.computed(() => {
|
|
1234
|
-
return __props.items &&
|
|
1235
|
+
return __props.items && __props.items.length > 0 ? __props.items : defaultItems;
|
|
1235
1236
|
});
|
|
1236
1237
|
return (_ctx, _cache) => {
|
|
1237
1238
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -1288,7 +1289,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
1288
1289
|
};
|
|
1289
1290
|
}
|
|
1290
1291
|
});
|
|
1291
|
-
const IconsList = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-
|
|
1292
|
+
const IconsList = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-07ff7bf0"]]);
|
|
1292
1293
|
const _hoisted_1$g = { class: "txt30 line-height-12" };
|
|
1293
1294
|
const _hoisted_2$f = { class: "txt24 pt-1 line-height-15" };
|
|
1294
1295
|
const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -1309,7 +1310,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
1309
1310
|
{ image: "https://bagel.sfo2.cdn.digitaloceanspaces.com/bagelBlocks/image.svg", title: "", subtitle: "" }
|
|
1310
1311
|
];
|
|
1311
1312
|
const itemsList = vue.computed(() => {
|
|
1312
|
-
return __props.items &&
|
|
1313
|
+
return __props.items && __props.items.length > 0 ? __props.items : defaultItems;
|
|
1313
1314
|
});
|
|
1314
1315
|
return (_ctx, _cache) => {
|
|
1315
1316
|
const _directive_lightbox = vue.resolveDirective("lightbox");
|
|
@@ -1419,7 +1420,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
1419
1420
|
}
|
|
1420
1421
|
];
|
|
1421
1422
|
const itemsList = vue.computed(() => {
|
|
1422
|
-
return __props.items &&
|
|
1423
|
+
return __props.items && __props.items.length > 0 ? __props.items : defaultItems;
|
|
1423
1424
|
});
|
|
1424
1425
|
return (_ctx, _cache) => {
|
|
1425
1426
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -1526,7 +1527,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
1526
1527
|
{ image: "https://bagel.sfo2.cdn.digitaloceanspaces.com/bagelBlocks/image.svg", alt: "", link: "" }
|
|
1527
1528
|
];
|
|
1528
1529
|
const itemsList = vue.computed(() => {
|
|
1529
|
-
return __props.items &&
|
|
1530
|
+
return __props.items && __props.items.length > 0 ? __props.items : defaultItems;
|
|
1530
1531
|
});
|
|
1531
1532
|
return (_ctx, _cache) => {
|
|
1532
1533
|
return vue.openBlock(), vue.createElementBlock("div", { id: _ctx.id }, [
|
|
@@ -1627,7 +1628,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
1627
1628
|
const now = (/* @__PURE__ */ new Date()).getTime();
|
|
1628
1629
|
const targetTime = __props.targetDateTime.getTime();
|
|
1629
1630
|
timeLeft.value = Math.floor((targetTime - now) / 1e3);
|
|
1630
|
-
if (
|
|
1631
|
+
if (timeLeft.value <= 0) {
|
|
1631
1632
|
clearInterval(interval);
|
|
1632
1633
|
}
|
|
1633
1634
|
}, 1e3);
|
|
@@ -1735,9 +1736,9 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
1735
1736
|
const timeToAddInHours = (__props.countdown ?? 0) * 60 * 60 * 1e3;
|
|
1736
1737
|
return new Date((/* @__PURE__ */ new Date()).getTime() + timeToAddInHours);
|
|
1737
1738
|
});
|
|
1738
|
-
|
|
1739
|
+
const openPopup = vue.ref(false);
|
|
1739
1740
|
vue.onMounted(() => {
|
|
1740
|
-
if (__props.autoOpenDelay &&
|
|
1741
|
+
if (__props.autoOpenDelay && __props.autoOpenDelay > 0) {
|
|
1741
1742
|
setTimeout(() => openPopup.value = true, __props.autoOpenDelay);
|
|
1742
1743
|
} else {
|
|
1743
1744
|
openPopup.value = true;
|
|
@@ -1746,7 +1747,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
1746
1747
|
return (_ctx, _cache) => {
|
|
1747
1748
|
return vue.openBlock(), vue.createBlock(vue.Transition, { name: "fadePopup" }, {
|
|
1748
1749
|
default: vue.withCtx(() => [
|
|
1749
|
-
|
|
1750
|
+
openPopup.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
|
|
1750
1751
|
_ctx.position === "top" ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
1751
1752
|
key: 0,
|
|
1752
1753
|
id: _ctx.id,
|
|
@@ -1781,7 +1782,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
1781
1782
|
class: "absolute end-025 m_top-025",
|
|
1782
1783
|
icon: "close",
|
|
1783
1784
|
style: vue.normalizeStyle([_ctx.bgColor ? { backgroundColor: _ctx.bgColor } : {}, _ctx.textColor ? { color: _ctx.textColor } : {}]),
|
|
1784
|
-
onClick: _cache[0] || (_cache[0] = ($event) =>
|
|
1785
|
+
onClick: _cache[0] || (_cache[0] = ($event) => openPopup.value = false)
|
|
1785
1786
|
}, null, 8, ["style"])
|
|
1786
1787
|
], 12, _hoisted_2$c)) : vue.createCommentVNode("", true),
|
|
1787
1788
|
_ctx.position === "center" ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -1829,7 +1830,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
1829
1830
|
class: "absolute end-025 top-025",
|
|
1830
1831
|
icon: "close",
|
|
1831
1832
|
style: vue.normalizeStyle([_ctx.bgColor ? { backgroundColor: _ctx.bgColor } : {}, _ctx.textColor ? { color: _ctx.textColor } : {}]),
|
|
1832
|
-
onClick: _cache[1] || (_cache[1] = ($event) =>
|
|
1833
|
+
onClick: _cache[1] || (_cache[1] = ($event) => openPopup.value = false)
|
|
1833
1834
|
}, null, 8, ["style"])
|
|
1834
1835
|
], 4)
|
|
1835
1836
|
], 8, _hoisted_5$4)) : vue.createCommentVNode("", true),
|
|
@@ -1875,7 +1876,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
1875
1876
|
class: "absolute start-025 top-025",
|
|
1876
1877
|
icon: "close",
|
|
1877
1878
|
style: vue.normalizeStyle([_ctx.bgColor ? { backgroundColor: _ctx.bgColor } : {}, _ctx.textColor ? { color: _ctx.textColor } : {}]),
|
|
1878
|
-
onClick: _cache[2] || (_cache[2] = ($event) =>
|
|
1879
|
+
onClick: _cache[2] || (_cache[2] = ($event) => openPopup.value = false)
|
|
1879
1880
|
}, null, 8, ["style"])
|
|
1880
1881
|
], 12, _hoisted_8$1)) : vue.createCommentVNode("", true)
|
|
1881
1882
|
])) : vue.createCommentVNode("", true)
|
|
@@ -1961,7 +1962,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
1961
1962
|
}
|
|
1962
1963
|
];
|
|
1963
1964
|
const itemsList = vue.computed(() => {
|
|
1964
|
-
return __props.items &&
|
|
1965
|
+
return __props.items && __props.items.length > 0 ? __props.items : defaultItems;
|
|
1965
1966
|
});
|
|
1966
1967
|
return (_ctx, _cache) => {
|
|
1967
1968
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
|
|
@@ -2052,10 +2053,10 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
2052
2053
|
const desktopAbs = Math.abs(desktopValue);
|
|
2053
2054
|
const mobileAbs = Math.abs(mobileValue);
|
|
2054
2055
|
return {
|
|
2055
|
-
"--desktop-height":
|
|
2056
|
-
"--mobile-height":
|
|
2057
|
-
"--desktop-margin":
|
|
2058
|
-
"--mobile-margin":
|
|
2056
|
+
"--desktop-height": desktopValue >= 0 ? `${desktopAbs}rem` : "auto",
|
|
2057
|
+
"--mobile-height": mobileValue >= 0 ? `${mobileAbs}rem` : "auto",
|
|
2058
|
+
"--desktop-margin": desktopValue < 0 ? `-${desktopAbs}rem` : "0",
|
|
2059
|
+
"--mobile-margin": mobileValue < 0 ? `-${mobileAbs}rem` : "0"
|
|
2059
2060
|
};
|
|
2060
2061
|
});
|
|
2061
2062
|
return (_ctx, _cache) => {
|
|
@@ -2066,7 +2067,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
2066
2067
|
};
|
|
2067
2068
|
}
|
|
2068
2069
|
});
|
|
2069
|
-
const Space = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-
|
|
2070
|
+
const Space = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-8702adbf"]]);
|
|
2070
2071
|
const _hoisted_1$a = ["id"];
|
|
2071
2072
|
const _hoisted_2$a = { class: "" };
|
|
2072
2073
|
const _hoisted_3$9 = ["innerHTML"];
|
|
@@ -2087,7 +2088,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
2087
2088
|
{ title: "Smart & Simple", body: "It just makes sense. No overthinking, just great results." }
|
|
2088
2089
|
];
|
|
2089
2090
|
const itemsList = vue.computed(() => {
|
|
2090
|
-
return __props.items
|
|
2091
|
+
return __props.items.length > 0 ? __props.items : defaultItems;
|
|
2091
2092
|
});
|
|
2092
2093
|
const activeTab = vue.computed(() => __props.items.findIndex((item) => item.active).toString() || "0");
|
|
2093
2094
|
return (_ctx, _cache) => {
|
|
@@ -2097,8 +2098,8 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
2097
2098
|
}, [
|
|
2098
2099
|
vue.createElementVNode("div", _hoisted_2$a, [
|
|
2099
2100
|
vue.createVNode(vue.unref(vue$1.TabsNav), {
|
|
2100
|
-
modelValue:
|
|
2101
|
-
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) =>
|
|
2101
|
+
modelValue: activeTab.value,
|
|
2102
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
|
|
2102
2103
|
class: "flex-shrink-0",
|
|
2103
2104
|
group: "tabs",
|
|
2104
2105
|
tabs: itemsList.value.map((item, index) => ({ id: `${index}`, label: item.title })),
|
|
@@ -2149,7 +2150,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2149
2150
|
},
|
|
2150
2151
|
setup(__props) {
|
|
2151
2152
|
const listItem = vue.computed(() => {
|
|
2152
|
-
if (__props.items &&
|
|
2153
|
+
if (__props.items && __props.items.length > 0) {
|
|
2153
2154
|
return __props.items;
|
|
2154
2155
|
}
|
|
2155
2156
|
return [
|
|
@@ -2239,7 +2240,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2239
2240
|
};
|
|
2240
2241
|
}
|
|
2241
2242
|
});
|
|
2242
|
-
const Team = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-
|
|
2243
|
+
const Team = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-88b050bd"]]);
|
|
2243
2244
|
const _hoisted_1$8 = { class: "txt30 line-height-12 py-05" };
|
|
2244
2245
|
const _hoisted_2$8 = { class: "txt24 bold pt-1 line-height-1" };
|
|
2245
2246
|
const _hoisted_3$7 = { class: "pt-025" };
|
|
@@ -2257,7 +2258,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2257
2258
|
},
|
|
2258
2259
|
setup(__props) {
|
|
2259
2260
|
const listItem = vue.computed(() => {
|
|
2260
|
-
if (__props.items &&
|
|
2261
|
+
if (__props.items && __props.items.length > 0) {
|
|
2261
2262
|
return __props.items;
|
|
2262
2263
|
}
|
|
2263
2264
|
return [
|
|
@@ -2354,7 +2355,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2354
2355
|
};
|
|
2355
2356
|
}
|
|
2356
2357
|
});
|
|
2357
|
-
const Testimonials = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-
|
|
2358
|
+
const Testimonials = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-f5cdbfee"]]);
|
|
2358
2359
|
const _hoisted_1$7 = ["id"];
|
|
2359
2360
|
const _hoisted_2$7 = ["innerHTML"];
|
|
2360
2361
|
const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -2470,7 +2471,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2470
2471
|
};
|
|
2471
2472
|
}
|
|
2472
2473
|
});
|
|
2473
|
-
const TextImage = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-
|
|
2474
|
+
const TextImage = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-1a468adf"]]);
|
|
2474
2475
|
const _hoisted_1$5 = ["id"];
|
|
2475
2476
|
const _hoisted_2$5 = { class: "emptyState rounded emptyStateRT" };
|
|
2476
2477
|
const _hoisted_3$5 = ["innerHTML"];
|
|
@@ -2555,7 +2556,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2555
2556
|
};
|
|
2556
2557
|
}
|
|
2557
2558
|
});
|
|
2558
|
-
const TextSide = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-
|
|
2559
|
+
const TextSide = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-24c70320"]]);
|
|
2559
2560
|
const _hoisted_1$4 = ["id"];
|
|
2560
2561
|
const _hoisted_2$4 = { class: "txt-16 opacity-6" };
|
|
2561
2562
|
const _hoisted_3$4 = ["innerHTML"];
|
|
@@ -2609,7 +2610,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2609
2610
|
};
|
|
2610
2611
|
}
|
|
2611
2612
|
});
|
|
2612
|
-
const Title = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-
|
|
2613
|
+
const Title = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-bee838c4"]]);
|
|
2613
2614
|
const _hoisted_1$3 = ["id"];
|
|
2614
2615
|
const _hoisted_2$3 = { class: "emptyState" };
|
|
2615
2616
|
const _hoisted_3$3 = { class: "txt-16 opacity-6" };
|
|
@@ -2695,7 +2696,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2695
2696
|
};
|
|
2696
2697
|
}
|
|
2697
2698
|
});
|
|
2698
|
-
const TitleSide = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-
|
|
2699
|
+
const TitleSide = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-b842227e"]]);
|
|
2699
2700
|
const _hoisted_1$2 = ["id"];
|
|
2700
2701
|
const _hoisted_2$2 = {
|
|
2701
2702
|
key: 0,
|
|
@@ -5422,7 +5423,7 @@ class CommunicationBridge {
|
|
|
5422
5423
|
* Handle incoming messages
|
|
5423
5424
|
*/
|
|
5424
5425
|
handleMessage(event) {
|
|
5425
|
-
if ("*"
|
|
5426
|
+
if (this.origin !== "*" && event.origin !== this.origin) {
|
|
5426
5427
|
console.warn(`⚠️ Rejected message from unauthorized origin: ${event.origin}`);
|
|
5427
5428
|
return;
|
|
5428
5429
|
}
|
|
@@ -5477,7 +5478,7 @@ class CommunicationBridge {
|
|
|
5477
5478
|
*/
|
|
5478
5479
|
send(type, message, data) {
|
|
5479
5480
|
const payload = { type, message, data };
|
|
5480
|
-
this.targetWindow.postMessage(payload, "*"
|
|
5481
|
+
this.targetWindow.postMessage(payload, this.origin === "*" ? "*" : this.origin);
|
|
5481
5482
|
}
|
|
5482
5483
|
/**
|
|
5483
5484
|
* Cleanup
|
|
@@ -5544,14 +5545,14 @@ function createNamespacedRegistry(namespace) {
|
|
|
5544
5545
|
function generateBlockStyles(data, isMobile = false) {
|
|
5545
5546
|
const styles = {};
|
|
5546
5547
|
function toNumber(v) {
|
|
5547
|
-
if (v === void 0 ||
|
|
5548
|
+
if (v === void 0 || v === null || v === "") {
|
|
5548
5549
|
return null;
|
|
5549
5550
|
}
|
|
5550
5551
|
const n = Number(v);
|
|
5551
5552
|
return Number.isNaN(n) ? null : n;
|
|
5552
5553
|
}
|
|
5553
5554
|
function getValue(desktopKey, mobileKey) {
|
|
5554
|
-
if (isMobile && data[mobileKey] !== void 0 &&
|
|
5555
|
+
if (isMobile && data[mobileKey] !== void 0 && data[mobileKey] !== null) {
|
|
5555
5556
|
return data[mobileKey];
|
|
5556
5557
|
}
|
|
5557
5558
|
return data[desktopKey];
|
|
@@ -5559,21 +5560,21 @@ function generateBlockStyles(data, isMobile = false) {
|
|
|
5559
5560
|
const mTop = toNumber(getValue("marginTop", "marginTopMobile"));
|
|
5560
5561
|
const mBottom = toNumber(getValue("marginBottom", "marginBottomMobile"));
|
|
5561
5562
|
const pad = toNumber(getValue("padding", "paddingMobile"));
|
|
5562
|
-
if (
|
|
5563
|
+
if (mTop !== null) {
|
|
5563
5564
|
styles["margin-top"] = `${mTop}rem`;
|
|
5564
5565
|
styles["--margin-top"] = `${mTop}rem`;
|
|
5565
5566
|
} else {
|
|
5566
5567
|
styles["--margin-top"] = "0rem";
|
|
5567
5568
|
}
|
|
5568
|
-
if (
|
|
5569
|
+
if (mBottom !== null) {
|
|
5569
5570
|
styles["margin-bottom"] = `${mBottom}rem`;
|
|
5570
5571
|
styles["--margin-bottom"] = `${mBottom}rem`;
|
|
5571
5572
|
} else {
|
|
5572
5573
|
styles["--margin-bottom"] = "0rem";
|
|
5573
5574
|
}
|
|
5574
|
-
const hasMargin =
|
|
5575
|
+
const hasMargin = mTop !== null && mTop > 0 || mBottom !== null && mBottom > 0;
|
|
5575
5576
|
styles["--has-margin"] = hasMargin ? "1" : "0";
|
|
5576
|
-
if (
|
|
5577
|
+
if (pad !== null) {
|
|
5577
5578
|
styles.padding = `${pad}rem`;
|
|
5578
5579
|
styles["--block-padding"] = `${pad}rem`;
|
|
5579
5580
|
}
|
|
@@ -5582,16 +5583,16 @@ function generateBlockStyles(data, isMobile = false) {
|
|
|
5582
5583
|
const wPercentDesktop = toNumber(data.widthPercent) || 96;
|
|
5583
5584
|
const wPercentMobile = toNumber(data.widthPercentMobile) || wPercentDesktop;
|
|
5584
5585
|
const fullWidthDesktop = data.fullWidth;
|
|
5585
|
-
styles["--max-width-desktop"] =
|
|
5586
|
-
styles["--max-width-mobile"] =
|
|
5586
|
+
styles["--max-width-desktop"] = wDesktop !== null ? `${wDesktop}px` : "800px";
|
|
5587
|
+
styles["--max-width-mobile"] = wMobile !== null ? `${wMobile}px` : wDesktop !== null ? `${wDesktop}px` : "800px";
|
|
5587
5588
|
styles["--width-percent-desktop"] = `${wPercentDesktop}%`;
|
|
5588
5589
|
styles["--width-percent-mobile"] = `${wPercentMobile}%`;
|
|
5589
|
-
if (!(
|
|
5590
|
+
if (!(fullWidthDesktop === true || fullWidthDesktop === "true") && wDesktop !== null) {
|
|
5590
5591
|
styles["margin-left"] = "auto";
|
|
5591
5592
|
styles["margin-right"] = "auto";
|
|
5592
5593
|
}
|
|
5593
5594
|
const borderW = toNumber(getValue("borderWidth", "borderWidthMobile"));
|
|
5594
|
-
if (
|
|
5595
|
+
if (borderW !== null && borderW > 0) {
|
|
5595
5596
|
styles["border-width"] = `${borderW}px`;
|
|
5596
5597
|
styles["border-style"] = getValue("borderStyle", "borderStyleMobile") || "solid";
|
|
5597
5598
|
const borderColor = getValue("borderColor", "borderColorMobile");
|
|
@@ -5600,11 +5601,11 @@ function generateBlockStyles(data, isMobile = false) {
|
|
|
5600
5601
|
}
|
|
5601
5602
|
}
|
|
5602
5603
|
const isCenter = getValue("center", "centerMobile");
|
|
5603
|
-
if (
|
|
5604
|
+
if (isCenter === true || isCenter === "true") {
|
|
5604
5605
|
styles["text-align"] = "center";
|
|
5605
5606
|
}
|
|
5606
5607
|
const borderR = toNumber(getValue("borderRadius", "borderRadiusMobile"));
|
|
5607
|
-
if (
|
|
5608
|
+
if (borderR !== null) {
|
|
5608
5609
|
styles["border-radius"] = `${borderR}px`;
|
|
5609
5610
|
}
|
|
5610
5611
|
const bgColorDesktop = data.backgroundColor;
|
|
@@ -5632,29 +5633,29 @@ function generateBlockStyles(data, isMobile = false) {
|
|
|
5632
5633
|
custom: "0 4px 6px -1px rgba(0, 0, 0, 0.15)"
|
|
5633
5634
|
};
|
|
5634
5635
|
const shadowType = getValue("shadowType", "shadowTypeMobile");
|
|
5635
|
-
if (shadowType && "none"
|
|
5636
|
+
if (shadowType && shadowType !== "none") {
|
|
5636
5637
|
styles["box-shadow"] = shadowMap[shadowType] || shadowMap.md;
|
|
5637
5638
|
}
|
|
5638
5639
|
const z = toNumber(getValue("zIndex", "zIndexMobile"));
|
|
5639
|
-
if (
|
|
5640
|
+
if (z !== null && z > 0) {
|
|
5640
5641
|
styles.position = "relative";
|
|
5641
5642
|
styles["z-index"] = z.toString();
|
|
5642
5643
|
}
|
|
5643
|
-
if (!isMobile &&
|
|
5644
|
+
if (!isMobile && data.showDesktop === false) {
|
|
5644
5645
|
styles.display = "none";
|
|
5645
|
-
} else if (isMobile &&
|
|
5646
|
+
} else if (isMobile && data.showMobile === false) {
|
|
5646
5647
|
styles.display = "none";
|
|
5647
5648
|
}
|
|
5648
5649
|
const fontFamilyDesktop = data.fontFamily;
|
|
5649
5650
|
const { fontFamilyMobile } = data;
|
|
5650
|
-
if (isMobile && fontFamilyMobile &&
|
|
5651
|
+
if (isMobile && fontFamilyMobile && fontFamilyMobile.trim() !== "") {
|
|
5651
5652
|
styles["font-family"] = `"${fontFamilyMobile}", sans-serif`;
|
|
5652
|
-
} else if (fontFamilyDesktop &&
|
|
5653
|
+
} else if (fontFamilyDesktop && fontFamilyDesktop.trim() !== "") {
|
|
5653
5654
|
styles["font-family"] = `"${fontFamilyDesktop}", sans-serif`;
|
|
5654
5655
|
}
|
|
5655
5656
|
if (data.customCSS) {
|
|
5656
5657
|
try {
|
|
5657
|
-
const customRules = data.customCSS.split(";").filter((rule) => rule.trim()).map((rule) => rule.trim().split(":")).filter((parts) =>
|
|
5658
|
+
const customRules = data.customCSS.split(";").filter((rule) => rule.trim()).map((rule) => rule.trim().split(":")).filter((parts) => parts.length === 2);
|
|
5658
5659
|
customRules.forEach(([property, value]) => {
|
|
5659
5660
|
const prop = property.trim();
|
|
5660
5661
|
const val = value.trim();
|
|
@@ -5671,7 +5672,7 @@ function generateBlockStyles(data, isMobile = false) {
|
|
|
5671
5672
|
function getResponsiveClasses(data) {
|
|
5672
5673
|
const classes = ["blox-block", "responsive-colors"];
|
|
5673
5674
|
const effectiveDesktopFullWidth = Boolean(data.fullWidth);
|
|
5674
|
-
const effectiveMobileFullWidth =
|
|
5675
|
+
const effectiveMobileFullWidth = data.fullWidthMobile !== null ? Boolean(data.fullWidthMobile) : effectiveDesktopFullWidth;
|
|
5675
5676
|
if (effectiveDesktopFullWidth) {
|
|
5676
5677
|
classes.push("full-width-desktop");
|
|
5677
5678
|
}
|
|
@@ -5852,12 +5853,12 @@ function normalizeComponentData(data) {
|
|
|
5852
5853
|
const normalized = {};
|
|
5853
5854
|
const stringFields = ["title", "subTitle", "btnTxt", "tag", "customId", "height", "url", "href"];
|
|
5854
5855
|
for (const [key, value] of Object.entries(data)) {
|
|
5855
|
-
if ("string"
|
|
5856
|
-
if ("true"
|
|
5856
|
+
if (typeof value === "string") {
|
|
5857
|
+
if (value === "true") {
|
|
5857
5858
|
normalized[key] = true;
|
|
5858
|
-
} else if ("false"
|
|
5859
|
+
} else if (value === "false") {
|
|
5859
5860
|
normalized[key] = false;
|
|
5860
|
-
} else if (!Number.isNaN(Number(value)) &&
|
|
5861
|
+
} else if (!Number.isNaN(Number(value)) && value !== "" && !stringFields.includes(key)) {
|
|
5861
5862
|
normalized[key] = Number(value);
|
|
5862
5863
|
} else {
|
|
5863
5864
|
normalized[key] = value;
|
|
@@ -5869,10 +5870,10 @@ function normalizeComponentData(data) {
|
|
|
5869
5870
|
if (!normalized.items) {
|
|
5870
5871
|
normalized.items = [];
|
|
5871
5872
|
}
|
|
5872
|
-
if (normalized.height !== void 0 &&
|
|
5873
|
+
if (normalized.height !== void 0 && typeof normalized.height === "number") {
|
|
5873
5874
|
normalized.height = String(normalized.height);
|
|
5874
5875
|
}
|
|
5875
|
-
if ("auto"
|
|
5876
|
+
if (normalized.height === "auto") {
|
|
5876
5877
|
delete normalized.height;
|
|
5877
5878
|
}
|
|
5878
5879
|
return normalized;
|
|
@@ -5883,7 +5884,7 @@ function deepClone(obj) {
|
|
|
5883
5884
|
function deepMerge(target, source) {
|
|
5884
5885
|
const result = { ...target };
|
|
5885
5886
|
for (const key in source) {
|
|
5886
|
-
if (source[key] &&
|
|
5887
|
+
if (source[key] && typeof source[key] === "object" && !Array.isArray(source[key])) {
|
|
5887
5888
|
result[key] = deepMerge(result[key] || {}, source[key]);
|
|
5888
5889
|
} else {
|
|
5889
5890
|
result[key] = source[key];
|
|
@@ -5944,7 +5945,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
5944
5945
|
return false;
|
|
5945
5946
|
}
|
|
5946
5947
|
return config.content.some(
|
|
5947
|
-
(field) => ["text", "richtext"].includes(field.type) || "array"
|
|
5948
|
+
(field) => ["text", "richtext"].includes(field.type) || field.type === "array" && field.fields && field.fields.some((subField) => ["text", "richtext"].includes(subField.type))
|
|
5948
5949
|
);
|
|
5949
5950
|
}
|
|
5950
5951
|
let lastFocusCall = 0;
|
|
@@ -5956,7 +5957,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
5956
5957
|
return;
|
|
5957
5958
|
}
|
|
5958
5959
|
const now = Date.now();
|
|
5959
|
-
if (lastFocusCall &&
|
|
5960
|
+
if (lastFocusCall && now - lastFocusCall < 10) {
|
|
5960
5961
|
console.log("🛡️ ExternalPreview setFocus debounced:", id);
|
|
5961
5962
|
return;
|
|
5962
5963
|
}
|
|
@@ -5967,7 +5968,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
5967
5968
|
const el = document.querySelector(`[data-block-id="${id}"]`);
|
|
5968
5969
|
el == null ? void 0 : el.scrollIntoView({ behavior: "smooth", block: "center" });
|
|
5969
5970
|
if (emit && bridge) {
|
|
5970
|
-
if (lastEmittedId !== id ||
|
|
5971
|
+
if (lastEmittedId !== id || now - lastEmittedTime > 50) {
|
|
5971
5972
|
console.log("📴 ExternalPreview sending focus:", id);
|
|
5972
5973
|
bridge.send("focus", id);
|
|
5973
5974
|
lastEmittedId = id;
|
|
@@ -5987,24 +5988,24 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
5987
5988
|
if (previewMode.value) {
|
|
5988
5989
|
return;
|
|
5989
5990
|
}
|
|
5990
|
-
if ("ArrowDown"
|
|
5991
|
+
if (event.key === "ArrowDown") {
|
|
5991
5992
|
const next = components.value.findIndex((comp) => comp.id === highlightID.value) + 1;
|
|
5992
5993
|
if (next < components.value.length) {
|
|
5993
5994
|
setFocus(components.value[next].id, true);
|
|
5994
5995
|
}
|
|
5995
|
-
} else if ("ArrowUp"
|
|
5996
|
+
} else if (event.key === "ArrowUp") {
|
|
5996
5997
|
const prev = components.value.findIndex((comp) => comp.id === highlightID.value) - 1;
|
|
5997
|
-
if (
|
|
5998
|
+
if (prev >= 0) {
|
|
5998
5999
|
setFocus(components.value[prev].id, true);
|
|
5999
6000
|
}
|
|
6000
|
-
} else if ("Enter"
|
|
6001
|
+
} else if (event.key === "Enter") {
|
|
6001
6002
|
if (bridge) {
|
|
6002
6003
|
bridge.send("focus", highlightID.value);
|
|
6003
6004
|
}
|
|
6004
|
-
} else if ("Escape"
|
|
6005
|
+
} else if (event.key === "Escape") {
|
|
6005
6006
|
setHighlight("");
|
|
6006
6007
|
selectedID.value = "";
|
|
6007
|
-
} else if ("Delete"
|
|
6008
|
+
} else if (event.key === "Delete") {
|
|
6008
6009
|
if (bridge) {
|
|
6009
6010
|
bridge.send("delete", highlightID.value);
|
|
6010
6011
|
}
|
|
@@ -6017,8 +6018,8 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6017
6018
|
let element = event.target;
|
|
6018
6019
|
while (element) {
|
|
6019
6020
|
const href = element.getAttribute("href");
|
|
6020
|
-
if ("A"
|
|
6021
|
-
const isButton = element.classList.contains("btn") || element.classList.contains("button") ||
|
|
6021
|
+
if (element.tagName === "A" && href !== null && href !== "") {
|
|
6022
|
+
const isButton = element.classList.contains("btn") || element.classList.contains("button") || element.getAttribute("role") === "button";
|
|
6022
6023
|
if (!isButton) {
|
|
6023
6024
|
event.preventDefault();
|
|
6024
6025
|
event.stopPropagation();
|
|
@@ -6142,7 +6143,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6142
6143
|
};
|
|
6143
6144
|
}
|
|
6144
6145
|
});
|
|
6145
|
-
const ExternalPreview = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-
|
|
6146
|
+
const ExternalPreview = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-7e262aee"]]);
|
|
6146
6147
|
const _hoisted_1 = { class: "blox-page-wrapper" };
|
|
6147
6148
|
const _hoisted_2 = {
|
|
6148
6149
|
key: 0,
|
|
@@ -6213,16 +6214,16 @@ class ComponentValidationError extends Error {
|
|
|
6213
6214
|
}
|
|
6214
6215
|
function validateComponentConfig(config) {
|
|
6215
6216
|
const errors = [];
|
|
6216
|
-
if (!config.id ||
|
|
6217
|
+
if (!config.id || typeof config.id !== "string") {
|
|
6217
6218
|
errors.push('Component must have a valid "id" (string)');
|
|
6218
6219
|
}
|
|
6219
|
-
if (!config.label ||
|
|
6220
|
+
if (!config.label || typeof config.label !== "string") {
|
|
6220
6221
|
errors.push('Component must have a valid "label" (string)');
|
|
6221
6222
|
}
|
|
6222
6223
|
if (!config.component) {
|
|
6223
6224
|
errors.push('Component must have a "component" property (Vue component or async function)');
|
|
6224
6225
|
}
|
|
6225
|
-
if (config.component &&
|
|
6226
|
+
if (config.component && typeof config.component !== "function" && typeof config.component !== "object") {
|
|
6226
6227
|
errors.push('Component "component" must be a Vue component or async function');
|
|
6227
6228
|
}
|
|
6228
6229
|
if (config.content && !Array.isArray(config.content)) {
|
|
@@ -6231,7 +6232,7 @@ function validateComponentConfig(config) {
|
|
|
6231
6232
|
if (config.settings && !Array.isArray(config.settings)) {
|
|
6232
6233
|
errors.push('Component "settings" must be an array');
|
|
6233
6234
|
}
|
|
6234
|
-
if (
|
|
6235
|
+
if (errors.length > 0) {
|
|
6235
6236
|
throw new ComponentValidationError(
|
|
6236
6237
|
`Invalid component configuration for "${config.id || "unknown"}":
|
|
6237
6238
|
${errors.map((e) => ` - ${e}`).join("\n")}`,
|
|
@@ -6263,12 +6264,12 @@ function levenshteinDistance(a, b) {
|
|
|
6263
6264
|
return matrix[b.length][a.length];
|
|
6264
6265
|
}
|
|
6265
6266
|
function findSimilarIds(targetId, allIds, maxSuggestions = 3) {
|
|
6266
|
-
return allIds.map((id) => ({ id, distance: levenshteinDistance(targetId.toLowerCase(), id.toLowerCase()) })).filter((item) =>
|
|
6267
|
+
return allIds.map((id) => ({ id, distance: levenshteinDistance(targetId.toLowerCase(), id.toLowerCase()) })).filter((item) => item.distance <= 3).sort((a, b) => a.distance - b.distance).slice(0, maxSuggestions).map((item) => item.id);
|
|
6267
6268
|
}
|
|
6268
6269
|
function createMissingComponentError(id, registeredIds) {
|
|
6269
6270
|
const suggestions = findSimilarIds(id, registeredIds);
|
|
6270
6271
|
let message = `Component "${id}" is not registered.`;
|
|
6271
|
-
if (
|
|
6272
|
+
if (suggestions.length > 0) {
|
|
6272
6273
|
message += `
|
|
6273
6274
|
|
|
6274
6275
|
Did you mean: ${suggestions.map((s) => `"${s}"`).join(", ")}?`;
|