@myissue/vue-website-page-builder 3.5.47 → 3.5.50
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/index.d.ts
CHANGED
|
@@ -928,6 +928,12 @@ export declare class PageBuilderService {
|
|
|
928
928
|
* Call this after programmatically inserting elements into the builder canvas.
|
|
929
929
|
*/
|
|
930
930
|
refreshListeners(): Promise<void>;
|
|
931
|
+
/**
|
|
932
|
+
* Applies config-provided pageSettings.style to #pagebuilder when the element
|
|
933
|
+
* has no inline style attribute. Safe to call on every canvas refresh because
|
|
934
|
+
* the guard `!domStyle` means user-edited styles are never overwritten.
|
|
935
|
+
*/
|
|
936
|
+
private reapplyConfigPageSettingsIfMissing;
|
|
931
937
|
/**
|
|
932
938
|
* Resumes editing from a draft saved in local storage.
|
|
933
939
|
* @returns {Promise<void>}
|
|
@@ -39129,7 +39129,7 @@ const pte = { class: "pbx-editorFieldGroup" }, dte = { class: "pbx-editorFieldGr
|
|
|
39129
39129
|
}
|
|
39130
39130
|
}), Ar = function(o) {
|
|
39131
39131
|
return !o || typeof o == "object" && o.constructor === Object && Object.keys(o).length === 0;
|
|
39132
|
-
}, Hre = "3.5.
|
|
39132
|
+
}, Hre = "3.5.50", Dre = (o) => /^[a-z][a-z0-9+.-]*:/i.test(o) || o.startsWith("//");
|
|
39133
39133
|
function SR(o, e) {
|
|
39134
39134
|
if (!o)
|
|
39135
39135
|
return console.warn("No valid pagebuilder element passed"), "";
|
|
@@ -42359,8 +42359,20 @@ class uce {
|
|
|
42359
42359
|
}
|
|
42360
42360
|
}));
|
|
42361
42361
|
});
|
|
42362
|
-
Ae(this, "handleCanvasClickCapture", async () => {
|
|
42363
|
-
this.pageBuilderStateStore.getImageSettingsPanelOpen
|
|
42362
|
+
Ae(this, "handleCanvasClickCapture", async (e) => {
|
|
42363
|
+
if (!this.pageBuilderStateStore.getImageSettingsPanelOpen && this.pageBuilderStateStore.getInlineTipTapEditor)
|
|
42364
|
+
if (!this.hasInlineTipTapElement())
|
|
42365
|
+
this.pageBuilderStateStore.setInlineTipTapEditor(!1);
|
|
42366
|
+
else {
|
|
42367
|
+
const t = document.querySelector(
|
|
42368
|
+
"#pagebuilder [data-pbx-inline-tiptap]"
|
|
42369
|
+
);
|
|
42370
|
+
if (t && e.target instanceof Node && !t.contains(e.target)) {
|
|
42371
|
+
e.preventDefault(), e.stopPropagation();
|
|
42372
|
+
const r = this.findEditableElementFromEventTarget(e.target);
|
|
42373
|
+
this.finishActiveInlineTipTapEditorFromDom(r);
|
|
42374
|
+
}
|
|
42375
|
+
}
|
|
42364
42376
|
});
|
|
42365
42377
|
Ae(this, "handleCanvasDoubleClickCapture", async (e) => {
|
|
42366
42378
|
await this.openInlineTipTapFromEvent(e);
|
|
@@ -42372,7 +42384,13 @@ class uce {
|
|
|
42372
42384
|
* @private
|
|
42373
42385
|
*/
|
|
42374
42386
|
Ae(this, "handleElementClick", async (e, t) => {
|
|
42375
|
-
this.pageBuilderStateStore.getImageSettingsPanelOpen
|
|
42387
|
+
if (!this.pageBuilderStateStore.getImageSettingsPanelOpen) {
|
|
42388
|
+
if (this.pageBuilderStateStore.getInlineTipTapEditor) {
|
|
42389
|
+
e.preventDefault(), e.stopPropagation();
|
|
42390
|
+
return;
|
|
42391
|
+
}
|
|
42392
|
+
e.preventDefault(), e.stopPropagation(), await this.selectEditableElement(t);
|
|
42393
|
+
}
|
|
42376
42394
|
});
|
|
42377
42395
|
/**
|
|
42378
42396
|
* Opens inline rich-text editing when a valid text element is double-clicked.
|
|
@@ -43136,8 +43154,8 @@ class uce {
|
|
|
43136
43154
|
return !e || e.tagName !== "IMG" ? "" : e.getAttribute("alt") || "";
|
|
43137
43155
|
}
|
|
43138
43156
|
attachCanvasInlineEditListeners(e) {
|
|
43139
|
-
this.canvasClickCaptureListener && e.removeEventListener("click", this.canvasClickCaptureListener, !0), this.canvasDblClickCaptureListener && e.removeEventListener("dblclick", this.canvasDblClickCaptureListener, !0), this.canvasClickCaptureListener = () => {
|
|
43140
|
-
this.handleCanvasClickCapture();
|
|
43157
|
+
this.canvasClickCaptureListener && e.removeEventListener("click", this.canvasClickCaptureListener, !0), this.canvasDblClickCaptureListener && e.removeEventListener("dblclick", this.canvasDblClickCaptureListener, !0), this.canvasClickCaptureListener = (t) => {
|
|
43158
|
+
this.handleCanvasClickCapture(t);
|
|
43141
43159
|
}, this.canvasDblClickCaptureListener = (t) => {
|
|
43142
43160
|
this.handleCanvasDoubleClickCapture(t);
|
|
43143
43161
|
}, e.addEventListener("click", this.canvasClickCaptureListener, !0), e.addEventListener("dblclick", this.canvasDblClickCaptureListener, !0);
|
|
@@ -43177,7 +43195,7 @@ class uce {
|
|
|
43177
43195
|
(r == null ? void 0 : r.innerHTML) ?? t.innerHTML,
|
|
43178
43196
|
i
|
|
43179
43197
|
);
|
|
43180
|
-
t.innerHTML = n, t.removeAttribute("data-pbx-inline-tiptap"), t.removeAttribute("data-pbx-inline-original-html"), this.pageBuilderStateStore.setTextAreaVueModel(n), this.pageBuilderStateStore.setElement(t), await this.finishInlineTipTapEditor(t), e && e !== t && await this.selectEditableElement(e);
|
|
43198
|
+
t.innerHTML = n, t.removeAttribute("data-pbx-inline-tiptap"), t.removeAttribute("data-pbx-inline-original-html"), this.pageBuilderStateStore.setTextAreaVueModel(n), this.pageBuilderStateStore.setElement(t), await this.finishInlineTipTapEditor(t, !1), e && e !== t && await this.selectEditableElement(e, !1), this.handleAutoSave();
|
|
43181
43199
|
}
|
|
43182
43200
|
async openInlineTipTapForElement(e) {
|
|
43183
43201
|
this.isValidTextElement(e) && (await this.selectEditableElement(e, !1), await ce(), await this.addListenersToEditableElements());
|
|
@@ -44158,7 +44176,21 @@ class uce {
|
|
|
44158
44176
|
* Call this after programmatically inserting elements into the builder canvas.
|
|
44159
44177
|
*/
|
|
44160
44178
|
async refreshListeners() {
|
|
44161
|
-
await ce(), await this.addListenersToEditableElements();
|
|
44179
|
+
await ce(), await this.addListenersToEditableElements(), this.reapplyConfigPageSettingsIfMissing();
|
|
44180
|
+
}
|
|
44181
|
+
/**
|
|
44182
|
+
* Applies config-provided pageSettings.style to #pagebuilder when the element
|
|
44183
|
+
* has no inline style attribute. Safe to call on every canvas refresh because
|
|
44184
|
+
* the guard `!domStyle` means user-edited styles are never overwritten.
|
|
44185
|
+
*/
|
|
44186
|
+
reapplyConfigPageSettingsIfMissing() {
|
|
44187
|
+
var n;
|
|
44188
|
+
const e = document.querySelector("#pagebuilder");
|
|
44189
|
+
if (!e) return;
|
|
44190
|
+
const t = ((n = this.pageBuilderStateStore.getPageBuilderConfig) == null ? void 0 : n.pageSettings) ?? null;
|
|
44191
|
+
if (!this.hasMeaningfulPageSettings(t)) return;
|
|
44192
|
+
const r = this.convertStyleObjectToString(t.style), i = e.getAttribute("style") || "";
|
|
44193
|
+
r.trim() && !i.trim() && this.applyPageSettingsToPage(t);
|
|
44162
44194
|
}
|
|
44163
44195
|
/**
|
|
44164
44196
|
* Resumes editing from a draft saved in local storage.
|
|
@@ -363,7 +363,7 @@ This will fail in production.`);s=kn,s._s.has(i)||(a?Sd(i,e,n,s):X_(i,n,s),proce
|
|
|
363
363
|
`;return}n+=b+j$(p)+`
|
|
364
364
|
`,!c&&!mz(p,!0)&&i++}),n.trimEnd()}function He(r=200){return new Promise(e=>{setTimeout(e,r)})}const es=o.ref(!1),gz=o.ref(""),ts=o.ref(""),Xd=o.ref("element"),yi=o.ref(!1),Nn=o.ref(null);function rs(){function r(i,n,a="element"){gz.value=i,ts.value=F$(n),Xd.value=a,Nn.value=null,yi.value=!1,es.value=!0}function e(){es.value=!1,Nn.value=null,yi.value=!1}async function t(){const i=Se(),{showToast:n}=Xe(),{translate:a}=ne();yi.value=!0,Nn.value=null,await He(300);const l=Xd.value==="page"?await i.applyModifiedComponents(ts.value):await i.applyModifiedHTML(ts.value);if(l){Nn.value=l,n(l,"error"),yi.value=!1;return}n(a("HTML updated successfully"),"success"),es.value=!1,yi.value=!1}return{show:es,title:gz,html:ts,mode:Xd,isLoading:yi,error:Nn,openHtmlEditor:r,closeHtmlEditor:e,saveHtmlEditor:t}}const U$={class:"pbx-editorSectionDesc"},W$={class:"pbx-inspectorActionStack"},G$=o.defineComponent({name:"ElementHtmlEditorSettingsEditor",__name:"ElementHtmlEditorSettingsEditor",setup(r){const{translate:e}=ne(),t=ve,{openHtmlViewer:i}=$l(),{openHtmlEditor:n}=rs(),a=o.computed(()=>t.getElement),l=()=>{a.value&&n(e("Element HTML"),a.value.outerHTML,"element")},s=()=>{a.value&&i(e("Element HTML"),a.value.outerHTML)};return(p,d)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Element HTML")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",U$,o.toDisplayString(o.unref(e)("Element HTML editor description")),1),o.createElementVNode("div",W$,[o.createVNode(Tr,{icon:"visibility",label:o.unref(e)("View element HTML"),hint:o.unref(e)("Preview selected element markup"),onClick:s},null,8,["label","hint"]),o.createVNode(Tr,{icon:"deployed_code",label:o.unref(e)("Open element HTML editor"),hint:o.unref(e)("Edit selected element markup"),onClick:l},null,8,["label","hint"])])]),_:1}))}});function K$(r){return new Promise((e,t)=>{const i=new window.Image;i.onload=e,i.onerror=t,i.src=r})}const J$={class:"pbx-editorFieldGroup"},Y$={class:"pbx-editorFieldGroup"},Q$=["src"],X$={class:"pbx-editorFieldGroup pbx-rounded-lg pbx-border pbx-border-solid pbx-border-gray-200 pbx-bg-gray-50 pbx-px-4 pbx-py-8 pbx-text-center"},Z$={class:"pbx-editorSectionDesc pbx-mb-0"},$$=o.defineComponent({__name:"ImageEditor",setup(r){const{translate:e}=ne(),t=ve,i=o.inject("CustomMediaComponent",null),n=o.ref(null),a=o.ref(!1),l=o.ref(!1),s=o.ref(""),p=o.ref(""),d=o.ref(""),c=o.ref(null),b=o.ref(null),m=o.ref(null),g=o.computed(()=>(t.getBasePrimaryImage&&f(t.getBasePrimaryImage),t.getBasePrimaryImage));function x(w){return w?w.tagName==="IMG"?!0:!!t.getBasePrimaryImage:!1}function u(w){var y;x(w)&&((y=n.value)==null||y.open())}o.watch(()=>t.getElement,w=>{u(w)},{immediate:!0,flush:"post"}),o.watch(()=>t.getBasePrimaryImage,()=>{u(t.getElement)}),o.onMounted(()=>{o.nextTick(()=>{u(t.getElement)})});const h=function(){l.value=!0,s.value=e("Media Library"),p.value=null,d.value=e("Close"),c.value=e("Select image"),m.value=function(){l.value=!1}},f=async function(w){a.value=!0,w&&typeof w=="string"&&w.length>2&&(await K$(w),await He(200),a.value=!1)};return(w,y)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(Ve,{ref_key:"imageAccordionRef",ref:n},{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Image")),1)]),content:o.withCtx(()=>[o.withDirectives(o.createElementVNode("div",J$,[...y[1]||(y[1]=[o.createElementVNode("div",{class:"pbx-flex pbx-min-h-40 pbx-items-center pbx-justify-center"},[o.createElementVNode("div",{class:"pbx-inline-block pbx-h-8 pbx-w-8 pbx-animate-spin pbx-rounded-full pbx-border-4 pbx-border-solid pbx-border-current pbx-border-r-transparent pbx-align-[-0.125em] motion-reduce:pbx-animate-[spin_1.5s_linear_infinite]"},[o.createElementVNode("span",{class:"!pbx-absolute !pbx-m-px !pbx-h-px !pbx-w-px !pbx-overflow-hidden !pbx-whitespace-nowrap !pbx-border-0 !pbx-p-0 !pbx-[clip:rect(0,0,0,0)]"},"Loading...")])],-1)])],512),[[o.vShow,a.value]]),o.withDirectives(o.createElementVNode("div",Y$,[o.createElementVNode("img",{class:"pbx-w-full pbx-cursor-pointer pbx-rounded-lg pbx-object-cover pbx-object-center",src:g.value??void 0,onClick:h,alt:"image"},null,8,Q$)],512),[[o.vShow,g.value&&!a.value]]),o.withDirectives(o.createElementVNode("div",X$,[o.createElementVNode("p",Z$,o.toDisplayString(o.unref(e)("No image has been selected.")),1)],512),[[o.vShow,!a.value&&!g.value]])]),_:1},512),o.createVNode(vD,{open:l.value,title:s.value,description:p.value,firstButtonText:d.value,secondButtonText:c.value??void 0,thirdButtonText:b.value??void 0,customMediaComponent:o.unref(i)??void 0,onFirstMediaButtonFunction:y[0]||(y[0]=()=>{var E;return(E=m.value)==null?void 0:E.call(m)})},null,8,["open","title","description","firstButtonText","secondButtonText","thirdButtonText","customMediaComponent"])],64))}}),is={opacities:["none","pbx-opacity-0","pbx-opacity-5","pbx-opacity-10","pbx-opacity-20","pbx-opacity-25","pbx-opacity-30","pbx-opacity-40","pbx-opacity-50","pbx-opacity-60","pbx-opacity-70","pbx-opacity-75","pbx-opacity-80","pbx-opacity-90","pbx-opacity-95","pbx-opacity-100"],backgroundOpacities:["none","pbx-bg-opacity-0","pbx-bg-opacity-5","pbx-bg-opacity-10","pbx-bg-opacity-20","pbx-bg-opacity-25","pbx-bg-opacity-30","pbx-bg-opacity-40","pbx-bg-opacity-50","pbx-bg-opacity-60","pbx-bg-opacity-70","pbx-bg-opacity-75","pbx-bg-opacity-80","pbx-bg-opacity-90","pbx-bg-opacity-95","pbx-bg-opacity-100"]},eee={class:"pbx-editorFieldGroup"},tee={class:"pbx-relative"},ree={class:"pbx-flex pbx-items-center pbx-gap-2"},oee={key:0},iee={class:"pbx-flex pbx-items-center"},nee={key:0},aee={key:2,class:"pbx-ml-3"},lee={key:3,class:"pbx-ml-3"},see=o.defineComponent({__name:"BackgroundOpacityControl",setup(r){const e=Se(),{translate:t}=ne(),i=ve,n=o.ref(null),a=o.computed(()=>i.getBackgroundOpacity);return o.watch(a,async l=>{n.value=l,await e.initializeElementStyles()},{immediate:!0}),(l,s)=>(o.openBlock(),o.createElementBlock("div",eee,[o.createVNode(o.unref(Mn),{as:"div",modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=p=>n.value=p)},{default:o.withCtx(()=>[o.createElementVNode("div",tee,[o.createVNode(o.unref(Pn),{class:"pbx-myPrimarySelect",id:"bg-opacity"},{default:o.withCtx(()=>[o.createElementVNode("span",ree,[n.value==="none"?(o.openBlock(),o.createElementBlock("div",oee,[...s[1]||(s[1]=[o.createElementVNode("div",{class:"pbx-myPrimaryColorPreview pbx-border-none"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," ev_shadow ")],-1)])])):o.createCommentVNode("",!0),n.value!=="none"?(o.openBlock(),o.createElementBlock("div",{key:1,class:o.normalizeClass(["pbx-aspect-square pbx-w-6 pbx-h-6 pbx-bg-gray-950",`${n.value}`])},null,2)):o.createCommentVNode("",!0),o.createElementVNode("span",{class:o.normalizeClass(["pbx-block pbx-truncate",[(n.value!=="none","")]])},o.toDisplayString(n.value==="none"?o.unref(t)("Transparent"):n.value),3)])]),_:1}),o.createVNode(o.Transition,{"leave-active-class":"pbx-transition pbx-ease-in pbx-duration-100","leave-from-class":"pbx-opacity-100","leave-to-class":"pbx-opacity-0"},{default:o.withCtx(()=>[o.createVNode(o.unref(Bn),{class:"pbx-absolute pbx-z-10 pbx-mt-1 pbx-max-h-56 pbx-w-full pbx-overflow-auto pbx-rounded-md pbx-bg-white pbx-text-base pbx-shadow-lg pbx-ring-1 pbx-ring-black pbx-ring-opacity-5 focus:pbx-outline-none sm:pbx-text-sm pbx-list-none pbx-p-0 pbx-m-0"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(is).backgroundOpacities,p=>(o.openBlock(),o.createBlock(o.unref(Cr),{as:"template",onClick:d=>o.unref(e).handleBackgroundOpacity(p),key:p,value:p},{default:o.withCtx(({active:d})=>[o.createElementVNode("li",{class:o.normalizeClass([d?"pbx-bg-myPrimaryLinkColor text-white":"pbx-text-myPrimaryDarkGrayColor","pbx-relative pbx-cursor-default pbx-select-none pbx-py-2 pbx-pl-3 pbx-pr-9"])},[o.createElementVNode("div",iee,[p==="none"?(o.openBlock(),o.createElementBlock("div",nee,[...s[2]||(s[2]=[o.createElementVNode("div",{class:"pbx-myPrimaryColorPreview pbx-border-none"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," ev_shadow ")],-1)])])):o.createCommentVNode("",!0),p!=="none"?(o.openBlock(),o.createElementBlock("div",{key:1,class:o.normalizeClass(["pbx-aspect-square pbx-w-6 pbx-h-6 pbx-bg-gray-950",`${p}`])},null,2)):o.createCommentVNode("",!0),p==="none"?(o.openBlock(),o.createElementBlock("span",aee,o.toDisplayString(o.unref(t)("Transparent")),1)):o.createCommentVNode("",!0),p!=="none"?(o.openBlock(),o.createElementBlock("span",lee,o.toDisplayString(p),1)):o.createCommentVNode("",!0)])],2)]),_:2},1032,["onClick","value"]))),128))]),_:1})]),_:1})])]),_:1},8,["modelValue"])]))}}),pee={class:"pbx-editorFieldGroup"},dee={class:"pbx-relative"},cee={class:"pbx-flex pbx-items-center pbx-gap-2"},bee={key:0},mee={class:"pbx-flex pbx-items-center"},gee={key:0},uee={key:2,class:"pbx-ml-3"},xee={key:3,class:"pbx-ml-3"},hee=o.defineComponent({__name:"OpacityControl",setup(r){const e=Se(),{translate:t}=ne(),i=ve,n=o.ref(null),a=o.computed(()=>i.getOpacity);return o.watch(a,async l=>{n.value=l,await e.initializeElementStyles()},{immediate:!0}),(l,s)=>(o.openBlock(),o.createElementBlock("div",pee,[o.createVNode(o.unref(Mn),{as:"div",modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=p=>n.value=p)},{default:o.withCtx(()=>[o.createElementVNode("div",dee,[o.createVNode(o.unref(Pn),{class:"pbx-myPrimarySelect",id:"default-opacity"},{default:o.withCtx(()=>[o.createElementVNode("span",cee,[n.value==="none"?(o.openBlock(),o.createElementBlock("div",bee,[...s[1]||(s[1]=[o.createElementVNode("div",{class:"pbx-myPrimaryColorPreview pbx-border-none"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," ev_shadow ")],-1)])])):o.createCommentVNode("",!0),n.value!=="none"?(o.openBlock(),o.createElementBlock("div",{key:1,class:o.normalizeClass(["pbx-aspect-square pbx-w-6 pbx-h-6 pbx-bg-gray-950",`${n.value}`])},null,2)):o.createCommentVNode("",!0),o.createElementVNode("span",{class:o.normalizeClass(["pbx-block pbx-truncate",[(n.value!=="none","")]])},o.toDisplayString(n.value==="none"?o.unref(t)("Transparent"):n.value),3)])]),_:1}),o.createVNode(o.Transition,{"leave-active-class":"pbx-transition pbx-ease-in pbx-duration-100","leave-from-class":"pbx-opacity-100","leave-to-class":"pbx-opacity-0"},{default:o.withCtx(()=>[o.createVNode(o.unref(Bn),{class:"pbx-absolute pbx-z-10 pbx-mt-1 pbx-max-h-56 pbx-w-full pbx-overflow-auto pbx-rounded-md pbx-bg-white pbx-text-base pbx-shadow-lg pbx-ring-1 pbx-ring-black pbx-ring-opacity-5 focus:pbx-outline-none sm:pbx-text-sm pbx-list-none pbx-p-0 pbx-m-0"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(is).opacities,p=>(o.openBlock(),o.createBlock(o.unref(Cr),{as:"template",onClick:d=>o.unref(e).handleOpacity(p),key:p,value:p},{default:o.withCtx(({active:d})=>[o.createElementVNode("li",{class:o.normalizeClass([d?"pbx-bg-myPrimaryLinkColor text-white":"pbx-text-myPrimaryDarkGrayColor","pbx-relative pbx-cursor-default pbx-select-none pbx-py-2 pbx-pl-3 pbx-pr-9"])},[o.createElementVNode("div",mee,[p==="none"?(o.openBlock(),o.createElementBlock("div",gee,[...s[2]||(s[2]=[o.createElementVNode("div",{class:"pbx-myPrimaryColorPreview pbx-border-none"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," ev_shadow ")],-1)])])):o.createCommentVNode("",!0),p!=="none"?(o.openBlock(),o.createElementBlock("div",{key:1,class:o.normalizeClass(["pbx-aspect-square pbx-w-6 pbx-h-6 pbx-bg-gray-950",`${p}`])},null,2)):o.createCommentVNode("",!0),p==="none"?(o.openBlock(),o.createElementBlock("span",uee,o.toDisplayString(o.unref(t)("Transparent")),1)):o.createCommentVNode("",!0),p!=="none"?(o.openBlock(),o.createElementBlock("span",xee,o.toDisplayString(p),1)):o.createCommentVNode("",!0)])],2)]),_:2},1032,["onClick","value"]))),128))]),_:1})]),_:1})])]),_:1},8,["modelValue"])]))}}),fee={class:"pbx-editorSectionTitle"},yee={class:"pbx-editorSectionTitle"},wee=o.defineComponent({__name:"OpacityEditor",setup(r){const{translate:e}=ne();return(t,i)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Opacity & Transparency")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",fee,o.toDisplayString(o.unref(e)("Opacity")),1),o.createVNode(hee),i[0]||(i[0]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("p",yee,o.toDisplayString(o.unref(e)("Background Opacity")),1),o.createVNode(see)]),_:1}))}}),vee={key:0,class:"pbx-text-[9px] pbx-font-medium pbx-uppercase pbx-tracking-wide pbx-text-gray-400 pbx-leading-none"},wi=o.defineComponent({__name:"SpacingStepper",props:{value:{},sideLabel:{},compact:{type:Boolean}},emits:["decrement","increment"],setup(r){return(e,t)=>(o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["pbx-flex pbx-items-center pbx-gap-0.5 pbx-rounded-lg pbx-bg-gray-100/80 pbx-p-0.5",r.compact?"pbx-scale-90 pbx-origin-center":""])},[o.createElementVNode("button",{type:"button",class:"pbx-flex pbx-h-7 pbx-w-7 pbx-shrink-0 pbx-cursor-pointer pbx-items-center pbx-justify-center pbx-rounded-md pbx-border-none pbx-bg-white pbx-text-gray-600 pbx-shadow-sm pbx-transition-colors hover:pbx-bg-myPrimaryLinkColor hover:pbx-text-white focus-visible:pbx-outline-none",onClick:t[0]||(t[0]=i=>e.$emit("decrement"))},[...t[2]||(t[2]=[o.createElementVNode("span",{class:"material-symbols-outlined pbx-materialIcon18"},"remove",-1)])]),o.createElementVNode("div",{class:o.normalizeClass(["pbx-flex pbx-flex-col pbx-items-center pbx-justify-center",r.sideLabel?"pbx-min-w-[2.75rem]":"pbx-min-w-[2.25rem]"])},[r.sideLabel?(o.openBlock(),o.createElementBlock("span",vee,o.toDisplayString(r.sideLabel),1)):o.createCommentVNode("",!0),o.createElementVNode("span",{class:o.normalizeClass(["pbx-font-semibold pbx-tabular-nums pbx-text-gray-800",r.sideLabel?"pbx-text-xs":"pbx-text-sm"])},o.toDisplayString(r.value),3)],2),o.createElementVNode("button",{type:"button",class:"pbx-flex pbx-h-7 pbx-w-7 pbx-shrink-0 pbx-cursor-pointer pbx-items-center pbx-justify-center pbx-rounded-md pbx-border-none pbx-bg-white pbx-text-gray-600 pbx-shadow-sm pbx-transition-colors hover:pbx-bg-myPrimaryLinkColor hover:pbx-text-white focus-visible:pbx-outline-none",onClick:t[1]||(t[1]=i=>e.$emit("increment"))},[...t[3]||(t[3]=[o.createElementVNode("span",{class:"material-symbols-outlined pbx-materialIcon18"},"add",-1)])])],2))}}),be={verticalPadding:["none","pbx-py-0","pbx-py-0.5","pbx-py-1","pbx-py-1.5","pbx-py-2","pbx-py-2.5","pbx-py-3","pbx-py-3.5","pbx-py-4","pbx-py-5","pbx-py-6","pbx-py-7","pbx-py-8","pbx-py-9","pbx-py-10","pbx-py-11","pbx-py-12","pbx-py-14","pbx-py-16","pbx-py-20","pbx-py-24","pbx-py-28","pbx-py-32","pbx-py-36","pbx-py-40","pbx-py-44","pbx-py-48","pbx-py-52","pbx-py-56","pbx-py-60","pbx-py-64","pbx-py-72","pbx-py-80","pbx-py-96"],horizontalPadding:["none","pbx-px-0","pbx-px-0.5","pbx-px-1","pbx-px-1.5","pbx-px-2","pbx-px-2.5","pbx-px-3","pbx-px-3.5","pbx-px-4","pbx-px-5","pbx-px-6","pbx-px-7","pbx-px-8","pbx-px-9","pbx-px-10","pbx-px-11","pbx-px-12","pbx-px-14","pbx-px-16","pbx-px-20","pbx-px-24","pbx-px-28","pbx-px-32","pbx-px-36","pbx-px-40","pbx-px-44","pbx-px-48","pbx-px-52","pbx-px-56","pbx-px-60","pbx-px-64","pbx-px-72","pbx-px-80","pbx-px-96"],topPadding:["none","pbx-pt-0","pbx-pt-0.5","pbx-pt-1","pbx-pt-1.5","pbx-pt-2","pbx-pt-2.5","pbx-pt-3","pbx-pt-3.5","pbx-pt-4","pbx-pt-5","pbx-pt-6","pbx-pt-7","pbx-pt-8","pbx-pt-9","pbx-pt-10","pbx-pt-11","pbx-pt-12","pbx-pt-14","pbx-pt-16","pbx-pt-20","pbx-pt-24","pbx-pt-28","pbx-pt-32","pbx-pt-36","pbx-pt-40","pbx-pt-44","pbx-pt-48","pbx-pt-52","pbx-pt-56","pbx-pt-60","pbx-pt-64","pbx-pt-72","pbx-pt-80","pbx-pt-96"],rightPadding:["none","pbx-pr-0","pbx-pr-0.5","pbx-pr-1","pbx-pr-1.5","pbx-pr-2","pbx-pr-2.5","pbx-pr-3","pbx-pr-3.5","pbx-pr-4","pbx-pr-5","pbx-pr-6","pbx-pr-7","pbx-pr-8","pbx-pr-9","pbx-pr-10","pbx-pr-11","pbx-pr-12","pbx-pr-14","pbx-pr-16","pbx-pr-20","pbx-pr-24","pbx-pr-28","pbx-pr-32","pbx-pr-36","pbx-pr-40","pbx-pr-44","pbx-pr-48","pbx-pr-52","pbx-pr-56","pbx-pr-60","pbx-pr-64","pbx-pr-72","pbx-pr-80","pbx-pr-96"],bottomPadding:["none","pbx-pb-0","pbx-pb-0.5","pbx-pb-1","pbx-pb-1.5","pbx-pb-2","pbx-pb-2.5","pbx-pb-3","pbx-pb-3.5","pbx-pb-4","pbx-pb-5","pbx-pb-6","pbx-pb-7","pbx-pb-8","pbx-pb-9","pbx-pb-10","pbx-pb-11","pbx-pb-12","pbx-pb-14","pbx-pb-16","pbx-pb-20","pbx-pb-24","pbx-pb-28","pbx-pb-32","pbx-pb-36","pbx-pb-40","pbx-pb-44","pbx-pb-48","pbx-pb-52","pbx-pb-56","pbx-pb-60","pbx-pb-64","pbx-pb-72","pbx-pb-80","pbx-pb-96"],leftPadding:["none","pbx-pl-0","pbx-pl-0.5","pbx-pl-1","pbx-pl-1.5","pbx-pl-2","pbx-pl-2.5","pbx-pl-3","pbx-pl-3.5","pbx-pl-4","pbx-pl-5","pbx-pl-6","pbx-pl-7","pbx-pl-8","pbx-pl-9","pbx-pl-10","pbx-pl-11","pbx-pl-12","pbx-pl-14","pbx-pl-16","pbx-pl-20","pbx-pl-24","pbx-pl-28","pbx-pl-32","pbx-pl-36","pbx-pl-40","pbx-pl-44","pbx-pl-48","pbx-pl-52","pbx-pl-56","pbx-pl-60","pbx-pl-64","pbx-pl-72","pbx-pl-80","pbx-pl-96"],verticalMargin:["none","pbx-my-0","pbx-my-0.5","pbx-my-1","pbx-my-1.5","pbx-my-2","pbx-my-2.5","pbx-my-3","pbx-my-3.5","pbx-my-4","pbx-my-5","pbx-my-6","pbx-my-7","pbx-my-8","pbx-my-9","pbx-my-10","pbx-my-11","pbx-my-12","pbx-my-14","pbx-my-16","pbx-my-20","pbx-my-24","pbx-my-28","pbx-my-32","pbx-my-36","pbx-my-40","pbx-my-44","pbx-my-48","pbx-my-52","pbx-my-56","pbx-my-60","pbx-my-64","pbx-my-72","pbx-my-80","pbx-my-96"],horizontalMargin:["none","pbx-mx-0","pbx-mx-0.5","pbx-mx-1","pbx-mx-1.5","pbx-mx-2","pbx-mx-2.5","pbx-mx-3","pbx-mx-3.5","pbx-mx-4","pbx-mx-5","pbx-mx-6","pbx-mx-7","pbx-mx-8","pbx-mx-9","pbx-mx-10","pbx-mx-11","pbx-mx-12","pbx-mx-14","pbx-mx-16","pbx-mx-20","pbx-mx-24","pbx-mx-28","pbx-mx-32","pbx-mx-36","pbx-mx-40","pbx-mx-44","pbx-mx-48","pbx-mx-52","pbx-mx-56","pbx-mx-60","pbx-mx-64","pbx-mx-72","pbx-mx-80","pbx-mx-96"],topMargin:["none","pbx-mt-0","pbx-mt-0.5","pbx-mt-1","pbx-mt-1.5","pbx-mt-2","pbx-mt-2.5","pbx-mt-3","pbx-mt-3.5","pbx-mt-4","pbx-mt-5","pbx-mt-6","pbx-mt-7","pbx-mt-8","pbx-mt-9","pbx-mt-10","pbx-mt-11","pbx-mt-12","pbx-mt-14","pbx-mt-16","pbx-mt-20","pbx-mt-24","pbx-mt-28","pbx-mt-32","pbx-mt-36","pbx-mt-40","pbx-mt-44","pbx-mt-48","pbx-mt-52","pbx-mt-56","pbx-mt-60","pbx-mt-64","pbx-mt-72","pbx-mt-80","pbx-mt-96"],rightMargin:["none","pbx-mr-0","pbx-mr-0.5","pbx-mr-1","pbx-mr-1.5","pbx-mr-2","pbx-mr-2.5","pbx-mr-3","pbx-mr-3.5","pbx-mr-4","pbx-mr-5","pbx-mr-6","pbx-mr-7","pbx-mr-8","pbx-mr-9","pbx-mr-10","pbx-mr-11","pbx-mr-12","pbx-mr-14","pbx-mr-16","pbx-mr-20","pbx-mr-24","pbx-mr-28","pbx-mr-32","pbx-mr-36","pbx-mr-40","pbx-mr-44","pbx-mr-48","pbx-mr-52","pbx-mr-56","pbx-mr-60","pbx-mr-64","pbx-mr-72","pbx-mr-80","pbx-mr-96"],bottomMargin:["none","pbx-mb-0","pbx-mb-0.5","pbx-mb-1","pbx-mb-1.5","pbx-mb-2","pbx-mb-2.5","pbx-mb-3","pbx-mb-3.5","pbx-mb-4","pbx-mb-5","pbx-mb-6","pbx-mb-7","pbx-mb-8","pbx-mb-9","pbx-mb-10","pbx-mb-11","pbx-mb-12","pbx-mb-14","pbx-mb-16","pbx-mb-20","pbx-mb-24","pbx-mb-28","pbx-mb-32","pbx-mb-36","pbx-mb-40","pbx-mb-44","pbx-mb-48","pbx-mb-52","pbx-mb-56","pbx-mb-60","pbx-mb-64","pbx-mb-72","pbx-mb-80","pbx-mb-96"],leftMargin:["none","pbx-ml-0","pbx-ml-0.5","pbx-ml-1","pbx-ml-1.5","pbx-ml-2","pbx-ml-2.5","pbx-ml-3","pbx-ml-3.5","pbx-ml-4","pbx-ml-5","pbx-ml-6","pbx-ml-7","pbx-ml-8","pbx-ml-9","pbx-ml-10","pbx-ml-11","pbx-ml-12","pbx-ml-14","pbx-ml-16","pbx-ml-20","pbx-ml-24","pbx-ml-28","pbx-ml-32","pbx-ml-36","pbx-ml-40","pbx-ml-44","pbx-ml-48","pbx-ml-52","pbx-ml-56","pbx-ml-60","pbx-ml-64","pbx-ml-72","pbx-ml-80","pbx-ml-96"]},kee={class:"pbx-editorSectionTitle"},See={class:"pbx-editorSectionDesc"},Cee={class:"pbx-mb-4 pbx-space-y-2 pbx-rounded-xl pbx-border pbx-border-solid pbx-border-gray-200 pbx-bg-white pbx-p-3"},Tee={class:"pbx-flex pbx-items-center pbx-justify-between pbx-gap-3"},Eee={class:"pbx-text-xs pbx-font-medium pbx-text-gray-500"},Mee={class:"pbx-flex pbx-items-center pbx-justify-between pbx-gap-3"},Pee={class:"pbx-text-xs pbx-font-medium pbx-text-gray-500"},Bee={class:"pbx-editorSectionTitle"},Lee={class:"pbx-flex pbx-flex-col pbx-items-center pbx-justify-center"},Nee={class:"pbx-mb-3 pbx-flex pbx-justify-center"},Aee={class:"pbx-items-center pbx-gap-2",style:{display:"grid","grid-template-columns":"auto 1fr auto"}},_ee={class:"pbx-flex pbx-h-10 pbx-items-center pbx-justify-center pbx-rounded-lg pbx-border pbx-border-solid pbx-border-gray-200/80 pbx-bg-white pbx-shadow-sm"},Dee={class:"pbx-select-none pbx-text-[10px] pbx-font-medium pbx-text-gray-400"},zee={class:"pbx-mt-3 pbx-flex pbx-justify-center"},uz=o.defineComponent({__name:"SpacingControl",props:{mode:{}},setup(r){const e=r,{translate:t}=ne(),i=Se(),n=ve,a=o.computed(()=>e.mode==="padding"),l=o.computed(()=>a.value?"pbx-bg-emerald-50/40":"pbx-bg-amber-50/40"),s=o.computed(()=>a.value?"pbx-border-emerald-200/60":"pbx-border-amber-200/60"),p=o.ref(null),d=o.ref(null),c=o.ref(null),b=o.ref(null),m=o.ref(null),g=o.ref(null),x=o.computed(()=>a.value?n.getFontVerticalPadding:n.getFontVerticalMargin),u=o.computed(()=>a.value?n.getFontHorizontalPadding:n.getFontHorizontalMargin),h=o.computed(()=>a.value?n.getFontTopPadding:n.getFontTopMargin),f=o.computed(()=>a.value?n.getFontRightPadding:n.getFontRightMargin),w=o.computed(()=>a.value?n.getFontBottomPadding:n.getFontBottomMargin),y=o.computed(()=>a.value?n.getFontLeftPadding:n.getFontLeftMargin);o.watch(x,async V=>{p.value=V,await i.initializeElementStyles()},{immediate:!0}),o.watch(u,async V=>{d.value=V,await i.initializeElementStyles()},{immediate:!0}),o.watch(h,async V=>{c.value=V,await i.initializeElementStyles()},{immediate:!0}),o.watch(f,async V=>{b.value=V,await i.initializeElementStyles()},{immediate:!0}),o.watch(w,async V=>{m.value=V,await i.initializeElementStyles()},{immediate:!0}),o.watch(y,async V=>{g.value=V,await i.initializeElementStyles()},{immediate:!0});function E(V){if(!V||V==="none")return"–";const U=V.match(/-(\d[\d.]*)$/);return U?U[1]:"–"}function S(){return E(c.value&&c.value!=="none"?c.value:p.value)}function P(){return E(m.value&&m.value!=="none"?m.value:p.value)}function k(){return E(g.value&&g.value!=="none"?g.value:d.value)}function M(){return E(b.value&&b.value!=="none"?b.value:d.value)}function C(V,U,Y){const Q=V.indexOf(U??"none");return V[Math.max(0,Math.min(V.length-1,Math.max(0,Q)+Y))]}function v(V){const U=a.value?be.verticalPadding:be.verticalMargin,Y=C(U,p.value,V);p.value=Y,a.value?i.handleVerticalPadding(Y):i.handleVerticalMargin(Y)}function T(V){const U=a.value?be.horizontalPadding:be.horizontalMargin,Y=C(U,d.value,V);d.value=Y,a.value?i.handleHorizontalPadding(Y):i.handleHorizontalMargin(Y)}function H(V){const U=a.value?be.topPadding:be.topMargin,Y=C(U,c.value,V);c.value=Y,a.value?i.handleTopPadding(Y):i.handleTopMargin(Y)}function A(V){const U=a.value?be.rightPadding:be.rightMargin,Y=C(U,b.value,V);b.value=Y,a.value?i.handleRightPadding(Y):i.handleRightMargin(Y)}function N(V){const U=a.value?be.bottomPadding:be.bottomMargin,Y=C(U,m.value,V);m.value=Y,a.value?i.handleBottomPadding(Y):i.handleBottomMargin(Y)}function D(V){const U=a.value?be.leftPadding:be.leftMargin,Y=C(U,g.value,V);g.value=Y,a.value?i.handleLeftPadding(Y):i.handleLeftMargin(Y)}return(V,U)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(t)(a.value?"Padding":"Margin")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",kee,o.toDisplayString(o.unref(t)("All sides")),1),o.createElementVNode("p",See,o.toDisplayString(o.unref(t)("Applies across all screen sizes")),1),o.createElementVNode("div",Cee,[o.createElementVNode("div",Tee,[o.createElementVNode("span",Eee,o.toDisplayString(o.unref(t)("Vertical")),1),o.createVNode(wi,{value:E(p.value),onDecrement:U[0]||(U[0]=Y=>v(-1)),onIncrement:U[1]||(U[1]=Y=>v(1))},null,8,["value"])]),U[12]||(U[12]=o.createElementVNode("div",{class:"pbx-h-px pbx-bg-gray-100"},null,-1)),o.createElementVNode("div",Mee,[o.createElementVNode("span",Pee,o.toDisplayString(o.unref(t)("Horizontal")),1),o.createVNode(wi,{value:E(d.value),onDecrement:U[2]||(U[2]=Y=>T(-1)),onIncrement:U[3]||(U[3]=Y=>T(1))},null,8,["value"])])]),U[13]||(U[13]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",Bee,o.toDisplayString(o.unref(t)(a.value?"Padding":"Margin")),1),o.createElementVNode("div",{class:o.normalizeClass(["pbx-relative pbx-rounded-full pbx-border pbx-border-solid pbx-p-8 pbx-pt-8 pbx-flex pbx-items-center pbx-justify-center",[l.value,s.value]])},[o.createElementVNode("div",Lee,[o.createElementVNode("div",Nee,[o.createVNode(wi,{value:S(),"side-label":o.unref(t)("top"),onDecrement:U[4]||(U[4]=Y=>H(-1)),onIncrement:U[5]||(U[5]=Y=>H(1))},null,8,["value","side-label"])]),o.createElementVNode("div",Aee,[o.createVNode(wi,{value:k(),"side-label":o.unref(t)("left"),compact:"",onDecrement:U[6]||(U[6]=Y=>D(-1)),onIncrement:U[7]||(U[7]=Y=>D(1))},null,8,["value","side-label"]),o.createElementVNode("div",_ee,[o.createElementVNode("span",Dee,o.toDisplayString(o.unref(t)("element")),1)]),o.createVNode(wi,{value:M(),"side-label":o.unref(t)("right"),compact:"",onDecrement:U[8]||(U[8]=Y=>A(-1)),onIncrement:U[9]||(U[9]=Y=>A(1))},null,8,["value","side-label"])]),o.createElementVNode("div",zee,[o.createVNode(wi,{value:P(),"side-label":o.unref(t)("bottom"),onDecrement:U[10]||(U[10]=Y=>N(-1)),onIncrement:U[11]||(U[11]=Y=>N(1))},null,8,["value","side-label"])])])],2)]),_:1}))}}),xz=o.defineComponent({__name:"PaddingControl",setup(r){return(e,t)=>(o.openBlock(),o.createBlock(uz,{mode:"padding"}))}}),hz=o.defineComponent({__name:"MarginControl",setup(r){return(e,t)=>(o.openBlock(),o.createBlock(uz,{mode:"margin"}))}}),ht={roundedGlobal:["none","pbx-rounded-sm","pbx-rounded","pbx-rounded-md","pbx-rounded-lg","pbx-rounded-xl","pbx-rounded-2xl","pbx-rounded-3xl","pbx-rounded-full"],roundedTopLeft:["none","pbx-rounded-tl-sm","pbx-rounded-tl","pbx-rounded-tl-md","pbx-rounded-tl-lg","pbx-rounded-tl-xl","pbx-rounded-tl-2xl","pbx-rounded-tl-3xl","pbx-rounded-tl-full"],roundedTopRight:["none","pbx-rounded-tr-sm","pbx-rounded-tr","pbx-rounded-tr-md","pbx-rounded-tr-lg","pbx-rounded-tr-xl","pbx-rounded-tr-2xl","pbx-rounded-tr-3xl","pbx-rounded-tr-full"],roundedBottomLeft:["none","pbx-rounded-bl-sm","pbx-rounded-bl","pbx-rounded-bl-md","pbx-rounded-bl-lg","pbx-rounded-bl-xl","pbx-rounded-bl-2xl","pbx-rounded-bl-3xl","pbx-rounded-bl-full"],roundedBottomRight:["none","pbx-rounded-br-sm","pbx-rounded-br","pbx-rounded-br-md","pbx-rounded-br-lg","pbx-rounded-br-xl","pbx-rounded-br-2xl","pbx-rounded-br-3xl","pbx-rounded-br-full"]},Iee={class:"pbx-editorSectionTitle"},Vee={class:"pbx-editorFieldGroup"},Hee={for:"global-border-radius",class:"pbx-myPrimaryInputLabel"},Ree={disabled:"",value:""},Oee={class:"pbx-editorSectionTitle"},Fee={class:"pbx-editorFieldGroup"},jee={for:"border-radius-top-left",class:"pbx-myPrimaryInputLabel"},qee={disabled:"",value:""},Uee={class:"pbx-editorFieldGroup"},Wee={for:"border-radius-top-right",class:"pbx-myPrimaryInputLabel"},Gee={disabled:"",value:""},Kee={class:"pbx-editorFieldGroup"},Jee={for:"border-radius-bottom-left",class:"pbx-myPrimaryInputLabel"},Yee={disabled:"",value:""},Qee={class:"pbx-editorFieldGroup"},Xee={for:"border-radius-bottom-right",class:"pbx-myPrimaryInputLabel"},Zee={disabled:"",value:""},fz=o.defineComponent({__name:"BorderRadiusControl",setup(r){const{translate:e}=ne(),t=Se(),i=ve,n=o.ref(null),a=o.ref(null),l=o.ref(null),s=o.ref(null),p=o.ref(null),d=o.computed(()=>i.getBorderRadiusGlobal),c=o.computed(()=>i.getBorderRadiusTopLeft),b=o.computed(()=>i.getBorderRadiusTopRight),m=o.computed(()=>i.getBorderRadiusBottomleft),g=o.computed(()=>i.getBorderRadiusBottomRight);return o.watch(d,async x=>{n.value=x,await t.initializeElementStyles()},{immediate:!0}),o.watch(c,async x=>{a.value=x,await t.initializeElementStyles()},{immediate:!0}),o.watch(b,async x=>{l.value=x,await t.initializeElementStyles()},{immediate:!0}),o.watch(m,async x=>{s.value=x,await t.initializeElementStyles()},{immediate:!0}),o.watch(g,async x=>{p.value=x,await t.initializeElementStyles()},{immediate:!0}),(x,u)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Border Radius")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Iee,o.toDisplayString(o.unref(e)("Global")),1),o.createElementVNode("div",Vee,[o.createElementVNode("label",Hee,o.toDisplayString(o.unref(e)("Border Radius")),1),o.withDirectives(o.createElementVNode("select",{id:"global-border-radius","onUpdate:modelValue":u[0]||(u[0]=h=>n.value=h),class:"pbx-myPrimarySelect",onChange:u[1]||(u[1]=h=>o.unref(t).handleBorderRadiusGlobal(n.value??void 0))},[o.createElementVNode("option",Ree,o.toDisplayString(o.unref(e)("Select")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(ht).roundedGlobal,h=>(o.openBlock(),o.createElementBlock("option",{key:h},o.toDisplayString(h),1))),128))],544),[[o.vModelSelect,n.value]])]),u[10]||(u[10]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("p",Oee,o.toDisplayString(o.unref(e)("Specific")),1),o.createElementVNode("div",Fee,[o.createElementVNode("label",jee,o.toDisplayString(o.unref(e)("Border Radius top left")),1),o.withDirectives(o.createElementVNode("select",{id:"border-radius-top-left","onUpdate:modelValue":u[2]||(u[2]=h=>a.value=h),class:"pbx-myPrimarySelect",onChange:u[3]||(u[3]=h=>o.unref(t).handleBorderRadiusTopLeft(a.value??void 0))},[o.createElementVNode("option",qee,o.toDisplayString(o.unref(e)("Select")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(ht).roundedTopLeft,h=>(o.openBlock(),o.createElementBlock("option",{key:h},o.toDisplayString(h),1))),128))],544),[[o.vModelSelect,a.value]])]),u[11]||(u[11]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",Uee,[o.createElementVNode("label",Wee,o.toDisplayString(o.unref(e)("Border Radius top right")),1),o.withDirectives(o.createElementVNode("select",{id:"border-radius-top-right","onUpdate:modelValue":u[4]||(u[4]=h=>l.value=h),class:"pbx-myPrimarySelect",onChange:u[5]||(u[5]=h=>o.unref(t).handleBorderRadiusTopRight(l.value??void 0))},[o.createElementVNode("option",Gee,o.toDisplayString(o.unref(e)("Select")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(ht).roundedTopRight,h=>(o.openBlock(),o.createElementBlock("option",{key:h},o.toDisplayString(h),1))),128))],544),[[o.vModelSelect,l.value]])]),u[12]||(u[12]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",Kee,[o.createElementVNode("label",Jee,o.toDisplayString(o.unref(e)("Border Radius bottom left")),1),o.withDirectives(o.createElementVNode("select",{id:"border-radius-bottom-left","onUpdate:modelValue":u[6]||(u[6]=h=>s.value=h),class:"pbx-myPrimarySelect",onChange:u[7]||(u[7]=h=>o.unref(t).handleBorderRadiusBottomleft(s.value??void 0))},[o.createElementVNode("option",Yee,o.toDisplayString(o.unref(e)("Select")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(ht).roundedBottomLeft,h=>(o.openBlock(),o.createElementBlock("option",{key:h},o.toDisplayString(h),1))),128))],544),[[o.vModelSelect,s.value]])]),u[13]||(u[13]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",Qee,[o.createElementVNode("label",Xee,o.toDisplayString(o.unref(e)("Border Radius bottom right")),1),o.withDirectives(o.createElementVNode("select",{id:"border-radius-bottom-right","onUpdate:modelValue":u[8]||(u[8]=h=>p.value=h),class:"pbx-myPrimarySelect",onChange:u[9]||(u[9]=h=>o.unref(t).handleBorderRadiusBottomRight(p.value??void 0))},[o.createElementVNode("option",Zee,o.toDisplayString(o.unref(e)("Select")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(ht).roundedBottomRight,h=>(o.openBlock(),o.createElementBlock("option",{key:h},o.toDisplayString(h),1))),128))],544),[[o.vModelSelect,p.value]])])]),_:1}))}}),vi={borderStyle:["none","pbx-border-solid","pbx-border-dashed","pbx-border-dotted","pbx-border-double","pbx-border-hidden"],borderWidth:["none","pbx-border","pbx-border-2","pbx-border-4","pbx-border-8"],borderColor:["none","pbx-border-white","pbx-border-black","pbx-border-slate-50","pbx-border-slate-100","pbx-border-slate-200","pbx-border-slate-300","pbx-border-slate-400","pbx-border-slate-500","pbx-border-slate-600","pbx-border-slate-700","pbx-border-slate-800","pbx-border-slate-900","pbx-border-gray-50","pbx-border-gray-100","pbx-border-gray-200","pbx-border-gray-300","pbx-border-gray-400","pbx-border-gray-500","pbx-border-gray-600","pbx-border-gray-700","pbx-border-gray-800","pbx-border-gray-900","pbx-border-zinc-50","pbx-border-zinc-100","pbx-border-zinc-200","pbx-border-zinc-300","pbx-border-zinc-400","pbx-border-zinc-500","pbx-border-zinc-600","pbx-border-zinc-700","pbx-border-zinc-800","pbx-border-zinc-900","pbx-border-neutral-50","pbx-border-neutral-100","pbx-border-neutral-200","pbx-border-neutral-300","pbx-border-neutral-400","pbx-border-neutral-500","pbx-border-neutral-600","pbx-border-neutral-700","pbx-border-neutral-800","pbx-border-neutral-900","pbx-border-stone-50","pbx-border-stone-100","pbx-border-stone-200","pbx-border-stone-300","pbx-border-stone-400","pbx-border-stone-500","pbx-border-stone-600","pbx-border-stone-700","pbx-border-stone-800","pbx-border-stone-900","pbx-border-red-50","pbx-border-red-100","pbx-border-red-200","pbx-border-red-300","pbx-border-red-400","pbx-border-red-500","pbx-border-red-600","pbx-border-red-700","pbx-border-red-800","pbx-border-red-900","pbx-border-orange-50","pbx-border-orange-100","pbx-border-orange-200","pbx-border-orange-300","pbx-border-orange-400","pbx-border-orange-500","pbx-border-orange-600","pbx-border-orange-700","pbx-border-orange-800","pbx-border-orange-900","pbx-border-amber-50","pbx-border-amber-100","pbx-border-amber-200","pbx-border-amber-300","pbx-border-amber-400","pbx-border-amber-500","pbx-border-amber-600","pbx-border-amber-700","pbx-border-amber-800","pbx-border-amber-900","pbx-border-yellow-50","pbx-border-yellow-100","pbx-border-yellow-200","pbx-border-yellow-300","pbx-border-yellow-400","pbx-border-yellow-500","pbx-border-yellow-600","pbx-border-yellow-700","pbx-border-yellow-800","pbx-border-yellow-900","pbx-border-lime-50","pbx-border-lime-100","pbx-border-lime-200","pbx-border-lime-300","pbx-border-lime-400","pbx-border-lime-500","pbx-border-lime-600","pbx-border-lime-700","pbx-border-lime-800","pbx-border-lime-900","pbx-border-green-50","pbx-border-green-100","pbx-border-green-200","pbx-border-green-300","pbx-border-green-400","pbx-border-green-500","pbx-border-green-600","pbx-border-green-700","pbx-border-green-800","pbx-border-green-900","pbx-border-emerald-50","pbx-border-emerald-100","pbx-border-emerald-200","pbx-border-emerald-300","pbx-border-emerald-400","pbx-border-emerald-500","pbx-border-emerald-600","pbx-border-emerald-700","pbx-border-emerald-800","pbx-border-emerald-900","pbx-border-teal-50","pbx-border-teal-100","pbx-border-teal-200","pbx-border-teal-300","pbx-border-teal-400","pbx-border-teal-500","pbx-border-teal-600","pbx-border-teal-700","pbx-border-teal-800","pbx-border-teal-900","pbx-border-cyan-50","pbx-border-cyan-100","pbx-border-cyan-200","pbx-border-cyan-300","pbx-border-cyan-400","pbx-border-cyan-500","pbx-border-cyan-600","pbx-border-cyan-700","pbx-border-cyan-800","pbx-border-cyan-900","pbx-border-sky-50","pbx-border-sky-100","pbx-border-sky-200","pbx-border-sky-300","pbx-border-sky-400","pbx-border-sky-500","pbx-border-sky-600","pbx-border-sky-700","pbx-border-sky-800","pbx-border-sky-900","pbx-border-blue-50","pbx-border-blue-100","pbx-border-blue-200","pbx-border-blue-300","pbx-border-blue-400","pbx-border-blue-500","pbx-border-blue-600","pbx-border-blue-700","pbx-border-blue-800","pbx-border-blue-900","pbx-border-indigo-50","pbx-border-indigo-100","pbx-border-indigo-200","pbx-border-indigo-300","pbx-border-indigo-400","pbx-border-indigo-500","pbx-border-indigo-600","pbx-border-indigo-700","pbx-border-indigo-800","pbx-border-indigo-900","pbx-border-violet-50","pbx-border-violet-100","pbx-border-violet-200","pbx-border-violet-300","pbx-border-violet-400","pbx-border-violet-500","pbx-border-violet-600","pbx-border-violet-700","pbx-border-violet-800","pbx-border-violet-900","pbx-border-purple-50","pbx-border-purple-100","pbx-border-purple-200","pbx-border-purple-300","pbx-border-purple-400","pbx-border-purple-500","pbx-border-purple-600","pbx-border-purple-700","pbx-border-purple-800","pbx-border-purple-900","pbx-border-fuchsia-50","pbx-border-fuchsia-100","pbx-border-fuchsia-200","pbx-border-fuchsia-300","pbx-border-fuchsia-400","pbx-border-fuchsia-500","pbx-border-fuchsia-600","pbx-border-fuchsia-700","pbx-border-fuchsia-800","pbx-border-fuchsia-900","pbx-border-pink-50","pbx-border-pink-100","pbx-border-pink-200","pbx-border-pink-300","pbx-border-pink-400","pbx-border-pink-500","pbx-border-pink-600","pbx-border-pink-700","pbx-border-pink-800","pbx-border-pink-900","pbx-border-rose-50","pbx-border-rose-100","pbx-border-rose-200","pbx-border-rose-300","pbx-border-rose-400","pbx-border-rose-500","pbx-border-rose-600","pbx-border-rose-700","pbx-border-rose-800","pbx-border-rose-900"]},$ee={class:"pbx-editorSectionTitle"},ete={class:"pbx-editorFieldGroup"},tte={for:"border-style",class:"pbx-myPrimaryInputLabel"},rte={disabled:"",value:""},ote={class:"pbx-editorFieldGroup"},ite={for:"border-width",class:"pbx-myPrimaryInputLabel"},nte={disabled:"",value:""},ate={class:"pbx-editorFieldGroup"},lte={for:"border-color",class:"pbx-myPrimaryInputLabel"},ste={class:"pbx-flex pbx-items-center pbx-gap-2"},pte={key:0},dte={class:"pbx-block pbx-truncate"},cte={class:"pbx-flex pbx-items-center"},bte={key:0},mte={key:2,class:"pbx-ml-3"},gte={key:3,class:"pbx-ml-3"},yz=o.defineComponent({name:"BorderControls",__name:"BorderControls",setup(r){const{translate:e}=ne(),t=Se(),i=ve,n=o.ref(null),a=o.ref(null),l=o.ref(null),s=o.computed(()=>i.getBorderStyle),p=o.computed(()=>i.getBorderWidth),d=o.computed(()=>i.getBorderColor);return o.watch(s,async c=>{n.value=c,await t.initializeElementStyles()},{immediate:!0}),o.watch(p,async c=>{a.value=c,await t.initializeElementStyles()},{immediate:!0}),o.watch(d,async c=>{l.value=c,await t.initializeElementStyles()},{immediate:!0}),(c,b)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Border Style, Width & Color")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",$ee,o.toDisplayString(o.unref(e)("Border")),1),o.createElementVNode("div",ete,[o.createElementVNode("label",tte,o.toDisplayString(o.unref(e)("Border Style")),1),o.withDirectives(o.createElementVNode("select",{id:"border-style","onUpdate:modelValue":b[0]||(b[0]=m=>n.value=m),class:"pbx-myPrimarySelect",onChange:b[1]||(b[1]=m=>o.unref(t).handleBorderStyle(n.value??void 0))},[o.createElementVNode("option",rte,o.toDisplayString(o.unref(e)("Select")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(vi).borderStyle,m=>(o.openBlock(),o.createElementBlock("option",{key:m},o.toDisplayString(m),1))),128))],544),[[o.vModelSelect,n.value]])]),b[8]||(b[8]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",ote,[o.createElementVNode("label",ite,o.toDisplayString(o.unref(e)("Border Width")),1),o.withDirectives(o.createElementVNode("select",{id:"border-width","onUpdate:modelValue":b[2]||(b[2]=m=>a.value=m),class:"pbx-myPrimarySelect",onChange:b[3]||(b[3]=m=>o.unref(t).handleBorderWidth(a.value??void 0))},[o.createElementVNode("option",nte,o.toDisplayString(o.unref(e)("Select")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(vi).borderWidth,m=>(o.openBlock(),o.createElementBlock("option",{key:m},o.toDisplayString(m),1))),128))],544),[[o.vModelSelect,a.value]])]),b[9]||(b[9]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",ate,[o.createElementVNode("label",lte,o.toDisplayString(o.unref(e)("Border Color")),1),o.createVNode(o.unref(Mn),{as:"div",modelValue:l.value,"onUpdate:modelValue":b[5]||(b[5]=m=>l.value=m)},{default:o.withCtx(({open:m})=>[o.createElementVNode("div",{class:o.normalizeClass(["pbx-relative pbx-mt-2",m?"pbx-z-50":"pbx-z-0"])},[o.createVNode(o.unref(Pn),{class:"pbx-myPrimarySelect",id:"border-color"},{default:o.withCtx(()=>{var g;return[o.createElementVNode("span",ste,[d.value==="none"?(o.openBlock(),o.createElementBlock("div",pte,[...b[6]||(b[6]=[o.createElementVNode("div",{class:"pbx-myPrimaryColorPreview pbx-border-none"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," ev_shadow ")],-1)])])):o.createCommentVNode("",!0),l.value!=="none"?(o.openBlock(),o.createElementBlock("div",{key:1,class:o.normalizeClass(["pbx-aspect-square pbx-w-6 pbx-h-6 pbx-border-solid pbx-border pbx-border-gray-100 pbx-rounded-sm",`pbx-bg-${(g=l.value)==null?void 0:g.replace("pbx-border-","")}`])},null,2)):o.createCommentVNode("",!0),o.createElementVNode("span",dte,o.toDisplayString(l.value),1)])]}),_:1}),o.createVNode(o.Transition,{"leave-active-class":"pbx-transition pbx-ease-in pbx-duration-100","leave-from-class":"pbx-opacity-100","leave-to-class":"pbx-opacity-0"},{default:o.withCtx(()=>[o.createVNode(o.unref(Bn),{class:"pbx-headless-dropdown pbx-absolute pbx-z-50 pbx-mt-1 pbx-max-h-56 pbx-w-full pbx-overflow-auto pbx-rounded-md pbx-bg-white pbx-text-base pbx-shadow-lg pbx-ring-1 pbx-ring-black pbx-ring-opacity-5 focus:pbx-outline-none sm:pbx-text-sm pbx-list-none pbx-p-0 pbx-m-0"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(vi).borderColor,g=>(o.openBlock(),o.createBlock(o.unref(Cr),{as:"template",onClick:b[4]||(b[4]=x=>o.unref(t).handleBorderColor(l.value??void 0)),key:g,value:g},{default:o.withCtx(({active:x})=>[o.createElementVNode("li",{class:o.normalizeClass([x?"pbx-bg-myPrimaryLinkColor pbx-text-white":"pbx-text-myPrimaryDarkGrayColor","pbx-relative pbx-cursor-default pbx-select-none pbx-py-2 pbx-pl-3 pbx-pr-9"])},[o.createElementVNode("div",cte,[g==="none"?(o.openBlock(),o.createElementBlock("div",bte,[...b[7]||(b[7]=[o.createElementVNode("div",{class:"pbx-myPrimaryColorPreview pbx-border-none"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," ev_shadow ")],-1)])])):o.createCommentVNode("",!0),g!=="none"?(o.openBlock(),o.createElementBlock("div",{key:1,class:o.normalizeClass(["pbx-aspect-square pbx-w-6 pbx-h-6 pbx-bg-gray-950",`pbx-bg-${g.replace("pbx-border-","")}`])},null,2)):o.createCommentVNode("",!0),g==="none"?(o.openBlock(),o.createElementBlock("span",mte,o.toDisplayString(o.unref(e)("Transparent")),1)):o.createCommentVNode("",!0),g!=="none"?(o.openBlock(),o.createElementBlock("span",gte,o.toDisplayString(g),1)):o.createCommentVNode("",!0)])],2)]),_:2},1032,["value"]))),128))]),_:1})]),_:1})],2)]),_:1},8,["modelValue"])])]),_:1}))}}),ute={class:"pbx-flex pbx-items-center pbx-justify-between pbx-gap-4 pbx-rounded-lg pbx-border pbx-border-solid pbx-border-gray-100 pbx-bg-gray-50 pbx-px-4 pbx-py-3"},xte={class:"pbx-text-sm pbx-font-semibold pbx-text-myPrimaryDarkGrayColor pbx-my-0"},hte={class:"pbx-text-xs pbx-text-gray-500 pbx-my-0"},fte={class:"pbx-grid pbx-grid-cols-1 pbx-gap-3"},yte=["for"],wte={class:"pbx-flex pbx-justify-between pbx-items-center pbx-gap-4 pbx-border pbx-border-gray-200 pbx-py-4 pbx-px-3 pbx-rounded-lg"},vte=["id","value","onInput","onBlur"],kte={class:"pbx-relative pbx-flex-shrink-0"},Ste=["title","onClick"],Cte={class:"pbx-border-t pbx-border-gray-100 pbx-pt-4 pbx-mt-2 pbx-flex pbx-items-center pbx-justify-between pbx-gap-3"},Tte={class:"pbx-text-sm pbx-font-semibold pbx-text-myPrimaryDarkGrayColor pbx-my-0"},Ete={class:"pbx-text-xs pbx-text-gray-500 pbx-my-0"},Mte=o.defineComponent({__name:"ThemeColorPresetManager",props:{embedded:{type:Boolean}},setup(r){const{translate:e}=ne(),{showToast:t}=Xe(),i=ve,n=o.computed(()=>i.getPageBuilderConfig),{themeColorPresetSettings:a,setThemeColorPresetsEnabled:l,updateThemeColorPreset:s,resetToConfigDefaults:p}=ql(n),d=o.ref({});function c(k){return d.value[k.id]??k.color}o.watch(()=>a.value.colors,k=>{k.forEach(M=>{var v;((v=document.activeElement)==null?void 0:v.id)!==`color-input-${M.id}`&&(d.value[M.id]=M.color)})},{deep:!0});const b=/^#?[0-9a-fA-F]{6}$/;function m(k,M){const C=M.target,v=C.value.trim();d.value[k.id]=C.value,b.test(v)&&s(k.id,{color:v})}function g(k){d.value[k.id]=k.color}function x(k,M){s(k,{enabled:M})}function u(k,M){s(k.id,{color:M})}const h=o.ref(null);function f(k){h.value=h.value===k?null:k}function w(){h.value=null}const y=o.ref(!1);function E(){y.value=!0}function S(){y.value=!1}function P(){p(),d.value={},y.value=!1,t(e("Theme colors reset to defaults"),"success")}return(k,M)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createElementVNode("div",{class:o.normalizeClass(["pbx-flex pbx-flex-col pbx-gap-4",r.embedded?"":"pbx-mb-20"])},[o.createElementVNode("div",ute,[o.createElementVNode("div",null,[o.createElementVNode("p",xte,o.toDisplayString(o.unref(e)("Enable theme color presets")),1),o.createElementVNode("p",hte,o.toDisplayString(o.unref(e)("Use saved hex colors in text and background color menus")),1)]),o.createVNode(Qt,{"model-value":o.unref(a).enabled,"onUpdate:modelValue":o.unref(l)},null,8,["model-value","onUpdate:modelValue"])]),o.createElementVNode("div",fte,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(a).colors,C=>(o.openBlock(),o.createElementBlock("div",{key:C.id,class:"pbx-myInputGroup"},[o.createElementVNode("label",{for:`color-input-${C.id}`,class:"pbx-myPrimaryInputLabel"},o.toDisplayString(o.unref(e)(C.label)),9,yte),o.createElementVNode("div",wte,[o.createVNode(Qt,{"model-value":C.enabled,"onUpdate:modelValue":v=>x(C.id,v)},null,8,["model-value","onUpdate:modelValue"]),o.createElementVNode("input",{id:`color-input-${C.id}`,value:c(C),type:"text",maxlength:"7",placeholder:"#rrggbb",class:"pbx-myPrimaryInput pbx-w-full",onInput:v=>m(C,v),onBlur:v=>g(C)},null,40,vte),o.createElementVNode("div",kte,[o.createElementVNode("button",{type:"button",title:C.color,class:"pbx-cursor-pointer pbx-border-0 pbx-p-0 pbx-bg-transparent pbx-block pbx-flex-shrink-0",style:{width:"2rem",height:"2rem"},onClick:o.withModifiers(v=>f(C.id),["stop"])},[o.createElementVNode("span",{style:o.normalizeStyle([{backgroundColor:C.color},{display:"block",width:"60%",height:"60%","border-radius":"9999px",border:"1px solid rgba(0, 0, 0, 0.1)","box-shadow":`0 1px 4px rgba(0, 0, 0, 0.1),
|
|
365
365
|
inset 0 0 0 1px rgba(96, 96, 96, 0.1)`,transition:`box-shadow 0.15s,
|
|
366
|
-
border-color 0.15s`}])},null,4)],8,Ste),h.value===C.id?(o.openBlock(),o.createElementBlock("div",{key:0,class:"pbx-fixed pbx-inset-0 pbx-z-40",onClick:w})):o.createCommentVNode("",!0),h.value===C.id?(o.openBlock(),o.createElementBlock("div",{key:1,class:"pbx-absolute pbx-right-0 pbx-z-50 pbx-rounded-xl pbx-border pbx-border-solid pbx-border-gray-200 pbx-bg-white pbx-p-3 pbx-shadow-lg",style:{top:"calc(100% + 8px)",width:"266px"},onClick:M[0]||(M[0]=o.withModifiers(()=>{},["stop"]))},[o.createVNode(GD,{"model-value":C.color,"onUpdate:modelValue":v=>u(C,v)},null,8,["model-value","onUpdate:modelValue"])])):o.createCommentVNode("",!0)])])]))),128))]),o.createElementVNode("div",Cte,[o.createElementVNode("div",null,[o.createElementVNode("p",Tte,o.toDisplayString(o.unref(e)("Reset to provided defaults")),1),o.createElementVNode("p",Ete,o.toDisplayString(o.unref(e)("Restore the original colors provided to the page builder")),1)]),o.createElementVNode("button",{type:"button",class:"pbx-mySecondaryButton pbx-flex pbx-items-center pbx-gap-1 pbx-shrink-0",onClick:E},[M[1]||(M[1]=o.createElementVNode("span",{class:"material-symbols-outlined pbx-materialIconBase pbx-leading-none"},"restart_alt",-1)),o.createTextVNode(" "+o.toDisplayString(o.unref(e)("Reset")),1)])])],2),o.createVNode(Ct,{showDynamicModalBuilder:y.value,type:"delete",gridColumnAmount:2,title:o.unref(e)("Reset to provided defaults"),description:o.unref(e)("This will restore the original colors provided to the page builder. Any changes you have made to colors or enabled states will be lost."),firstButtonText:o.unref(e)("Close"),thirdButtonText:o.unref(e)("Reset"),onFirstModalButtonFunctionDynamicModalBuilder:S,onThirdModalButtonFunctionDynamicModalBuilder:P},{default:o.withCtx(()=>[...M[2]||(M[2]=[o.createElementVNode("header",null,null,-1),o.createElementVNode("main",null,null,-1)])]),_:1},8,["showDynamicModalBuilder","title","description","firstButtonText","thirdButtonText"])],64))}}),Pte=o.defineComponent({__name:"ThemeColorSettingsEditor",setup(r){const{translate:e}=ne();return(t,i)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Theme & colors")),1)]),content:o.withCtx(()=>[o.createVNode(Mte,{embedded:""})]),_:1}))}}),Bte={class:"pbx-editorSectionDesc"},Lte={class:"pbx-editorFieldGroup"},Nte={for:"page-meta-title",class:"pbx-myPrimaryInputLabel"},Ate=["placeholder"],_te={class:"pbx-editorFieldGroup"},Dte={for:"page-meta-description",class:"pbx-myPrimaryInputLabel"},zte=["placeholder"],Ite=["disabled"],Vte={key:0,class:"material-symbols-outlined"},Hte={key:1,class:"material-symbols-outlined pbx-animate-spin"},Rte=o.defineComponent({name:"PageMetaSettingsEditor",__name:"PageMetaSettingsEditor",setup(r){const{translate:e}=ne(),{showToast:t}=Xe(),i=Se(),n=o.ref(""),a=o.ref(""),l=o.ref(!1);o.onMounted(()=>{const p=i.getPageMeta();n.value=p.title||"",a.value=p.description||""});const s=async()=>{if(!l.value){l.value=!0,await Vl(300);try{await i.setPageMeta({title:n.value.trim(),description:a.value.trim()}),t(e("Page meta saved"),"success")}catch{t(e("Could not save page meta"),"error")}finally{l.value=!1}}};return(p,d)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page Meta")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Bte,o.toDisplayString(o.unref(e)("Page meta description")),1),o.createElementVNode("div",Lte,[o.createElementVNode("label",Nte,o.toDisplayString(o.unref(e)("Meta title")),1),o.withDirectives(o.createElementVNode("input",{id:"page-meta-title","onUpdate:modelValue":d[0]||(d[0]=c=>n.value=c),type:"text",class:"pbx-myPrimaryInput pbx-w-full",placeholder:o.unref(e)("Meta title placeholder")},null,8,Ate),[[o.vModelText,n.value]])]),o.createElementVNode("div",_te,[o.createElementVNode("label",Dte,o.toDisplayString(o.unref(e)("Meta description")),1),o.withDirectives(o.createElementVNode("textarea",{id:"page-meta-description","onUpdate:modelValue":d[1]||(d[1]=c=>a.value=c),rows:"3",class:"pbx-myPrimaryInput pbx-w-full pbx-resize-y",placeholder:o.unref(e)("Meta description placeholder")},null,8,zte),[[o.vModelText,a.value]])]),o.createElementVNode("button",{type:"button",class:"pbx-myPrimaryButton pbx-w-full",disabled:l.value,onClick:s},[o.createTextVNode(o.toDisplayString(o.unref(e)("Save"))+" ",1),l.value?o.createCommentVNode("",!0):(o.openBlock(),o.createElementBlock("span",Vte,"check")),l.value?(o.openBlock(),o.createElementBlock("span",Hte,"refresh")):o.createCommentVNode("",!0)],8,Ite)]),_:1}))}}),Ote={key:0,class:"pbx-fixed pbx-inset-0 pbx-z-[9999]"},Fte={class:"pbx-flex pbx-gap-2 pbx-justify-between pbx-items-center pbx-py-2 pbx-px-2 pbx-mb-2 pbx-border-b pbx-border-gray-200"},jte={class:"pbx-myQuaternaryHeader pbx-my-0 pbx-py-0 pbx-text-black"},qte={class:"pbx-pt-4 pbx-px-2"},wz=o.defineComponent({__name:"FloatingSidePanel",props:{title:{type:String,required:!1,default:null},showSidebarPanel:{type:Boolean,default:!1},position:{type:String,required:!0,default:"right",validator(r){const t=["left","right"].includes(r);return t||console.warn(`Invalid prop: position must be 'left' or 'right', got '${r}'`),t}},closeOnOverlayClick:{type:Boolean,default:!0}},emits:["closeSidebarPanel"],setup(r,{emit:e}){const t=r,i=e,n=()=>{i("closeSidebarPanel")},a=()=>{t.closeOnOverlayClick&&n()};return(l,s)=>(o.openBlock(),o.createBlock(o.Teleport,{to:"body"},[o.createVNode(o.Transition,{name:"popup-fade"},{default:o.withCtx(()=>[r.showSidebarPanel?(o.openBlock(),o.createElementBlock("div",Ote,[o.createElementVNode("div",{class:o.normalizeClass(["pbx-fixed pbx-inset-0 pbx-bg-black pbx-opacity-20 pbx-z-40",{"pbx-pointer-events-none":!r.closeOnOverlayClick}]),onClick:a},null,2),o.createElementVNode("div",{class:o.normalizeClass(["pbx-font-sans pbx-fixed pbx-top-0 pbx-rounded-3xl pbx-pt-2 pbx-pb-20 pbx-px-2 pbx-border pbx-border-gray-200 pbx-max-h-[80vh] lg:pbx-min-h-[98%] pbx-min-h-[80vh] lg:pbx-min-w-96 lg:pbx-w-96 pbx-w-[96%] pbx-overflow-y-auto pbx-z-50 pbx-bg-white lg:pbx-mt-2 pbx-mt-2",[r.position==="left"?"pbx-left-0 pbx-ml-[1%]":"",r.position==="right"?"pbx-right-0 pbx-mr-[1%]":""]]),onClick:s[0]||(s[0]=o.withModifiers(()=>{},["stop"]))},[o.createElementVNode("div",Fte,[o.createElementVNode("span",jte,o.toDisplayString(r.title),1),o.createElementVNode("span",{onClick:n},[...s[1]||(s[1]=[o.createElementVNode("div",{class:"pbx-h-10 pbx-w-10 pbx-cursor-pointer pbx-rounded-full pbx-flex pbx-items-center pbx-border-none pbx-justify-center pbx-bg-gray-50 pbx-aspect-square hover:pbx-bg-myPrimaryLinkColor hover:pbx-text-white focus-visible:pbx-ring-0 pbx-text-black"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," close ")],-1)])])]),o.createElementVNode("div",qte,[o.renderSlot(l.$slots,"default")])],2)])):o.createCommentVNode("",!0)]),_:3})]))}}),Ute={class:"pbx-overflow-y-auto"},Wte={key:0,class:"pbx-flex pbx-items-center pbx-justify-center pbx-gap-2"},Gte={class:"pbx-bg-gray-100 pbx-rounded-full pbx-w-32 pbx-h-32 pbx-flex pbx-items-center pbx-justify-center"},Kte={class:"pbx-text-center"},Jte={class:"pbx-lg:pbx-text-7xl pbx-text-5xl"},Yte={key:1,class:"pbx-w-full pbx-space-y-5"},Qte={class:"pbx-text-base pbx-font-semibold pbx-text-center pbx-text-myPrimaryDarkGrayColor"},Xte={class:"pbx-seoCheckGroupTitle"},Zte={class:"pbx-space-y-2"},$te={class:"material-symbols-outlined","aria-hidden":"true"},ere={class:"pbx-pageDesignOpenButtonText"},tre={class:"pbx-pageDesignOpenButtonLabel"},rre={class:"pbx-pageDesignOpenButtonHint"},ore={key:2,class:"pbx-text-gray-500 pbx-text-center pbx-py-8"},ire=o.defineComponent({__name:"SeoCheckPanel",props:{seoResult:{}},setup(r){const e=r,{translate:t}=ne(),i=o.computed(()=>{if(!e.seoResult)return[];const n=new Map;for(const a of e.seoResult.checks){const l=a.category??"Other";n.has(l)||n.set(l,[]),n.get(l).push(a)}return Array.from(n.entries()).map(([a,l])=>({title:a,checks:l}))});return(n,a)=>(o.openBlock(),o.createElementBlock("div",Ute,[r.seoResult?(o.openBlock(),o.createElementBlock("div",Wte,[o.createElementVNode("div",{class:"pbx-relative pbx-my-4 pbx-rounded-full pbx-flex pbx-items-center pbx-justify-center pbx-w-36 pbx-h-36",style:o.normalizeStyle({background:`conic-gradient(${r.seoResult.score<50?"#ef4444":"#50C878"} ${r.seoResult.score}%, #e5e7eb 0)`})},[o.createElementVNode("div",Gte,[o.createElementVNode("div",Kte,[o.createElementVNode("span",Jte,o.toDisplayString(r.seoResult.score),1),a[0]||(a[0]=o.createElementVNode("span",{class:"pbx-text-xl"},"%",-1))])])],4)])):o.createCommentVNode("",!0),i.value.length?(o.openBlock(),o.createElementBlock("div",Yte,[o.createElementVNode("h3",Qte,o.toDisplayString(o.unref(t)("SEO Check Results")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.value,l=>(o.openBlock(),o.createElementBlock("div",{key:l.title,class:"pbx-space-y-2"},[o.createElementVNode("h4",Xte,o.toDisplayString(o.unref(t)(l.title)),1),o.createElementVNode("ul",Zte,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(l.checks,(s,p)=>(o.openBlock(),o.createElementBlock("li",{key:p,class:o.normalizeClass(["pbx-seoCheckRow",s.passed?"pbx-seoCheckRow--pass":"pbx-seoCheckRow--fail"])},[o.createElementVNode("span",{class:o.normalizeClass(["pbx-seoCheckRowIcon",s.passed?"pbx-seoCheckRowIcon--pass":"pbx-seoCheckRowIcon--fail"])},[o.createElementVNode("span",$te,o.toDisplayString(s.passed?"check":"close"),1)],2),o.createElementVNode("span",ere,[o.createElementVNode("span",tre,o.toDisplayString(o.unref(t)(s.check)),1),o.createElementVNode("span",rre,o.toDisplayString(s.details),1)])],2))),128))])]))),128))])):(o.openBlock(),o.createElementBlock("div",ore,o.toDisplayString(o.unref(t)("No SEO checks available.")),1))]))}}),nre={class:"pbx-editorSectionDesc"},are=o.defineComponent({name:"SeoCheckSettingsEditor",__name:"SeoCheckSettingsEditor",setup(r){const{translate:e}=ne(),t=Se(),i=o.ref(null),n=o.ref(!1),a=o.ref(!1),l=async()=>{a.value=!0,n.value=!0,await Vl(300);try{i.value=await t.analyzeSEO()}finally{a.value=!1}},s=()=>{n.value=!1};return(p,d)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("SEO Check")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",nre,o.toDisplayString(o.unref(e)("SEO check description")),1),o.createVNode(Tr,{icon:"circle_circle",label:o.unref(e)("Run SEO check"),hint:o.unref(e)("Analyze headings, images, links and word count"),"is-loading":a.value,onClick:l},null,8,["label","hint","is-loading"])]),_:1}),o.createVNode(wz,{title:o.unref(e)("SEO Check"),showSidebarPanel:n.value,position:"left",onCloseSidebarPanel:s},{default:o.withCtx(()=>[o.createVNode(ire,{"seo-result":i.value},null,8,["seo-result"])]),_:1},8,["title","showSidebarPanel"])],64))}}),lre={class:"pbx-editorSectionDesc"},sre={class:"pbx-pageDesignOpenButtonText"},pre={class:"pbx-pageDesignOpenButtonLabel"},dre={class:"pbx-pageDesignOpenButtonHint"},cre=o.defineComponent({name:"RemoveAllComponentsSettingsEditor",__name:"RemoveAllComponentsSettingsEditor",setup(r){const{translate:e}=ne(),{showToast:t}=Xe(),i=Se(),n=o.ref(!1),a=o.ref(!1),l=o.ref(""),s=o.ref(1),p=o.ref(""),d=o.ref(""),c=o.ref(""),b=o.ref(null),m=o.ref(null),g=o.ref(null),x=o.ref(null),u=o.ref(null),h=function(){a.value=!0,l.value="delete",s.value=2,p.value=e("Remove all Components"),d.value=e("Are you sure you want to remove all Components?"),c.value=e("Close"),b.value=null,m.value=e("Delete"),g.value=function(){a.value=!1},x.value=function(){},u.value=async function(){n.value=!0,await i.clearHtmlSelection(),await i.handleFormSubmission(),await He(500),a.value=!1,n.value=!1,t(e("All components removed"),"success")}};return(f,w)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page layout")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",lre,o.toDisplayString(o.unref(e)("Remove all components description")),1),o.createElementVNode("button",{type:"button",class:"pbx-pageDesignOpenButton pbx-pageDesignOpenButton--danger",onClick:h},[w[3]||(w[3]=o.createElementVNode("span",{class:"material-symbols-outlined"},"delete_forever",-1)),o.createElementVNode("span",sre,[o.createElementVNode("span",pre,o.toDisplayString(o.unref(e)("Remove all Components")),1),o.createElementVNode("span",dre,o.toDisplayString(o.unref(e)("Clear every section from the page")),1)]),w[4]||(w[4]=o.createElementVNode("span",{class:"pbx-pageDesignOpenButtonArrow material-symbols-outlined","aria-hidden":"true"}," arrow_forward ",-1))])]),_:1}),o.createVNode(Ct,{showDynamicModalBuilder:a.value,type:l.value,gridColumnAmount:s.value,title:p.value,description:d.value,isLoading:n.value,firstButtonText:c.value,secondButtonText:b.value??void 0,thirdButtonText:m.value??void 0,onFirstModalButtonFunctionDynamicModalBuilder:w[0]||(w[0]=()=>{var y;return(y=g.value)==null?void 0:y.call(g)}),onSecondModalButtonFunctionDynamicModalBuilder:w[1]||(w[1]=()=>{var y;return(y=x.value)==null?void 0:y.call(x)}),onThirdModalButtonFunctionDynamicModalBuilder:w[2]||(w[2]=()=>{var y;return(y=u.value)==null?void 0:y.call(u)})},{default:o.withCtx(()=>[...w[5]||(w[5]=[o.createElementVNode("header",null,null,-1),o.createElementVNode("main",null,null,-1)])]),_:1},8,["showDynamicModalBuilder","type","gridColumnAmount","title","description","isLoading","firstButtonText","secondButtonText","thirdButtonText"])],64))}}),bre={class:"pbx-editorSectionDesc"},mre={class:"pbx-pageDesignOpenButtonText"},gre={class:"pbx-pageDesignOpenButtonLabel"},ure={class:"pbx-pageDesignOpenButtonHint"},xre=o.defineComponent({name:"PageDesignSettingsEditor",__name:"PageDesignSettingsEditor",emits:["open"],setup(r){const{translate:e}=ne();return(t,i)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page Design")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",bre,o.toDisplayString(o.unref(e)("Page design description")),1),o.createElementVNode("button",{type:"button",class:"pbx-pageDesignOpenButton",onClick:i[0]||(i[0]=n=>t.$emit("open"))},[o.createVNode(Ul),o.createElementVNode("span",mre,[o.createElementVNode("span",gre,o.toDisplayString(o.unref(e)("Open page design")),1),o.createElementVNode("span",ure,o.toDisplayString(o.unref(e)("Typography, colors, spacing & more")),1)]),i[1]||(i[1]=o.createElementVNode("span",{class:"pbx-pageDesignOpenButtonArrow material-symbols-outlined","aria-hidden":"true"}," arrow_forward ",-1))])]),_:1}))}}),hre={class:"pbx-editorSectionDesc"},fre={class:"pbx-inspectorActionStack"},yre=o.defineComponent({name:"PageHtmlEditorSettingsEditor",__name:"PageHtmlEditorSettingsEditor",setup(r){const{translate:e}=ne(),t=Se(),{openHtmlViewer:i}=$l(),{openHtmlEditor:n}=rs(),a=async()=>{const s=await t.generateFullPageHtml();n(e("HTML Editor"),s,"page")},l=async()=>{const s=await t.generateFullPageHtml();i(e("Page HTML"),s)};return(s,p)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("HTML Editor")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",hre,o.toDisplayString(o.unref(e)("Page HTML editor description")),1),o.createElementVNode("div",fre,[o.createVNode(Tr,{icon:"visibility",label:o.unref(e)("View page HTML"),hint:o.unref(e)("Preview full page markup"),onClick:l},null,8,["label","hint"]),o.createVNode(Tr,{icon:"deployed_code",label:o.unref(e)("Open HTML editor"),hint:o.unref(e)("Edit full page markup"),onClick:a},null,8,["label","hint"])])]),_:1}))}}),ro=function(r){return!r||typeof r=="object"&&r.constructor===Object&&Object.keys(r).length===0},wre="3.5.47",vre=r=>/^[a-z][a-z0-9+.-]*:/i.test(r)||r.startsWith("//");function vz(r,e){if(!r)return console.warn("No valid pagebuilder element passed"),"";const t=r.cloneNode(!0);if(t.removeAttribute("id"),t.querySelectorAll("[data-pbx-insert-btn]").forEach(a=>{a.remove()}),t.querySelectorAll("[data-componentid], [data-component-title], #page-builder-editor-editable-area").forEach(a=>{a.removeAttribute("data-componentid"),a.removeAttribute("data-component-title"),a.id==="page-builder-editor-editable-area"&&a.removeAttribute("id")}),t.querySelectorAll("[data-pagebuilder-content]").forEach(a=>{a.removeAttribute("data-pagebuilder-content")}),t.querySelectorAll("[data-isl-active]").forEach(a=>{a.removeAttribute("data-isl-active")}),t.removeAttribute("data-builder-canvas"),e&&e&&typeof e.imageUrlPrefix=="string"){const a=e.imageUrlPrefix;t.querySelectorAll("img").forEach(s=>{const p=s.getAttribute("src")||"";p&&!p.startsWith("http")&&!vre(p)&&a&&!p.startsWith(a)&&s.setAttribute("src",a+p.replace(/^\/+/,""))})}const n=a=>{for(let l=a.childNodes.length-1;l>=0;l--){const s=a.childNodes[l];s.nodeType===Node.COMMENT_NODE?a.removeChild(s):s.nodeType===Node.ELEMENT_NODE&&n(s)}};return n(t),t.outerHTML}function kz(r){if(!(r!=null&&r.trim()))return[];const e=r.match(/class\s*=\s*(["'])(.*?)\1/i);return e!=null&&e[2]?e[2].split(/\s+/).filter(Boolean):[]}async function Zd(r){const{showToast:e}=Xe(),{translate:t}=ne();try{return await navigator.clipboard.writeText(r),e(t("Copied to clipboard"),"success"),!0}catch{return e(t("Clipboard unavailable"),"error"),!1}}const kre=["title","aria-label"],Sre={class:"pbx-inspectorIdChipText"},Cre={class:"pbx-inspectorIdChipIcon material-symbols-outlined","aria-hidden":"true"},Tre={key:1,class:"pbx-inspectorValue"},Sz=o.defineComponent({__name:"InspectorIdValue",props:{value:{}},setup(r){const e=r,{translate:t}=ne(),i=o.ref(!1),n=o.computed(()=>{const s=e.value;return s==null||s===""?null:String(s)}),a=o.computed(()=>{const s=n.value;return s?s.length<=18?s:`${s.slice(0,8)}…${s.slice(-4)}`:"—"});async function l(){if(!n.value)return;await Zd(n.value)&&(i.value=!0,globalThis.setTimeout(()=>{i.value=!1},2e3))}return(s,p)=>n.value?(o.openBlock(),o.createElementBlock("button",{key:0,type:"button",class:"pbx-inspectorIdChip",title:n.value,"aria-label":`${o.unref(t)("Copy ID")}: ${n.value}`,onClick:l},[o.createElementVNode("span",Sre,o.toDisplayString(a.value),1),o.createElementVNode("span",Cre,o.toDisplayString(i.value?"check":"content_copy"),1)],8,kre)):(o.openBlock(),o.createElementBlock("span",Tre,"—"))}}),Ere={class:"pbx-selectedHtmlInspector"},Mre={class:"pbx-editorSectionDesc"},Pre={class:"pbx-editorFieldGroup"},Bre={class:"pbx-editorSectionTitle"},Lre={class:"pbx-inspectorCard"},Nre={class:"pbx-inspectorLabel"},Are={class:"pbx-editorFieldGroup"},_re={class:"pbx-editorSectionTitle"},Dre=["aria-label"],zre=["aria-selected"],Ire=["aria-selected"],Vre=["aria-selected"],Hre={class:"pbx-inspectorPanel"},Rre={key:0,role:"tabpanel"},Ore={key:0,class:"pbx-inspectorEmpty"},Fre={class:"pbx-inspectorMeta pbx-mb-3"},jre={key:0,class:"pbx-inspectorMetaRow"},qre={class:"pbx-inspectorFieldLabel"},Ure={class:"pbx-inspectorValue pbx-inspectorValueBreak"},Wre={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},Gre={class:"pbx-inspectorFieldLabel"},Kre={class:"pbx-inspectorActionStack"},Jre={key:1,role:"tabpanel"},Yre={key:0,class:"pbx-inspectorEmpty"},Qre={class:"pbx-inspectorMeta pbx-mb-3"},Xre={class:"pbx-inspectorMetaRow"},Zre={class:"pbx-inspectorFieldLabel"},$re={class:"pbx-inspectorMetaRow"},eoe={class:"pbx-inspectorFieldLabel"},toe={class:"pbx-inspectorValue"},roe={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},ooe={class:"pbx-inspectorFieldLabel"},ioe={key:2,role:"tabpanel"},noe=["aria-expanded","aria-label"],aoe={class:"pbx-inspectorComponentsSummaryContent"},loe={class:"pbx-inspectorComponentsSummaryChevron material-symbols-outlined","aria-hidden":"true"},soe={key:1,class:"pbx-inspectorComponentsSummary pbx-inspectorComponentsSummaryEmpty"},poe={class:"pbx-inspectorList"},doe=["aria-expanded","aria-label","onClick"],coe={class:"pbx-inspectorComponentCardTitleContent"},boe={class:"pbx-inspectorListIndex"},moe={class:"pbx-inspectorListTitle"},goe={class:"pbx-inspectorComponentsSummaryChevron material-symbols-outlined","aria-hidden":"true"},uoe={class:"pbx-inspectorComponentCardBody"},xoe={class:"pbx-inspectorMeta pbx-inspectorComponentCardMeta"},hoe={class:"pbx-inspectorMetaRow"},foe={class:"pbx-inspectorFieldLabel"},yoe={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},woe={class:"pbx-inspectorFieldLabel"},voe={class:"pbx-inspectorComponentCardFooter"},koe=o.defineComponent({__name:"SelectedHtmlInspector",setup(r){const{translate:e}=ne(),{openHtmlViewer:t}=$l(),{openHtmlEditor:i}=rs(),n=ve,a=o.computed(()=>n.getElement),l=o.computed(()=>n.getComponent),s=o.computed(()=>n.getComponents),p=o.ref("element"),d=o.computed(()=>{var A;return((A=s.value)==null?void 0:A.length)??0}),c=o.ref(!1),b=o.ref(new Set);function m(){d.value&&(c.value=!c.value)}function g(A,N){return String(A.id??A.title??N)}function x(A,N){return b.value.has(g(A,N))}function u(A,N){const D=g(A,N),V=new Set(b.value);V.has(D)?V.delete(D):V.add(D),b.value=V}o.watch(c,A=>{A||(b.value=new Set)}),o.watch(p,A=>{A!=="components"&&(c.value=!1,b.value=new Set)});function h(A){return A?A.tagName.toLowerCase():"—"}function f(A){return A?"object":"—"}function w(A){return A.length?`${e("array")} · ${A.length}`:e("array")}const y=o.computed(()=>[{label:e("Element type:"),value:h(a.value),tone:a.value?"active":"muted"},{label:e("Component type:"),value:f(l.value),tone:l.value?"active":"muted"},{label:e("Components:"),value:w(s.value),tone:d.value>0?"active":"muted"}]),E=o.computed(()=>{var N;const A=a.value;return(N=A==null?void 0:A.classList)!=null&&N.length?Array.from(A.classList):[]}),S=o.computed(()=>{var A;return(A=l.value)!=null&&A.html_code?kz(l.value.html_code):[]}),P=o.computed(()=>{const A=a.value;return!A||A.tagName!=="IMG"?null:A.src||"—"});function k(A){p.value=A}function M(){a.value&&i(e("Element HTML"),a.value.outerHTML,"element")}function C(){a.value&&t(e("Element HTML"),a.value.outerHTML)}function v(A,N){const D=A.title||(N!==void 0?`${e("Component")} #${N+1}`:e("Component"));t(`${D} · ${e("HTML")}`,A.html_code||"")}function T(){l.value&&v(l.value)}function H(A){return kz(A.html_code||"")}return(A,N)=>(o.openBlock(),o.createElementBlock("div",Ere,[o.createElementVNode("p",Mre,o.toDisplayString(o.unref(e)("Overview of Selected Element, Component, and Components. This section provides real-time updates based on your HTML selection.")),1),o.createElementVNode("div",Pre,[o.createElementVNode("h4",Bre,o.toDisplayString(o.unref(e)("Types")),1),o.createElementVNode("div",Lre,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(y.value,D=>(o.openBlock(),o.createElementBlock("div",{key:D.label,class:"pbx-inspectorRow"},[o.createElementVNode("span",Nre,o.toDisplayString(D.label),1),o.createElementVNode("span",{class:o.normalizeClass(["pbx-inspectorBadge",D.tone==="active"?"pbx-inspectorBadgeActive":"pbx-inspectorBadgeMuted"])},o.toDisplayString(D.value),3)]))),128))])]),o.createElementVNode("div",Are,[o.createElementVNode("h4",_re,o.toDisplayString(o.unref(e)("Content")),1),o.createElementVNode("div",{class:"pbx-inspectorTabs",role:"tablist","aria-label":o.unref(e)("Content")},[o.createElementVNode("button",{type:"button",role:"tab","aria-selected":p.value==="element",class:o.normalizeClass(["pbx-inspectorTab pbx-font-sans",{"pbx-inspectorTabActive":p.value==="element"}]),onClick:N[0]||(N[0]=D=>k("element"))},o.toDisplayString(o.unref(e)("Element")),11,zre),o.createElementVNode("button",{type:"button",role:"tab","aria-selected":p.value==="component",class:o.normalizeClass(["pbx-inspectorTab pbx-font-sans",{"pbx-inspectorTabActive":p.value==="component"}]),onClick:N[1]||(N[1]=D=>k("component"))},o.toDisplayString(o.unref(e)("Component")),11,Ire),o.createElementVNode("button",{type:"button",role:"tab","aria-selected":p.value==="components",class:o.normalizeClass(["pbx-inspectorTab pbx-font-sans",{"pbx-inspectorTabActive":p.value==="components"}]),onClick:N[2]||(N[2]=D=>k("components"))},o.toDisplayString(o.unref(e)("Components")),11,Vre)],8,Dre),o.createElementVNode("div",Hre,[p.value==="element"?(o.openBlock(),o.createElementBlock("div",Rre,[a.value?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[o.createElementVNode("div",Fre,[P.value!==null?(o.openBlock(),o.createElementBlock("div",jre,[o.createElementVNode("span",qre,o.toDisplayString(o.unref(e)("Element src:")),1),o.createElementVNode("span",Ure,o.toDisplayString(P.value),1)])):o.createCommentVNode("",!0),o.createElementVNode("div",Wre,[o.createElementVNode("span",Gre,o.toDisplayString(o.unref(e)("Element classes:")),1),o.createVNode(Zl,{classes:E.value,"empty-placeholder":""},null,8,["classes"])])]),o.createElementVNode("div",Kre,[o.createVNode(Tr,{icon:"visibility",label:o.unref(e)("View element HTML"),hint:o.unref(e)("Preview selected element markup"),onClick:C},null,8,["label","hint"]),o.createVNode(Tr,{icon:"deployed_code",label:o.unref(e)("Open element HTML editor"),hint:o.unref(e)("Edit selected element markup"),onClick:M},null,8,["label","hint"])])],64)):(o.openBlock(),o.createElementBlock("p",Ore,o.toDisplayString(o.unref(e)("No Element selected")),1))])):o.createCommentVNode("",!0),p.value==="component"?(o.openBlock(),o.createElementBlock("div",Jre,[l.value?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[o.createElementVNode("div",Qre,[o.createElementVNode("div",Xre,[o.createElementVNode("span",Zre,o.toDisplayString(o.unref(e)("ID:")),1),o.createVNode(Sz,{value:l.value.id},null,8,["value"])]),o.createElementVNode("div",$re,[o.createElementVNode("span",eoe,o.toDisplayString(o.unref(e)("Title:")),1),o.createElementVNode("span",toe,o.toDisplayString(l.value.title||"—"),1)]),o.createElementVNode("div",roe,[o.createElementVNode("span",ooe,o.toDisplayString(o.unref(e)("Component classes:")),1),o.createVNode(Zl,{classes:S.value,"empty-placeholder":""},null,8,["classes"])])]),o.createVNode(Tr,{icon:"visibility",label:o.unref(e)("View component HTML"),hint:o.unref(e)("Preview component markup"),onClick:T},null,8,["label","hint"])],64)):(o.openBlock(),o.createElementBlock("p",Yre,o.toDisplayString(o.unref(e)("No Component selected")),1))])):o.createCommentVNode("",!0),p.value==="components"?(o.openBlock(),o.createElementBlock("div",ioe,[d.value?(o.openBlock(),o.createElementBlock("button",{key:0,type:"button",class:o.normalizeClass(["pbx-font-sans pbx-inspectorComponentsSummary pbx-inspectorComponentsSummaryToggle",{"pbx-inspectorComponentsSummaryOpen":c.value}]),"aria-expanded":c.value,"aria-label":o.unref(e)("Components"),onClick:m},[o.createElementVNode("span",aoe,[o.createElementVNode("span",null,o.toDisplayString(o.unref(e)("Components")),1)]),o.createElementVNode("span",loe,o.toDisplayString(c.value?"expand_less":"expand_more"),1)],10,noe)):(o.openBlock(),o.createElementBlock("div",soe,o.toDisplayString(o.unref(e)("No Components added yet")),1)),o.withDirectives(o.createElementVNode("div",poe,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(s.value,(D,V)=>(o.openBlock(),o.createElementBlock("article",{key:String(D.id??D.title??V),class:"pbx-inspectorComponentCard"},[o.createElementVNode("button",{type:"button",class:"pbx-font-sans pbx-inspectorComponentCardToggle","aria-expanded":x(D,V),"aria-label":D.title||o.unref(e)("Component"),onClick:U=>u(D,V)},[o.createElementVNode("span",coe,[o.createElementVNode("span",boe,"#"+o.toDisplayString(V+1),1),o.createElementVNode("span",moe,o.toDisplayString(D.title||o.unref(e)("Component")),1)]),o.createElementVNode("span",goe,o.toDisplayString(x(D,V)?"expand_less":"expand_more"),1)],8,doe),o.withDirectives(o.createElementVNode("div",uoe,[o.createElementVNode("div",xoe,[o.createElementVNode("div",hoe,[o.createElementVNode("span",foe,o.toDisplayString(o.unref(e)("ID:")),1),o.createVNode(Sz,{value:D.id},null,8,["value"])]),o.createElementVNode("div",yoe,[o.createElementVNode("span",woe,o.toDisplayString(o.unref(e)("Component classes:")),1),o.createVNode(Zl,{classes:H(D),"empty-placeholder":""},null,8,["classes"])])]),o.createElementVNode("div",voe,[o.createVNode(Tr,{icon:"visibility",label:o.unref(e)("View component HTML"),hint:o.unref(e)("Preview component markup"),onClick:U=>v(D,V)},null,8,["label","hint","onClick"])])],512),[[o.vShow,x(D,V)]])]))),128))],512),[[o.vShow,d.value&&c.value]])])):o.createCommentVNode("",!0)])])]))}}),Soe={key:0,class:"pbx-flex pbx-items-center pbx-gap-1 pbx-border-0 pbx-border-solid pbx-border-b pbx-border-gray-100 pbx-pb-3 pbx-pt-1 pbx-overflow-x-auto"},Coe={key:1},Toe={key:0},Eoe={class:"pbx-flex pbx-items-left pbx-flex-col pbx-gap-1"},Moe={class:"pbx-myQuaternaryHeader"},Poe={key:1,class:"pbx-editorSectionDesc"},Boe={key:2,class:"pbx-editorSectionDesc"},Loe={key:3,class:"pbx-editorSectionDesc"},Noe={class:"pbx-settingsSection"},Aoe={class:"pbx-settingsSectionTitle"},_oe={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},Doe={class:"pbx-overflow-x-auto"},zoe={class:"pbx-min-w-full"},Ioe={class:"pbx-bg-gray-50"},Voe={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Hoe={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Roe={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},Ooe={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Foe={class:"pbx-min-w-[30rem] pbx-w-max"},joe={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},qoe={class:"pbx-min-w-[30rem] pbx-w-max"},Uoe={class:"pbx-inline-flex pbx-items-center pbx-px-2.5 pbx-py-0.5 pbx-rounded-full pbx-text-xs pbx-font-medium pbx-bg-blue-100 pbx-text-blue-800"},Woe={key:0,class:"pbx-settingsSection"},Goe={class:"pbx-settingsSectionTitle"},Koe={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},Joe={class:"pbx-overflow-x-auto"},Yoe={class:"pbx-min-w-full"},Qoe={class:"pbx-bg-gray-50"},Xoe={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Zoe={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},$oe={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},eie={key:0},tie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},rie={class:"pbx-min-w-[30rem] pbx-w-max"},oie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},iie={class:"pbx-min-w-[30rem] pbx-w-max"},nie={key:1},aie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},lie={class:"pbx-min-w-[30rem] pbx-w-max"},sie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},pie={class:"pbx-min-w-[30rem] pbx-w-max"},die={key:1,class:"pbx-settingsSection"},cie={class:"pbx-settingsSectionTitle"},bie={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},mie={class:"pbx-overflow-x-auto"},gie={class:"pbx-min-w-full"},uie={class:"pbx-bg-gray-50"},xie={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},hie={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},fie={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},yie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},wie={class:"pbx-min-w-[30rem] pbx-w-max"},vie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},kie={class:"pbx-min-w-[30rem] pbx-w-max"},Sie={class:"pbx-flex pbx-items-center pbx-space-x-3"},Cie=["src"],Tie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Eie={class:"pbx-min-w-[30rem] pbx-w-max"},Mie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},Pie={class:"pbx-min-w-[30rem] pbx-w-max"},Bie={class:"pbx-whitespace-nowrap"},Lie={key:2,class:"pbx-settingsSection"},Nie={class:"pbx-settingsSectionTitle"},Aie={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},_ie={class:"pbx-overflow-x-auto"},Die={class:"pbx-w-max pbx-min-w-full"},zie={class:"pbx-bg-gray-50"},Iie={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Vie={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Hie={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},Rie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Oie={class:"pbx-min-w-[30rem] pbx-w-max"},Fie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},jie={class:"pbx-min-w-[30rem] pbx-w-max"},qie={key:0},Uie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Wie={class:"pbx-min-w-[30rem] pbx-w-max"},Gie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},Kie={class:"pbx-min-w-[30rem] pbx-w-max"},Jie={class:"pbx-inline-flex pbx-items-center pbx-px-2.5 pbx-py-0.5 pbx-rounded-full pbx-text-xs pbx-font-medium"},Yie={key:5,class:"pbx-px-2 pbx-settingsSectionGroup"},Qie={key:0,class:"pbx-settingsSection"},Xie={class:"pbx-settingsSectionTitle"},Zie={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},$ie={class:"pbx-overflow-x-auto"},ene={class:"pbx-min-w-full"},tne={class:"pbx-bg-gray-50"},rne={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},one={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},ine={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},nne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},ane={class:"pbx-min-w-[30rem] pbx-w-max"},lne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},sne={class:"pbx-min-w-[30rem] pbx-w-max"},pne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},dne={class:"pbx-min-w-[30rem] pbx-w-max"},cne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},bne={class:"pbx-min-w-[30rem] pbx-w-max"},mne={key:0,class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},gne={class:"pbx-min-w-[30rem] pbx-w-max"},une={class:"pbx-flex pbx-items-center pbx-space-x-3"},xne=["src"],hne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},fne={class:"pbx-min-w-[30rem] pbx-w-max"},yne={key:0,class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},wne={class:"pbx-min-w-[30rem] pbx-w-max"},vne={key:1,class:"pbx-settingsSection"},kne={class:"pbx-settingsSectionTitle"},Sne={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},Cne={class:"pbx-overflow-x-auto"},Tne={class:"pbx-min-w-full"},Ene={class:"pbx-bg-gray-50"},Mne={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Pne={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Bne={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},Lne={key:0},Nne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Ane={class:"pbx-min-w-[30rem] pbx-w-max"},_ne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},Dne={class:"pbx-min-w-[30rem] pbx-w-max"},zne={key:1},Ine={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Vne={class:"pbx-min-w-[30rem] pbx-w-max"},Hne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},Rne={class:"pbx-min-w-[30rem] pbx-w-max"},One={key:2},Fne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},jne={class:"pbx-min-w-[30rem] pbx-w-max"},qne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},Une={class:"pbx-min-w-[30rem] pbx-w-max"},Wne={key:0,class:"pbx-flex pbx-items-left pbx-flex-col pbx-gap-1"},Gne={class:"pbx-myQuaternaryHeader"},Kne={class:"pbx-myPrimaryParagraph pbx-text-xs"},Jne={class:"pbx-settingsSection pbx-whitespace-pre-wrap pbx-text-white pbx-overflow-hidden pbx-bg-gray-900"},Yne={class:"pbx-flex bg-gray-800/40 pbx-ring-1 ring-white/5"},Qne={class:"pbx-mb-px pbx-flex pbx-text-xs pbx-font-medium pbx-text-myPrimaryMediumGrayColor"},Xne={class:"pbx-px-4 pbx-py-4 pbx-text-white"},Zne={class:"pbx-px-4 pbx-pb-8 pbx-pt-4 pbx-text-white pbx-text-xs pbx-break-all"},$ne={class:"pbx-myPrimaryParagraph pbx-text-xs pbx-text-white"},eae={key:0},tae={class:"pbx-editorFieldGroup"},rae={key:1},oae={class:"pbx-myPrimaryParagraph pbx-mt-6 pbx-text-gray-500"},An=o.defineComponent({__name:"PageBuilderSettings",props:{embeddedSection:{}},setup(r){const e=r,{translate:t}=ne(),{showToast:i}=Xe(),n=o.computed(()=>!!e.embeddedSection),a=o.computed(()=>["overviewApp","overviewUser","overviewConfig"].includes(e.embeddedSection??"")),l=ve,s=o.computed(()=>l.getPageBuilderConfig),p=o.computed(()=>l.getComponents),d=o.ref("overview");function c(E){d.value=E}const b=o.computed(()=>a.value||!e.embeddedSection&&d.value==="overview"),m=o.computed(()=>b.value&&!a.value),g=o.computed(()=>e.embeddedSection==="overviewApp"||!e.embeddedSection&&d.value==="overview"),x=o.computed(()=>e.embeddedSection==="overviewUser"||!e.embeddedSection&&d.value==="overview"),u=o.computed(()=>e.embeddedSection==="overviewConfig"||!e.embeddedSection&&d.value==="overview"),h=o.computed(()=>e.embeddedSection==="download"||!e.embeddedSection&&d.value==="download"),f=o.computed(()=>e.embeddedSection==="selectedHtml"||!e.embeddedSection&&d.value==="viewHTMLConfig");function w(E,S){const C=`
|
|
366
|
+
border-color 0.15s`}])},null,4)],8,Ste),h.value===C.id?(o.openBlock(),o.createElementBlock("div",{key:0,class:"pbx-fixed pbx-inset-0 pbx-z-40",onClick:w})):o.createCommentVNode("",!0),h.value===C.id?(o.openBlock(),o.createElementBlock("div",{key:1,class:"pbx-absolute pbx-right-0 pbx-z-50 pbx-rounded-xl pbx-border pbx-border-solid pbx-border-gray-200 pbx-bg-white pbx-p-3 pbx-shadow-lg",style:{top:"calc(100% + 8px)",width:"266px"},onClick:M[0]||(M[0]=o.withModifiers(()=>{},["stop"]))},[o.createVNode(GD,{"model-value":C.color,"onUpdate:modelValue":v=>u(C,v)},null,8,["model-value","onUpdate:modelValue"])])):o.createCommentVNode("",!0)])])]))),128))]),o.createElementVNode("div",Cte,[o.createElementVNode("div",null,[o.createElementVNode("p",Tte,o.toDisplayString(o.unref(e)("Reset to provided defaults")),1),o.createElementVNode("p",Ete,o.toDisplayString(o.unref(e)("Restore the original colors provided to the page builder")),1)]),o.createElementVNode("button",{type:"button",class:"pbx-mySecondaryButton pbx-flex pbx-items-center pbx-gap-1 pbx-shrink-0",onClick:E},[M[1]||(M[1]=o.createElementVNode("span",{class:"material-symbols-outlined pbx-materialIconBase pbx-leading-none"},"restart_alt",-1)),o.createTextVNode(" "+o.toDisplayString(o.unref(e)("Reset")),1)])])],2),o.createVNode(Ct,{showDynamicModalBuilder:y.value,type:"delete",gridColumnAmount:2,title:o.unref(e)("Reset to provided defaults"),description:o.unref(e)("This will restore the original colors provided to the page builder. Any changes you have made to colors or enabled states will be lost."),firstButtonText:o.unref(e)("Close"),thirdButtonText:o.unref(e)("Reset"),onFirstModalButtonFunctionDynamicModalBuilder:S,onThirdModalButtonFunctionDynamicModalBuilder:P},{default:o.withCtx(()=>[...M[2]||(M[2]=[o.createElementVNode("header",null,null,-1),o.createElementVNode("main",null,null,-1)])]),_:1},8,["showDynamicModalBuilder","title","description","firstButtonText","thirdButtonText"])],64))}}),Pte=o.defineComponent({__name:"ThemeColorSettingsEditor",setup(r){const{translate:e}=ne();return(t,i)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Theme & colors")),1)]),content:o.withCtx(()=>[o.createVNode(Mte,{embedded:""})]),_:1}))}}),Bte={class:"pbx-editorSectionDesc"},Lte={class:"pbx-editorFieldGroup"},Nte={for:"page-meta-title",class:"pbx-myPrimaryInputLabel"},Ate=["placeholder"],_te={class:"pbx-editorFieldGroup"},Dte={for:"page-meta-description",class:"pbx-myPrimaryInputLabel"},zte=["placeholder"],Ite=["disabled"],Vte={key:0,class:"material-symbols-outlined"},Hte={key:1,class:"material-symbols-outlined pbx-animate-spin"},Rte=o.defineComponent({name:"PageMetaSettingsEditor",__name:"PageMetaSettingsEditor",setup(r){const{translate:e}=ne(),{showToast:t}=Xe(),i=Se(),n=o.ref(""),a=o.ref(""),l=o.ref(!1);o.onMounted(()=>{const p=i.getPageMeta();n.value=p.title||"",a.value=p.description||""});const s=async()=>{if(!l.value){l.value=!0,await Vl(300);try{await i.setPageMeta({title:n.value.trim(),description:a.value.trim()}),t(e("Page meta saved"),"success")}catch{t(e("Could not save page meta"),"error")}finally{l.value=!1}}};return(p,d)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page Meta")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Bte,o.toDisplayString(o.unref(e)("Page meta description")),1),o.createElementVNode("div",Lte,[o.createElementVNode("label",Nte,o.toDisplayString(o.unref(e)("Meta title")),1),o.withDirectives(o.createElementVNode("input",{id:"page-meta-title","onUpdate:modelValue":d[0]||(d[0]=c=>n.value=c),type:"text",class:"pbx-myPrimaryInput pbx-w-full",placeholder:o.unref(e)("Meta title placeholder")},null,8,Ate),[[o.vModelText,n.value]])]),o.createElementVNode("div",_te,[o.createElementVNode("label",Dte,o.toDisplayString(o.unref(e)("Meta description")),1),o.withDirectives(o.createElementVNode("textarea",{id:"page-meta-description","onUpdate:modelValue":d[1]||(d[1]=c=>a.value=c),rows:"3",class:"pbx-myPrimaryInput pbx-w-full pbx-resize-y",placeholder:o.unref(e)("Meta description placeholder")},null,8,zte),[[o.vModelText,a.value]])]),o.createElementVNode("button",{type:"button",class:"pbx-myPrimaryButton pbx-w-full",disabled:l.value,onClick:s},[o.createTextVNode(o.toDisplayString(o.unref(e)("Save"))+" ",1),l.value?o.createCommentVNode("",!0):(o.openBlock(),o.createElementBlock("span",Vte,"check")),l.value?(o.openBlock(),o.createElementBlock("span",Hte,"refresh")):o.createCommentVNode("",!0)],8,Ite)]),_:1}))}}),Ote={key:0,class:"pbx-fixed pbx-inset-0 pbx-z-[9999]"},Fte={class:"pbx-flex pbx-gap-2 pbx-justify-between pbx-items-center pbx-py-2 pbx-px-2 pbx-mb-2 pbx-border-b pbx-border-gray-200"},jte={class:"pbx-myQuaternaryHeader pbx-my-0 pbx-py-0 pbx-text-black"},qte={class:"pbx-pt-4 pbx-px-2"},wz=o.defineComponent({__name:"FloatingSidePanel",props:{title:{type:String,required:!1,default:null},showSidebarPanel:{type:Boolean,default:!1},position:{type:String,required:!0,default:"right",validator(r){const t=["left","right"].includes(r);return t||console.warn(`Invalid prop: position must be 'left' or 'right', got '${r}'`),t}},closeOnOverlayClick:{type:Boolean,default:!0}},emits:["closeSidebarPanel"],setup(r,{emit:e}){const t=r,i=e,n=()=>{i("closeSidebarPanel")},a=()=>{t.closeOnOverlayClick&&n()};return(l,s)=>(o.openBlock(),o.createBlock(o.Teleport,{to:"body"},[o.createVNode(o.Transition,{name:"popup-fade"},{default:o.withCtx(()=>[r.showSidebarPanel?(o.openBlock(),o.createElementBlock("div",Ote,[o.createElementVNode("div",{class:o.normalizeClass(["pbx-fixed pbx-inset-0 pbx-bg-black pbx-opacity-20 pbx-z-40",{"pbx-pointer-events-none":!r.closeOnOverlayClick}]),onClick:a},null,2),o.createElementVNode("div",{class:o.normalizeClass(["pbx-font-sans pbx-fixed pbx-top-0 pbx-rounded-3xl pbx-pt-2 pbx-pb-20 pbx-px-2 pbx-border pbx-border-gray-200 pbx-max-h-[80vh] lg:pbx-min-h-[98%] pbx-min-h-[80vh] lg:pbx-min-w-96 lg:pbx-w-96 pbx-w-[96%] pbx-overflow-y-auto pbx-z-50 pbx-bg-white lg:pbx-mt-2 pbx-mt-2",[r.position==="left"?"pbx-left-0 pbx-ml-[1%]":"",r.position==="right"?"pbx-right-0 pbx-mr-[1%]":""]]),onClick:s[0]||(s[0]=o.withModifiers(()=>{},["stop"]))},[o.createElementVNode("div",Fte,[o.createElementVNode("span",jte,o.toDisplayString(r.title),1),o.createElementVNode("span",{onClick:n},[...s[1]||(s[1]=[o.createElementVNode("div",{class:"pbx-h-10 pbx-w-10 pbx-cursor-pointer pbx-rounded-full pbx-flex pbx-items-center pbx-border-none pbx-justify-center pbx-bg-gray-50 pbx-aspect-square hover:pbx-bg-myPrimaryLinkColor hover:pbx-text-white focus-visible:pbx-ring-0 pbx-text-black"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," close ")],-1)])])]),o.createElementVNode("div",qte,[o.renderSlot(l.$slots,"default")])],2)])):o.createCommentVNode("",!0)]),_:3})]))}}),Ute={class:"pbx-overflow-y-auto"},Wte={key:0,class:"pbx-flex pbx-items-center pbx-justify-center pbx-gap-2"},Gte={class:"pbx-bg-gray-100 pbx-rounded-full pbx-w-32 pbx-h-32 pbx-flex pbx-items-center pbx-justify-center"},Kte={class:"pbx-text-center"},Jte={class:"pbx-lg:pbx-text-7xl pbx-text-5xl"},Yte={key:1,class:"pbx-w-full pbx-space-y-5"},Qte={class:"pbx-text-base pbx-font-semibold pbx-text-center pbx-text-myPrimaryDarkGrayColor"},Xte={class:"pbx-seoCheckGroupTitle"},Zte={class:"pbx-space-y-2"},$te={class:"material-symbols-outlined","aria-hidden":"true"},ere={class:"pbx-pageDesignOpenButtonText"},tre={class:"pbx-pageDesignOpenButtonLabel"},rre={class:"pbx-pageDesignOpenButtonHint"},ore={key:2,class:"pbx-text-gray-500 pbx-text-center pbx-py-8"},ire=o.defineComponent({__name:"SeoCheckPanel",props:{seoResult:{}},setup(r){const e=r,{translate:t}=ne(),i=o.computed(()=>{if(!e.seoResult)return[];const n=new Map;for(const a of e.seoResult.checks){const l=a.category??"Other";n.has(l)||n.set(l,[]),n.get(l).push(a)}return Array.from(n.entries()).map(([a,l])=>({title:a,checks:l}))});return(n,a)=>(o.openBlock(),o.createElementBlock("div",Ute,[r.seoResult?(o.openBlock(),o.createElementBlock("div",Wte,[o.createElementVNode("div",{class:"pbx-relative pbx-my-4 pbx-rounded-full pbx-flex pbx-items-center pbx-justify-center pbx-w-36 pbx-h-36",style:o.normalizeStyle({background:`conic-gradient(${r.seoResult.score<50?"#ef4444":"#50C878"} ${r.seoResult.score}%, #e5e7eb 0)`})},[o.createElementVNode("div",Gte,[o.createElementVNode("div",Kte,[o.createElementVNode("span",Jte,o.toDisplayString(r.seoResult.score),1),a[0]||(a[0]=o.createElementVNode("span",{class:"pbx-text-xl"},"%",-1))])])],4)])):o.createCommentVNode("",!0),i.value.length?(o.openBlock(),o.createElementBlock("div",Yte,[o.createElementVNode("h3",Qte,o.toDisplayString(o.unref(t)("SEO Check Results")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.value,l=>(o.openBlock(),o.createElementBlock("div",{key:l.title,class:"pbx-space-y-2"},[o.createElementVNode("h4",Xte,o.toDisplayString(o.unref(t)(l.title)),1),o.createElementVNode("ul",Zte,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(l.checks,(s,p)=>(o.openBlock(),o.createElementBlock("li",{key:p,class:o.normalizeClass(["pbx-seoCheckRow",s.passed?"pbx-seoCheckRow--pass":"pbx-seoCheckRow--fail"])},[o.createElementVNode("span",{class:o.normalizeClass(["pbx-seoCheckRowIcon",s.passed?"pbx-seoCheckRowIcon--pass":"pbx-seoCheckRowIcon--fail"])},[o.createElementVNode("span",$te,o.toDisplayString(s.passed?"check":"close"),1)],2),o.createElementVNode("span",ere,[o.createElementVNode("span",tre,o.toDisplayString(o.unref(t)(s.check)),1),o.createElementVNode("span",rre,o.toDisplayString(s.details),1)])],2))),128))])]))),128))])):(o.openBlock(),o.createElementBlock("div",ore,o.toDisplayString(o.unref(t)("No SEO checks available.")),1))]))}}),nre={class:"pbx-editorSectionDesc"},are=o.defineComponent({name:"SeoCheckSettingsEditor",__name:"SeoCheckSettingsEditor",setup(r){const{translate:e}=ne(),t=Se(),i=o.ref(null),n=o.ref(!1),a=o.ref(!1),l=async()=>{a.value=!0,n.value=!0,await Vl(300);try{i.value=await t.analyzeSEO()}finally{a.value=!1}},s=()=>{n.value=!1};return(p,d)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("SEO Check")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",nre,o.toDisplayString(o.unref(e)("SEO check description")),1),o.createVNode(Tr,{icon:"circle_circle",label:o.unref(e)("Run SEO check"),hint:o.unref(e)("Analyze headings, images, links and word count"),"is-loading":a.value,onClick:l},null,8,["label","hint","is-loading"])]),_:1}),o.createVNode(wz,{title:o.unref(e)("SEO Check"),showSidebarPanel:n.value,position:"left",onCloseSidebarPanel:s},{default:o.withCtx(()=>[o.createVNode(ire,{"seo-result":i.value},null,8,["seo-result"])]),_:1},8,["title","showSidebarPanel"])],64))}}),lre={class:"pbx-editorSectionDesc"},sre={class:"pbx-pageDesignOpenButtonText"},pre={class:"pbx-pageDesignOpenButtonLabel"},dre={class:"pbx-pageDesignOpenButtonHint"},cre=o.defineComponent({name:"RemoveAllComponentsSettingsEditor",__name:"RemoveAllComponentsSettingsEditor",setup(r){const{translate:e}=ne(),{showToast:t}=Xe(),i=Se(),n=o.ref(!1),a=o.ref(!1),l=o.ref(""),s=o.ref(1),p=o.ref(""),d=o.ref(""),c=o.ref(""),b=o.ref(null),m=o.ref(null),g=o.ref(null),x=o.ref(null),u=o.ref(null),h=function(){a.value=!0,l.value="delete",s.value=2,p.value=e("Remove all Components"),d.value=e("Are you sure you want to remove all Components?"),c.value=e("Close"),b.value=null,m.value=e("Delete"),g.value=function(){a.value=!1},x.value=function(){},u.value=async function(){n.value=!0,await i.clearHtmlSelection(),await i.handleFormSubmission(),await He(500),a.value=!1,n.value=!1,t(e("All components removed"),"success")}};return(f,w)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page layout")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",lre,o.toDisplayString(o.unref(e)("Remove all components description")),1),o.createElementVNode("button",{type:"button",class:"pbx-pageDesignOpenButton pbx-pageDesignOpenButton--danger",onClick:h},[w[3]||(w[3]=o.createElementVNode("span",{class:"material-symbols-outlined"},"delete_forever",-1)),o.createElementVNode("span",sre,[o.createElementVNode("span",pre,o.toDisplayString(o.unref(e)("Remove all Components")),1),o.createElementVNode("span",dre,o.toDisplayString(o.unref(e)("Clear every section from the page")),1)]),w[4]||(w[4]=o.createElementVNode("span",{class:"pbx-pageDesignOpenButtonArrow material-symbols-outlined","aria-hidden":"true"}," arrow_forward ",-1))])]),_:1}),o.createVNode(Ct,{showDynamicModalBuilder:a.value,type:l.value,gridColumnAmount:s.value,title:p.value,description:d.value,isLoading:n.value,firstButtonText:c.value,secondButtonText:b.value??void 0,thirdButtonText:m.value??void 0,onFirstModalButtonFunctionDynamicModalBuilder:w[0]||(w[0]=()=>{var y;return(y=g.value)==null?void 0:y.call(g)}),onSecondModalButtonFunctionDynamicModalBuilder:w[1]||(w[1]=()=>{var y;return(y=x.value)==null?void 0:y.call(x)}),onThirdModalButtonFunctionDynamicModalBuilder:w[2]||(w[2]=()=>{var y;return(y=u.value)==null?void 0:y.call(u)})},{default:o.withCtx(()=>[...w[5]||(w[5]=[o.createElementVNode("header",null,null,-1),o.createElementVNode("main",null,null,-1)])]),_:1},8,["showDynamicModalBuilder","type","gridColumnAmount","title","description","isLoading","firstButtonText","secondButtonText","thirdButtonText"])],64))}}),bre={class:"pbx-editorSectionDesc"},mre={class:"pbx-pageDesignOpenButtonText"},gre={class:"pbx-pageDesignOpenButtonLabel"},ure={class:"pbx-pageDesignOpenButtonHint"},xre=o.defineComponent({name:"PageDesignSettingsEditor",__name:"PageDesignSettingsEditor",emits:["open"],setup(r){const{translate:e}=ne();return(t,i)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page Design")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",bre,o.toDisplayString(o.unref(e)("Page design description")),1),o.createElementVNode("button",{type:"button",class:"pbx-pageDesignOpenButton",onClick:i[0]||(i[0]=n=>t.$emit("open"))},[o.createVNode(Ul),o.createElementVNode("span",mre,[o.createElementVNode("span",gre,o.toDisplayString(o.unref(e)("Open page design")),1),o.createElementVNode("span",ure,o.toDisplayString(o.unref(e)("Typography, colors, spacing & more")),1)]),i[1]||(i[1]=o.createElementVNode("span",{class:"pbx-pageDesignOpenButtonArrow material-symbols-outlined","aria-hidden":"true"}," arrow_forward ",-1))])]),_:1}))}}),hre={class:"pbx-editorSectionDesc"},fre={class:"pbx-inspectorActionStack"},yre=o.defineComponent({name:"PageHtmlEditorSettingsEditor",__name:"PageHtmlEditorSettingsEditor",setup(r){const{translate:e}=ne(),t=Se(),{openHtmlViewer:i}=$l(),{openHtmlEditor:n}=rs(),a=async()=>{const s=await t.generateFullPageHtml();n(e("HTML Editor"),s,"page")},l=async()=>{const s=await t.generateFullPageHtml();i(e("Page HTML"),s)};return(s,p)=>(o.openBlock(),o.createBlock(Ve,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("HTML Editor")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",hre,o.toDisplayString(o.unref(e)("Page HTML editor description")),1),o.createElementVNode("div",fre,[o.createVNode(Tr,{icon:"visibility",label:o.unref(e)("View page HTML"),hint:o.unref(e)("Preview full page markup"),onClick:l},null,8,["label","hint"]),o.createVNode(Tr,{icon:"deployed_code",label:o.unref(e)("Open HTML editor"),hint:o.unref(e)("Edit full page markup"),onClick:a},null,8,["label","hint"])])]),_:1}))}}),ro=function(r){return!r||typeof r=="object"&&r.constructor===Object&&Object.keys(r).length===0},wre="3.5.50",vre=r=>/^[a-z][a-z0-9+.-]*:/i.test(r)||r.startsWith("//");function vz(r,e){if(!r)return console.warn("No valid pagebuilder element passed"),"";const t=r.cloneNode(!0);if(t.removeAttribute("id"),t.querySelectorAll("[data-pbx-insert-btn]").forEach(a=>{a.remove()}),t.querySelectorAll("[data-componentid], [data-component-title], #page-builder-editor-editable-area").forEach(a=>{a.removeAttribute("data-componentid"),a.removeAttribute("data-component-title"),a.id==="page-builder-editor-editable-area"&&a.removeAttribute("id")}),t.querySelectorAll("[data-pagebuilder-content]").forEach(a=>{a.removeAttribute("data-pagebuilder-content")}),t.querySelectorAll("[data-isl-active]").forEach(a=>{a.removeAttribute("data-isl-active")}),t.removeAttribute("data-builder-canvas"),e&&e&&typeof e.imageUrlPrefix=="string"){const a=e.imageUrlPrefix;t.querySelectorAll("img").forEach(s=>{const p=s.getAttribute("src")||"";p&&!p.startsWith("http")&&!vre(p)&&a&&!p.startsWith(a)&&s.setAttribute("src",a+p.replace(/^\/+/,""))})}const n=a=>{for(let l=a.childNodes.length-1;l>=0;l--){const s=a.childNodes[l];s.nodeType===Node.COMMENT_NODE?a.removeChild(s):s.nodeType===Node.ELEMENT_NODE&&n(s)}};return n(t),t.outerHTML}function kz(r){if(!(r!=null&&r.trim()))return[];const e=r.match(/class\s*=\s*(["'])(.*?)\1/i);return e!=null&&e[2]?e[2].split(/\s+/).filter(Boolean):[]}async function Zd(r){const{showToast:e}=Xe(),{translate:t}=ne();try{return await navigator.clipboard.writeText(r),e(t("Copied to clipboard"),"success"),!0}catch{return e(t("Clipboard unavailable"),"error"),!1}}const kre=["title","aria-label"],Sre={class:"pbx-inspectorIdChipText"},Cre={class:"pbx-inspectorIdChipIcon material-symbols-outlined","aria-hidden":"true"},Tre={key:1,class:"pbx-inspectorValue"},Sz=o.defineComponent({__name:"InspectorIdValue",props:{value:{}},setup(r){const e=r,{translate:t}=ne(),i=o.ref(!1),n=o.computed(()=>{const s=e.value;return s==null||s===""?null:String(s)}),a=o.computed(()=>{const s=n.value;return s?s.length<=18?s:`${s.slice(0,8)}…${s.slice(-4)}`:"—"});async function l(){if(!n.value)return;await Zd(n.value)&&(i.value=!0,globalThis.setTimeout(()=>{i.value=!1},2e3))}return(s,p)=>n.value?(o.openBlock(),o.createElementBlock("button",{key:0,type:"button",class:"pbx-inspectorIdChip",title:n.value,"aria-label":`${o.unref(t)("Copy ID")}: ${n.value}`,onClick:l},[o.createElementVNode("span",Sre,o.toDisplayString(a.value),1),o.createElementVNode("span",Cre,o.toDisplayString(i.value?"check":"content_copy"),1)],8,kre)):(o.openBlock(),o.createElementBlock("span",Tre,"—"))}}),Ere={class:"pbx-selectedHtmlInspector"},Mre={class:"pbx-editorSectionDesc"},Pre={class:"pbx-editorFieldGroup"},Bre={class:"pbx-editorSectionTitle"},Lre={class:"pbx-inspectorCard"},Nre={class:"pbx-inspectorLabel"},Are={class:"pbx-editorFieldGroup"},_re={class:"pbx-editorSectionTitle"},Dre=["aria-label"],zre=["aria-selected"],Ire=["aria-selected"],Vre=["aria-selected"],Hre={class:"pbx-inspectorPanel"},Rre={key:0,role:"tabpanel"},Ore={key:0,class:"pbx-inspectorEmpty"},Fre={class:"pbx-inspectorMeta pbx-mb-3"},jre={key:0,class:"pbx-inspectorMetaRow"},qre={class:"pbx-inspectorFieldLabel"},Ure={class:"pbx-inspectorValue pbx-inspectorValueBreak"},Wre={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},Gre={class:"pbx-inspectorFieldLabel"},Kre={class:"pbx-inspectorActionStack"},Jre={key:1,role:"tabpanel"},Yre={key:0,class:"pbx-inspectorEmpty"},Qre={class:"pbx-inspectorMeta pbx-mb-3"},Xre={class:"pbx-inspectorMetaRow"},Zre={class:"pbx-inspectorFieldLabel"},$re={class:"pbx-inspectorMetaRow"},eoe={class:"pbx-inspectorFieldLabel"},toe={class:"pbx-inspectorValue"},roe={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},ooe={class:"pbx-inspectorFieldLabel"},ioe={key:2,role:"tabpanel"},noe=["aria-expanded","aria-label"],aoe={class:"pbx-inspectorComponentsSummaryContent"},loe={class:"pbx-inspectorComponentsSummaryChevron material-symbols-outlined","aria-hidden":"true"},soe={key:1,class:"pbx-inspectorComponentsSummary pbx-inspectorComponentsSummaryEmpty"},poe={class:"pbx-inspectorList"},doe=["aria-expanded","aria-label","onClick"],coe={class:"pbx-inspectorComponentCardTitleContent"},boe={class:"pbx-inspectorListIndex"},moe={class:"pbx-inspectorListTitle"},goe={class:"pbx-inspectorComponentsSummaryChevron material-symbols-outlined","aria-hidden":"true"},uoe={class:"pbx-inspectorComponentCardBody"},xoe={class:"pbx-inspectorMeta pbx-inspectorComponentCardMeta"},hoe={class:"pbx-inspectorMetaRow"},foe={class:"pbx-inspectorFieldLabel"},yoe={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},woe={class:"pbx-inspectorFieldLabel"},voe={class:"pbx-inspectorComponentCardFooter"},koe=o.defineComponent({__name:"SelectedHtmlInspector",setup(r){const{translate:e}=ne(),{openHtmlViewer:t}=$l(),{openHtmlEditor:i}=rs(),n=ve,a=o.computed(()=>n.getElement),l=o.computed(()=>n.getComponent),s=o.computed(()=>n.getComponents),p=o.ref("element"),d=o.computed(()=>{var A;return((A=s.value)==null?void 0:A.length)??0}),c=o.ref(!1),b=o.ref(new Set);function m(){d.value&&(c.value=!c.value)}function g(A,N){return String(A.id??A.title??N)}function x(A,N){return b.value.has(g(A,N))}function u(A,N){const D=g(A,N),V=new Set(b.value);V.has(D)?V.delete(D):V.add(D),b.value=V}o.watch(c,A=>{A||(b.value=new Set)}),o.watch(p,A=>{A!=="components"&&(c.value=!1,b.value=new Set)});function h(A){return A?A.tagName.toLowerCase():"—"}function f(A){return A?"object":"—"}function w(A){return A.length?`${e("array")} · ${A.length}`:e("array")}const y=o.computed(()=>[{label:e("Element type:"),value:h(a.value),tone:a.value?"active":"muted"},{label:e("Component type:"),value:f(l.value),tone:l.value?"active":"muted"},{label:e("Components:"),value:w(s.value),tone:d.value>0?"active":"muted"}]),E=o.computed(()=>{var N;const A=a.value;return(N=A==null?void 0:A.classList)!=null&&N.length?Array.from(A.classList):[]}),S=o.computed(()=>{var A;return(A=l.value)!=null&&A.html_code?kz(l.value.html_code):[]}),P=o.computed(()=>{const A=a.value;return!A||A.tagName!=="IMG"?null:A.src||"—"});function k(A){p.value=A}function M(){a.value&&i(e("Element HTML"),a.value.outerHTML,"element")}function C(){a.value&&t(e("Element HTML"),a.value.outerHTML)}function v(A,N){const D=A.title||(N!==void 0?`${e("Component")} #${N+1}`:e("Component"));t(`${D} · ${e("HTML")}`,A.html_code||"")}function T(){l.value&&v(l.value)}function H(A){return kz(A.html_code||"")}return(A,N)=>(o.openBlock(),o.createElementBlock("div",Ere,[o.createElementVNode("p",Mre,o.toDisplayString(o.unref(e)("Overview of Selected Element, Component, and Components. This section provides real-time updates based on your HTML selection.")),1),o.createElementVNode("div",Pre,[o.createElementVNode("h4",Bre,o.toDisplayString(o.unref(e)("Types")),1),o.createElementVNode("div",Lre,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(y.value,D=>(o.openBlock(),o.createElementBlock("div",{key:D.label,class:"pbx-inspectorRow"},[o.createElementVNode("span",Nre,o.toDisplayString(D.label),1),o.createElementVNode("span",{class:o.normalizeClass(["pbx-inspectorBadge",D.tone==="active"?"pbx-inspectorBadgeActive":"pbx-inspectorBadgeMuted"])},o.toDisplayString(D.value),3)]))),128))])]),o.createElementVNode("div",Are,[o.createElementVNode("h4",_re,o.toDisplayString(o.unref(e)("Content")),1),o.createElementVNode("div",{class:"pbx-inspectorTabs",role:"tablist","aria-label":o.unref(e)("Content")},[o.createElementVNode("button",{type:"button",role:"tab","aria-selected":p.value==="element",class:o.normalizeClass(["pbx-inspectorTab pbx-font-sans",{"pbx-inspectorTabActive":p.value==="element"}]),onClick:N[0]||(N[0]=D=>k("element"))},o.toDisplayString(o.unref(e)("Element")),11,zre),o.createElementVNode("button",{type:"button",role:"tab","aria-selected":p.value==="component",class:o.normalizeClass(["pbx-inspectorTab pbx-font-sans",{"pbx-inspectorTabActive":p.value==="component"}]),onClick:N[1]||(N[1]=D=>k("component"))},o.toDisplayString(o.unref(e)("Component")),11,Ire),o.createElementVNode("button",{type:"button",role:"tab","aria-selected":p.value==="components",class:o.normalizeClass(["pbx-inspectorTab pbx-font-sans",{"pbx-inspectorTabActive":p.value==="components"}]),onClick:N[2]||(N[2]=D=>k("components"))},o.toDisplayString(o.unref(e)("Components")),11,Vre)],8,Dre),o.createElementVNode("div",Hre,[p.value==="element"?(o.openBlock(),o.createElementBlock("div",Rre,[a.value?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[o.createElementVNode("div",Fre,[P.value!==null?(o.openBlock(),o.createElementBlock("div",jre,[o.createElementVNode("span",qre,o.toDisplayString(o.unref(e)("Element src:")),1),o.createElementVNode("span",Ure,o.toDisplayString(P.value),1)])):o.createCommentVNode("",!0),o.createElementVNode("div",Wre,[o.createElementVNode("span",Gre,o.toDisplayString(o.unref(e)("Element classes:")),1),o.createVNode(Zl,{classes:E.value,"empty-placeholder":""},null,8,["classes"])])]),o.createElementVNode("div",Kre,[o.createVNode(Tr,{icon:"visibility",label:o.unref(e)("View element HTML"),hint:o.unref(e)("Preview selected element markup"),onClick:C},null,8,["label","hint"]),o.createVNode(Tr,{icon:"deployed_code",label:o.unref(e)("Open element HTML editor"),hint:o.unref(e)("Edit selected element markup"),onClick:M},null,8,["label","hint"])])],64)):(o.openBlock(),o.createElementBlock("p",Ore,o.toDisplayString(o.unref(e)("No Element selected")),1))])):o.createCommentVNode("",!0),p.value==="component"?(o.openBlock(),o.createElementBlock("div",Jre,[l.value?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[o.createElementVNode("div",Qre,[o.createElementVNode("div",Xre,[o.createElementVNode("span",Zre,o.toDisplayString(o.unref(e)("ID:")),1),o.createVNode(Sz,{value:l.value.id},null,8,["value"])]),o.createElementVNode("div",$re,[o.createElementVNode("span",eoe,o.toDisplayString(o.unref(e)("Title:")),1),o.createElementVNode("span",toe,o.toDisplayString(l.value.title||"—"),1)]),o.createElementVNode("div",roe,[o.createElementVNode("span",ooe,o.toDisplayString(o.unref(e)("Component classes:")),1),o.createVNode(Zl,{classes:S.value,"empty-placeholder":""},null,8,["classes"])])]),o.createVNode(Tr,{icon:"visibility",label:o.unref(e)("View component HTML"),hint:o.unref(e)("Preview component markup"),onClick:T},null,8,["label","hint"])],64)):(o.openBlock(),o.createElementBlock("p",Yre,o.toDisplayString(o.unref(e)("No Component selected")),1))])):o.createCommentVNode("",!0),p.value==="components"?(o.openBlock(),o.createElementBlock("div",ioe,[d.value?(o.openBlock(),o.createElementBlock("button",{key:0,type:"button",class:o.normalizeClass(["pbx-font-sans pbx-inspectorComponentsSummary pbx-inspectorComponentsSummaryToggle",{"pbx-inspectorComponentsSummaryOpen":c.value}]),"aria-expanded":c.value,"aria-label":o.unref(e)("Components"),onClick:m},[o.createElementVNode("span",aoe,[o.createElementVNode("span",null,o.toDisplayString(o.unref(e)("Components")),1)]),o.createElementVNode("span",loe,o.toDisplayString(c.value?"expand_less":"expand_more"),1)],10,noe)):(o.openBlock(),o.createElementBlock("div",soe,o.toDisplayString(o.unref(e)("No Components added yet")),1)),o.withDirectives(o.createElementVNode("div",poe,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(s.value,(D,V)=>(o.openBlock(),o.createElementBlock("article",{key:String(D.id??D.title??V),class:"pbx-inspectorComponentCard"},[o.createElementVNode("button",{type:"button",class:"pbx-font-sans pbx-inspectorComponentCardToggle","aria-expanded":x(D,V),"aria-label":D.title||o.unref(e)("Component"),onClick:U=>u(D,V)},[o.createElementVNode("span",coe,[o.createElementVNode("span",boe,"#"+o.toDisplayString(V+1),1),o.createElementVNode("span",moe,o.toDisplayString(D.title||o.unref(e)("Component")),1)]),o.createElementVNode("span",goe,o.toDisplayString(x(D,V)?"expand_less":"expand_more"),1)],8,doe),o.withDirectives(o.createElementVNode("div",uoe,[o.createElementVNode("div",xoe,[o.createElementVNode("div",hoe,[o.createElementVNode("span",foe,o.toDisplayString(o.unref(e)("ID:")),1),o.createVNode(Sz,{value:D.id},null,8,["value"])]),o.createElementVNode("div",yoe,[o.createElementVNode("span",woe,o.toDisplayString(o.unref(e)("Component classes:")),1),o.createVNode(Zl,{classes:H(D),"empty-placeholder":""},null,8,["classes"])])]),o.createElementVNode("div",voe,[o.createVNode(Tr,{icon:"visibility",label:o.unref(e)("View component HTML"),hint:o.unref(e)("Preview component markup"),onClick:U=>v(D,V)},null,8,["label","hint","onClick"])])],512),[[o.vShow,x(D,V)]])]))),128))],512),[[o.vShow,d.value&&c.value]])])):o.createCommentVNode("",!0)])])]))}}),Soe={key:0,class:"pbx-flex pbx-items-center pbx-gap-1 pbx-border-0 pbx-border-solid pbx-border-b pbx-border-gray-100 pbx-pb-3 pbx-pt-1 pbx-overflow-x-auto"},Coe={key:1},Toe={key:0},Eoe={class:"pbx-flex pbx-items-left pbx-flex-col pbx-gap-1"},Moe={class:"pbx-myQuaternaryHeader"},Poe={key:1,class:"pbx-editorSectionDesc"},Boe={key:2,class:"pbx-editorSectionDesc"},Loe={key:3,class:"pbx-editorSectionDesc"},Noe={class:"pbx-settingsSection"},Aoe={class:"pbx-settingsSectionTitle"},_oe={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},Doe={class:"pbx-overflow-x-auto"},zoe={class:"pbx-min-w-full"},Ioe={class:"pbx-bg-gray-50"},Voe={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Hoe={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Roe={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},Ooe={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Foe={class:"pbx-min-w-[30rem] pbx-w-max"},joe={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},qoe={class:"pbx-min-w-[30rem] pbx-w-max"},Uoe={class:"pbx-inline-flex pbx-items-center pbx-px-2.5 pbx-py-0.5 pbx-rounded-full pbx-text-xs pbx-font-medium pbx-bg-blue-100 pbx-text-blue-800"},Woe={key:0,class:"pbx-settingsSection"},Goe={class:"pbx-settingsSectionTitle"},Koe={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},Joe={class:"pbx-overflow-x-auto"},Yoe={class:"pbx-min-w-full"},Qoe={class:"pbx-bg-gray-50"},Xoe={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Zoe={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},$oe={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},eie={key:0},tie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},rie={class:"pbx-min-w-[30rem] pbx-w-max"},oie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},iie={class:"pbx-min-w-[30rem] pbx-w-max"},nie={key:1},aie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},lie={class:"pbx-min-w-[30rem] pbx-w-max"},sie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},pie={class:"pbx-min-w-[30rem] pbx-w-max"},die={key:1,class:"pbx-settingsSection"},cie={class:"pbx-settingsSectionTitle"},bie={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},mie={class:"pbx-overflow-x-auto"},gie={class:"pbx-min-w-full"},uie={class:"pbx-bg-gray-50"},xie={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},hie={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},fie={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},yie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},wie={class:"pbx-min-w-[30rem] pbx-w-max"},vie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},kie={class:"pbx-min-w-[30rem] pbx-w-max"},Sie={class:"pbx-flex pbx-items-center pbx-space-x-3"},Cie=["src"],Tie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Eie={class:"pbx-min-w-[30rem] pbx-w-max"},Mie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},Pie={class:"pbx-min-w-[30rem] pbx-w-max"},Bie={class:"pbx-whitespace-nowrap"},Lie={key:2,class:"pbx-settingsSection"},Nie={class:"pbx-settingsSectionTitle"},Aie={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},_ie={class:"pbx-overflow-x-auto"},Die={class:"pbx-w-max pbx-min-w-full"},zie={class:"pbx-bg-gray-50"},Iie={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Vie={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Hie={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},Rie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Oie={class:"pbx-min-w-[30rem] pbx-w-max"},Fie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},jie={class:"pbx-min-w-[30rem] pbx-w-max"},qie={key:0},Uie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Wie={class:"pbx-min-w-[30rem] pbx-w-max"},Gie={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},Kie={class:"pbx-min-w-[30rem] pbx-w-max"},Jie={class:"pbx-inline-flex pbx-items-center pbx-px-2.5 pbx-py-0.5 pbx-rounded-full pbx-text-xs pbx-font-medium"},Yie={key:5,class:"pbx-px-2 pbx-settingsSectionGroup"},Qie={key:0,class:"pbx-settingsSection"},Xie={class:"pbx-settingsSectionTitle"},Zie={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},$ie={class:"pbx-overflow-x-auto"},ene={class:"pbx-min-w-full"},tne={class:"pbx-bg-gray-50"},rne={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},one={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},ine={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},nne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},ane={class:"pbx-min-w-[30rem] pbx-w-max"},lne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},sne={class:"pbx-min-w-[30rem] pbx-w-max"},pne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},dne={class:"pbx-min-w-[30rem] pbx-w-max"},cne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},bne={class:"pbx-min-w-[30rem] pbx-w-max"},mne={key:0,class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},gne={class:"pbx-min-w-[30rem] pbx-w-max"},une={class:"pbx-flex pbx-items-center pbx-space-x-3"},xne=["src"],hne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},fne={class:"pbx-min-w-[30rem] pbx-w-max"},yne={key:0,class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},wne={class:"pbx-min-w-[30rem] pbx-w-max"},vne={key:1,class:"pbx-settingsSection"},kne={class:"pbx-settingsSectionTitle"},Sne={class:"pbx-overflow-hidden pbx-shadow-xs md:pbx-rounded-lg pbx-border pbx-border-gray-200"},Cne={class:"pbx-overflow-x-auto"},Tne={class:"pbx-min-w-full"},Ene={class:"pbx-bg-gray-50"},Mne={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Pne={scope:"col",class:"pbx-px-6 pbx-py-3 pbx-text-left pbx-text-xs pbx-font-medium pbx-text-gray-500 pbx-uppercase pbx-tracking-wider"},Bne={class:"pbx-bg-white pbx-divide-y pbx-divide-gray-200"},Lne={key:0},Nne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Ane={class:"pbx-min-w-[30rem] pbx-w-max"},_ne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},Dne={class:"pbx-min-w-[30rem] pbx-w-max"},zne={key:1},Ine={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},Vne={class:"pbx-min-w-[30rem] pbx-w-max"},Hne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},Rne={class:"pbx-min-w-[30rem] pbx-w-max"},One={key:2},Fne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-font-medium pbx-text-gray-900"},jne={class:"pbx-min-w-[30rem] pbx-w-max"},qne={class:"pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500"},Une={class:"pbx-min-w-[30rem] pbx-w-max"},Wne={key:0,class:"pbx-flex pbx-items-left pbx-flex-col pbx-gap-1"},Gne={class:"pbx-myQuaternaryHeader"},Kne={class:"pbx-myPrimaryParagraph pbx-text-xs"},Jne={class:"pbx-settingsSection pbx-whitespace-pre-wrap pbx-text-white pbx-overflow-hidden pbx-bg-gray-900"},Yne={class:"pbx-flex bg-gray-800/40 pbx-ring-1 ring-white/5"},Qne={class:"pbx-mb-px pbx-flex pbx-text-xs pbx-font-medium pbx-text-myPrimaryMediumGrayColor"},Xne={class:"pbx-px-4 pbx-py-4 pbx-text-white"},Zne={class:"pbx-px-4 pbx-pb-8 pbx-pt-4 pbx-text-white pbx-text-xs pbx-break-all"},$ne={class:"pbx-myPrimaryParagraph pbx-text-xs pbx-text-white"},eae={key:0},tae={class:"pbx-editorFieldGroup"},rae={key:1},oae={class:"pbx-myPrimaryParagraph pbx-mt-6 pbx-text-gray-500"},An=o.defineComponent({__name:"PageBuilderSettings",props:{embeddedSection:{}},setup(r){const e=r,{translate:t}=ne(),{showToast:i}=Xe(),n=o.computed(()=>!!e.embeddedSection),a=o.computed(()=>["overviewApp","overviewUser","overviewConfig"].includes(e.embeddedSection??"")),l=ve,s=o.computed(()=>l.getPageBuilderConfig),p=o.computed(()=>l.getComponents),d=o.ref("overview");function c(E){d.value=E}const b=o.computed(()=>a.value||!e.embeddedSection&&d.value==="overview"),m=o.computed(()=>b.value&&!a.value),g=o.computed(()=>e.embeddedSection==="overviewApp"||!e.embeddedSection&&d.value==="overview"),x=o.computed(()=>e.embeddedSection==="overviewUser"||!e.embeddedSection&&d.value==="overview"),u=o.computed(()=>e.embeddedSection==="overviewConfig"||!e.embeddedSection&&d.value==="overview"),h=o.computed(()=>e.embeddedSection==="download"||!e.embeddedSection&&d.value==="download"),f=o.computed(()=>e.embeddedSection==="selectedHtml"||!e.embeddedSection&&d.value==="viewHTMLConfig");function w(E,S){const C=`
|
|
367
367
|
<!DOCTYPE html>
|
|
368
368
|
<html lang="en">
|
|
369
369
|
<head>
|
|
@@ -410,9 +410,9 @@ This will fail in production.`);s=kn,s._s.has(i)||(a?Sd(i,e,n,s):X_(i,n,s),proce
|
|
|
410
410
|
<div class="pbx-py-8 pbx-px-4"><div class="pbx-mx-auto pbx-max-w-7xl"><div class="${h}" data-pbx-product-grid="true">
|
|
411
411
|
${u}
|
|
412
412
|
</div></div></div>
|
|
413
|
-
</section>`}const rc="data-meta-title",oc="data-meta-description";function ns(r){return{title:r.getAttribute(rc)||"",description:r.getAttribute(oc)||""}}function ic(r,e){var n,a;const t=((n=e.title)==null?void 0:n.trim())||"",i=((a=e.description)==null?void 0:a.trim())||"";t?r.setAttribute(rc,t):r.removeAttribute(rc),i?r.setAttribute(oc,i):r.removeAttribute(oc)}function _n(r){const e=r==null?void 0:r.meta;return!e||typeof e!="object"?{title:"",description:""}:{title:typeof e.title=="string"?e.title:"",description:typeof e.description=="string"?e.description:""}}function Kpe(r,e){return{...r,meta:{..._n(r),...e}}}function Jpe(r,e,t=180){const i=e.getBoundingClientRect(),n=r.getBoundingClientRect(),l=i.top-n.top+r.scrollTop-r.clientHeight/2+e.clientHeight/2,s=r.scrollTop,p=l-s;if(Math.abs(p)<1){window.dispatchEvent(new CustomEvent("pagebuilder:layout-change"));return}const d=performance.now(),c=b=>{const m=Math.min(1,(b-d)/t),g=1-(1-m)**3;if(r.scrollTop=s+p*g,window.dispatchEvent(new CustomEvent("pagebuilder:layout-change")),m<1){requestAnimationFrame(c);return}window.dispatchEvent(new CustomEvent("pagebuilder:layout-change"))};requestAnimationFrame(c)}const Ype=["en","zh-Hans","fr","ja","ru","es","pt","de","ar","hi","da","it"],as="pbx-full-width-component";class Nz{constructor(e){ge(this,"fontSizeRegex",/^(sm:|md:|lg:|xl:|2xl:)?pbx-text-(xs|sm|base|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl|8xl|9xl)$/);ge(this,"pageBuilderStateStore");ge(this,"getLocalStorageItemName");ge(this,"getApplyImageToSelection");ge(this,"getHyberlinkEnable");ge(this,"getComponents");ge(this,"getComponent");ge(this,"getElement");ge(this,"getComponentArrayAddMethod");ge(this,"NoneListernesTags");ge(this,"hasStartedEditing",!1);ge(this,"originalComponents");ge(this,"savedMountComponents",null);ge(this,"pendingMountComponents",null);ge(this,"globalStylesObserver",null);ge(this,"_pendingPageSettings",null);ge(this,"_lastKnownPageSettings",null);ge(this,"isPageBuilderMissingOnStart",!1);ge(this,"hasCompletedBuilderMount",!1);ge(this,"builderMountPromise",null);ge(this,"activeBuilderSessionToken",0);ge(this,"canvasClickCaptureListener",null);ge(this,"canvasDblClickCaptureListener",null);ge(this,"elementsWithListeners",new WeakMap);ge(this,"translate");ge(this,"handleMouseOver",(e,t)=>{if(this.pageBuilderStateStore.getInlineTipTapEditor)return;e.preventDefault(),e.stopPropagation();const i=document.querySelector("#pagebuilder");if(!i)return;const n=i.querySelector("[hovered]");n&&n.removeAttribute("hovered"),t.hasAttribute("selected")||t.setAttribute("hovered","")});ge(this,"handleMouseLeave",e=>{if(this.pageBuilderStateStore.getInlineTipTapEditor)return;e.preventDefault(),e.stopPropagation();const t=document.querySelector("#pagebuilder");if(!t)return;const i=t.querySelector("[hovered]");i&&i.removeAttribute("hovered")});ge(this,"addListenersToEditableElements",async()=>{const e=document.querySelector("#pagebuilder");e&&(await o.nextTick(),this.attachCanvasInlineEditListeners(e),e.querySelectorAll("section *").forEach(t=>{if(this.isEditableElement(t)){const i=t;if(this.elementsWithListeners.has(i)){const p=this.elementsWithListeners.get(i);p&&(i.removeEventListener("click",p.click),i.removeEventListener("dblclick",p.dblclick),i.removeEventListener("mouseover",p.mouseover),i.removeEventListener("mouseleave",p.mouseleave))}const n=p=>this.handleElementClick(p,i),a=p=>this.handleElementDoubleClick(p,i),l=p=>this.handleMouseOver(p,i),s=p=>this.handleMouseLeave(p);i.addEventListener("click",n),i.addEventListener("dblclick",a),i.addEventListener("mouseover",l),i.addEventListener("mouseleave",s),this.elementsWithListeners.set(i,{click:n,dblclick:a,mouseover:l,mouseleave:s})}}))});ge(this,"handleCanvasClickCapture",async()=>{this.pageBuilderStateStore.getImageSettingsPanelOpen||this.pageBuilderStateStore.getInlineTipTapEditor&&!this.hasInlineTipTapElement()&&this.pageBuilderStateStore.setInlineTipTapEditor(!1)});ge(this,"handleCanvasDoubleClickCapture",async e=>{await this.openInlineTipTapFromEvent(e)});ge(this,"handleElementClick",async(e,t)=>{this.pageBuilderStateStore.getImageSettingsPanelOpen||this.pageBuilderStateStore.getInlineTipTapEditor||(e.preventDefault(),e.stopPropagation(),await this.selectEditableElement(t))});ge(this,"handleElementDoubleClick",async(e,t)=>{if(!this.pageBuilderStateStore.getImageSettingsPanelOpen&&!this.pageBuilderStateStore.getInlineTipTapEditor){if(!this.isValidTextElement(t)){e.stopPropagation();return}e.preventDefault(),e.stopPropagation(),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setInlineTipTapEditor(!0),await this.openInlineTipTapForElement(t),this.hasInlineTipTapElement()||this.pageBuilderStateStore.setInlineTipTapEditor(!1)}});ge(this,"handleAutoSave",async()=>{if(this.startEditing(),this.pageBuilderStateStore.getInlineTipTapEditor)return;const e=this.pageBuilderStateStore.getPageBuilderConfig;if(e&&e.userSettings&&typeof e.userSettings.autoSave=="boolean"&&e.userSettings.autoSave!==!1){if(this.pageBuilderStateStore.getIsSaving)return;try{this.pageBuilderStateStore.setIsSaving(!0),this.saveDomComponentsToLocalStorage(),await He(400)}catch(t){console.error("Error trying auto save.",t);const{showToast:i}=Xe(),{translate:n}=ne();i(n("Auto-save failed — please save manually"),"error")}finally{this.pageBuilderStateStore.setIsSaving(!1)}}if(e&&!e.userSettings)try{this.pageBuilderStateStore.setIsSaving(!0),this.saveDomComponentsToLocalStorage(),await He(400)}catch(t){console.error("Error trying saving.",t);const{showToast:i}=Xe(),{translate:n}=ne();i(n("Auto-save failed — please save manually"),"error")}finally{this.pageBuilderStateStore.setIsSaving(!1)}});ge(this,"handleManualSave",async e=>{this.pageBuilderStateStore.setIsSaving(!0),e||this.clearHtmlSelection(),this.startEditing(),this.saveDomComponentsToLocalStorage(),await He(300),this.pageBuilderStateStore.setIsSaving(!1)});ge(this,"ensureTextAreaHasContent",()=>{if(!this.getElement.value||typeof this.getElement.value.innerHTML!="string")return;const e=this.getElement.value,t=e.tagName;["DIV"].includes(t)&&e.tagName.toLowerCase()!=="img"&&e.textContent&&Number(e.textContent.length)===0?(e.classList.add("h-6"),e.classList.add("bg-red-50")):(e.classList.remove("h-6"),e.classList.remove("bg-red-50"))});ge(this,"handleTextInput",async e=>{var t;typeof((t=this.getElement.value)==null?void 0:t.innerHTML)=="string"&&(typeof this.getElement.value.innerHTML=="string"&&(await o.nextTick(),this.getElement.value.textContent=e,this.pageBuilderStateStore.setTextAreaVueModel(this.getElement.value.innerHTML),this.getElement.value.innerHTML=e),this.ensureTextAreaHasContent())});this.hasStartedEditing=!1,this.pageBuilderStateStore=e;const{translate:t}=ne();this.translate=t,this.getApplyImageToSelection=o.computed(()=>this.pageBuilderStateStore.getApplyImageToSelection),this.getLocalStorageItemName=o.computed(()=>this.pageBuilderStateStore.getLocalStorageItemName),this.getHyberlinkEnable=o.computed(()=>this.pageBuilderStateStore.getHyberlinkEnable),this.getComponents=o.computed(()=>this.pageBuilderStateStore.getComponents),this.getComponent=o.computed(()=>this.pageBuilderStateStore.getComponent),this.getElement=o.computed(()=>this.pageBuilderStateStore.getElement),this.getComponentArrayAddMethod=o.computed(()=>this.pageBuilderStateStore.getComponentArrayAddMethod),this.NoneListernesTags=["P","H1","H2","H3","H4","H5","H6","IFRAME","UL","OL","LI","EM","STRONG","B","A","SPAN","BLOCKQUOTE","BR","PRE","CODE","MARK","DEL","INS","U","FIGURE","FIGCAPTION"]}availableLanguage(){return Ype}changeLanguage(e){this.pageBuilderStateStore.setCurrentLanguage(e)}async clearHtmlSelection(){this.pageBuilderStateStore.getImageSettingsPanelOpen||(this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),await this.removeHoveredAndSelected())}ensureUpdateOrCreateConfig(e){if(!e.updateOrCreate||e.updateOrCreate&&ro(e.updateOrCreate)){const t={...e,updateOrCreate:{formType:"create",formName:"post"}};this.pageBuilderStateStore.setPageBuilderConfig(t);return}if(e.updateOrCreate&&typeof e.updateOrCreate.formType=="string"&&(e.updateOrCreate.formType==="create"||e.updateOrCreate.formType==="update")&&typeof e.updateOrCreate.formName!="string"||typeof e.updateOrCreate.formName=="string"&&e.updateOrCreate.formName.length===0){const t={...e,updateOrCreate:{formType:e.updateOrCreate.formType,formName:"post"}};this.pageBuilderStateStore.setPageBuilderConfig(t)}if(e.updateOrCreate&&typeof e.updateOrCreate.formType!="string"||typeof e.updateOrCreate.formType=="string"&&e.updateOrCreate.formType!=="create"&&e.updateOrCreate.formType!=="update"&&typeof e.updateOrCreate.formName=="string"&&e.updateOrCreate.formName.length!==0){const t={...e,updateOrCreate:{formType:"create",formName:e.updateOrCreate.formName}};this.pageBuilderStateStore.setPageBuilderConfig(t);return}if(e.updateOrCreate&&typeof e.updateOrCreate.formType=="string"&&e.updateOrCreate.formType!=="create"&&e.updateOrCreate.formType!=="update"&&typeof e.formName!="string"){const t={...e,updateOrCreate:{formType:"create",formName:"post"}};this.pageBuilderStateStore.setPageBuilderConfig(t)}}validateUserProvidedComponents(e){const t=this.pageBuilderStateStore.getPageBuilderConfig&&this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate&&this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate.formType;if(Array.isArray(e)&&e.length>=1&&t==="create"&&e)return{error:!0,warning:"You cannot set formType to create in your configuration while also passing a components data array to the Page Builder. Please set formType to update.",status:"validation_failed"};if(!Array.isArray(e))return{error:!0,reason:"Components data must be an array."};const i=e[0];if(i&&"html_code"in i&&typeof i.html_code!="string")return{error:!0,reason:"The 'html_code' property in the first object must be a string."};if(Array.isArray(e)&&e.length>=1&&(!i||!("html_code"in i)))return{error:!0,reason:"The first object in the array must include an 'html_code' key."}}ensureLanguage(e){const i=["en","zh-Hans","fr","ja","ru","es","pt","de","ar","hi","da"];let n=!1;const a=e.userSettings,l=a&&a.language;if((!a||ro(a)||!l||ro(l))&&(n=!0),n){const s=a?{...a}:{};s.language={default:"en",enable:i};const p={...e,userSettings:s};this.pageBuilderStateStore.setPageBuilderConfig(p);return}if(l&&Array.isArray(l.enable)&&l.default&&!l.enable.includes(l.default)){const s=[...l.enable,l.default],p={...e,userSettings:{...a,language:{...l,enable:s}}};this.pageBuilderStateStore.setPageBuilderConfig(p)}}validateConfig(e){var n;const t={updateOrCreate:{formType:"create",formName:"post"}};if(!e||e&&Object.keys(e).length===0&&e.constructor===Object){this.pageBuilderStateStore.setPageBuilderConfig(t);return}e&&Object.keys(e).length!==0&&e.constructor===Object&&(this.ensureUpdateOrCreateConfig(e),(!e.resourceData||typeof e.resourceData.title!="string"||!e.resourceData.title.trim())&&(!e.resourceData||typeof e.resourceData!="object"?e.resourceData={title:"Default Post"}:e.resourceData.title="Default Post"));let i=e;if(!i.userSettings||typeof i.userSettings!="object"||!("autoSave"in i.userSettings)){const a=i.userSettings?{...i.userSettings}:{};a.autoSave=((n=i.userSettings)==null?void 0:n.autoSave)!==!1;const l={...i,userSettings:a};this.pageBuilderStateStore.setPageBuilderConfig(l),i=l}this.ensureLanguage(i)}saveUserSettingsStorage(e){localStorage.setItem("userSettingsPageBuilder",JSON.stringify({userSettings:{lang:e}}))}async startBuilder(e,t){var d,c,b;const i=++this.activeBuilderSessionToken,n=document.querySelector("#pagebuilder"),a=!!(n!=null&&n.querySelector("section[data-componentid]"));a||(this.hasCompletedBuilderMount=!1,this.builderMountPromise=null,this.pendingMountComponents=null,this.isPageBuilderMissingOnStart=!1),typeof this.pageBuilderStateStore.setInlineTipTapEditor=="function"&&this.pageBuilderStateStore.setInlineTipTapEditor(!1),typeof this.pageBuilderStateStore.setShowModalTipTap=="function"&&this.pageBuilderStateStore.setShowModalTipTap(!1),typeof this.pageBuilderStateStore.setImageSettingsPanelOpen=="function"&&this.pageBuilderStateStore.setImageSettingsPanelOpen(!1),typeof this.pageBuilderStateStore.setElement=="function"&&this.pageBuilderStateStore.setElement(null),typeof this.pageBuilderStateStore.setComponent=="function"&&this.pageBuilderStateStore.setComponent(null),typeof this.pageBuilderStateStore.setIsLoadingGlobal=="function"&&this.pageBuilderStateStore.setIsLoadingGlobal(!1),this.pageBuilderStateStore.setBuilderStarted(!0);const l=document.querySelector("#pagebuilder"),s=this.readCurrentPageSettings();this.hasMeaningfulPageSettings(s)&&(this._lastKnownPageSettings=s);let p;try{this.originalComponents=t,this.pageBuilderStateStore.setPageBuilderConfig(e);const m=JSON.parse(localStorage.getItem("userSettingsPageBuilder")??"null");!(m!=null&&m.lang)&&((c=(d=e.userSettings)==null?void 0:d.language)!=null&&c.default)&&this.changeLanguage(e.userSettings.language.default),this.validateConfig(e),p=this.validateUserProvidedComponents(t);const g=Array.isArray(t)&&t.length>0?t:null,x=g!==null;if(this.updateLocalStorageItemName(),this.initializeHistory(),x&&(this.savedMountComponents=g),l||(this.isPageBuilderMissingOnStart=!0),x&&!l&&(this.pendingMountComponents=g),l&&(!t||Array.isArray(t))&&await this.completeBuilderInitializationWithSession(x?g:void 0,i),l&&await this.addListenersToEditableElements(),a&&l){const h=((b=this.pageBuilderStateStore.getPageBuilderConfig)==null?void 0:b.pageSettings)??null;if(this.hasMeaningfulPageSettings(h)){const f=this.convertStyleObjectToString(h.style),w=l.getAttribute("style")||"";f.trim()&&!w.trim()&&(await o.nextTick(),this.applyPageSettingsToPage(h))}}const u={message:"Page builder started successfully."};return p&&(u.validation=p),Array.isArray(t)&&t.length>=0&&(u.passedComponentsArray=t),u}catch(m){return console.error("Not able to start the Page Builder",m),{error:!0,reason:"Failed to start the Page Builder due to an unexpected error."}}}shouldCompleteBuilderMountOnMount(e){if(this.hasCompletedBuilderMount){const t=e??document.querySelector("#pagebuilder"),i=!!(t!=null&&t.querySelector("section[data-componentid]"));return t&&!i?(this.hasCompletedBuilderMount=!1,this.builderMountPromise=null,!0):!1}return this.isPageBuilderMissingOnStart||!!this.pendingMountComponents}async completeBuilderInitialization(e){return this.completeBuilderInitializationWithSession(e,this.activeBuilderSessionToken)}async completeBuilderInitializationWithSession(e,t=this.activeBuilderSessionToken){t===this.activeBuilderSessionToken&&(this.hasCompletedBuilderMount||(this.builderMountPromise||(this.builderMountPromise=this.runCompleteBuilderInitialization(e,t)),await this.builderMountPromise))}async runCompleteBuilderInitialization(e,t=this.activeBuilderSessionToken){if(t!==this.activeBuilderSessionToken||(await He(400),t!==this.activeBuilderSessionToken))return;this.pageBuilderStateStore.setIsLoadingGlobal(!0),this.deleteAllComponentsFromDOM();const i=this.pageBuilderStateStore.getPageBuilderConfig,n=i&&i.updateOrCreate&&i.updateOrCreate.formType,a=this.getSavedPageHtml();if(await this.clearHtmlSelection(),t===this.activeBuilderSessionToken&&(n==="update"||n==="create")){if(!this.pendingMountComponents){if(!e&&this.isPageBuilderMissingOnStart&&a){await this.completeMountProcess(a,void 0,t);return}if(e&&!a){const l=this.renderComponentsToHtml(e);await this.completeMountProcess(l,!0,t),this.saveDomComponentsToLocalStorage();return}if(e&&a){const l=this.renderComponentsToHtml(e);await this.completeMountProcess(l,!0,t),await He(500),this.pageBuilderStateStore.setHasLocalDraftForUpdate(!0);return}if(!e&&a&&!this.savedMountComponents){await this.completeMountProcess(a,void 0,t);return}if(!e&&this.savedMountComponents&&a){const l=this.renderComponentsToHtml(this.savedMountComponents);await this.completeMountProcess(l,void 0,t);return}if(!e&&!a&&this.isPageBuilderMissingOnStart){const l=this.renderComponentsToHtml([]);await this.completeMountProcess(l,void 0,t);return}if(!this.isPageBuilderMissingOnStart&&!a&&!e){const l=this.renderComponentsToHtml([]);await this.completeMountProcess(l,void 0,t);return}}if(this.pendingMountComponents){if(a&&this.isPageBuilderMissingOnStart){const l=this.renderComponentsToHtml(this.pendingMountComponents);await this.completeMountProcess(l,!0,t),await He(500),this.pageBuilderStateStore.setHasLocalDraftForUpdate(!0),this.pendingMountComponents=null;return}if(!a&&e&&this.isPageBuilderMissingOnStart){const l=this.renderComponentsToHtml(this.pendingMountComponents);await this.completeMountProcess(l,!0,t),this.saveDomComponentsToLocalStorage();return}if(!e&&!a&&this.isPageBuilderMissingOnStart){const l=this.renderComponentsToHtml(this.pendingMountComponents);await this.completeMountProcess(l,!0,t),this.saveDomComponentsToLocalStorage();return}}}}renderComponentsToHtml(e){return!e||Array.isArray(e)&&e.length===0?'<div id="pagebuilder" class="pbx-text-black pbx-font-sans"></div>':e.map(i=>i.html_code).join(`
|
|
414
|
-
`)}async completeMountProcess(e,t,i=this.activeBuilderSessionToken){if(i!==this.activeBuilderSessionToken){this.pageBuilderStateStore.setIsLoadingGlobal(!1);return}if(await this.mountComponentsToDOM(e,t),i!==this.activeBuilderSessionToken){this.pageBuilderStateStore.setIsLoadingGlobal(!1);return}this.deleteOldPageBuilderLocalStorage(),this.pageBuilderStateStore.setIsRestoring(!1),this.hasCompletedBuilderMount=!0,this.pageBuilderStateStore.setIsLoadingGlobal(!1)}applyElementClassChanges(e,t,i){const n=this.getElement.value;if(!n)return;const a=t===ht.roundedGlobal||t===ht.roundedTopLeft||t===ht.roundedTopRight||t===ht.roundedBottomLeft||t===ht.roundedBottomRight,l=(()=>{if(!a||n.tagName==="A")return null;const b=Array.from(n.querySelectorAll("a")).filter(g=>g instanceof HTMLAnchorElement),m=b.find(g=>t.some(x=>x!=="none"&&g.classList.contains(x)));return m||(n.id==="linktree"||n.classList.contains("pbx-product-card-cta")?b[0]??null:null)})(),s=a&&n.tagName==="IMG"?n.closest(".pbx-product-card-image"):null,p=l instanceof HTMLElement?l:s instanceof HTMLElement?s:n,d=t.find(b=>p.classList.contains(b))||(l instanceof HTMLElement?t.find(b=>n.classList.contains(b)):void 0);let c=d||"none";if(e===void 0){if(typeof i=="string"&&i.length>2&&i in this.pageBuilderStateStore&&typeof this.pageBuilderStateStore[i]=="function"){const b=this.pageBuilderStateStore[i];b(c)}return d}if(typeof e=="string"&&e!=="none"?(c&&(p.classList.contains(c)&&p.classList.remove(c),l instanceof HTMLElement&&n.classList.contains(c)&&n.classList.remove(c)),t.forEach(b=>{b!=="none"&&["lg","md","sm","xl","2xl"].forEach(m=>{const g=`${m}:${b}`;p.classList.contains(g)&&p.classList.remove(g),l instanceof HTMLElement&&n.classList.contains(g)&&n.classList.remove(g)})}),p.classList.add(e),c=e):typeof e=="string"&&e==="none"&&c&&(p.classList.remove(c),l instanceof HTMLElement&&n.classList.remove(c),t.forEach(b=>{b!=="none"&&["lg","md","sm","xl","2xl"].forEach(m=>{const g=`${m}:${b}`;p.classList.contains(g)&&p.classList.remove(g),l instanceof HTMLElement&&n.classList.contains(g)&&n.classList.remove(g)})}),c=e),typeof i=="string"&&i.length>2&&i in this.pageBuilderStateStore&&typeof this.pageBuilderStateStore[i]=="function"){const b=this.pageBuilderStateStore[i];b(c),this.pageBuilderStateStore.getInlineTipTapEditor||this.pageBuilderStateStore.setElement(n)}return d}removeElementClassesFromArray(e,t){t.forEach(i=>{i!=="none"&&e.classList.contains(i)&&e.classList.remove(i)})}async clearClassesFromPage(){const e=document.querySelector("#pagebuilder");e==null||e.removeAttribute("class"),this.initializeElementStyles(),await o.nextTick()}async clearInlineStylesFromPage(){const e=document.querySelector("#pagebuilder");e==null||e.removeAttribute("style"),this.initializeElementStyles(),await o.nextTick()}async globalPageStyles(){const e=document.querySelector("#pagebuilder");e&&(await this.clearHtmlSelection(),this.pageBuilderStateStore.setElement(e),e.setAttribute("data-global-selected","true"),this.globalStylesObserver&&this.globalStylesObserver.disconnect(),this.globalStylesObserver=new MutationObserver(()=>{const t=this.readCurrentPageSettings();t&&(this._lastKnownPageSettings=t)}),this.globalStylesObserver.observe(e,{attributes:!0,attributeFilter:["class","style","data-meta-title","data-meta-description"]}),await o.nextTick())}stopGlobalStylesSync(){this.globalStylesObserver&&(this.globalStylesObserver.disconnect(),this.globalStylesObserver=null)}handleFontWeight(e){this.applyElementClassChanges(e,ar.fontWeight,"setFontWeight")}handleFontSizeBase(e){this.applyElementClassChanges(e,mi.fontBase,"setFontBase")}handleFontSizeDesktop(e){const t=this.getElement.value;if(!t)return;const i={"pbx-text-9xl":"pbx-text-6xl","pbx-text-8xl":"pbx-text-5xl","pbx-text-7xl":"pbx-text-4xl","pbx-text-6xl":"pbx-text-3xl","pbx-text-5xl":"pbx-text-3xl","pbx-text-4xl":"pbx-text-2xl","pbx-text-3xl":"pbx-text-xl","pbx-text-2xl":"pbx-text-lg","pbx-text-xl":"pbx-text-base","pbx-text-lg":"pbx-text-sm","pbx-text-base":"pbx-text-xs","pbx-text-sm":"pbx-text-xs","pbx-text-xs":"pbx-text-xs"};if(e){Array.from(t.classList).forEach(p=>{this.fontSizeRegex.test(p)&&t.classList.remove(p)});const a=e.replace(/^lg:/,""),l=i[a]||a,s=`lg:${a}`;l!==a?t.classList.add(l,s):t.classList.add(l)}const n=mi.fontDesktop.find(a=>t.classList.contains(a));e||this.pageBuilderStateStore.setFontDesktop("none"),n&&!e&&this.pageBuilderStateStore.setFontDesktop(n)}ensureImagesHaveAltText(e){e.tagName==="IMG"&&!e.hasAttribute("alt")&&e.setAttribute("alt","image"),e.querySelectorAll("img:not([alt])").forEach(t=>{t.setAttribute("alt","image")})}applyHelperCSSToElements(e){if(this.wrapElementInDivIfExcluded(e),this.ensureImagesHaveAltText(e),e.tagName==="DIV"&&e.children.length===1&&["H1","H2","H3","H4","H5","H6"].includes(e.children[0].tagName)){const t=e.children[0];Array.from(e.classList).some(n=>this.fontSizeRegex.test(n))||(t.tagName==="H2"&&e.classList.add("pbx-text-3xl","lg:pbx-text-4xl","pbx-font-medium"),t.tagName==="H3"&&e.classList.add("pbx-text-2xl","lg:pbx-text-3xl","pbx-font-medium"),t.tagName==="H4"&&e.classList.add("pbx-text-xl","lg:pbx-text-2xl","pbx-font-medium"),t.tagName==="H5"&&e.classList.add("pbx-text-lg","lg:pbx-text-xl","pbx-font-medium"),t.tagName==="H6"&&e.classList.add("pbx-text-base","lg:pbx-text-base","pbx-font-medium"))}}async toggleTipTapModal(e){this.pageBuilderStateStore.setShowModalTipTap(e),await o.nextTick(),await this.addListenersToEditableElements(),e||await this.handleAutoSave()}async toggleInlineTipTapEditor(e){e&&!this.isValidTextElement(this.getElement.value)||(this.pageBuilderStateStore.setInlineTipTapEditor(e),await o.nextTick(),await this.addListenersToEditableElements(),e||await this.handleAutoSave())}async finishInlineTipTapEditor(e,t=!0){if(this.pageBuilderStateStore.setInlineTipTapEditor(!1),await o.nextTick(),e){const i=document.querySelector("#pagebuilder");i==null||i.querySelectorAll("[hovered]").forEach(n=>n.removeAttribute("hovered")),i==null||i.querySelectorAll("[selected]").forEach(n=>{n!==e&&n.removeAttribute("selected")}),e.removeAttribute("data-pbx-inline-tiptap"),e.setAttribute("selected",""),this.pageBuilderStateStore.setElement(e)}await o.nextTick(),await this.addListenersToEditableElements(),await this.initializeElementStyles(),await this.addListenersToEditableElements(),t&&await this.handleAutoSave()}wrapElementInDivIfExcluded(e){var t;if(e&&this.NoneListernesTags.includes(e.tagName)&&(e.previousElementSibling&&e.previousElementSibling.tagName==="IMG"||e.nextElementSibling&&e.nextElementSibling.tagName==="IMG")){const i=document.createElement("div");(t=e.parentNode)==null||t.insertBefore(i,e),i.appendChild(e)}}isEditableElement(e){return!e||e.tagName!=="IMG"&&e.closest("[data-pb-no-select]")?!1:!this.NoneListernesTags.includes(e.tagName)}getSelectedComponentSection(){const e=this.getElement.value;return!e||!(e instanceof HTMLElement)?null:e.closest("section")}isSelectedComponentTopElement(){const e=this.getElement.value,t=this.getSelectedComponentSection();return!e||!t?!1:e.parentElement===t}selectedComponentIsFullWidth(){var e;return((e=this.getSelectedComponentSection())==null?void 0:e.classList.contains(as))??!1}async setSelectedComponentFullWidth(e){const t=this.getSelectedComponentSection();t&&(t.classList.toggle(as,e),await this.handleAutoSave())}isSelectedProductSection(){const e=this.getSelectedComponentSection();return(e==null?void 0:e.getAttribute("data-pbx-product-section"))==="true"}getSelectedProductSectionOptions(){const e=this.getSelectedComponentSection();return!e||!this.isSelectedProductSection()?{...Xt}:hJ(e)}getSelectedProductSectionContentAvailability(){const e=this.getSelectedComponentSection();return!e||!this.isSelectedProductSection()?{hasPrices:!1,hasImages:!1,hasButtons:!1,hasLinks:!1}:{hasPrices:bJ(e),hasImages:cJ(e),hasButtons:mJ(e),hasLinks:gJ(e)}}async updateSelectedProductSection(e){const t=this.getSelectedComponentSection();!t||!this.isSelectedProductSection()||(wJ(t,e),await this.handleAutoSave())}isGlobalFullWidth(){const e=document.querySelector("#pagebuilder");return(e==null?void 0:e.classList.contains(as))??!1}async setGlobalFullWidth(e){const t=document.querySelector("#pagebuilder");t==null||t.classList.toggle(as,e),this.saveDomComponentsToLocalStorage(),await this.handleAutoSave()}isSelectedElementImage(){var e;return((e=this.getElement.value)==null?void 0:e.tagName)==="IMG"}setImageSettingsModalOpen(e){this.pageBuilderStateStore.setImageSettingsPanelOpen(e)}isImageSettingsModalOpen(){return this.pageBuilderStateStore.getImageSettingsPanelOpen}findImageAspectClass(e){const t=ec.aspectRatio.find(n=>n!=="none"&&e.classList.contains(n));return t||(Array.from(e.classList).find(n=>n.startsWith("pbx-aspect-"))??null)}removeImageAspectClasses(e){Array.from(e.classList).forEach(t=>{t.startsWith("pbx-aspect-")&&e.classList.remove(t)})}handleImageObjectFit(e){this.applyElementClassChanges(e,ec.objectFit,"setImageObjectFit")}handleImageObjectPosition(e){this.applyElementClassChanges(e,ec.objectPosition,"setImageObjectPosition")}handleImageAspectRatio(e){const t=this.getElement.value;if(!(!t||t.tagName!=="IMG")){if(e===void 0){const i=this.findImageAspectClass(t);this.pageBuilderStateStore.setImageAspectRatio(i||"none");return}this.removeImageAspectClasses(t),e!=="none"&&t.classList.add(e),this.pageBuilderStateStore.setImageAspectRatio(e),this.pageBuilderStateStore.setElement(t)}}async handleImageAltText(e){const t=this.getElement.value;if(!t||t.tagName!=="IMG"||e===void 0)return;const i=e.trim();i?t.setAttribute("alt",i):t.removeAttribute("alt"),this.pageBuilderStateStore.setElement(t),await this.handleAutoSave()}getSelectedImageAltText(){const e=this.getElement.value;return!e||e.tagName!=="IMG"?"":e.getAttribute("alt")||""}attachCanvasInlineEditListeners(e){this.canvasClickCaptureListener&&e.removeEventListener("click",this.canvasClickCaptureListener,!0),this.canvasDblClickCaptureListener&&e.removeEventListener("dblclick",this.canvasDblClickCaptureListener,!0),this.canvasClickCaptureListener=()=>{this.handleCanvasClickCapture()},this.canvasDblClickCaptureListener=t=>{this.handleCanvasDoubleClickCapture(t)},e.addEventListener("click",this.canvasClickCaptureListener,!0),e.addEventListener("dblclick",this.canvasDblClickCaptureListener,!0)}findEditableElementFromEventTarget(e){if(!(e instanceof Element))return null;const t=document.querySelector("#pagebuilder");let i=e;for(;i&&i!==t;){if(i instanceof HTMLElement&&this.isEditableElement(i))return i;i=i.parentElement}return null}async openInlineTipTapFromEvent(e){if(this.pageBuilderStateStore.getImageSettingsPanelOpen||(this.pageBuilderStateStore.getInlineTipTapEditor&&!this.hasInlineTipTapElement()&&this.pageBuilderStateStore.setInlineTipTapEditor(!1),this.pageBuilderStateStore.getInlineTipTapEditor))return;const t=this.findEditableElementFromEventTarget(e.target);if(!t||!this.isValidTextElement(t)){e.target instanceof Element&&(e.target.tagName==="IMG"||e.target.closest("img"))&&e.stopPropagation();return}e.preventDefault(),e.stopPropagation(),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setInlineTipTapEditor(!0),await this.openInlineTipTapForElement(t)}hasInlineTipTapElement(){return!!document.querySelector("#pagebuilder [data-pbx-inline-tiptap]")}async finishActiveInlineTipTapEditorFromDom(e=null){const t=document.querySelector("#pagebuilder [data-pbx-inline-tiptap]");if(!t){await this.toggleInlineTipTapEditor(!1);return}const i=t.querySelector(".ProseMirror"),n=t.getAttribute("data-pbx-inline-original-html")??"",a=_d((i==null?void 0:i.innerHTML)??t.innerHTML,n);t.innerHTML=a,t.removeAttribute("data-pbx-inline-tiptap"),t.removeAttribute("data-pbx-inline-original-html"),this.pageBuilderStateStore.setTextAreaVueModel(a),this.pageBuilderStateStore.setElement(t),await this.finishInlineTipTapEditor(t),e&&e!==t&&await this.selectEditableElement(e)}async openInlineTipTapForElement(e){this.isValidTextElement(e)&&(await this.selectEditableElement(e,!1),await o.nextTick(),await this.addListenersToEditableElements())}async selectEditableElement(e,t=!0){const i=document.querySelector("#pagebuilder");if(!i)return;this.pageBuilderStateStore.setMenuRight(!0);const n=i.querySelector("[selected]");n&&n.removeAttribute("selected"),e.removeAttribute("hovered"),e.setAttribute("selected",""),this.pageBuilderStateStore.setElement(e),await o.nextTick(),await this.initializeElementStyles(),t&&await this.handleAutoSave()}getHistoryBaseKey(){return this.getLocalStorageItemName.value}initializeHistory(){const e=this.getHistoryBaseKey();if(e){const t=ki.getHistory(e);this.pageBuilderStateStore.setHistoryIndex(t.length-1),this.pageBuilderStateStore.setHistoryLength(t.length)}}cloneCompObjForDOMInsertion(e){const t={...e},i=document.querySelector("#page-builder-wrapper");i&&this.getComponentArrayAddMethod.value==="unshift"&&i.scrollTo({top:0,behavior:"smooth"});const a=new DOMParser().parseFromString(t.html_code||"","text/html");a.querySelectorAll("*").forEach(p=>{this.applyHelperCSSToElements(p)});const s=a.querySelector("section");return s&&(s.querySelectorAll("[class]").forEach(p=>{p.setAttribute("class",this.addTailwindPrefixToClasses(p.getAttribute("class")||"","pbx-"))}),s.dataset.componentid=Bz(),t.title&&s.setAttribute("data-component-title",t.title),t.id=s.dataset.componentid,t.html_code=s.outerHTML),t}async removeHoveredAndSelected(){const e=document.querySelector("#pagebuilder");if(!e)return;const t=e.querySelector("[hovered]");t&&t.removeAttribute("hovered");const i=e.querySelector("[selected]");i&&i.removeAttribute("selected")}async syncCurrentClasses(){var t;const e=Array.from(((t=this.getElement.value)==null?void 0:t.classList)||[]);this.pageBuilderStateStore.setCurrentClasses(e)}async syncCurrentStyles(){var t;const e=(t=this.getElement.value)==null?void 0:t.getAttribute("style");if(e){const i=this.parseStyleString(e);this.pageBuilderStateStore.setCurrentStyles(i)}else this.pageBuilderStateStore.setCurrentStyles({})}handleAddClasses(e){var t,i;if(typeof e=="string"&&e.trim()!==""&&!e.includes(" ")&&!((t=this.getElement.value)!=null&&t.classList.contains("pbx-"+e.trim()))){const n=e.trim(),a=n.startsWith("pbx-")?n:"pbx-"+n;(i=this.getElement.value)==null||i.classList.add(a),this.pageBuilderStateStore.setElement(this.getElement.value),this.pageBuilderStateStore.setClass(a)}}handleAddStyle(e,t){const i=this.getElement.value;!i||!e||!t||(i.style.setProperty(e,t),this.pageBuilderStateStore.setElement(i))}handleRemoveStyle(e){const t=this.getElement.value;!t||!e||(t.style.removeProperty(e),this.pageBuilderStateStore.setElement(t))}handleFontFamily(e){var i;const t=sD((i=this.pageBuilderStateStore.getPageBuilderConfig)==null?void 0:i.userSettings);this.applyElementClassChanges(e,t,"setFontFamily")}handleFontStyle(e){this.applyElementClassChanges(e,ar.fontStyle,"setFontStyle")}purgeConflictingClasses(e){const t=this.getElement.value;t&&e.forEach(i=>{i.forEach(n=>{n!=="none"&&t.classList.contains(n)&&t.classList.remove(n)})})}handleVerticalPadding(e){e!==void 0&&this.purgeConflictingClasses([be.topPadding,be.bottomPadding]),this.applyElementClassChanges(e,be.verticalPadding,"setFontVerticalPadding")}handleHorizontalPadding(e){e!==void 0&&this.purgeConflictingClasses([be.leftPadding,be.rightPadding]),this.applyElementClassChanges(e,be.horizontalPadding,"setFontHorizontalPadding")}handleTopPadding(e){e!==void 0&&this.purgeConflictingClasses([be.verticalPadding]),this.applyElementClassChanges(e,be.topPadding,"setFontTopPadding")}handleRightPadding(e){e!==void 0&&this.purgeConflictingClasses([be.horizontalPadding]),this.applyElementClassChanges(e,be.rightPadding,"setFontRightPadding")}handleBottomPadding(e){e!==void 0&&this.purgeConflictingClasses([be.verticalPadding]),this.applyElementClassChanges(e,be.bottomPadding,"setFontBottomPadding")}handleLeftPadding(e){e!==void 0&&this.purgeConflictingClasses([be.horizontalPadding]),this.applyElementClassChanges(e,be.leftPadding,"setFontLeftPadding")}handleVerticalMargin(e){e!==void 0&&this.purgeConflictingClasses([be.topMargin,be.bottomMargin]),this.applyElementClassChanges(e,be.verticalMargin,"setFontVerticalMargin")}handleHorizontalMargin(e){e!==void 0&&this.purgeConflictingClasses([be.leftMargin,be.rightMargin]),this.applyElementClassChanges(e,be.horizontalMargin,"setFontHorizontalMargin")}handleTopMargin(e){e!==void 0&&this.purgeConflictingClasses([be.verticalMargin]),this.applyElementClassChanges(e,be.topMargin,"setFontTopMargin")}handleRightMargin(e){e!==void 0&&this.purgeConflictingClasses([be.horizontalMargin]),this.applyElementClassChanges(e,be.rightMargin,"setFontRightMargin")}handleBottomMargin(e){e!==void 0&&this.purgeConflictingClasses([be.verticalMargin]),this.applyElementClassChanges(e,be.bottomMargin,"setFontBottomMargin")}handleLeftMargin(e){e!==void 0&&this.purgeConflictingClasses([be.horizontalMargin]),this.applyElementClassChanges(e,be.leftMargin,"setFontLeftMargin")}handleBorderStyle(e){this.applyElementClassChanges(e,vi.borderStyle,"setBorderStyle")}handleBorderWidth(e){this.applyElementClassChanges(e,vi.borderWidth,"setBorderWidth")}handleBorderColor(e){this.applyElementClassChanges(e,vi.borderColor,"setBorderColor")}handleBackgroundColor(e){var t,i;if(e===void 0){const n=(t=this.getElement.value)==null?void 0:t.style.getPropertyValue("background-color");if(n){this.pageBuilderStateStore.setBackgroundColor(`custom:${Yt(n)??n}`);return}}else(i=this.getElement.value)==null||i.style.removeProperty("background-color");this.applyElementClassChanges(e,hi.backgroundColorVariables,"setBackgroundColor")}handleCustomBackgroundColor(e){const t=this.getElement.value;!t||!e||(this.removeElementClassesFromArray(t,hi.backgroundColorVariables),t.style.setProperty("background-color",e),this.pageBuilderStateStore.setBackgroundColor(`custom:${e}`),this.pageBuilderStateStore.setElement(t))}handleTextColor(e){var t,i;if(e===void 0){const n=(t=this.getElement.value)==null?void 0:t.style.getPropertyValue("color");if(n){this.pageBuilderStateStore.setTextColor(`custom:${Yt(n)??n}`);return}}else(i=this.getElement.value)==null||i.style.removeProperty("color");this.applyElementClassChanges(e,hi.textColorVariables,"setTextColor")}handleCustomTextColor(e){const t=this.getElement.value;!t||!e||(this.removeElementClassesFromArray(t,hi.textColorVariables),t.style.setProperty("color",e),this.pageBuilderStateStore.setTextColor(`custom:${e}`),this.pageBuilderStateStore.setElement(t))}handleBorderRadiusGlobal(e){this.applyElementClassChanges(e,ht.roundedGlobal,"setBorderRadiusGlobal")}handleBorderRadiusTopLeft(e){this.applyElementClassChanges(e,ht.roundedTopLeft,"setBorderRadiusTopLeft")}handleBorderRadiusTopRight(e){this.applyElementClassChanges(e,ht.roundedTopRight,"setBorderRadiusTopRight")}handleBorderRadiusBottomleft(e){this.applyElementClassChanges(e,ht.roundedBottomLeft,"setBorderRadiusBottomleft")}handleBorderRadiusBottomRight(e){this.applyElementClassChanges(e,ht.roundedBottomRight,"setBorderRadiusBottomRight")}handleFontSizeTablet(e){this.applyElementClassChanges(e,mi.fontTablet,"setFontTablet")}handleFontSizeMobile(e){this.applyElementClassChanges(e,mi.fontMobile,"setFontMobile")}handleBackgroundOpacity(e){this.applyElementClassChanges(e,is.backgroundOpacities,"setBackgroundOpacity")}handleOpacity(e){this.applyElementClassChanges(e,is.opacities,"setOpacity")}deleteAllComponentsFromDOM(){this.pageBuilderStateStore.setComponents([]);const e=document.querySelector("#pagebuilder");e&&e.querySelectorAll("section[data-componentid]").forEach(t=>t.remove())}async undo(){this.pageBuilderStateStore.setIsLoadingGlobal(!0),await He(300);const e=this.getHistoryBaseKey();if(!e)return;const t=ki.getHistory(e);if(t.length>1&&this.pageBuilderStateStore.getHistoryIndex>0){this.pageBuilderStateStore.setHistoryIndex(this.pageBuilderStateStore.getHistoryIndex-1);const i=t[this.pageBuilderStateStore.getHistoryIndex],n=this.renderComponentsToHtml(i.components);await this.mountComponentsToDOM(n,!1,i.pageSettings)}this.pageBuilderStateStore.setIsLoadingGlobal(!1)}async redo(){this.pageBuilderStateStore.setIsLoadingGlobal(!0),await He(300);const e=this.getHistoryBaseKey();if(!e)return;const t=ki.getHistory(e);if(t.length>0&&this.pageBuilderStateStore.getHistoryIndex<t.length-1){this.pageBuilderStateStore.setHistoryIndex(this.pageBuilderStateStore.getHistoryIndex+1);const i=t[this.pageBuilderStateStore.getHistoryIndex],n=this.renderComponentsToHtml(i.components);await this.mountComponentsToDOM(n,!1,i.pageSettings)}this.pageBuilderStateStore.setIsLoadingGlobal(!1)}hasVisibleContent(e){if(!e)return!1;if(e.querySelector("img, video, iframe, input, button, a, h1, h2, h3, h4, h5, h6, p, li, blockquote, pre, code, table"))return!0;const i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null);for(;i.nextNode();)if(i.currentNode.nodeValue&&i.currentNode.nodeValue.trim()!=="")return!0;return!1}isSectionEmpty(e){return!this.hasVisibleContent(e)}findReverseableContainer(){const e=this.getSelectedComponentSection();if(!e)return null;const t=['[class*="flex-row"]','[class*="pbx-flex-row"]','[class*="grid-cols-2"]','[class*="pbx-grid-cols-2"]'];for(const i of t){const n=Array.from(e.querySelectorAll(i));for(const a of n)if(Array.from(a.children).filter(s=>s instanceof HTMLElement).length===2)return a}return null}async reverseComponentLayout(){const e=this.findReverseableContainer();if(!e)return;const t=Array.from(e.children);t.length===2&&(e.insertBefore(t[1],t[0]),await this.syncDomToStoreOnly(),await o.nextTick(),this.saveDomComponentsToLocalStorage(),await this.handleAutoSave(),this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),await this.clearHtmlSelection(),await o.nextTick(),await this.addListenersToEditableElements())}async duplicateComponent(){await this.syncDomToStoreOnly(),await o.nextTick();const e=this.pageBuilderStateStore.getComponents,t=this.getComponent.value;if(!e||!t)return;const i=e.findIndex(l=>l.id===t.id);if(i===-1)return;const n=this.cloneCompObjForDOMInsertion(e[i]),a=[...e.slice(0,i+1),n,...e.slice(i+1)];await this.setComponentsPreservingPageSettings(a),await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setComponent(n),this.pageBuilderStateStore.setElement(null),await this.handleAutoSave()}async deleteComponentFromDOM(){await this.syncDomToStoreOnly(),await o.nextTick();const e=this.pageBuilderStateStore.getComponents;if(!e)return;const t=e.findIndex(n=>this.getComponent.value?n.id===this.getComponent.value.id:!1);if(t===-1)return;const i=[...e.slice(0,t),...e.slice(t+1)];await this.setComponentsPreservingPageSettings(i),await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),await this.handleAutoSave()}async duplicateElementInDOM(){const e=this.getElement.value;if(!e||!e.parentNode)return;e.removeAttribute("selected");const t=e.cloneNode(!0);e.parentNode.insertBefore(t,e.nextSibling),await this.syncDomToStoreOnly(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),this.saveDomComponentsToLocalStorage(),await this.handleAutoSave()}async deleteElementFromDOM(){const e=this.getElement.value;if(!e)return;if(e.removeAttribute("selected"),!e.parentNode){this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null);return}const t=e.closest("section");e.tagName==="SECTION"?await this.deleteComponentFromDOM():(e.remove(),t&&this.isSectionEmpty(t)&&t.remove(),await this.syncDomToStoreOnly(),this.saveDomComponentsToLocalStorage()),this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),await this.clearHtmlSelection(),await o.nextTick(),await this.addListenersToEditableElements()}handleRemoveClasses(e){var t,i;(t=this.getElement.value)!=null&&t.classList.contains(e)&&((i=this.getElement.value)==null||i.classList.remove(e),this.pageBuilderStateStore.setElement(this.getElement.value),this.pageBuilderStateStore.removeClass(e))}async reorderComponent(e){if(!this.getComponents.value||!this.getComponent.value||this.getComponents.value.length<=1)return;const t=this.getComponent.value,i=this.getComponents.value.findIndex(s=>s.id===t.id);if(i===-1)return;const n=i+e;if(n<0||n>=this.getComponents.value.length)return;this.getComponents.value.splice(i,1),this.getComponents.value.splice(n,0,t),await o.nextTick();const a=document.querySelector("#page-builder-wrapper"),l=a==null?void 0:a.querySelector(`section[data-componentid="${t.id}"]`);if(l){l.classList.add("pbx-reorder-highlight");const s=l.previousElementSibling,p=l.nextElementSibling;s&&s.tagName==="SECTION"&&s.classList.add("pbx-sibling-highlight"),p&&p.tagName==="SECTION"&&p.classList.add("pbx-sibling-highlight"),a&&(Jpe(a,l),window.setTimeout(()=>{l.classList.remove("pbx-reorder-highlight"),s&&s.tagName==="SECTION"&&s.classList.remove("pbx-sibling-highlight"),p&&p.tagName==="SECTION"&&p.classList.remove("pbx-sibling-highlight")},280))}}canMoveUp(){return!this.getComponents.value||!this.getComponent.value?!1:this.getComponents.value.findIndex(t=>{var i;return t.id===((i=this.getComponent.value)==null?void 0:i.id)})>0}canMoveDown(){return!this.getComponents.value||!this.getComponent.value?!1:this.getComponents.value.findIndex(t=>{var i;return t.id===((i=this.getComponent.value)==null?void 0:i.id)})<this.getComponents.value.length-1}ElOrFirstChildIsIframe(){var e,t,i;return((e=this.getElement.value)==null?void 0:e.tagName)==="IFRAME"||((i=(t=this.getElement.value)==null?void 0:t.firstElementChild)==null?void 0:i.tagName)==="IFRAME"}isValidTextElement(e){var n;if(!e||e.hasAttribute("data-pb-no-inline-text")||e.tagName==="IMG"||((n=e.firstElementChild)==null?void 0:n.tagName)==="IFRAME"||e.querySelector("img")||e.classList.contains("pbx-product-card-image")||e.classList.contains("product-card-image"))return!1;const t=e.children;if(!t.length)return!1;let i=!1;return Array.from(t).forEach(a=>{a.tagName==="IMG"||a.tagName==="DIV"?i=!1:i=!0}),i}isSelectedElementValidText(){return this.isValidTextElement(this.getElement.value)}previewCurrentDesign(){this.pageBuilderStateStore.setElement(null);const e=document.querySelector("#pagebuilder");if(e&&e){const t=vz(e,this.pageBuilderStateStore.getPageBuilderConfig?this.pageBuilderStateStore.getPageBuilderConfig:void 0),i=JSON.stringify([t]);this.pageBuilderStateStore.setCurrentLayoutPreview(i)}}sanitizeForLocalStorage(e){return e.trim().toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}cloneAndRemoveSelectionAttributes(e){const t=e.cloneNode(!0);return t.querySelectorAll("[hovered]").forEach(i=>i.removeAttribute("hovered")),t.querySelectorAll("[selected]").forEach(i=>i.removeAttribute("selected")),t.removeAttribute("hovered"),t.removeAttribute("selected"),t}async syncDomToStoreOnly(){const e=document.querySelector("#pagebuilder");if(!e)return;const t=[];e.querySelectorAll("section[data-componentid]").forEach(i=>{const n=this.cloneAndRemoveSelectionAttributes(i);t.push({html_code:n.outerHTML,id:n.getAttribute("data-componentid"),title:n.getAttribute("data-component-title")||"Untitled Component"})}),await this.setComponentsPreservingPageSettings(t)}async generateHtmlFromComponents(){await this.syncDomToStoreOnly(),await o.nextTick();const e=this.pageBuilderStateStore.getComponents;return Array.isArray(e)?(await o.nextTick(),await this.addListenersToEditableElements(),e.map(t=>t.html_code.replace(/data-componentid="[^"]*"/g,"").replace(/\s{2,}/g," ")).join(`
|
|
415
|
-
`)):""}async generateFullPageHtml(){await this.syncDomToStoreOnly(),await o.nextTick();const e=this.pageBuilderStateStore.getComponents;if(!Array.isArray(e))return"";await o.nextTick(),await this.addListenersToEditableElements();const t=this.readCurrentPageSettings()??this._lastKnownPageSettings,i=document.createElement("div");if(i.setAttribute("id","pagebuilder"),t!=null&&t.classes&&i.setAttribute("class",t.classes),t!=null&&t.style){const n=typeof t.style=="string"?t.style:this.convertStyleObjectToString(t.style)||"";n&&i.setAttribute("style",n)}return ic(i,_n(t)),e.forEach(n=>{const s=new DOMParser().parseFromString(n.html_code,"text/html").querySelector("section");if(s){s.removeAttribute("data-componentid"),i.appendChild(document.importNode(s,!0));return}i.insertAdjacentHTML("beforeend",n.html_code)}),i.outerHTML}saveDomComponentsToLocalStorage(){this.updateLocalStorageItemName();const e=document.querySelector("#pagebuilder");if(!e)return;const t=e.querySelector("[hovered]");t&&t.removeAttribute("hovered");const i=[];e.querySelectorAll("section[data-componentid]").forEach(s=>{const p=this.cloneAndRemoveSelectionAttributes(s);p.removeAttribute("data-componentid"),i.push({html_code:p.outerHTML,title:p.getAttribute("data-component-title")||"Untitled Component"})});const n=this.readCurrentPageSettings()??{classes:"",style:""},a={components:i,pageBuilderContentSavedAt:new Date().toISOString(),pageSettings:n},l=this.getHistoryBaseKey();if(l){const s=localStorage.getItem(l);if(s||localStorage.setItem(l,JSON.stringify(a)),s){const p=JSON.parse(s),d=p.components||[],c=a.components||[],b=c.length!==d.length||c.some((g,x)=>{const u=d[x];return!u||u.html_code!==g.html_code}),m=p.pageSettings&&p.pageSettings.classes!==a.pageSettings.classes||p.pageSettings&&p.pageSettings.style!==a.pageSettings.style;if(b||m){localStorage.setItem(l,JSON.stringify(a));let g=ki.getHistory(l);const x=g[g.length-1];if(x){const u=JSON.stringify(x.components),h=JSON.stringify(a.components),f=JSON.stringify(x.pageSettings),w=JSON.stringify(a.pageSettings);if(u===h&&f===w)return}this.pageBuilderStateStore.getHistoryIndex<g.length-1&&(g=g.slice(0,this.pageBuilderStateStore.getHistoryIndex+1)),g.push(a),g.length>10&&(g=g.slice(g.length-10)),localStorage.setItem(l+"-history",JSON.stringify(g)),this.pageBuilderStateStore.setHistoryIndex(g.length-1),this.pageBuilderStateStore.setHistoryLength(g.length);return}}}}async removeCurrentComponentsFromLocalStorage(){this.updateLocalStorageItemName(),await o.nextTick();const e=this.getLocalStorageItemName.value;e&&localStorage.removeItem(e)}async handleFormSubmission(){const e=this.readCurrentPageSettings();if(e&&(this._lastKnownPageSettings=e),await this.removeCurrentComponentsFromLocalStorage(),this.deleteAllComponentsFromDOM(),this.pageBuilderStateStore.setComponents([]),e){this.updateLocalStorageItemName();const t=this.getLocalStorageItemName.value;if(t){const i={components:[],pageBuilderContentSavedAt:new Date().toISOString(),pageSettings:e};localStorage.setItem(t,JSON.stringify(i))}}}readCurrentPageSettings(){const e=document.querySelector("#pagebuilder");if(e)return{classes:e.className||"",style:e.getAttribute("style")||e.style.cssText||"",meta:ns(e)};const t=document.querySelector("[data-pagebuilder-content]");if(t)return{classes:t.className||"",style:t.getAttribute("style")||t.style.cssText||""};this.updateLocalStorageItemName();const i=this.getLocalStorageItemName.value;if(i)try{const n=localStorage.getItem(i);if(n){const a=JSON.parse(n);if(a!=null&&a.pageSettings)return a.pageSettings}}catch{}return null}applyPageSettingsToPage(e){const t=document.querySelector("#pagebuilder");if(t){e.classes?t.setAttribute("class",e.classes):t.removeAttribute("class");const i=typeof e.style=="string"?e.style:this.convertStyleObjectToString(e.style)||"";i?t.setAttribute("style",i):t.removeAttribute("style"),ic(t,_n(e))}document.querySelectorAll("[data-pagebuilder-content]").forEach(i=>{i.removeAttribute("class"),i.removeAttribute("style")}),(e.classes||e.style||e.meta)&&(this._lastKnownPageSettings=e)}reconnectGlobalStylesObserver(){if(!this.globalStylesObserver)return;const e=document.querySelector("#pagebuilder");e&&(this.globalStylesObserver.disconnect(),this.globalStylesObserver=new MutationObserver(()=>{const t=this.readCurrentPageSettings();t&&(this._lastKnownPageSettings=t)}),this.globalStylesObserver.observe(e,{attributes:!0,attributeFilter:["class","style","data-meta-title","data-meta-description"]}))}async setComponentsPreservingPageSettings(e){var n;const t=this.readCurrentPageSettings()??this._lastKnownPageSettings??null,i=this.globalStylesObserver!==null;(n=this.globalStylesObserver)==null||n.disconnect(),this.pageBuilderStateStore.setComponents(e),await o.nextTick(),await o.nextTick(),t&&(t.classes||t.style)&&this.applyPageSettingsToPage(t),i&&this.reconnectGlobalStylesObserver()}parseStyleString(e){return e.split(";").map(t=>t.trim()).filter(Boolean).reduce((t,i)=>{const[n,a]=i.split(":").map(l=>l.trim());return n&&a&&(t[n]=a),t},{})}deleteOldPageBuilderLocalStorage(){const e=this.pageBuilderStateStore.getPageBuilderConfig;if((e&&e.updateOrCreate&&e.updateOrCreate.formType)==="update"){let i=0;const n=[],a=new Date(Date.now()-336*60*60*1e3);for(let l=0;l<localStorage.length;l++){const s=localStorage.key(l);if(s&&s.startsWith("page-builder-update-resource-"))try{const p=localStorage.getItem(s);if(!p)continue;const c=JSON.parse(p).pageBuilderContentSavedAt;c&&new Date(c)<a&&(i++,n.push({Number:i,Key:s,SavedAt:c}),localStorage.removeItem(s))}catch{}}n.length>0&&(console.info(`Deleted ${n.length} localStorage item(s) older than ${a} days:`),console.table(n))}}startEditing(){this.hasStartedEditing=!0}async refreshListeners(){await o.nextTick(),await this.addListenersToEditableElements()}async resumeEditingFromDraft(){this.updateLocalStorageItemName();const e=this.getSavedPageHtml();e&&(this.pageBuilderStateStore.setIsLoadingResumeEditing(!0),await He(400),await this.mountComponentsToDOM(e),this.pageBuilderStateStore.setIsLoadingResumeEditing(!1)),await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setIsLoadingResumeEditing(!1)}async restoreOriginalContent(){if(this.updateLocalStorageItemName(),this.pageBuilderStateStore.setIsRestoring(!0),await He(400),Array.isArray(this.originalComponents)){await this.clearClassesFromPage(),await this.clearInlineStylesFromPage();const e=this.renderComponentsToHtml(this.originalComponents);await this.mountComponentsToDOM(e),this.removeCurrentComponentsFromLocalStorage()}await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setIsRestoring(!1)}async returnLatestComponents(){return await this.syncDomToStoreOnly(),await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.getComponents}getStorageItemNameForResource(){return this.getLocalStorageItemName.value}getSavedPageHtml(){if(!this.getLocalStorageItemName.value)return!1;const e=this.getLocalStorageItemName.value;if(!e)return!1;const t=localStorage.getItem(e);if(!t)return!1;const i=JSON.parse(t);if(i&&Array.isArray(i.components)){const n=i.pageSettings&&i.pageSettings.classes||"",a=i.pageSettings&&i.pageSettings.style||"",l=typeof a=="string"?a:this.convertStyleObjectToString(a),s=i.components.map(p=>{const b=new DOMParser().parseFromString(p.html_code,"text/html").querySelector("section");return b?(b.removeAttribute("data-componentid"),b.outerHTML):p.html_code}).join(`
|
|
413
|
+
</section>`}const rc="data-meta-title",oc="data-meta-description";function ns(r){return{title:r.getAttribute(rc)||"",description:r.getAttribute(oc)||""}}function ic(r,e){var n,a;const t=((n=e.title)==null?void 0:n.trim())||"",i=((a=e.description)==null?void 0:a.trim())||"";t?r.setAttribute(rc,t):r.removeAttribute(rc),i?r.setAttribute(oc,i):r.removeAttribute(oc)}function _n(r){const e=r==null?void 0:r.meta;return!e||typeof e!="object"?{title:"",description:""}:{title:typeof e.title=="string"?e.title:"",description:typeof e.description=="string"?e.description:""}}function Kpe(r,e){return{...r,meta:{..._n(r),...e}}}function Jpe(r,e,t=180){const i=e.getBoundingClientRect(),n=r.getBoundingClientRect(),l=i.top-n.top+r.scrollTop-r.clientHeight/2+e.clientHeight/2,s=r.scrollTop,p=l-s;if(Math.abs(p)<1){window.dispatchEvent(new CustomEvent("pagebuilder:layout-change"));return}const d=performance.now(),c=b=>{const m=Math.min(1,(b-d)/t),g=1-(1-m)**3;if(r.scrollTop=s+p*g,window.dispatchEvent(new CustomEvent("pagebuilder:layout-change")),m<1){requestAnimationFrame(c);return}window.dispatchEvent(new CustomEvent("pagebuilder:layout-change"))};requestAnimationFrame(c)}const Ype=["en","zh-Hans","fr","ja","ru","es","pt","de","ar","hi","da","it"],as="pbx-full-width-component";class Nz{constructor(e){ge(this,"fontSizeRegex",/^(sm:|md:|lg:|xl:|2xl:)?pbx-text-(xs|sm|base|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl|8xl|9xl)$/);ge(this,"pageBuilderStateStore");ge(this,"getLocalStorageItemName");ge(this,"getApplyImageToSelection");ge(this,"getHyberlinkEnable");ge(this,"getComponents");ge(this,"getComponent");ge(this,"getElement");ge(this,"getComponentArrayAddMethod");ge(this,"NoneListernesTags");ge(this,"hasStartedEditing",!1);ge(this,"originalComponents");ge(this,"savedMountComponents",null);ge(this,"pendingMountComponents",null);ge(this,"globalStylesObserver",null);ge(this,"_pendingPageSettings",null);ge(this,"_lastKnownPageSettings",null);ge(this,"isPageBuilderMissingOnStart",!1);ge(this,"hasCompletedBuilderMount",!1);ge(this,"builderMountPromise",null);ge(this,"activeBuilderSessionToken",0);ge(this,"canvasClickCaptureListener",null);ge(this,"canvasDblClickCaptureListener",null);ge(this,"elementsWithListeners",new WeakMap);ge(this,"translate");ge(this,"handleMouseOver",(e,t)=>{if(this.pageBuilderStateStore.getInlineTipTapEditor)return;e.preventDefault(),e.stopPropagation();const i=document.querySelector("#pagebuilder");if(!i)return;const n=i.querySelector("[hovered]");n&&n.removeAttribute("hovered"),t.hasAttribute("selected")||t.setAttribute("hovered","")});ge(this,"handleMouseLeave",e=>{if(this.pageBuilderStateStore.getInlineTipTapEditor)return;e.preventDefault(),e.stopPropagation();const t=document.querySelector("#pagebuilder");if(!t)return;const i=t.querySelector("[hovered]");i&&i.removeAttribute("hovered")});ge(this,"addListenersToEditableElements",async()=>{const e=document.querySelector("#pagebuilder");e&&(await o.nextTick(),this.attachCanvasInlineEditListeners(e),e.querySelectorAll("section *").forEach(t=>{if(this.isEditableElement(t)){const i=t;if(this.elementsWithListeners.has(i)){const p=this.elementsWithListeners.get(i);p&&(i.removeEventListener("click",p.click),i.removeEventListener("dblclick",p.dblclick),i.removeEventListener("mouseover",p.mouseover),i.removeEventListener("mouseleave",p.mouseleave))}const n=p=>this.handleElementClick(p,i),a=p=>this.handleElementDoubleClick(p,i),l=p=>this.handleMouseOver(p,i),s=p=>this.handleMouseLeave(p);i.addEventListener("click",n),i.addEventListener("dblclick",a),i.addEventListener("mouseover",l),i.addEventListener("mouseleave",s),this.elementsWithListeners.set(i,{click:n,dblclick:a,mouseover:l,mouseleave:s})}}))});ge(this,"handleCanvasClickCapture",async e=>{if(!this.pageBuilderStateStore.getImageSettingsPanelOpen&&this.pageBuilderStateStore.getInlineTipTapEditor)if(!this.hasInlineTipTapElement())this.pageBuilderStateStore.setInlineTipTapEditor(!1);else{const t=document.querySelector("#pagebuilder [data-pbx-inline-tiptap]");if(t&&e.target instanceof Node&&!t.contains(e.target)){e.preventDefault(),e.stopPropagation();const i=this.findEditableElementFromEventTarget(e.target);this.finishActiveInlineTipTapEditorFromDom(i)}}});ge(this,"handleCanvasDoubleClickCapture",async e=>{await this.openInlineTipTapFromEvent(e)});ge(this,"handleElementClick",async(e,t)=>{if(!this.pageBuilderStateStore.getImageSettingsPanelOpen){if(this.pageBuilderStateStore.getInlineTipTapEditor){e.preventDefault(),e.stopPropagation();return}e.preventDefault(),e.stopPropagation(),await this.selectEditableElement(t)}});ge(this,"handleElementDoubleClick",async(e,t)=>{if(!this.pageBuilderStateStore.getImageSettingsPanelOpen&&!this.pageBuilderStateStore.getInlineTipTapEditor){if(!this.isValidTextElement(t)){e.stopPropagation();return}e.preventDefault(),e.stopPropagation(),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setInlineTipTapEditor(!0),await this.openInlineTipTapForElement(t),this.hasInlineTipTapElement()||this.pageBuilderStateStore.setInlineTipTapEditor(!1)}});ge(this,"handleAutoSave",async()=>{if(this.startEditing(),this.pageBuilderStateStore.getInlineTipTapEditor)return;const e=this.pageBuilderStateStore.getPageBuilderConfig;if(e&&e.userSettings&&typeof e.userSettings.autoSave=="boolean"&&e.userSettings.autoSave!==!1){if(this.pageBuilderStateStore.getIsSaving)return;try{this.pageBuilderStateStore.setIsSaving(!0),this.saveDomComponentsToLocalStorage(),await He(400)}catch(t){console.error("Error trying auto save.",t);const{showToast:i}=Xe(),{translate:n}=ne();i(n("Auto-save failed — please save manually"),"error")}finally{this.pageBuilderStateStore.setIsSaving(!1)}}if(e&&!e.userSettings)try{this.pageBuilderStateStore.setIsSaving(!0),this.saveDomComponentsToLocalStorage(),await He(400)}catch(t){console.error("Error trying saving.",t);const{showToast:i}=Xe(),{translate:n}=ne();i(n("Auto-save failed — please save manually"),"error")}finally{this.pageBuilderStateStore.setIsSaving(!1)}});ge(this,"handleManualSave",async e=>{this.pageBuilderStateStore.setIsSaving(!0),e||this.clearHtmlSelection(),this.startEditing(),this.saveDomComponentsToLocalStorage(),await He(300),this.pageBuilderStateStore.setIsSaving(!1)});ge(this,"ensureTextAreaHasContent",()=>{if(!this.getElement.value||typeof this.getElement.value.innerHTML!="string")return;const e=this.getElement.value,t=e.tagName;["DIV"].includes(t)&&e.tagName.toLowerCase()!=="img"&&e.textContent&&Number(e.textContent.length)===0?(e.classList.add("h-6"),e.classList.add("bg-red-50")):(e.classList.remove("h-6"),e.classList.remove("bg-red-50"))});ge(this,"handleTextInput",async e=>{var t;typeof((t=this.getElement.value)==null?void 0:t.innerHTML)=="string"&&(typeof this.getElement.value.innerHTML=="string"&&(await o.nextTick(),this.getElement.value.textContent=e,this.pageBuilderStateStore.setTextAreaVueModel(this.getElement.value.innerHTML),this.getElement.value.innerHTML=e),this.ensureTextAreaHasContent())});this.hasStartedEditing=!1,this.pageBuilderStateStore=e;const{translate:t}=ne();this.translate=t,this.getApplyImageToSelection=o.computed(()=>this.pageBuilderStateStore.getApplyImageToSelection),this.getLocalStorageItemName=o.computed(()=>this.pageBuilderStateStore.getLocalStorageItemName),this.getHyberlinkEnable=o.computed(()=>this.pageBuilderStateStore.getHyberlinkEnable),this.getComponents=o.computed(()=>this.pageBuilderStateStore.getComponents),this.getComponent=o.computed(()=>this.pageBuilderStateStore.getComponent),this.getElement=o.computed(()=>this.pageBuilderStateStore.getElement),this.getComponentArrayAddMethod=o.computed(()=>this.pageBuilderStateStore.getComponentArrayAddMethod),this.NoneListernesTags=["P","H1","H2","H3","H4","H5","H6","IFRAME","UL","OL","LI","EM","STRONG","B","A","SPAN","BLOCKQUOTE","BR","PRE","CODE","MARK","DEL","INS","U","FIGURE","FIGCAPTION"]}availableLanguage(){return Ype}changeLanguage(e){this.pageBuilderStateStore.setCurrentLanguage(e)}async clearHtmlSelection(){this.pageBuilderStateStore.getImageSettingsPanelOpen||(this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),await this.removeHoveredAndSelected())}ensureUpdateOrCreateConfig(e){if(!e.updateOrCreate||e.updateOrCreate&&ro(e.updateOrCreate)){const t={...e,updateOrCreate:{formType:"create",formName:"post"}};this.pageBuilderStateStore.setPageBuilderConfig(t);return}if(e.updateOrCreate&&typeof e.updateOrCreate.formType=="string"&&(e.updateOrCreate.formType==="create"||e.updateOrCreate.formType==="update")&&typeof e.updateOrCreate.formName!="string"||typeof e.updateOrCreate.formName=="string"&&e.updateOrCreate.formName.length===0){const t={...e,updateOrCreate:{formType:e.updateOrCreate.formType,formName:"post"}};this.pageBuilderStateStore.setPageBuilderConfig(t)}if(e.updateOrCreate&&typeof e.updateOrCreate.formType!="string"||typeof e.updateOrCreate.formType=="string"&&e.updateOrCreate.formType!=="create"&&e.updateOrCreate.formType!=="update"&&typeof e.updateOrCreate.formName=="string"&&e.updateOrCreate.formName.length!==0){const t={...e,updateOrCreate:{formType:"create",formName:e.updateOrCreate.formName}};this.pageBuilderStateStore.setPageBuilderConfig(t);return}if(e.updateOrCreate&&typeof e.updateOrCreate.formType=="string"&&e.updateOrCreate.formType!=="create"&&e.updateOrCreate.formType!=="update"&&typeof e.formName!="string"){const t={...e,updateOrCreate:{formType:"create",formName:"post"}};this.pageBuilderStateStore.setPageBuilderConfig(t)}}validateUserProvidedComponents(e){const t=this.pageBuilderStateStore.getPageBuilderConfig&&this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate&&this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate.formType;if(Array.isArray(e)&&e.length>=1&&t==="create"&&e)return{error:!0,warning:"You cannot set formType to create in your configuration while also passing a components data array to the Page Builder. Please set formType to update.",status:"validation_failed"};if(!Array.isArray(e))return{error:!0,reason:"Components data must be an array."};const i=e[0];if(i&&"html_code"in i&&typeof i.html_code!="string")return{error:!0,reason:"The 'html_code' property in the first object must be a string."};if(Array.isArray(e)&&e.length>=1&&(!i||!("html_code"in i)))return{error:!0,reason:"The first object in the array must include an 'html_code' key."}}ensureLanguage(e){const i=["en","zh-Hans","fr","ja","ru","es","pt","de","ar","hi","da"];let n=!1;const a=e.userSettings,l=a&&a.language;if((!a||ro(a)||!l||ro(l))&&(n=!0),n){const s=a?{...a}:{};s.language={default:"en",enable:i};const p={...e,userSettings:s};this.pageBuilderStateStore.setPageBuilderConfig(p);return}if(l&&Array.isArray(l.enable)&&l.default&&!l.enable.includes(l.default)){const s=[...l.enable,l.default],p={...e,userSettings:{...a,language:{...l,enable:s}}};this.pageBuilderStateStore.setPageBuilderConfig(p)}}validateConfig(e){var n;const t={updateOrCreate:{formType:"create",formName:"post"}};if(!e||e&&Object.keys(e).length===0&&e.constructor===Object){this.pageBuilderStateStore.setPageBuilderConfig(t);return}e&&Object.keys(e).length!==0&&e.constructor===Object&&(this.ensureUpdateOrCreateConfig(e),(!e.resourceData||typeof e.resourceData.title!="string"||!e.resourceData.title.trim())&&(!e.resourceData||typeof e.resourceData!="object"?e.resourceData={title:"Default Post"}:e.resourceData.title="Default Post"));let i=e;if(!i.userSettings||typeof i.userSettings!="object"||!("autoSave"in i.userSettings)){const a=i.userSettings?{...i.userSettings}:{};a.autoSave=((n=i.userSettings)==null?void 0:n.autoSave)!==!1;const l={...i,userSettings:a};this.pageBuilderStateStore.setPageBuilderConfig(l),i=l}this.ensureLanguage(i)}saveUserSettingsStorage(e){localStorage.setItem("userSettingsPageBuilder",JSON.stringify({userSettings:{lang:e}}))}async startBuilder(e,t){var d,c,b;const i=++this.activeBuilderSessionToken,n=document.querySelector("#pagebuilder"),a=!!(n!=null&&n.querySelector("section[data-componentid]"));a||(this.hasCompletedBuilderMount=!1,this.builderMountPromise=null,this.pendingMountComponents=null,this.isPageBuilderMissingOnStart=!1),typeof this.pageBuilderStateStore.setInlineTipTapEditor=="function"&&this.pageBuilderStateStore.setInlineTipTapEditor(!1),typeof this.pageBuilderStateStore.setShowModalTipTap=="function"&&this.pageBuilderStateStore.setShowModalTipTap(!1),typeof this.pageBuilderStateStore.setImageSettingsPanelOpen=="function"&&this.pageBuilderStateStore.setImageSettingsPanelOpen(!1),typeof this.pageBuilderStateStore.setElement=="function"&&this.pageBuilderStateStore.setElement(null),typeof this.pageBuilderStateStore.setComponent=="function"&&this.pageBuilderStateStore.setComponent(null),typeof this.pageBuilderStateStore.setIsLoadingGlobal=="function"&&this.pageBuilderStateStore.setIsLoadingGlobal(!1),this.pageBuilderStateStore.setBuilderStarted(!0);const l=document.querySelector("#pagebuilder"),s=this.readCurrentPageSettings();this.hasMeaningfulPageSettings(s)&&(this._lastKnownPageSettings=s);let p;try{this.originalComponents=t,this.pageBuilderStateStore.setPageBuilderConfig(e);const m=JSON.parse(localStorage.getItem("userSettingsPageBuilder")??"null");!(m!=null&&m.lang)&&((c=(d=e.userSettings)==null?void 0:d.language)!=null&&c.default)&&this.changeLanguage(e.userSettings.language.default),this.validateConfig(e),p=this.validateUserProvidedComponents(t);const g=Array.isArray(t)&&t.length>0?t:null,x=g!==null;if(this.updateLocalStorageItemName(),this.initializeHistory(),x&&(this.savedMountComponents=g),l||(this.isPageBuilderMissingOnStart=!0),x&&!l&&(this.pendingMountComponents=g),l&&(!t||Array.isArray(t))&&await this.completeBuilderInitializationWithSession(x?g:void 0,i),l&&await this.addListenersToEditableElements(),a&&l){const h=((b=this.pageBuilderStateStore.getPageBuilderConfig)==null?void 0:b.pageSettings)??null;if(this.hasMeaningfulPageSettings(h)){const f=this.convertStyleObjectToString(h.style),w=l.getAttribute("style")||"";f.trim()&&!w.trim()&&(await o.nextTick(),this.applyPageSettingsToPage(h))}}const u={message:"Page builder started successfully."};return p&&(u.validation=p),Array.isArray(t)&&t.length>=0&&(u.passedComponentsArray=t),u}catch(m){return console.error("Not able to start the Page Builder",m),{error:!0,reason:"Failed to start the Page Builder due to an unexpected error."}}}shouldCompleteBuilderMountOnMount(e){if(this.hasCompletedBuilderMount){const t=e??document.querySelector("#pagebuilder"),i=!!(t!=null&&t.querySelector("section[data-componentid]"));return t&&!i?(this.hasCompletedBuilderMount=!1,this.builderMountPromise=null,!0):!1}return this.isPageBuilderMissingOnStart||!!this.pendingMountComponents}async completeBuilderInitialization(e){return this.completeBuilderInitializationWithSession(e,this.activeBuilderSessionToken)}async completeBuilderInitializationWithSession(e,t=this.activeBuilderSessionToken){t===this.activeBuilderSessionToken&&(this.hasCompletedBuilderMount||(this.builderMountPromise||(this.builderMountPromise=this.runCompleteBuilderInitialization(e,t)),await this.builderMountPromise))}async runCompleteBuilderInitialization(e,t=this.activeBuilderSessionToken){if(t!==this.activeBuilderSessionToken||(await He(400),t!==this.activeBuilderSessionToken))return;this.pageBuilderStateStore.setIsLoadingGlobal(!0),this.deleteAllComponentsFromDOM();const i=this.pageBuilderStateStore.getPageBuilderConfig,n=i&&i.updateOrCreate&&i.updateOrCreate.formType,a=this.getSavedPageHtml();if(await this.clearHtmlSelection(),t===this.activeBuilderSessionToken&&(n==="update"||n==="create")){if(!this.pendingMountComponents){if(!e&&this.isPageBuilderMissingOnStart&&a){await this.completeMountProcess(a,void 0,t);return}if(e&&!a){const l=this.renderComponentsToHtml(e);await this.completeMountProcess(l,!0,t),this.saveDomComponentsToLocalStorage();return}if(e&&a){const l=this.renderComponentsToHtml(e);await this.completeMountProcess(l,!0,t),await He(500),this.pageBuilderStateStore.setHasLocalDraftForUpdate(!0);return}if(!e&&a&&!this.savedMountComponents){await this.completeMountProcess(a,void 0,t);return}if(!e&&this.savedMountComponents&&a){const l=this.renderComponentsToHtml(this.savedMountComponents);await this.completeMountProcess(l,void 0,t);return}if(!e&&!a&&this.isPageBuilderMissingOnStart){const l=this.renderComponentsToHtml([]);await this.completeMountProcess(l,void 0,t);return}if(!this.isPageBuilderMissingOnStart&&!a&&!e){const l=this.renderComponentsToHtml([]);await this.completeMountProcess(l,void 0,t);return}}if(this.pendingMountComponents){if(a&&this.isPageBuilderMissingOnStart){const l=this.renderComponentsToHtml(this.pendingMountComponents);await this.completeMountProcess(l,!0,t),await He(500),this.pageBuilderStateStore.setHasLocalDraftForUpdate(!0),this.pendingMountComponents=null;return}if(!a&&e&&this.isPageBuilderMissingOnStart){const l=this.renderComponentsToHtml(this.pendingMountComponents);await this.completeMountProcess(l,!0,t),this.saveDomComponentsToLocalStorage();return}if(!e&&!a&&this.isPageBuilderMissingOnStart){const l=this.renderComponentsToHtml(this.pendingMountComponents);await this.completeMountProcess(l,!0,t),this.saveDomComponentsToLocalStorage();return}}}}renderComponentsToHtml(e){return!e||Array.isArray(e)&&e.length===0?'<div id="pagebuilder" class="pbx-text-black pbx-font-sans"></div>':e.map(i=>i.html_code).join(`
|
|
414
|
+
`)}async completeMountProcess(e,t,i=this.activeBuilderSessionToken){if(i!==this.activeBuilderSessionToken){this.pageBuilderStateStore.setIsLoadingGlobal(!1);return}if(await this.mountComponentsToDOM(e,t),i!==this.activeBuilderSessionToken){this.pageBuilderStateStore.setIsLoadingGlobal(!1);return}this.deleteOldPageBuilderLocalStorage(),this.pageBuilderStateStore.setIsRestoring(!1),this.hasCompletedBuilderMount=!0,this.pageBuilderStateStore.setIsLoadingGlobal(!1)}applyElementClassChanges(e,t,i){const n=this.getElement.value;if(!n)return;const a=t===ht.roundedGlobal||t===ht.roundedTopLeft||t===ht.roundedTopRight||t===ht.roundedBottomLeft||t===ht.roundedBottomRight,l=(()=>{if(!a||n.tagName==="A")return null;const b=Array.from(n.querySelectorAll("a")).filter(g=>g instanceof HTMLAnchorElement),m=b.find(g=>t.some(x=>x!=="none"&&g.classList.contains(x)));return m||(n.id==="linktree"||n.classList.contains("pbx-product-card-cta")?b[0]??null:null)})(),s=a&&n.tagName==="IMG"?n.closest(".pbx-product-card-image"):null,p=l instanceof HTMLElement?l:s instanceof HTMLElement?s:n,d=t.find(b=>p.classList.contains(b))||(l instanceof HTMLElement?t.find(b=>n.classList.contains(b)):void 0);let c=d||"none";if(e===void 0){if(typeof i=="string"&&i.length>2&&i in this.pageBuilderStateStore&&typeof this.pageBuilderStateStore[i]=="function"){const b=this.pageBuilderStateStore[i];b(c)}return d}if(typeof e=="string"&&e!=="none"?(c&&(p.classList.contains(c)&&p.classList.remove(c),l instanceof HTMLElement&&n.classList.contains(c)&&n.classList.remove(c)),t.forEach(b=>{b!=="none"&&["lg","md","sm","xl","2xl"].forEach(m=>{const g=`${m}:${b}`;p.classList.contains(g)&&p.classList.remove(g),l instanceof HTMLElement&&n.classList.contains(g)&&n.classList.remove(g)})}),p.classList.add(e),c=e):typeof e=="string"&&e==="none"&&c&&(p.classList.remove(c),l instanceof HTMLElement&&n.classList.remove(c),t.forEach(b=>{b!=="none"&&["lg","md","sm","xl","2xl"].forEach(m=>{const g=`${m}:${b}`;p.classList.contains(g)&&p.classList.remove(g),l instanceof HTMLElement&&n.classList.contains(g)&&n.classList.remove(g)})}),c=e),typeof i=="string"&&i.length>2&&i in this.pageBuilderStateStore&&typeof this.pageBuilderStateStore[i]=="function"){const b=this.pageBuilderStateStore[i];b(c),this.pageBuilderStateStore.getInlineTipTapEditor||this.pageBuilderStateStore.setElement(n)}return d}removeElementClassesFromArray(e,t){t.forEach(i=>{i!=="none"&&e.classList.contains(i)&&e.classList.remove(i)})}async clearClassesFromPage(){const e=document.querySelector("#pagebuilder");e==null||e.removeAttribute("class"),this.initializeElementStyles(),await o.nextTick()}async clearInlineStylesFromPage(){const e=document.querySelector("#pagebuilder");e==null||e.removeAttribute("style"),this.initializeElementStyles(),await o.nextTick()}async globalPageStyles(){const e=document.querySelector("#pagebuilder");e&&(await this.clearHtmlSelection(),this.pageBuilderStateStore.setElement(e),e.setAttribute("data-global-selected","true"),this.globalStylesObserver&&this.globalStylesObserver.disconnect(),this.globalStylesObserver=new MutationObserver(()=>{const t=this.readCurrentPageSettings();t&&(this._lastKnownPageSettings=t)}),this.globalStylesObserver.observe(e,{attributes:!0,attributeFilter:["class","style","data-meta-title","data-meta-description"]}),await o.nextTick())}stopGlobalStylesSync(){this.globalStylesObserver&&(this.globalStylesObserver.disconnect(),this.globalStylesObserver=null)}handleFontWeight(e){this.applyElementClassChanges(e,ar.fontWeight,"setFontWeight")}handleFontSizeBase(e){this.applyElementClassChanges(e,mi.fontBase,"setFontBase")}handleFontSizeDesktop(e){const t=this.getElement.value;if(!t)return;const i={"pbx-text-9xl":"pbx-text-6xl","pbx-text-8xl":"pbx-text-5xl","pbx-text-7xl":"pbx-text-4xl","pbx-text-6xl":"pbx-text-3xl","pbx-text-5xl":"pbx-text-3xl","pbx-text-4xl":"pbx-text-2xl","pbx-text-3xl":"pbx-text-xl","pbx-text-2xl":"pbx-text-lg","pbx-text-xl":"pbx-text-base","pbx-text-lg":"pbx-text-sm","pbx-text-base":"pbx-text-xs","pbx-text-sm":"pbx-text-xs","pbx-text-xs":"pbx-text-xs"};if(e){Array.from(t.classList).forEach(p=>{this.fontSizeRegex.test(p)&&t.classList.remove(p)});const a=e.replace(/^lg:/,""),l=i[a]||a,s=`lg:${a}`;l!==a?t.classList.add(l,s):t.classList.add(l)}const n=mi.fontDesktop.find(a=>t.classList.contains(a));e||this.pageBuilderStateStore.setFontDesktop("none"),n&&!e&&this.pageBuilderStateStore.setFontDesktop(n)}ensureImagesHaveAltText(e){e.tagName==="IMG"&&!e.hasAttribute("alt")&&e.setAttribute("alt","image"),e.querySelectorAll("img:not([alt])").forEach(t=>{t.setAttribute("alt","image")})}applyHelperCSSToElements(e){if(this.wrapElementInDivIfExcluded(e),this.ensureImagesHaveAltText(e),e.tagName==="DIV"&&e.children.length===1&&["H1","H2","H3","H4","H5","H6"].includes(e.children[0].tagName)){const t=e.children[0];Array.from(e.classList).some(n=>this.fontSizeRegex.test(n))||(t.tagName==="H2"&&e.classList.add("pbx-text-3xl","lg:pbx-text-4xl","pbx-font-medium"),t.tagName==="H3"&&e.classList.add("pbx-text-2xl","lg:pbx-text-3xl","pbx-font-medium"),t.tagName==="H4"&&e.classList.add("pbx-text-xl","lg:pbx-text-2xl","pbx-font-medium"),t.tagName==="H5"&&e.classList.add("pbx-text-lg","lg:pbx-text-xl","pbx-font-medium"),t.tagName==="H6"&&e.classList.add("pbx-text-base","lg:pbx-text-base","pbx-font-medium"))}}async toggleTipTapModal(e){this.pageBuilderStateStore.setShowModalTipTap(e),await o.nextTick(),await this.addListenersToEditableElements(),e||await this.handleAutoSave()}async toggleInlineTipTapEditor(e){e&&!this.isValidTextElement(this.getElement.value)||(this.pageBuilderStateStore.setInlineTipTapEditor(e),await o.nextTick(),await this.addListenersToEditableElements(),e||await this.handleAutoSave())}async finishInlineTipTapEditor(e,t=!0){if(this.pageBuilderStateStore.setInlineTipTapEditor(!1),await o.nextTick(),e){const i=document.querySelector("#pagebuilder");i==null||i.querySelectorAll("[hovered]").forEach(n=>n.removeAttribute("hovered")),i==null||i.querySelectorAll("[selected]").forEach(n=>{n!==e&&n.removeAttribute("selected")}),e.removeAttribute("data-pbx-inline-tiptap"),e.setAttribute("selected",""),this.pageBuilderStateStore.setElement(e)}await o.nextTick(),await this.addListenersToEditableElements(),await this.initializeElementStyles(),await this.addListenersToEditableElements(),t&&await this.handleAutoSave()}wrapElementInDivIfExcluded(e){var t;if(e&&this.NoneListernesTags.includes(e.tagName)&&(e.previousElementSibling&&e.previousElementSibling.tagName==="IMG"||e.nextElementSibling&&e.nextElementSibling.tagName==="IMG")){const i=document.createElement("div");(t=e.parentNode)==null||t.insertBefore(i,e),i.appendChild(e)}}isEditableElement(e){return!e||e.tagName!=="IMG"&&e.closest("[data-pb-no-select]")?!1:!this.NoneListernesTags.includes(e.tagName)}getSelectedComponentSection(){const e=this.getElement.value;return!e||!(e instanceof HTMLElement)?null:e.closest("section")}isSelectedComponentTopElement(){const e=this.getElement.value,t=this.getSelectedComponentSection();return!e||!t?!1:e.parentElement===t}selectedComponentIsFullWidth(){var e;return((e=this.getSelectedComponentSection())==null?void 0:e.classList.contains(as))??!1}async setSelectedComponentFullWidth(e){const t=this.getSelectedComponentSection();t&&(t.classList.toggle(as,e),await this.handleAutoSave())}isSelectedProductSection(){const e=this.getSelectedComponentSection();return(e==null?void 0:e.getAttribute("data-pbx-product-section"))==="true"}getSelectedProductSectionOptions(){const e=this.getSelectedComponentSection();return!e||!this.isSelectedProductSection()?{...Xt}:hJ(e)}getSelectedProductSectionContentAvailability(){const e=this.getSelectedComponentSection();return!e||!this.isSelectedProductSection()?{hasPrices:!1,hasImages:!1,hasButtons:!1,hasLinks:!1}:{hasPrices:bJ(e),hasImages:cJ(e),hasButtons:mJ(e),hasLinks:gJ(e)}}async updateSelectedProductSection(e){const t=this.getSelectedComponentSection();!t||!this.isSelectedProductSection()||(wJ(t,e),await this.handleAutoSave())}isGlobalFullWidth(){const e=document.querySelector("#pagebuilder");return(e==null?void 0:e.classList.contains(as))??!1}async setGlobalFullWidth(e){const t=document.querySelector("#pagebuilder");t==null||t.classList.toggle(as,e),this.saveDomComponentsToLocalStorage(),await this.handleAutoSave()}isSelectedElementImage(){var e;return((e=this.getElement.value)==null?void 0:e.tagName)==="IMG"}setImageSettingsModalOpen(e){this.pageBuilderStateStore.setImageSettingsPanelOpen(e)}isImageSettingsModalOpen(){return this.pageBuilderStateStore.getImageSettingsPanelOpen}findImageAspectClass(e){const t=ec.aspectRatio.find(n=>n!=="none"&&e.classList.contains(n));return t||(Array.from(e.classList).find(n=>n.startsWith("pbx-aspect-"))??null)}removeImageAspectClasses(e){Array.from(e.classList).forEach(t=>{t.startsWith("pbx-aspect-")&&e.classList.remove(t)})}handleImageObjectFit(e){this.applyElementClassChanges(e,ec.objectFit,"setImageObjectFit")}handleImageObjectPosition(e){this.applyElementClassChanges(e,ec.objectPosition,"setImageObjectPosition")}handleImageAspectRatio(e){const t=this.getElement.value;if(!(!t||t.tagName!=="IMG")){if(e===void 0){const i=this.findImageAspectClass(t);this.pageBuilderStateStore.setImageAspectRatio(i||"none");return}this.removeImageAspectClasses(t),e!=="none"&&t.classList.add(e),this.pageBuilderStateStore.setImageAspectRatio(e),this.pageBuilderStateStore.setElement(t)}}async handleImageAltText(e){const t=this.getElement.value;if(!t||t.tagName!=="IMG"||e===void 0)return;const i=e.trim();i?t.setAttribute("alt",i):t.removeAttribute("alt"),this.pageBuilderStateStore.setElement(t),await this.handleAutoSave()}getSelectedImageAltText(){const e=this.getElement.value;return!e||e.tagName!=="IMG"?"":e.getAttribute("alt")||""}attachCanvasInlineEditListeners(e){this.canvasClickCaptureListener&&e.removeEventListener("click",this.canvasClickCaptureListener,!0),this.canvasDblClickCaptureListener&&e.removeEventListener("dblclick",this.canvasDblClickCaptureListener,!0),this.canvasClickCaptureListener=t=>{this.handleCanvasClickCapture(t)},this.canvasDblClickCaptureListener=t=>{this.handleCanvasDoubleClickCapture(t)},e.addEventListener("click",this.canvasClickCaptureListener,!0),e.addEventListener("dblclick",this.canvasDblClickCaptureListener,!0)}findEditableElementFromEventTarget(e){if(!(e instanceof Element))return null;const t=document.querySelector("#pagebuilder");let i=e;for(;i&&i!==t;){if(i instanceof HTMLElement&&this.isEditableElement(i))return i;i=i.parentElement}return null}async openInlineTipTapFromEvent(e){if(this.pageBuilderStateStore.getImageSettingsPanelOpen||(this.pageBuilderStateStore.getInlineTipTapEditor&&!this.hasInlineTipTapElement()&&this.pageBuilderStateStore.setInlineTipTapEditor(!1),this.pageBuilderStateStore.getInlineTipTapEditor))return;const t=this.findEditableElementFromEventTarget(e.target);if(!t||!this.isValidTextElement(t)){e.target instanceof Element&&(e.target.tagName==="IMG"||e.target.closest("img"))&&e.stopPropagation();return}e.preventDefault(),e.stopPropagation(),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setInlineTipTapEditor(!0),await this.openInlineTipTapForElement(t)}hasInlineTipTapElement(){return!!document.querySelector("#pagebuilder [data-pbx-inline-tiptap]")}async finishActiveInlineTipTapEditorFromDom(e=null){const t=document.querySelector("#pagebuilder [data-pbx-inline-tiptap]");if(!t){await this.toggleInlineTipTapEditor(!1);return}const i=t.querySelector(".ProseMirror"),n=t.getAttribute("data-pbx-inline-original-html")??"",a=_d((i==null?void 0:i.innerHTML)??t.innerHTML,n);t.innerHTML=a,t.removeAttribute("data-pbx-inline-tiptap"),t.removeAttribute("data-pbx-inline-original-html"),this.pageBuilderStateStore.setTextAreaVueModel(a),this.pageBuilderStateStore.setElement(t),await this.finishInlineTipTapEditor(t,!1),e&&e!==t&&await this.selectEditableElement(e,!1),this.handleAutoSave()}async openInlineTipTapForElement(e){this.isValidTextElement(e)&&(await this.selectEditableElement(e,!1),await o.nextTick(),await this.addListenersToEditableElements())}async selectEditableElement(e,t=!0){const i=document.querySelector("#pagebuilder");if(!i)return;this.pageBuilderStateStore.setMenuRight(!0);const n=i.querySelector("[selected]");n&&n.removeAttribute("selected"),e.removeAttribute("hovered"),e.setAttribute("selected",""),this.pageBuilderStateStore.setElement(e),await o.nextTick(),await this.initializeElementStyles(),t&&await this.handleAutoSave()}getHistoryBaseKey(){return this.getLocalStorageItemName.value}initializeHistory(){const e=this.getHistoryBaseKey();if(e){const t=ki.getHistory(e);this.pageBuilderStateStore.setHistoryIndex(t.length-1),this.pageBuilderStateStore.setHistoryLength(t.length)}}cloneCompObjForDOMInsertion(e){const t={...e},i=document.querySelector("#page-builder-wrapper");i&&this.getComponentArrayAddMethod.value==="unshift"&&i.scrollTo({top:0,behavior:"smooth"});const a=new DOMParser().parseFromString(t.html_code||"","text/html");a.querySelectorAll("*").forEach(p=>{this.applyHelperCSSToElements(p)});const s=a.querySelector("section");return s&&(s.querySelectorAll("[class]").forEach(p=>{p.setAttribute("class",this.addTailwindPrefixToClasses(p.getAttribute("class")||"","pbx-"))}),s.dataset.componentid=Bz(),t.title&&s.setAttribute("data-component-title",t.title),t.id=s.dataset.componentid,t.html_code=s.outerHTML),t}async removeHoveredAndSelected(){const e=document.querySelector("#pagebuilder");if(!e)return;const t=e.querySelector("[hovered]");t&&t.removeAttribute("hovered");const i=e.querySelector("[selected]");i&&i.removeAttribute("selected")}async syncCurrentClasses(){var t;const e=Array.from(((t=this.getElement.value)==null?void 0:t.classList)||[]);this.pageBuilderStateStore.setCurrentClasses(e)}async syncCurrentStyles(){var t;const e=(t=this.getElement.value)==null?void 0:t.getAttribute("style");if(e){const i=this.parseStyleString(e);this.pageBuilderStateStore.setCurrentStyles(i)}else this.pageBuilderStateStore.setCurrentStyles({})}handleAddClasses(e){var t,i;if(typeof e=="string"&&e.trim()!==""&&!e.includes(" ")&&!((t=this.getElement.value)!=null&&t.classList.contains("pbx-"+e.trim()))){const n=e.trim(),a=n.startsWith("pbx-")?n:"pbx-"+n;(i=this.getElement.value)==null||i.classList.add(a),this.pageBuilderStateStore.setElement(this.getElement.value),this.pageBuilderStateStore.setClass(a)}}handleAddStyle(e,t){const i=this.getElement.value;!i||!e||!t||(i.style.setProperty(e,t),this.pageBuilderStateStore.setElement(i))}handleRemoveStyle(e){const t=this.getElement.value;!t||!e||(t.style.removeProperty(e),this.pageBuilderStateStore.setElement(t))}handleFontFamily(e){var i;const t=sD((i=this.pageBuilderStateStore.getPageBuilderConfig)==null?void 0:i.userSettings);this.applyElementClassChanges(e,t,"setFontFamily")}handleFontStyle(e){this.applyElementClassChanges(e,ar.fontStyle,"setFontStyle")}purgeConflictingClasses(e){const t=this.getElement.value;t&&e.forEach(i=>{i.forEach(n=>{n!=="none"&&t.classList.contains(n)&&t.classList.remove(n)})})}handleVerticalPadding(e){e!==void 0&&this.purgeConflictingClasses([be.topPadding,be.bottomPadding]),this.applyElementClassChanges(e,be.verticalPadding,"setFontVerticalPadding")}handleHorizontalPadding(e){e!==void 0&&this.purgeConflictingClasses([be.leftPadding,be.rightPadding]),this.applyElementClassChanges(e,be.horizontalPadding,"setFontHorizontalPadding")}handleTopPadding(e){e!==void 0&&this.purgeConflictingClasses([be.verticalPadding]),this.applyElementClassChanges(e,be.topPadding,"setFontTopPadding")}handleRightPadding(e){e!==void 0&&this.purgeConflictingClasses([be.horizontalPadding]),this.applyElementClassChanges(e,be.rightPadding,"setFontRightPadding")}handleBottomPadding(e){e!==void 0&&this.purgeConflictingClasses([be.verticalPadding]),this.applyElementClassChanges(e,be.bottomPadding,"setFontBottomPadding")}handleLeftPadding(e){e!==void 0&&this.purgeConflictingClasses([be.horizontalPadding]),this.applyElementClassChanges(e,be.leftPadding,"setFontLeftPadding")}handleVerticalMargin(e){e!==void 0&&this.purgeConflictingClasses([be.topMargin,be.bottomMargin]),this.applyElementClassChanges(e,be.verticalMargin,"setFontVerticalMargin")}handleHorizontalMargin(e){e!==void 0&&this.purgeConflictingClasses([be.leftMargin,be.rightMargin]),this.applyElementClassChanges(e,be.horizontalMargin,"setFontHorizontalMargin")}handleTopMargin(e){e!==void 0&&this.purgeConflictingClasses([be.verticalMargin]),this.applyElementClassChanges(e,be.topMargin,"setFontTopMargin")}handleRightMargin(e){e!==void 0&&this.purgeConflictingClasses([be.horizontalMargin]),this.applyElementClassChanges(e,be.rightMargin,"setFontRightMargin")}handleBottomMargin(e){e!==void 0&&this.purgeConflictingClasses([be.verticalMargin]),this.applyElementClassChanges(e,be.bottomMargin,"setFontBottomMargin")}handleLeftMargin(e){e!==void 0&&this.purgeConflictingClasses([be.horizontalMargin]),this.applyElementClassChanges(e,be.leftMargin,"setFontLeftMargin")}handleBorderStyle(e){this.applyElementClassChanges(e,vi.borderStyle,"setBorderStyle")}handleBorderWidth(e){this.applyElementClassChanges(e,vi.borderWidth,"setBorderWidth")}handleBorderColor(e){this.applyElementClassChanges(e,vi.borderColor,"setBorderColor")}handleBackgroundColor(e){var t,i;if(e===void 0){const n=(t=this.getElement.value)==null?void 0:t.style.getPropertyValue("background-color");if(n){this.pageBuilderStateStore.setBackgroundColor(`custom:${Yt(n)??n}`);return}}else(i=this.getElement.value)==null||i.style.removeProperty("background-color");this.applyElementClassChanges(e,hi.backgroundColorVariables,"setBackgroundColor")}handleCustomBackgroundColor(e){const t=this.getElement.value;!t||!e||(this.removeElementClassesFromArray(t,hi.backgroundColorVariables),t.style.setProperty("background-color",e),this.pageBuilderStateStore.setBackgroundColor(`custom:${e}`),this.pageBuilderStateStore.setElement(t))}handleTextColor(e){var t,i;if(e===void 0){const n=(t=this.getElement.value)==null?void 0:t.style.getPropertyValue("color");if(n){this.pageBuilderStateStore.setTextColor(`custom:${Yt(n)??n}`);return}}else(i=this.getElement.value)==null||i.style.removeProperty("color");this.applyElementClassChanges(e,hi.textColorVariables,"setTextColor")}handleCustomTextColor(e){const t=this.getElement.value;!t||!e||(this.removeElementClassesFromArray(t,hi.textColorVariables),t.style.setProperty("color",e),this.pageBuilderStateStore.setTextColor(`custom:${e}`),this.pageBuilderStateStore.setElement(t))}handleBorderRadiusGlobal(e){this.applyElementClassChanges(e,ht.roundedGlobal,"setBorderRadiusGlobal")}handleBorderRadiusTopLeft(e){this.applyElementClassChanges(e,ht.roundedTopLeft,"setBorderRadiusTopLeft")}handleBorderRadiusTopRight(e){this.applyElementClassChanges(e,ht.roundedTopRight,"setBorderRadiusTopRight")}handleBorderRadiusBottomleft(e){this.applyElementClassChanges(e,ht.roundedBottomLeft,"setBorderRadiusBottomleft")}handleBorderRadiusBottomRight(e){this.applyElementClassChanges(e,ht.roundedBottomRight,"setBorderRadiusBottomRight")}handleFontSizeTablet(e){this.applyElementClassChanges(e,mi.fontTablet,"setFontTablet")}handleFontSizeMobile(e){this.applyElementClassChanges(e,mi.fontMobile,"setFontMobile")}handleBackgroundOpacity(e){this.applyElementClassChanges(e,is.backgroundOpacities,"setBackgroundOpacity")}handleOpacity(e){this.applyElementClassChanges(e,is.opacities,"setOpacity")}deleteAllComponentsFromDOM(){this.pageBuilderStateStore.setComponents([]);const e=document.querySelector("#pagebuilder");e&&e.querySelectorAll("section[data-componentid]").forEach(t=>t.remove())}async undo(){this.pageBuilderStateStore.setIsLoadingGlobal(!0),await He(300);const e=this.getHistoryBaseKey();if(!e)return;const t=ki.getHistory(e);if(t.length>1&&this.pageBuilderStateStore.getHistoryIndex>0){this.pageBuilderStateStore.setHistoryIndex(this.pageBuilderStateStore.getHistoryIndex-1);const i=t[this.pageBuilderStateStore.getHistoryIndex],n=this.renderComponentsToHtml(i.components);await this.mountComponentsToDOM(n,!1,i.pageSettings)}this.pageBuilderStateStore.setIsLoadingGlobal(!1)}async redo(){this.pageBuilderStateStore.setIsLoadingGlobal(!0),await He(300);const e=this.getHistoryBaseKey();if(!e)return;const t=ki.getHistory(e);if(t.length>0&&this.pageBuilderStateStore.getHistoryIndex<t.length-1){this.pageBuilderStateStore.setHistoryIndex(this.pageBuilderStateStore.getHistoryIndex+1);const i=t[this.pageBuilderStateStore.getHistoryIndex],n=this.renderComponentsToHtml(i.components);await this.mountComponentsToDOM(n,!1,i.pageSettings)}this.pageBuilderStateStore.setIsLoadingGlobal(!1)}hasVisibleContent(e){if(!e)return!1;if(e.querySelector("img, video, iframe, input, button, a, h1, h2, h3, h4, h5, h6, p, li, blockquote, pre, code, table"))return!0;const i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null);for(;i.nextNode();)if(i.currentNode.nodeValue&&i.currentNode.nodeValue.trim()!=="")return!0;return!1}isSectionEmpty(e){return!this.hasVisibleContent(e)}findReverseableContainer(){const e=this.getSelectedComponentSection();if(!e)return null;const t=['[class*="flex-row"]','[class*="pbx-flex-row"]','[class*="grid-cols-2"]','[class*="pbx-grid-cols-2"]'];for(const i of t){const n=Array.from(e.querySelectorAll(i));for(const a of n)if(Array.from(a.children).filter(s=>s instanceof HTMLElement).length===2)return a}return null}async reverseComponentLayout(){const e=this.findReverseableContainer();if(!e)return;const t=Array.from(e.children);t.length===2&&(e.insertBefore(t[1],t[0]),await this.syncDomToStoreOnly(),await o.nextTick(),this.saveDomComponentsToLocalStorage(),await this.handleAutoSave(),this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),await this.clearHtmlSelection(),await o.nextTick(),await this.addListenersToEditableElements())}async duplicateComponent(){await this.syncDomToStoreOnly(),await o.nextTick();const e=this.pageBuilderStateStore.getComponents,t=this.getComponent.value;if(!e||!t)return;const i=e.findIndex(l=>l.id===t.id);if(i===-1)return;const n=this.cloneCompObjForDOMInsertion(e[i]),a=[...e.slice(0,i+1),n,...e.slice(i+1)];await this.setComponentsPreservingPageSettings(a),await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setComponent(n),this.pageBuilderStateStore.setElement(null),await this.handleAutoSave()}async deleteComponentFromDOM(){await this.syncDomToStoreOnly(),await o.nextTick();const e=this.pageBuilderStateStore.getComponents;if(!e)return;const t=e.findIndex(n=>this.getComponent.value?n.id===this.getComponent.value.id:!1);if(t===-1)return;const i=[...e.slice(0,t),...e.slice(t+1)];await this.setComponentsPreservingPageSettings(i),await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),await this.handleAutoSave()}async duplicateElementInDOM(){const e=this.getElement.value;if(!e||!e.parentNode)return;e.removeAttribute("selected");const t=e.cloneNode(!0);e.parentNode.insertBefore(t,e.nextSibling),await this.syncDomToStoreOnly(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),this.saveDomComponentsToLocalStorage(),await this.handleAutoSave()}async deleteElementFromDOM(){const e=this.getElement.value;if(!e)return;if(e.removeAttribute("selected"),!e.parentNode){this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null);return}const t=e.closest("section");e.tagName==="SECTION"?await this.deleteComponentFromDOM():(e.remove(),t&&this.isSectionEmpty(t)&&t.remove(),await this.syncDomToStoreOnly(),this.saveDomComponentsToLocalStorage()),this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),await this.clearHtmlSelection(),await o.nextTick(),await this.addListenersToEditableElements()}handleRemoveClasses(e){var t,i;(t=this.getElement.value)!=null&&t.classList.contains(e)&&((i=this.getElement.value)==null||i.classList.remove(e),this.pageBuilderStateStore.setElement(this.getElement.value),this.pageBuilderStateStore.removeClass(e))}async reorderComponent(e){if(!this.getComponents.value||!this.getComponent.value||this.getComponents.value.length<=1)return;const t=this.getComponent.value,i=this.getComponents.value.findIndex(s=>s.id===t.id);if(i===-1)return;const n=i+e;if(n<0||n>=this.getComponents.value.length)return;this.getComponents.value.splice(i,1),this.getComponents.value.splice(n,0,t),await o.nextTick();const a=document.querySelector("#page-builder-wrapper"),l=a==null?void 0:a.querySelector(`section[data-componentid="${t.id}"]`);if(l){l.classList.add("pbx-reorder-highlight");const s=l.previousElementSibling,p=l.nextElementSibling;s&&s.tagName==="SECTION"&&s.classList.add("pbx-sibling-highlight"),p&&p.tagName==="SECTION"&&p.classList.add("pbx-sibling-highlight"),a&&(Jpe(a,l),window.setTimeout(()=>{l.classList.remove("pbx-reorder-highlight"),s&&s.tagName==="SECTION"&&s.classList.remove("pbx-sibling-highlight"),p&&p.tagName==="SECTION"&&p.classList.remove("pbx-sibling-highlight")},280))}}canMoveUp(){return!this.getComponents.value||!this.getComponent.value?!1:this.getComponents.value.findIndex(t=>{var i;return t.id===((i=this.getComponent.value)==null?void 0:i.id)})>0}canMoveDown(){return!this.getComponents.value||!this.getComponent.value?!1:this.getComponents.value.findIndex(t=>{var i;return t.id===((i=this.getComponent.value)==null?void 0:i.id)})<this.getComponents.value.length-1}ElOrFirstChildIsIframe(){var e,t,i;return((e=this.getElement.value)==null?void 0:e.tagName)==="IFRAME"||((i=(t=this.getElement.value)==null?void 0:t.firstElementChild)==null?void 0:i.tagName)==="IFRAME"}isValidTextElement(e){var n;if(!e||e.hasAttribute("data-pb-no-inline-text")||e.tagName==="IMG"||((n=e.firstElementChild)==null?void 0:n.tagName)==="IFRAME"||e.querySelector("img")||e.classList.contains("pbx-product-card-image")||e.classList.contains("product-card-image"))return!1;const t=e.children;if(!t.length)return!1;let i=!1;return Array.from(t).forEach(a=>{a.tagName==="IMG"||a.tagName==="DIV"?i=!1:i=!0}),i}isSelectedElementValidText(){return this.isValidTextElement(this.getElement.value)}previewCurrentDesign(){this.pageBuilderStateStore.setElement(null);const e=document.querySelector("#pagebuilder");if(e&&e){const t=vz(e,this.pageBuilderStateStore.getPageBuilderConfig?this.pageBuilderStateStore.getPageBuilderConfig:void 0),i=JSON.stringify([t]);this.pageBuilderStateStore.setCurrentLayoutPreview(i)}}sanitizeForLocalStorage(e){return e.trim().toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}cloneAndRemoveSelectionAttributes(e){const t=e.cloneNode(!0);return t.querySelectorAll("[hovered]").forEach(i=>i.removeAttribute("hovered")),t.querySelectorAll("[selected]").forEach(i=>i.removeAttribute("selected")),t.removeAttribute("hovered"),t.removeAttribute("selected"),t}async syncDomToStoreOnly(){const e=document.querySelector("#pagebuilder");if(!e)return;const t=[];e.querySelectorAll("section[data-componentid]").forEach(i=>{const n=this.cloneAndRemoveSelectionAttributes(i);t.push({html_code:n.outerHTML,id:n.getAttribute("data-componentid"),title:n.getAttribute("data-component-title")||"Untitled Component"})}),await this.setComponentsPreservingPageSettings(t)}async generateHtmlFromComponents(){await this.syncDomToStoreOnly(),await o.nextTick();const e=this.pageBuilderStateStore.getComponents;return Array.isArray(e)?(await o.nextTick(),await this.addListenersToEditableElements(),e.map(t=>t.html_code.replace(/data-componentid="[^"]*"/g,"").replace(/\s{2,}/g," ")).join(`
|
|
415
|
+
`)):""}async generateFullPageHtml(){await this.syncDomToStoreOnly(),await o.nextTick();const e=this.pageBuilderStateStore.getComponents;if(!Array.isArray(e))return"";await o.nextTick(),await this.addListenersToEditableElements();const t=this.readCurrentPageSettings()??this._lastKnownPageSettings,i=document.createElement("div");if(i.setAttribute("id","pagebuilder"),t!=null&&t.classes&&i.setAttribute("class",t.classes),t!=null&&t.style){const n=typeof t.style=="string"?t.style:this.convertStyleObjectToString(t.style)||"";n&&i.setAttribute("style",n)}return ic(i,_n(t)),e.forEach(n=>{const s=new DOMParser().parseFromString(n.html_code,"text/html").querySelector("section");if(s){s.removeAttribute("data-componentid"),i.appendChild(document.importNode(s,!0));return}i.insertAdjacentHTML("beforeend",n.html_code)}),i.outerHTML}saveDomComponentsToLocalStorage(){this.updateLocalStorageItemName();const e=document.querySelector("#pagebuilder");if(!e)return;const t=e.querySelector("[hovered]");t&&t.removeAttribute("hovered");const i=[];e.querySelectorAll("section[data-componentid]").forEach(s=>{const p=this.cloneAndRemoveSelectionAttributes(s);p.removeAttribute("data-componentid"),i.push({html_code:p.outerHTML,title:p.getAttribute("data-component-title")||"Untitled Component"})});const n=this.readCurrentPageSettings()??{classes:"",style:""},a={components:i,pageBuilderContentSavedAt:new Date().toISOString(),pageSettings:n},l=this.getHistoryBaseKey();if(l){const s=localStorage.getItem(l);if(s||localStorage.setItem(l,JSON.stringify(a)),s){const p=JSON.parse(s),d=p.components||[],c=a.components||[],b=c.length!==d.length||c.some((g,x)=>{const u=d[x];return!u||u.html_code!==g.html_code}),m=p.pageSettings&&p.pageSettings.classes!==a.pageSettings.classes||p.pageSettings&&p.pageSettings.style!==a.pageSettings.style;if(b||m){localStorage.setItem(l,JSON.stringify(a));let g=ki.getHistory(l);const x=g[g.length-1];if(x){const u=JSON.stringify(x.components),h=JSON.stringify(a.components),f=JSON.stringify(x.pageSettings),w=JSON.stringify(a.pageSettings);if(u===h&&f===w)return}this.pageBuilderStateStore.getHistoryIndex<g.length-1&&(g=g.slice(0,this.pageBuilderStateStore.getHistoryIndex+1)),g.push(a),g.length>10&&(g=g.slice(g.length-10)),localStorage.setItem(l+"-history",JSON.stringify(g)),this.pageBuilderStateStore.setHistoryIndex(g.length-1),this.pageBuilderStateStore.setHistoryLength(g.length);return}}}}async removeCurrentComponentsFromLocalStorage(){this.updateLocalStorageItemName(),await o.nextTick();const e=this.getLocalStorageItemName.value;e&&localStorage.removeItem(e)}async handleFormSubmission(){const e=this.readCurrentPageSettings();if(e&&(this._lastKnownPageSettings=e),await this.removeCurrentComponentsFromLocalStorage(),this.deleteAllComponentsFromDOM(),this.pageBuilderStateStore.setComponents([]),e){this.updateLocalStorageItemName();const t=this.getLocalStorageItemName.value;if(t){const i={components:[],pageBuilderContentSavedAt:new Date().toISOString(),pageSettings:e};localStorage.setItem(t,JSON.stringify(i))}}}readCurrentPageSettings(){const e=document.querySelector("#pagebuilder");if(e)return{classes:e.className||"",style:e.getAttribute("style")||e.style.cssText||"",meta:ns(e)};const t=document.querySelector("[data-pagebuilder-content]");if(t)return{classes:t.className||"",style:t.getAttribute("style")||t.style.cssText||""};this.updateLocalStorageItemName();const i=this.getLocalStorageItemName.value;if(i)try{const n=localStorage.getItem(i);if(n){const a=JSON.parse(n);if(a!=null&&a.pageSettings)return a.pageSettings}}catch{}return null}applyPageSettingsToPage(e){const t=document.querySelector("#pagebuilder");if(t){e.classes?t.setAttribute("class",e.classes):t.removeAttribute("class");const i=typeof e.style=="string"?e.style:this.convertStyleObjectToString(e.style)||"";i?t.setAttribute("style",i):t.removeAttribute("style"),ic(t,_n(e))}document.querySelectorAll("[data-pagebuilder-content]").forEach(i=>{i.removeAttribute("class"),i.removeAttribute("style")}),(e.classes||e.style||e.meta)&&(this._lastKnownPageSettings=e)}reconnectGlobalStylesObserver(){if(!this.globalStylesObserver)return;const e=document.querySelector("#pagebuilder");e&&(this.globalStylesObserver.disconnect(),this.globalStylesObserver=new MutationObserver(()=>{const t=this.readCurrentPageSettings();t&&(this._lastKnownPageSettings=t)}),this.globalStylesObserver.observe(e,{attributes:!0,attributeFilter:["class","style","data-meta-title","data-meta-description"]}))}async setComponentsPreservingPageSettings(e){var n;const t=this.readCurrentPageSettings()??this._lastKnownPageSettings??null,i=this.globalStylesObserver!==null;(n=this.globalStylesObserver)==null||n.disconnect(),this.pageBuilderStateStore.setComponents(e),await o.nextTick(),await o.nextTick(),t&&(t.classes||t.style)&&this.applyPageSettingsToPage(t),i&&this.reconnectGlobalStylesObserver()}parseStyleString(e){return e.split(";").map(t=>t.trim()).filter(Boolean).reduce((t,i)=>{const[n,a]=i.split(":").map(l=>l.trim());return n&&a&&(t[n]=a),t},{})}deleteOldPageBuilderLocalStorage(){const e=this.pageBuilderStateStore.getPageBuilderConfig;if((e&&e.updateOrCreate&&e.updateOrCreate.formType)==="update"){let i=0;const n=[],a=new Date(Date.now()-336*60*60*1e3);for(let l=0;l<localStorage.length;l++){const s=localStorage.key(l);if(s&&s.startsWith("page-builder-update-resource-"))try{const p=localStorage.getItem(s);if(!p)continue;const c=JSON.parse(p).pageBuilderContentSavedAt;c&&new Date(c)<a&&(i++,n.push({Number:i,Key:s,SavedAt:c}),localStorage.removeItem(s))}catch{}}n.length>0&&(console.info(`Deleted ${n.length} localStorage item(s) older than ${a} days:`),console.table(n))}}startEditing(){this.hasStartedEditing=!0}async refreshListeners(){await o.nextTick(),await this.addListenersToEditableElements(),this.reapplyConfigPageSettingsIfMissing()}reapplyConfigPageSettingsIfMissing(){var a;const e=document.querySelector("#pagebuilder");if(!e)return;const t=((a=this.pageBuilderStateStore.getPageBuilderConfig)==null?void 0:a.pageSettings)??null;if(!this.hasMeaningfulPageSettings(t))return;const i=this.convertStyleObjectToString(t.style),n=e.getAttribute("style")||"";i.trim()&&!n.trim()&&this.applyPageSettingsToPage(t)}async resumeEditingFromDraft(){this.updateLocalStorageItemName();const e=this.getSavedPageHtml();e&&(this.pageBuilderStateStore.setIsLoadingResumeEditing(!0),await He(400),await this.mountComponentsToDOM(e),this.pageBuilderStateStore.setIsLoadingResumeEditing(!1)),await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setIsLoadingResumeEditing(!1)}async restoreOriginalContent(){if(this.updateLocalStorageItemName(),this.pageBuilderStateStore.setIsRestoring(!0),await He(400),Array.isArray(this.originalComponents)){await this.clearClassesFromPage(),await this.clearInlineStylesFromPage();const e=this.renderComponentsToHtml(this.originalComponents);await this.mountComponentsToDOM(e),this.removeCurrentComponentsFromLocalStorage()}await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setIsRestoring(!1)}async returnLatestComponents(){return await this.syncDomToStoreOnly(),await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.getComponents}getStorageItemNameForResource(){return this.getLocalStorageItemName.value}getSavedPageHtml(){if(!this.getLocalStorageItemName.value)return!1;const e=this.getLocalStorageItemName.value;if(!e)return!1;const t=localStorage.getItem(e);if(!t)return!1;const i=JSON.parse(t);if(i&&Array.isArray(i.components)){const n=i.pageSettings&&i.pageSettings.classes||"",a=i.pageSettings&&i.pageSettings.style||"",l=typeof a=="string"?a:this.convertStyleObjectToString(a),s=i.components.map(p=>{const b=new DOMParser().parseFromString(p.html_code,"text/html").querySelector("section");return b?(b.removeAttribute("data-componentid"),b.outerHTML):p.html_code}).join(`
|
|
416
416
|
`);return`<div id="pagebuilder" class="${n}" style="${l}">
|
|
417
417
|
${s}
|
|
418
418
|
</div>`}return!1}async applySelectedImage(e){this.pageBuilderStateStore.setApplyImageToSelection(e),this.getElement.value&&this.getApplyImageToSelection.value&&this.getApplyImageToSelection.value.src&&(await o.nextTick(),this.pageBuilderStateStore.setBasePrimaryImage(`${this.getApplyImageToSelection.value.src}`),await this.handleAutoSave())}setBasePrimaryImageFromSelectedElement(){if(!this.getElement.value)return;const e=document.createElement("div");e.innerHTML=this.getElement.value.outerHTML;const t=e.getElementsByTagName("img"),i=e.getElementsByTagName("div");if(t.length===1&&i.length===0){this.pageBuilderStateStore.setBasePrimaryImage(t[0].src);return}this.pageBuilderStateStore.setBasePrimaryImage(null)}addHyperlinkToElement(e,t,i){if(!this.getElement.value||!(this.getElement.value instanceof HTMLElement)||typeof this.getElement.value.closest!="function")return;const n=this.getElement.value.closest("a"),a=this.getElement.value.querySelector("a");this.pageBuilderStateStore.setHyperlinkError(null);const l=o.ref(!0);if(e===!0&&t!==null&&(l.value=Ad(t)),l.value===!1){this.pageBuilderStateStore.setHyperlinkMessage(null),this.pageBuilderStateStore.setHyperlinkError("URL is not valid");return}if(e===!0&&typeof t=="string"){const s=t.trim();if(a!==null&&s.length!==0){a.href=s,i===!0&&(a.target="_blank"),i===!1&&a.removeAttribute("target"),a.textContent=this.getElement.value.textContent,this.pageBuilderStateStore.setHyperlinkMessage("Succesfully updated element hyperlink"),this.pageBuilderStateStore.setElementContainsHyperlink(!0);return}if(a===null&&s.length!==0&&n===null){const p=document.createElement("a");p.href=s,i===!0&&(p.target="_blank"),p.textContent=this.getElement.value.textContent,this.getElement.value.textContent="",this.getElement.value.appendChild(p),this.pageBuilderStateStore.setHyperlinkMessage("Successfully added hyperlink to element"),this.pageBuilderStateStore.setElementContainsHyperlink(!0);return}}if(e===!1&&t==="removeHyperlink"){const s=this.getElement.value.textContent||"",p=document.createTextNode(s);this.getElement.value.textContent="",this.getElement.value.appendChild(p),this.pageBuilderStateStore.setHyberlinkEnable(!1),this.pageBuilderStateStore.setElementContainsHyperlink(!1)}}checkForHyperlink(){if(!this.getElement.value)return;const e=this.getElement.value.querySelector("a");if(e!==null){this.pageBuilderStateStore.setHyberlinkEnable(!0),this.pageBuilderStateStore.setElementContainsHyperlink(!0),this.pageBuilderStateStore.setHyperlinkInput(e.href),this.pageBuilderStateStore.setHyperlinkMessage(null),this.pageBuilderStateStore.setHyperlinkError(null),e.target==="_blank"&&this.pageBuilderStateStore.setOpenHyperlinkInNewTab(!0),e.target!=="_blank"&&this.pageBuilderStateStore.setOpenHyperlinkInNewTab(!1);return}this.pageBuilderStateStore.setElementContainsHyperlink(!1),this.pageBuilderStateStore.setHyperlinkInput(""),this.pageBuilderStateStore.setHyperlinkError(null),this.pageBuilderStateStore.setHyperlinkMessage(null),this.pageBuilderStateStore.setHyberlinkEnable(!1)}handleHyperlink(e,t,i){var l;if(this.pageBuilderStateStore.setHyperlinkAbility(!0),!this.getElement.value||!(this.getElement.value instanceof HTMLElement)||typeof this.getElement.value.closest!="function")return;this.getElement.value.closest("a")!==null&&this.pageBuilderStateStore.setHyperlinkAbility(!1);const a=(l=this.getElement.value)==null?void 0:l.tagName.toUpperCase();if(a!=="P"&&a!=="H1"&&a!=="H2"&&a!=="H3"&&a!=="H4"&&a!=="H5"&&a!=="H6"&&this.pageBuilderStateStore.setHyperlinkAbility(!1),e===void 0){this.checkForHyperlink();return}this.addHyperlinkToElement(e,t||null,i||!1)}async addTheme(e){e&&(this.validateMountingHTML(e),await this.mountComponentsToDOM(e)),await this.handleAutoSave()}async replaceTheme(e){const t=e==null?void 0:e.trim();!t||this.validateMountingHTML(t,{logError:!0})||(this.deleteAllComponentsFromDOM(),await this.mountComponentsToDOM(t),await this.handleAutoSave())}getPageMeta(){const e=this.readCurrentPageSettings()??this._lastKnownPageSettings;return _n(e)}async setPageMeta(e){const i={...this.getPageMeta(),...e},n=document.querySelector("#pagebuilder");n&&ic(n,i);const a=this.readCurrentPageSettings()??this._lastKnownPageSettings??{classes:"",style:""};this._lastKnownPageSettings=Kpe(a,i),await this.handleAutoSave()}async analyzeSEO(){const e=await this.returnLatestComponents();if(!e||!Array.isArray(e)||e.length===0)return{score:0,checks:[]};const t=e.map(S=>S.html_code).filter(S=>S&&S.trim()!=="").join(`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@myissue/vue-website-page-builder",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.50",
|
|
4
4
|
"description": "Vue 3 page builder for ecommerce admin, multi-tenant SaaS, and CMS dashboards. Drag-and-drop editor with custom media library and product catalog integration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/vue-website-page-builder.umd.cjs",
|