@myissue/vue-website-page-builder 3.5.81 → 3.5.82

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.
@@ -42501,7 +42501,7 @@ const Cde = { class: "pbx-editorFieldGroup" }, Tde = { class: "pbx-editorFieldGr
42501
42501
  }
42502
42502
  }), oi = function(o) {
42503
42503
  return !o || typeof o == "object" && o.constructor === Object && Object.keys(o).length === 0;
42504
- }, Qce = "3.5.81";
42504
+ }, Qce = "3.5.82";
42505
42505
  function Sg(o) {
42506
42506
  if (!(o != null && o.trim())) return [];
42507
42507
  const e = o.match(/class\s*=\s*(["'])(.*?)\1/i);
@@ -49179,10 +49179,11 @@ class I1e {
49179
49179
  this.fontSizeRegex.test(l) && t.classList.remove(l);
49180
49180
  });
49181
49181
  const n = e.replace(/^lg:/, ""), a = r[n] || n, s = `lg:${n}`;
49182
- a !== n ? t.classList.add(a, s) : t.classList.add(a);
49182
+ a !== n ? t.classList.add(a, s) : t.classList.add(a), this.pageBuilderStateStore.setFontDesktop(s), this.pageBuilderStateStore.setFontBase(a), this.pageBuilderStateStore.setCurrentClasses(Array.from(t.classList)), this.refreshInlineTipTapHostClassSnapshotFor(t);
49183
+ return;
49183
49184
  }
49184
49185
  const i = Di.fontDesktop.find((n) => t.classList.contains(n));
49185
- e || this.pageBuilderStateStore.setFontDesktop("none"), i && !e && this.pageBuilderStateStore.setFontDesktop(i);
49186
+ this.pageBuilderStateStore.setFontDesktop(i || "none");
49186
49187
  }
49187
49188
  /**
49188
49189
  * Applies helper CSS classes to elements, such as wrapping them or adding responsive text classes.
@@ -49637,7 +49638,7 @@ class I1e {
49637
49638
  if (t && typeof e == "string" && e.trim() !== "" && !e.includes(" ") && // Check if class (with prefix) already exists
49638
49639
  !t.classList.contains("pbx-" + e.trim())) {
49639
49640
  const r = e.trim(), i = r.startsWith("pbx-") ? r : "pbx-" + r;
49640
- t.classList.add(i), this.pageBuilderStateStore.setElement(t), this.pageBuilderStateStore.setClass(i), this.pageBuilderStateStore.setCurrentClasses(Array.from(t.classList));
49641
+ t.classList.add(i), this.pageBuilderStateStore.setElement(t), this.pageBuilderStateStore.setClass(i), this.pageBuilderStateStore.setCurrentClasses(Array.from(t.classList)), this.refreshInlineTipTapHostClassSnapshotFor(t);
49641
49642
  }
49642
49643
  }
49643
49644
  /**
@@ -50223,7 +50224,7 @@ class I1e {
50223
50224
  */
50224
50225
  handleRemoveClasses(e) {
50225
50226
  const t = this.getActiveStyleTarget();
50226
- t != null && t.classList.contains(e) && (t.classList.remove(e), this.pageBuilderStateStore.setElement(t), this.pageBuilderStateStore.removeClass(e), this.pageBuilderStateStore.setCurrentClasses(Array.from(t.classList)));
50227
+ t != null && t.classList.contains(e) && (t.classList.remove(e), this.pageBuilderStateStore.setElement(t), this.pageBuilderStateStore.removeClass(e), this.pageBuilderStateStore.setCurrentClasses(Array.from(t.classList)), this.refreshInlineTipTapHostClassSnapshotFor(t));
50227
50228
  }
50228
50229
  /**
50229
50230
  * Reorders the currently selected component up or down in the component list.
@@ -692,7 +692,7 @@ This will fail in production.`);l=ia,l._s.has(i)||(a?Ec(i,e,n,l):eR(i,n,l),proce
692
692
  `;return}n+=b+ele(p)+`
693
693
  `,!c&&!gO(p,!0)&&i++}),n.trimEnd()}function tt(r=200){return new Promise(e=>{setTimeout(e,r)})}const ql=o.ref(!1),xO=o.ref(""),Ul=o.ref(""),db=o.ref("element"),Wi=o.ref(!1),da=o.ref(null);function Gl(){function r(i,n,a="element"){xO.value=i,Ul.value=Zse(n),db.value=a,da.value=null,Wi.value=!1,ql.value=!0}function e(){ql.value=!1,da.value=null,Wi.value=!1}async function t(){const i=Le(),{showToast:n}=et(),{translate:a}=le();Wi.value=!0,da.value=null,await tt(300);const s=db.value==="page"?await i.applyModifiedComponents(Ul.value):await i.applyModifiedHTML(Ul.value);if(s){da.value=s,n(s,"error"),Wi.value=!1;return}n(a("HTML updated successfully"),"success"),ql.value=!1,Wi.value=!1}return{show:ql,title:xO,html:Ul,mode:db,isLoading:Wi,error:da,openHtmlEditor:r,closeHtmlEditor:e,saveHtmlEditor:t}}const rle={class:"pbx-editorSectionDesc"},ole={class:"pbx-inspectorActionStack"},ile=o.defineComponent({name:"ElementHtmlEditorSettingsEditor",__name:"ElementHtmlEditorSettingsEditor",setup(r){const{translate:e}=le(),t=Ee,{openHtmlViewer:i}=jl(),{openHtmlEditor:n}=Gl(),a=o.computed(()=>t.getElement),s=()=>{a.value&&n(e("Element HTML"),a.value.outerHTML,"element")},l=()=>{a.value&&i(e("Element HTML"),a.value.outerHTML)};return(p,d)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Element HTML")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",rle,o.toDisplayString(o.unref(e)("Element HTML editor description")),1),o.createElementVNode("div",ole,[o.createVNode(qt,{icon:"visibility",label:o.unref(e)("View element HTML"),hint:o.unref(e)("Preview selected element markup"),onClick:l},null,8,["label","hint"]),o.createVNode(qt,{icon:"deployed_code",label:o.unref(e)("Open element HTML editor"),hint:o.unref(e)("Edit selected element markup"),onClick:s},null,8,["label","hint"])])]),_:1}))}});function nle(r){return new Promise((e,t)=>{const i=new window.Image;i.onload=e,i.onerror=t,i.src=r})}const ale={class:"pbx-editorFieldGroup"},sle={class:"pbx-editorFieldGroup"},lle=["src"],ple={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"},dle={class:"pbx-editorSectionDesc pbx-mb-0"},cle={class:"pbx-pageDesignOpenButtonIcon"},ble={class:"pbx-pageDesignOpenButtonText"},mle={class:"pbx-pageDesignOpenButtonLabel"},gle={class:"pbx-pageDesignOpenButtonHint"},xle=o.defineComponent({__name:"ImageEditor",emits:["open"],setup(r,{emit:e}){const{translate:t}=le(),i=e,n=Ee,a=o.inject("CustomMediaComponent",null),s=o.ref(null),l=o.ref(!1),p=o.ref(!1),d=o.ref(""),c=o.ref(""),b=o.ref(""),m=o.ref(null),g=o.ref(null),x=o.ref(null),u=o.computed(()=>n.getElement?(n.getBasePrimaryImage&&y(n.getBasePrimaryImage),n.getBasePrimaryImage):null);function h(k){return k?k.tagName==="IMG"?!0:!!n.getBasePrimaryImage:!1}function f(k){var B;h(k)&&((B=s.value)==null||B.open())}o.watch(()=>n.getElement,k=>{f(k)},{immediate:!0,flush:"post"}),o.watch(()=>n.getBasePrimaryImage,()=>{f(n.getElement)}),o.onMounted(()=>{o.nextTick(()=>{f(n.getElement)})});const v=function(){p.value=!0,d.value=t("Media Library"),c.value=null,b.value=t("Close"),m.value=t("Select image"),x.value=function(){p.value=!1}},y=async function(k){l.value=!0,k&&typeof k=="string"&&k.length>2&&(await nle(k),await tt(200),l.value=!1)};return(k,B)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(qe,{ref_key:"imageAccordionRef",ref:s},{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(t)("Image")),1)]),content:o.withCtx(()=>[o.withDirectives(o.createElementVNode("div",ale,[...B[2]||(B[2]=[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,l.value]]),o.withDirectives(o.createElementVNode("div",sle,[o.createElementVNode("img",{class:"pbx-w-full pbx-cursor-pointer pbx-rounded-lg pbx-object-cover pbx-object-center",src:u.value??void 0,onClick:v,alt:"image"},null,8,lle)],512),[[o.vShow,u.value&&!l.value]]),o.withDirectives(o.createElementVNode("div",ple,[o.createElementVNode("p",dle,o.toDisplayString(o.unref(t)("No image has been selected.")),1)],512),[[o.vShow,!l.value&&!u.value]]),o.createElementVNode("button",{type:"button",class:"pbx-pageDesignOpenButton",onClick:B[0]||(B[0]=T=>i("open"))},[o.createElementVNode("span",cle,[o.createVNode(Mo)]),o.createElementVNode("span",ble,[o.createElementVNode("span",mle,o.toDisplayString(o.unref(t)("Open image settings")),1),o.createElementVNode("span",gle,o.toDisplayString(o.unref(t)("Fit, crop focus & alt text")),1)]),B[3]||(B[3]=o.createElementVNode("span",{class:"pbx-pageDesignOpenButtonArrow material-symbols-outlined","aria-hidden":"true"}," arrow_forward ",-1))])]),_:1},512),o.createVNode(Uc,{open:p.value,title:d.value,description:c.value,firstButtonText:b.value,secondButtonText:m.value??void 0,thirdButtonText:g.value??void 0,customMediaComponent:o.unref(a)??void 0,onFirstMediaButtonFunction:B[1]||(B[1]=()=>{var T;return(T=x.value)==null?void 0:T.call(x)})},null,8,["open","title","description","firstButtonText","secondButtonText","thirdButtonText","customMediaComponent"])],64))}}),ule=o.defineComponent({name:"ProductSectionSettingsEditor",__name:"ProductSectionSettingsEditor",emits:["open"],setup(r){const{translate:e}=le();return(t,i)=>(o.openBlock(),o.createBlock(qe,{"default-expanded":!0},{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Product section settings")),1)]),content:o.withCtx(()=>[o.createVNode(qt,{icon:"shopping_bag",label:o.unref(e)("Open product section settings"),hint:o.unref(e)("Layout, cards & visibility"),onClick:i[0]||(i[0]=n=>t.$emit("open"))},null,8,["label","hint"])]),_:1}))}}),hle=o.defineComponent({name:"SliderSettingsEditor",__name:"SliderSettingsEditor",emits:["open"],setup(r){const{translate:e}=le();return(t,i)=>(o.openBlock(),o.createBlock(qe,{"default-expanded":!0},{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Slider Settings")),1)]),content:o.withCtx(()=>[o.createVNode(qt,{icon:"adjust",label:o.unref(e)("Open slider settings"),hint:o.unref(e)("Autoplay, slides & timing"),onClick:i[0]||(i[0]=n=>t.$emit("open"))},null,8,["label","hint"])]),_:1}))}}),Wl={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"]},fle={class:"pbx-editorFieldGroup"},yle={class:"pbx-flex pbx-min-w-0 pbx-items-center pbx-gap-2"},wle={key:0,class:"pbx-shrink-0"},vle={class:"pbx-block pbx-min-w-0 pbx-break-words"},kle={class:"pbx-flex pbx-w-full pbx-min-w-0 pbx-items-center"},Sle={key:0,class:"pbx-shrink-0"},Cle={key:2,class:"pbx-ml-3 pbx-min-w-0 pbx-break-words"},Tle={key:3,class:"pbx-ml-3 pbx-min-w-0 pbx-flex-1 pbx-break-words"},Ele=o.defineComponent({__name:"BackgroundOpacityControl",setup(r){const e=Le(),{translate:t}=le(),i=Ee,n=o.ref(null),a=o.computed(()=>i.getBackgroundOpacity);return o.watch(a,s=>{n.value=s},{immediate:!0}),(s,l)=>(o.openBlock(),o.createElementBlock("div",fle,[o.createVNode(Ft,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=p=>n.value=p),id:"bg-opacity",options:o.unref(Wl).backgroundOpacities.map(p=>({value:p})),onSelect:l[1]||(l[1]=p=>o.unref(e).handleBackgroundOpacity(p))},{button:o.withCtx(()=>[o.createElementVNode("span",yle,[n.value==="none"?(o.openBlock(),o.createElementBlock("div",wle,[...l[2]||(l[2]=[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 pbx-shrink-0",`${n.value}`])},null,2)):o.createCommentVNode("",!0),o.createElementVNode("span",vle,o.toDisplayString(n.value==="none"?o.unref(t)("Transparent"):n.value),1)])]),option:o.withCtx(({option:p,selected:d})=>[o.createElementVNode("div",kle,[p.value==="none"?(o.openBlock(),o.createElementBlock("div",Sle,[...l[3]||(l[3]=[o.createElementVNode("div",{class:"pbx-myPrimaryColorPreview pbx-border-none"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," ev_shadow ")],-1)])])):o.createCommentVNode("",!0),p.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 pbx-shrink-0",`${p.value}`])},null,2)):o.createCommentVNode("",!0),p.value==="none"?(o.openBlock(),o.createElementBlock("span",Cle,o.toDisplayString(o.unref(t)("Transparent")),1)):o.createCommentVNode("",!0),p.value!=="none"?(o.openBlock(),o.createElementBlock("span",Tle,o.toDisplayString(p.value),1)):o.createCommentVNode("",!0)])]),_:1},8,["modelValue","options"])]))}}),Ple={class:"pbx-editorFieldGroup"},Ble={class:"pbx-flex pbx-min-w-0 pbx-items-center pbx-gap-2"},Mle={key:0,class:"pbx-shrink-0"},Lle={class:"pbx-block pbx-min-w-0 pbx-break-words"},Ale={class:"pbx-flex pbx-w-full pbx-min-w-0 pbx-items-center"},Nle={key:0,class:"pbx-shrink-0"},_le={key:2,class:"pbx-ml-3 pbx-min-w-0 pbx-break-words"},$le={key:3,class:"pbx-ml-3 pbx-min-w-0 pbx-flex-1 pbx-break-words"},Dle=o.defineComponent({__name:"OpacityControl",setup(r){const e=Le(),{translate:t}=le(),i=Ee,n=o.ref(null),a=o.computed(()=>i.getOpacity);return o.watch(a,s=>{n.value=s},{immediate:!0}),(s,l)=>(o.openBlock(),o.createElementBlock("div",Ple,[o.createVNode(Ft,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=p=>n.value=p),id:"default-opacity",options:o.unref(Wl).opacities.map(p=>({value:p})),onSelect:l[1]||(l[1]=p=>o.unref(e).handleOpacity(p))},{button:o.withCtx(()=>[o.createElementVNode("span",Ble,[n.value==="none"?(o.openBlock(),o.createElementBlock("div",Mle,[...l[2]||(l[2]=[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 pbx-shrink-0",`${n.value}`])},null,2)):o.createCommentVNode("",!0),o.createElementVNode("span",Lle,o.toDisplayString(n.value==="none"?o.unref(t)("Transparent"):n.value),1)])]),option:o.withCtx(({option:p,selected:d})=>[o.createElementVNode("div",Ale,[p.value==="none"?(o.openBlock(),o.createElementBlock("div",Nle,[...l[3]||(l[3]=[o.createElementVNode("div",{class:"pbx-myPrimaryColorPreview pbx-border-none"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," ev_shadow ")],-1)])])):o.createCommentVNode("",!0),p.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 pbx-shrink-0",`${p.value}`])},null,2)):o.createCommentVNode("",!0),p.value==="none"?(o.openBlock(),o.createElementBlock("span",_le,o.toDisplayString(o.unref(t)("Transparent")),1)):o.createCommentVNode("",!0),p.value!=="none"?(o.openBlock(),o.createElementBlock("span",$le,o.toDisplayString(p.value),1)):o.createCommentVNode("",!0)])]),_:1},8,["modelValue","options"])]))}}),Ile={class:"pbx-editorSectionTitle"},zle={class:"pbx-editorSectionTitle"},Hle=o.defineComponent({__name:"OpacityEditor",setup(r){const{translate:e}=le();return(t,i)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Opacity & Transparency")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Ile,o.toDisplayString(o.unref(e)("Opacity")),1),o.createVNode(Dle),i[0]||(i[0]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("p",zle,o.toDisplayString(o.unref(e)("Background Opacity")),1),o.createVNode(Ele)]),_:1}))}}),Vle={key:0,class:"pbx-text-[9px] pbx-font-medium pbx-uppercase pbx-text-gray-400 pbx-leading-none"},Ki=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-inline-flex pbx-items-center pbx-rounded-md pbx-border pbx-border-solid pbx-border-gray-200 pbx-bg-white",r.compact?"pbx-gap-0 pbx-p-0":"pbx-gap-0.5 pbx-p-0.5"])},[o.createElementVNode("button",{type:"button",class:o.normalizeClass(["pbx-flex pbx-shrink-0 pbx-cursor-pointer pbx-items-center pbx-justify-center pbx-border-none pbx-bg-transparent pbx-text-gray-500 pbx-transition-colors hover:pbx-bg-gray-100 hover:pbx-text-gray-900 focus-visible:pbx-outline-none",r.compact?"pbx-h-6 pbx-w-6 pbx-rounded-sm":"pbx-h-7 pbx-w-7 pbx-rounded"]),onClick:t[0]||(t[0]=i=>e.$emit("decrement"))},[...t[2]||(t[2]=[o.createElementVNode("span",{class:"material-symbols-outlined pbx-materialIcon18"},"remove",-1)])],2),o.createElementVNode("div",{class:o.normalizeClass(["pbx-flex pbx-flex-col pbx-items-center pbx-justify-center",r.compact?"pbx-min-w-8":r.sideLabel?"pbx-min-w-[2.75rem]":"pbx-min-w-[2.25rem]"])},[r.sideLabel&&!r.compact?(o.openBlock(),o.createElementBlock("span",Vle,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&&!r.compact?"pbx-text-xs":"pbx-text-sm"])},o.toDisplayString(r.value),3)],2),o.createElementVNode("button",{type:"button",class:o.normalizeClass(["pbx-flex pbx-shrink-0 pbx-cursor-pointer pbx-items-center pbx-justify-center pbx-border-none pbx-bg-transparent pbx-text-gray-500 pbx-transition-colors hover:pbx-bg-gray-100 hover:pbx-text-gray-900 focus-visible:pbx-outline-none",r.compact?"pbx-h-6 pbx-w-6 pbx-rounded-sm":"pbx-h-7 pbx-w-7 pbx-rounded"]),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)],2))}}),ce={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"]},Rle={class:"pbx-editorSectionTitle"},Ole={class:"pbx-editorSectionDesc"},Fle={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"},jle={class:"pbx-flex pbx-items-center pbx-justify-between pbx-gap-3"},qle={class:"pbx-text-xs pbx-font-medium pbx-text-gray-500"},Ule={class:"pbx-flex pbx-items-center pbx-justify-between pbx-gap-3"},Gle={class:"pbx-text-xs pbx-font-medium pbx-text-gray-500"},Wle={class:"pbx-editorSectionTitle"},Kle={class:"pbx-rounded-lg pbx-border pbx-border-solid pbx-border-gray-200 pbx-bg-white pbx-p-3"},Jle={class:"pbx-grid pbx-items-center pbx-justify-items-center pbx-gap-y-2",style:{"grid-template-columns":"4.75rem minmax(4.75rem, 1fr) 4.75rem"}},Yle={class:"pbx-flex pbx-h-14 pbx-w-20 pbx-items-center pbx-justify-center pbx-rounded-md pbx-border pbx-border-solid pbx-border-gray-300 pbx-bg-gray-50"},Qle={class:"pbx-select-none pbx-text-[10px] pbx-font-medium pbx-uppercase pbx-text-gray-500"},uO=o.defineComponent({__name:"SpacingControl",props:{mode:{}},setup(r){const e=r,{translate:t}=le(),i=Le(),n=Ee,a=o.computed(()=>e.mode==="padding"),s=o.ref(null),l=o.ref(null),p=o.ref(null),d=o.ref(null),c=o.ref(null),b=o.ref(null),m=o.computed(()=>a.value?n.getFontVerticalPadding:n.getFontVerticalMargin),g=o.computed(()=>a.value?n.getFontHorizontalPadding:n.getFontHorizontalMargin),x=o.computed(()=>a.value?n.getFontTopPadding:n.getFontTopMargin),u=o.computed(()=>a.value?n.getFontRightPadding:n.getFontRightMargin),h=o.computed(()=>a.value?n.getFontBottomPadding:n.getFontBottomMargin),f=o.computed(()=>a.value?n.getFontLeftPadding:n.getFontLeftMargin);o.watch(m,L=>{s.value=L},{immediate:!0}),o.watch(g,L=>{l.value=L},{immediate:!0}),o.watch(x,L=>{p.value=L},{immediate:!0}),o.watch(u,L=>{d.value=L},{immediate:!0}),o.watch(h,L=>{c.value=L},{immediate:!0}),o.watch(f,L=>{b.value=L},{immediate:!0});function v(L){if(!L||L==="none")return"–";const S=L.match(/-(\d[\d.]*)$/);return S?S[1]:"–"}function y(){return v(p.value&&p.value!=="none"?p.value:s.value)}function k(){return v(c.value&&c.value!=="none"?c.value:s.value)}function B(){return v(b.value&&b.value!=="none"?b.value:l.value)}function T(){return v(d.value&&d.value!=="none"?d.value:l.value)}function w(L,S,D){const K=L.indexOf(S??"none");return L[Math.max(0,Math.min(L.length-1,Math.max(0,K)+D))]}function P(L){const S=a.value?ce.verticalPadding:ce.verticalMargin,D=w(S,s.value,L);s.value=D,a.value?i.handleVerticalPadding(D):i.handleVerticalMargin(D)}function A(L){const S=a.value?ce.horizontalPadding:ce.horizontalMargin,D=w(S,l.value,L);l.value=D,a.value?i.handleHorizontalPadding(D):i.handleHorizontalMargin(D)}function C(L){const S=a.value?ce.topPadding:ce.topMargin,D=w(S,p.value,L);p.value=D,a.value?i.handleTopPadding(D):i.handleTopMargin(D)}function E(L){const S=a.value?ce.rightPadding:ce.rightMargin,D=w(S,d.value,L);d.value=D,a.value?i.handleRightPadding(D):i.handleRightMargin(D)}function _(L){const S=a.value?ce.bottomPadding:ce.bottomMargin,D=w(S,c.value,L);c.value=D,a.value?i.handleBottomPadding(D):i.handleBottomMargin(D)}function N(L){const S=a.value?ce.leftPadding:ce.leftMargin,D=w(S,b.value,L);b.value=D,a.value?i.handleLeftPadding(D):i.handleLeftMargin(D)}return(L,S)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(t)(a.value?"Padding":"Margin")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Rle,o.toDisplayString(o.unref(t)("All sides")),1),o.createElementVNode("p",Ole,o.toDisplayString(o.unref(t)("Applies across all screen sizes")),1),o.createElementVNode("div",Fle,[o.createElementVNode("div",jle,[o.createElementVNode("span",qle,o.toDisplayString(o.unref(t)("Vertical")),1),o.createVNode(Ki,{value:v(s.value),onDecrement:S[0]||(S[0]=D=>P(-1)),onIncrement:S[1]||(S[1]=D=>P(1))},null,8,["value"])]),S[12]||(S[12]=o.createElementVNode("div",{class:"pbx-h-px pbx-bg-gray-100"},null,-1)),o.createElementVNode("div",Ule,[o.createElementVNode("span",Gle,o.toDisplayString(o.unref(t)("Horizontal")),1),o.createVNode(Ki,{value:v(l.value),onDecrement:S[2]||(S[2]=D=>A(-1)),onIncrement:S[3]||(S[3]=D=>A(1))},null,8,["value"])])]),S[17]||(S[17]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",Wle,o.toDisplayString(o.unref(t)(a.value?"Padding":"Margin")),1),o.createElementVNode("div",Kle,[o.createElementVNode("div",Jle,[S[13]||(S[13]=o.createElementVNode("div",null,null,-1)),o.createVNode(Ki,{value:y(),"side-label":o.unref(t)("top"),onDecrement:S[4]||(S[4]=D=>C(-1)),onIncrement:S[5]||(S[5]=D=>C(1))},null,8,["value","side-label"]),S[14]||(S[14]=o.createElementVNode("div",null,null,-1)),o.createVNode(Ki,{value:B(),"side-label":o.unref(t)("left"),compact:"",onDecrement:S[6]||(S[6]=D=>N(-1)),onIncrement:S[7]||(S[7]=D=>N(1))},null,8,["value","side-label"]),o.createElementVNode("div",Yle,[o.createElementVNode("span",Qle,o.toDisplayString(o.unref(t)("element")),1)]),o.createVNode(Ki,{value:T(),"side-label":o.unref(t)("right"),compact:"",onDecrement:S[8]||(S[8]=D=>E(-1)),onIncrement:S[9]||(S[9]=D=>E(1))},null,8,["value","side-label"]),S[15]||(S[15]=o.createElementVNode("div",null,null,-1)),o.createVNode(Ki,{value:k(),"side-label":o.unref(t)("bottom"),onDecrement:S[10]||(S[10]=D=>_(-1)),onIncrement:S[11]||(S[11]=D=>_(1))},null,8,["value","side-label"]),S[16]||(S[16]=o.createElementVNode("div",null,null,-1))])])]),_:1}))}}),hO=o.defineComponent({__name:"PaddingControl",setup(r){return(e,t)=>(o.openBlock(),o.createBlock(uO,{mode:"padding"}))}}),fO=o.defineComponent({__name:"MarginControl",setup(r){return(e,t)=>(o.openBlock(),o.createBlock(uO,{mode:"margin"}))}}),At={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"]},Xle={class:"pbx-editorSectionTitle"},Zle={class:"pbx-editorFieldGroup"},epe={for:"global-border-radius",class:"pbx-myPrimaryInputLabel"},tpe={class:"pbx-block pbx-break-words"},rpe={class:"pbx-editorSectionTitle"},ope={class:"pbx-editorFieldGroup"},ipe={for:"border-radius-top-left",class:"pbx-myPrimaryInputLabel"},npe={class:"pbx-block pbx-break-words"},ape={class:"pbx-editorFieldGroup"},spe={for:"border-radius-top-right",class:"pbx-myPrimaryInputLabel"},lpe={class:"pbx-block pbx-break-words"},ppe={class:"pbx-editorFieldGroup"},dpe={for:"border-radius-bottom-left",class:"pbx-myPrimaryInputLabel"},cpe={class:"pbx-block pbx-break-words"},bpe={class:"pbx-editorFieldGroup"},mpe={for:"border-radius-bottom-right",class:"pbx-myPrimaryInputLabel"},gpe={class:"pbx-block pbx-break-words"},yO=o.defineComponent({__name:"BorderRadiusControl",setup(r){const{translate:e}=le(),t=Le(),i=Ee,n=o.ref(null),a=o.ref(null),s=o.ref(null),l=o.ref(null),p=o.ref(null),d=u=>[{value:"",label:e("Select"),disabled:!0},...u.map(h=>({value:h,label:h}))],c=o.computed(()=>i.getBorderRadiusGlobal),b=o.computed(()=>i.getBorderRadiusTopLeft),m=o.computed(()=>i.getBorderRadiusTopRight),g=o.computed(()=>i.getBorderRadiusBottomleft),x=o.computed(()=>i.getBorderRadiusBottomRight);return o.watch(c,u=>{n.value=u??""},{immediate:!0}),o.watch(b,u=>{a.value=u??""},{immediate:!0}),o.watch(m,u=>{s.value=u??""},{immediate:!0}),o.watch(g,u=>{l.value=u??""},{immediate:!0}),o.watch(x,u=>{p.value=u??""},{immediate:!0}),(u,h)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Border Radius")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Xle,o.toDisplayString(o.unref(e)("Global")),1),o.createElementVNode("div",Zle,[o.createElementVNode("label",epe,o.toDisplayString(o.unref(e)("Border Radius")),1),o.createVNode(Ft,{id:"global-border-radius",modelValue:n.value,"onUpdate:modelValue":h[0]||(h[0]=f=>n.value=f),options:d(o.unref(At).roundedGlobal),onSelect:h[1]||(h[1]=f=>o.unref(t).handleBorderRadiusGlobal(f||void 0))},{button:o.withCtx(()=>[o.createElementVNode("span",tpe,o.toDisplayString(n.value||o.unref(e)("Select")),1)]),_:1},8,["modelValue","options"])]),h[10]||(h[10]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("p",rpe,o.toDisplayString(o.unref(e)("Specific")),1),o.createElementVNode("div",ope,[o.createElementVNode("label",ipe,o.toDisplayString(o.unref(e)("Border Radius top left")),1),o.createVNode(Ft,{id:"border-radius-top-left",modelValue:a.value,"onUpdate:modelValue":h[2]||(h[2]=f=>a.value=f),options:d(o.unref(At).roundedTopLeft),onSelect:h[3]||(h[3]=f=>o.unref(t).handleBorderRadiusTopLeft(f||void 0))},{button:o.withCtx(()=>[o.createElementVNode("span",npe,o.toDisplayString(a.value||o.unref(e)("Select")),1)]),_:1},8,["modelValue","options"])]),h[11]||(h[11]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",ape,[o.createElementVNode("label",spe,o.toDisplayString(o.unref(e)("Border Radius top right")),1),o.createVNode(Ft,{id:"border-radius-top-right",modelValue:s.value,"onUpdate:modelValue":h[4]||(h[4]=f=>s.value=f),options:d(o.unref(At).roundedTopRight),onSelect:h[5]||(h[5]=f=>o.unref(t).handleBorderRadiusTopRight(f||void 0))},{button:o.withCtx(()=>[o.createElementVNode("span",lpe,o.toDisplayString(s.value||o.unref(e)("Select")),1)]),_:1},8,["modelValue","options"])]),h[12]||(h[12]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",ppe,[o.createElementVNode("label",dpe,o.toDisplayString(o.unref(e)("Border Radius bottom left")),1),o.createVNode(Ft,{id:"border-radius-bottom-left",modelValue:l.value,"onUpdate:modelValue":h[6]||(h[6]=f=>l.value=f),options:d(o.unref(At).roundedBottomLeft),onSelect:h[7]||(h[7]=f=>o.unref(t).handleBorderRadiusBottomleft(f||void 0))},{button:o.withCtx(()=>[o.createElementVNode("span",cpe,o.toDisplayString(l.value||o.unref(e)("Select")),1)]),_:1},8,["modelValue","options"])]),h[13]||(h[13]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",bpe,[o.createElementVNode("label",mpe,o.toDisplayString(o.unref(e)("Border Radius bottom right")),1),o.createVNode(Ft,{id:"border-radius-bottom-right",modelValue:p.value,"onUpdate:modelValue":h[8]||(h[8]=f=>p.value=f),options:d(o.unref(At).roundedBottomRight),onSelect:h[9]||(h[9]=f=>o.unref(t).handleBorderRadiusBottomRight(f||void 0))},{button:o.withCtx(()=>[o.createElementVNode("span",gpe,o.toDisplayString(p.value||o.unref(e)("Select")),1)]),_:1},8,["modelValue","options"])])]),_:1}))}}),Ji={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"]},xpe={class:"pbx-editorSectionTitle"},upe={class:"pbx-editorFieldGroup"},hpe={for:"border-style",class:"pbx-myPrimaryInputLabel"},fpe={class:"pbx-block pbx-break-words"},ype={class:"pbx-editorFieldGroup"},wpe={for:"border-width",class:"pbx-myPrimaryInputLabel"},vpe={class:"pbx-block pbx-break-words"},kpe={class:"pbx-editorFieldGroup"},Spe={for:"border-color",class:"pbx-myPrimaryInputLabel"},Cpe={class:"pbx-flex pbx-min-w-0 pbx-items-center pbx-gap-2"},Tpe={key:0,class:"pbx-shrink-0"},Epe={class:"pbx-block pbx-min-w-0 pbx-break-words"},Ppe={class:"pbx-flex pbx-w-full pbx-min-w-0 pbx-items-center"},Bpe={key:0,class:"pbx-shrink-0"},Mpe={key:2,class:"pbx-ml-3 pbx-min-w-0 pbx-break-words"},Lpe={key:3,class:"pbx-ml-3 pbx-min-w-0 pbx-flex-1 pbx-break-words"},wO=o.defineComponent({name:"BorderControls",__name:"BorderControls",setup(r){const{translate:e}=le(),t=Le(),i=Ee,n=o.ref(null),a=o.ref(null),s=o.ref(null),l=o.computed(()=>[{value:"",label:e("Select"),disabled:!0},...Ji.borderStyle.map(m=>({value:m,label:m}))]),p=o.computed(()=>[{value:"",label:e("Select"),disabled:!0},...Ji.borderWidth.map(m=>({value:m,label:m}))]),d=o.computed(()=>i.getBorderStyle),c=o.computed(()=>i.getBorderWidth),b=o.computed(()=>i.getBorderColor);return o.watch(d,m=>{n.value=m??""},{immediate:!0}),o.watch(c,m=>{a.value=m??""},{immediate:!0}),o.watch(b,m=>{s.value=m},{immediate:!0}),(m,g)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Border Style, Width & Color")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",xpe,o.toDisplayString(o.unref(e)("Border")),1),o.createElementVNode("div",upe,[o.createElementVNode("label",hpe,o.toDisplayString(o.unref(e)("Border Style")),1),o.createVNode(Ft,{id:"border-style",modelValue:n.value,"onUpdate:modelValue":g[0]||(g[0]=x=>n.value=x),options:l.value,onSelect:g[1]||(g[1]=x=>o.unref(t).handleBorderStyle(x||void 0))},{button:o.withCtx(()=>[o.createElementVNode("span",fpe,o.toDisplayString(n.value||o.unref(e)("Select")),1)]),_:1},8,["modelValue","options"])]),g[8]||(g[8]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",ype,[o.createElementVNode("label",wpe,o.toDisplayString(o.unref(e)("Border Width")),1),o.createVNode(Ft,{id:"border-width",modelValue:a.value,"onUpdate:modelValue":g[2]||(g[2]=x=>a.value=x),options:p.value,onSelect:g[3]||(g[3]=x=>o.unref(t).handleBorderWidth(x||void 0))},{button:o.withCtx(()=>[o.createElementVNode("span",vpe,o.toDisplayString(a.value||o.unref(e)("Select")),1)]),_:1},8,["modelValue","options"])]),g[9]||(g[9]=o.createElementVNode("hr",null,null,-1)),o.createElementVNode("div",kpe,[o.createElementVNode("label",Spe,o.toDisplayString(o.unref(e)("Border Color")),1),o.createVNode(Ft,{modelValue:s.value,"onUpdate:modelValue":g[4]||(g[4]=x=>s.value=x),id:"border-color",class:"pbx-mt-2",options:o.unref(Ji).borderColor.map(x=>({value:x})),onSelect:g[5]||(g[5]=x=>o.unref(t).handleBorderColor(x??void 0))},{button:o.withCtx(()=>{var x;return[o.createElementVNode("span",Cpe,[b.value==="none"?(o.openBlock(),o.createElementBlock("div",Tpe,[...g[6]||(g[6]=[o.createElementVNode("div",{class:"pbx-myPrimaryColorPreview pbx-border-none"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," ev_shadow ")],-1)])])):o.createCommentVNode("",!0),s.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-shrink-0",`pbx-bg-${(x=s.value)==null?void 0:x.replace("pbx-border-","")}`])},null,2)):o.createCommentVNode("",!0),o.createElementVNode("span",Epe,o.toDisplayString(s.value),1)])]}),option:o.withCtx(({option:x,selected:u})=>[o.createElementVNode("div",Ppe,[x.value==="none"?(o.openBlock(),o.createElementBlock("div",Bpe,[...g[7]||(g[7]=[o.createElementVNode("div",{class:"pbx-myPrimaryColorPreview pbx-border-none"},[o.createElementVNode("span",{class:"material-symbols-outlined"}," ev_shadow ")],-1)])])):o.createCommentVNode("",!0),x.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 pbx-shrink-0",`pbx-bg-${x.value.replace("pbx-border-","")}`])},null,2)):o.createCommentVNode("",!0),x.value==="none"?(o.openBlock(),o.createElementBlock("span",Mpe,o.toDisplayString(o.unref(e)("Transparent")),1)):o.createCommentVNode("",!0),x.value!=="none"?(o.openBlock(),o.createElementBlock("span",Lpe,o.toDisplayString(x.value),1)):o.createCommentVNode("",!0)])]),_:1},8,["modelValue","options"])])]),_:1}))}}),Ape={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"},Npe={class:"pbx-text-sm pbx-font-semibold pbx-text-myPrimaryDarkGrayColor pbx-my-0"},_pe={class:"pbx-text-xs pbx-text-gray-500 pbx-my-0"},$pe={class:"pbx-grid pbx-grid-cols-1 pbx-gap-3"},Dpe=["for"],Ipe={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"},zpe=["id","value","onInput","onBlur"],Hpe={class:"pbx-relative pbx-flex-shrink-0"},Vpe=["title","onClick"],Rpe={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"},Ope={class:"pbx-text-sm pbx-font-semibold pbx-text-myPrimaryDarkGrayColor pbx-my-0"},Fpe={class:"pbx-text-xs pbx-text-gray-500 pbx-my-0"},jpe=o.defineComponent({__name:"ThemeColorPresetManager",props:{embedded:{type:Boolean}},setup(r){const{translate:e}=le(),{showToast:t}=et(),i=Ee,n=o.computed(()=>i.getPageBuilderConfig),{themeColorPresetSettings:a,setThemeColorPresetsEnabled:s,updateThemeColorPreset:l,resetToConfigDefaults:p}=Nl(n),d=o.ref({});function c(w){return d.value[w.id]??w.color}o.watch(()=>a.value.colors,w=>{w.forEach(P=>{var C;((C=document.activeElement)==null?void 0:C.id)!==`color-input-${P.id}`&&(d.value[P.id]=P.color)})},{deep:!0});const b=/^#?[0-9a-fA-F]{6}$/;function m(w,P){const A=P.target,C=A.value.trim();d.value[w.id]=A.value,b.test(C)&&l(w.id,{color:C})}function g(w){d.value[w.id]=w.color}function x(w,P){l(w,{enabled:P})}function u(w,P){l(w.id,{color:P})}const h=o.ref(null);function f(w){h.value=h.value===w?null:w}function v(){h.value=null}const y=o.ref(!1);function k(){y.value=!0}function B(){y.value=!1}function T(){p(),d.value={},y.value=!1,t(e("Theme colors reset to defaults"),"success")}return(w,P)=>(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",Ape,[o.createElementVNode("div",null,[o.createElementVNode("p",Npe,o.toDisplayString(o.unref(e)("Enable theme color presets")),1),o.createElementVNode("p",_pe,o.toDisplayString(o.unref(e)("Use saved hex colors in text and background color menus")),1)]),o.createVNode(Lt,{"model-value":o.unref(a).enabled,"onUpdate:modelValue":o.unref(s)},null,8,["model-value","onUpdate:modelValue"])]),o.createElementVNode("div",$pe,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(a).colors,A=>(o.openBlock(),o.createElementBlock("div",{key:A.id,class:"pbx-myInputGroup"},[o.createElementVNode("label",{for:`color-input-${A.id}`,class:"pbx-myPrimaryInputLabel"},o.toDisplayString(o.unref(e)(A.label)),9,Dpe),o.createElementVNode("div",Ipe,[o.createVNode(Lt,{"model-value":A.enabled,"onUpdate:modelValue":C=>x(A.id,C)},null,8,["model-value","onUpdate:modelValue"]),o.createElementVNode("input",{id:`color-input-${A.id}`,value:c(A),type:"text",maxlength:"7",placeholder:"#rrggbb",class:"pbx-myPrimaryInput pbx-w-full",onInput:C=>m(A,C),onBlur:C=>g(A)},null,40,zpe),o.createElementVNode("div",Hpe,[o.createElementVNode("button",{type:"button",title:A.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(C=>f(A.id),["stop"])},[o.createElementVNode("span",{style:o.normalizeStyle([{backgroundColor:A.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),
694
694
  inset 0 0 0 1px rgba(96, 96, 96, 0.1)`,transition:`box-shadow 0.15s,
695
- border-color 0.15s`}])},null,4)],8,Vpe),h.value===A.id?(o.openBlock(),o.createElementBlock("div",{key:0,class:"pbx-fixed pbx-inset-0 pbx-z-40",onClick:v})):o.createCommentVNode("",!0),h.value===A.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:P[0]||(P[0]=o.withModifiers(()=>{},["stop"]))},[o.createVNode(LR,{"model-value":A.color,"onUpdate:modelValue":C=>u(A,C)},null,8,["model-value","onUpdate:modelValue"])])):o.createCommentVNode("",!0)])])]))),128))]),o.createElementVNode("div",Rpe,[o.createElementVNode("div",null,[o.createElementVNode("p",Ope,o.toDisplayString(o.unref(e)("Reset to provided defaults")),1),o.createElementVNode("p",Fpe,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:k},[P[1]||(P[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(dt,{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:B,onThirdModalButtonFunctionDynamicModalBuilder:T},{default:o.withCtx(()=>[...P[2]||(P[2]=[o.createElementVNode("header",null,null,-1),o.createElementVNode("main",null,null,-1)])]),_:1},8,["showDynamicModalBuilder","title","description","firstButtonText","thirdButtonText"])],64))}}),qpe=o.defineComponent({__name:"ThemeColorSettingsEditor",setup(r){const{translate:e}=le();return(t,i)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Theme & colors")),1)]),content:o.withCtx(()=>[o.createVNode(jpe,{embedded:""})]),_:1}))}}),Upe={class:"pbx-editorSectionDesc"},Gpe={class:"pbx-editorFieldGroup"},Wpe={for:"page-meta-title",class:"pbx-myPrimaryInputLabel"},Kpe=["placeholder"],Jpe={class:"pbx-editorFieldGroup"},Ype={for:"page-meta-description",class:"pbx-myPrimaryInputLabel"},Qpe=["placeholder"],Xpe=["disabled"],Zpe={key:0,class:"material-symbols-outlined"},ede={key:1,class:"material-symbols-outlined pbx-animate-spin"},tde=o.defineComponent({name:"PageMetaSettingsEditor",__name:"PageMetaSettingsEditor",setup(r){const{translate:e}=le(),{showToast:t}=et(),i=Le(),n=o.ref(""),a=o.ref(""),s=o.ref(!1);o.onMounted(()=>{const p=i.getPageMeta();n.value=p.title||"",a.value=p.description||""});const l=async()=>{if(!s.value){s.value=!0,await qi(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{s.value=!1}}};return(p,d)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page Meta")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Upe,o.toDisplayString(o.unref(e)("Page meta description")),1),o.createElementVNode("div",Gpe,[o.createElementVNode("label",Wpe,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,Kpe),[[o.vModelText,n.value]])]),o.createElementVNode("div",Jpe,[o.createElementVNode("label",Ype,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,Qpe),[[o.vModelText,a.value]])]),o.createElementVNode("button",{type:"button",class:"pbx-editChromeButton pbx-w-full",disabled:s.value,onClick:l},[o.createTextVNode(o.toDisplayString(o.unref(e)("Save"))+" ",1),s.value?o.createCommentVNode("",!0):(o.openBlock(),o.createElementBlock("span",Zpe,"save")),s.value?(o.openBlock(),o.createElementBlock("span",ede,"refresh")):o.createCommentVNode("",!0)],8,Xpe)]),_:1}))}}),rde={key:0,class:"pbx-fixed pbx-inset-0 pbx-z-[9999]"},ode={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"},ide={class:"pbx-myQuaternaryHeader pbx-my-0 pbx-py-0 pbx-text-black"},nde={class:"pbx-pt-4 pbx-px-2"},vO=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(s,l)=>(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",rde,[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:l[0]||(l[0]=o.withModifiers(()=>{},["stop"]))},[o.createElementVNode("div",ode,[o.createElementVNode("span",ide,o.toDisplayString(r.title),1),o.createElementVNode("span",{onClick:n},[...l[1]||(l[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",nde,[o.renderSlot(s.$slots,"default")])],2)])):o.createCommentVNode("",!0)]),_:3})]))}}),ade={class:"pbx-overflow-y-auto"},sde={key:0,class:"pbx-flex pbx-items-center pbx-justify-center pbx-gap-2"},lde={class:"pbx-bg-gray-100 pbx-rounded-full pbx-w-32 pbx-h-32 pbx-flex pbx-items-center pbx-justify-center"},pde={class:"pbx-text-center"},dde={class:"pbx-lg:pbx-text-7xl pbx-text-5xl"},cde={key:1,class:"pbx-w-full pbx-space-y-5"},bde={class:"pbx-text-base pbx-font-semibold pbx-text-center pbx-text-myPrimaryDarkGrayColor"},mde={class:"pbx-seoCheckGroupTitle"},gde={class:"pbx-space-y-2"},xde={class:"material-symbols-outlined","aria-hidden":"true"},ude={class:"pbx-pageDesignOpenButtonText"},hde={class:"pbx-pageDesignOpenButtonLabel"},fde={class:"pbx-pageDesignOpenButtonHint"},yde={key:2,class:"pbx-text-gray-500 pbx-text-center pbx-py-8"},wde=o.defineComponent({__name:"SeoCheckPanel",props:{seoResult:{}},setup(r){const e=r,{translate:t}=le(),i=o.computed(()=>{if(!e.seoResult)return[];const n=new Map;for(const a of e.seoResult.checks){const s=a.category??"Other";n.has(s)||n.set(s,[]),n.get(s).push(a)}return Array.from(n.entries()).map(([a,s])=>({title:a,checks:s}))});return(n,a)=>(o.openBlock(),o.createElementBlock("div",ade,[r.seoResult?(o.openBlock(),o.createElementBlock("div",sde,[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",lde,[o.createElementVNode("div",pde,[o.createElementVNode("span",dde,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",cde,[o.createElementVNode("h3",bde,o.toDisplayString(o.unref(t)("SEO Check Results")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.value,s=>(o.openBlock(),o.createElementBlock("div",{key:s.title,class:"pbx-space-y-2"},[o.createElementVNode("h4",mde,o.toDisplayString(o.unref(t)(s.title)),1),o.createElementVNode("ul",gde,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(s.checks,(l,p)=>(o.openBlock(),o.createElementBlock("li",{key:p,class:o.normalizeClass(["pbx-seoCheckRow",l.passed?"pbx-seoCheckRow--pass":"pbx-seoCheckRow--fail"])},[o.createElementVNode("span",{class:o.normalizeClass(["pbx-seoCheckRowIcon",l.passed?"pbx-seoCheckRowIcon--pass":"pbx-seoCheckRowIcon--fail"])},[o.createElementVNode("span",xde,o.toDisplayString(l.passed?"check":"close"),1)],2),o.createElementVNode("span",ude,[o.createElementVNode("span",hde,o.toDisplayString(o.unref(t)(l.check)),1),o.createElementVNode("span",fde,o.toDisplayString(l.details),1)])],2))),128))])]))),128))])):(o.openBlock(),o.createElementBlock("div",yde,o.toDisplayString(o.unref(t)("No SEO checks available.")),1))]))}}),vde={class:"pbx-editorSectionDesc"},kde=o.defineComponent({name:"SeoCheckSettingsEditor",__name:"SeoCheckSettingsEditor",setup(r){const{translate:e}=le(),t=Le(),i=o.ref(null),n=o.ref(!1),a=o.ref(!1),s=async()=>{a.value=!0,n.value=!0,await qi(300);try{i.value=await t.analyzeSEO()}finally{a.value=!1}},l=()=>{n.value=!1};return(p,d)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("SEO Check")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",vde,o.toDisplayString(o.unref(e)("SEO check description")),1),o.createVNode(qt,{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:s},null,8,["label","hint","is-loading"])]),_:1}),o.createVNode(vO,{title:o.unref(e)("SEO Check"),showSidebarPanel:n.value,position:"left",onCloseSidebarPanel:l},{default:o.withCtx(()=>[o.createVNode(wde,{"seo-result":i.value},null,8,["seo-result"])]),_:1},8,["title","showSidebarPanel"])],64))}}),Sde={class:"pbx-editorSectionDesc"},Cde=o.defineComponent({name:"RemoveAllComponentsSettingsEditor",__name:"RemoveAllComponentsSettingsEditor",setup(r){const{translate:e}=le(),{showToast:t}=et(),i=Le(),n=o.ref(!1),a=o.ref(!1),s=o.ref(""),l=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,s.value="delete",l.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({preservePageSettings:!1}),await tt(500),a.value=!1,n.value=!1,t(e("All components removed"),"success")}};return(f,v)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page layout")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Sde,o.toDisplayString(o.unref(e)("Remove all components description")),1),o.createVNode(qt,{icon:"delete_forever",label:o.unref(e)("Remove all Components"),hint:o.unref(e)("Clear every section from the page"),variant:"danger",onClick:h},null,8,["label","hint"])]),_:1}),o.createVNode(dt,{showDynamicModalBuilder:a.value,type:s.value,gridColumnAmount:l.value,title:p.value,description:d.value,isLoading:n.value,firstButtonText:c.value,secondButtonText:b.value??void 0,thirdButtonText:m.value??void 0,onFirstModalButtonFunctionDynamicModalBuilder:v[0]||(v[0]=()=>{var y;return(y=g.value)==null?void 0:y.call(g)}),onSecondModalButtonFunctionDynamicModalBuilder:v[1]||(v[1]=()=>{var y;return(y=x.value)==null?void 0:y.call(x)}),onThirdModalButtonFunctionDynamicModalBuilder:v[2]||(v[2]=()=>{var y;return(y=u.value)==null?void 0:y.call(u)})},{default:o.withCtx(()=>[...v[3]||(v[3]=[o.createElementVNode("header",null,null,-1),o.createElementVNode("main",null,null,-1)])]),_:1},8,["showDynamicModalBuilder","type","gridColumnAmount","title","description","isLoading","firstButtonText","secondButtonText","thirdButtonText"])],64))}}),Tde={class:"pbx-editorSectionDesc"},Ede={class:"pbx-pageDesignOpenButtonText"},Pde={class:"pbx-pageDesignOpenButtonLabel"},Bde={class:"pbx-pageDesignOpenButtonHint"},Mde=o.defineComponent({name:"PageDesignSettingsEditor",__name:"PageDesignSettingsEditor",emits:["open"],setup(r){const{translate:e}=le();return(t,i)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page Design")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Tde,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(Mo),o.createElementVNode("span",Ede,[o.createElementVNode("span",Pde,o.toDisplayString(o.unref(e)("Open page design")),1),o.createElementVNode("span",Bde,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}))}}),Lde={class:"pbx-editorSectionDesc"},Ade={class:"pbx-inspectorActionStack"},Nde=o.defineComponent({name:"PageHtmlEditorSettingsEditor",__name:"PageHtmlEditorSettingsEditor",setup(r){const{translate:e}=le(),t=Le(),{openHtmlViewer:i}=jl(),{openHtmlEditor:n}=Gl(),a=async()=>{const l=await t.generateFullPageHtml();n(e("HTML Editor"),l,"page")},s=async()=>{const l=await t.generateFullPageHtml();i(e("Page HTML"),l)};return(l,p)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("HTML Editor")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Lde,o.toDisplayString(o.unref(e)("Page HTML editor description")),1),o.createElementVNode("div",Ade,[o.createVNode(qt,{icon:"visibility",label:o.unref(e)("View page HTML"),hint:o.unref(e)("Preview full page markup"),onClick:s},null,8,["label","hint"]),o.createVNode(qt,{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}))}}),Lo=function(r){return!r||typeof r=="object"&&r.constructor===Object&&Object.keys(r).length===0},_de="3.5.81";function kO(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 cb(r){const{showToast:e}=et(),{translate:t}=le();try{return await navigator.clipboard.writeText(r),e(t("Copied to clipboard"),"success"),!0}catch{return e(t("Clipboard unavailable"),"error"),!1}}const $de=["title","aria-label"],Dde={class:"pbx-inspectorIdChipText"},Ide={class:"pbx-inspectorIdChipIcon material-symbols-outlined","aria-hidden":"true"},zde={key:1,class:"pbx-inspectorValue"},SO=o.defineComponent({__name:"InspectorIdValue",props:{value:{}},setup(r){const e=r,{translate:t}=le(),i=o.ref(!1),n=o.computed(()=>{const l=e.value;return l==null||l===""?null:String(l)}),a=o.computed(()=>{const l=n.value;return l?l.length<=18?l:`${l.slice(0,8)}…${l.slice(-4)}`:"—"});async function s(){if(!n.value)return;await cb(n.value)&&(i.value=!0,globalThis.setTimeout(()=>{i.value=!1},2e3))}return(l,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:s},[o.createElementVNode("span",Dde,o.toDisplayString(a.value),1),o.createElementVNode("span",Ide,o.toDisplayString(i.value?"check":"content_copy"),1)],8,$de)):(o.openBlock(),o.createElementBlock("span",zde,"—"))}}),Hde={class:"pbx-selectedHtmlInspector"},Vde={class:"pbx-editorSectionDesc"},Rde={class:"pbx-editorFieldGroup"},Ode={class:"pbx-editorSectionTitle"},Fde={class:"pbx-inspectorCard"},jde={class:"pbx-inspectorLabel"},qde={class:"pbx-editorFieldGroup"},Ude={class:"pbx-editorSectionTitle"},Gde=["aria-label"],Wde=["aria-selected"],Kde=["aria-selected"],Jde=["aria-selected"],Yde={class:"pbx-inspectorPanel"},Qde={key:0,role:"tabpanel"},Xde={key:0,class:"pbx-inspectorEmpty"},Zde={class:"pbx-inspectorMeta pbx-mb-3"},ece={key:0,class:"pbx-inspectorMetaRow"},tce={class:"pbx-inspectorFieldLabel"},rce={class:"pbx-inspectorValue pbx-inspectorValueBreak"},oce={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},ice={class:"pbx-inspectorFieldLabel"},nce={class:"pbx-inspectorActionStack"},ace={key:1,role:"tabpanel"},sce={key:0,class:"pbx-inspectorEmpty"},lce={class:"pbx-inspectorMeta pbx-mb-3"},pce={class:"pbx-inspectorMetaRow"},dce={class:"pbx-inspectorFieldLabel"},cce={class:"pbx-inspectorMetaRow"},bce={class:"pbx-inspectorFieldLabel"},mce={class:"pbx-inspectorValue"},gce={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},xce={class:"pbx-inspectorFieldLabel"},uce={key:2,role:"tabpanel"},hce=["aria-expanded","aria-label"],fce={class:"pbx-inspectorComponentsSummaryContent"},yce={class:"pbx-inspectorComponentsSummaryChevron material-symbols-outlined","aria-hidden":"true"},wce={key:1,class:"pbx-inspectorComponentsSummary pbx-inspectorComponentsSummaryEmpty"},vce={class:"pbx-inspectorList"},kce=["aria-expanded","aria-label","onClick"],Sce={class:"pbx-inspectorComponentCardTitleContent"},Cce={class:"pbx-inspectorListIndex"},Tce={class:"pbx-inspectorListTitle"},Ece={class:"pbx-inspectorComponentsSummaryChevron material-symbols-outlined","aria-hidden":"true"},Pce={class:"pbx-inspectorComponentCardBody"},Bce={class:"pbx-inspectorMeta pbx-inspectorComponentCardMeta"},Mce={class:"pbx-inspectorMetaRow"},Lce={class:"pbx-inspectorFieldLabel"},Ace={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},Nce={class:"pbx-inspectorFieldLabel"},_ce={class:"pbx-inspectorComponentCardFooter"},$ce=o.defineComponent({__name:"SelectedHtmlInspector",setup(r){const{translate:e}=le(),{openHtmlViewer:t}=jl(),{openHtmlEditor:i}=Gl(),n=Ee,a=o.computed(()=>n.getElement),s=o.computed(()=>n.getComponent),l=o.computed(()=>n.getComponents),p=o.ref("element"),d=o.computed(()=>{var N;return((N=l.value)==null?void 0:N.length)??0}),c=o.ref(!1),b=o.ref(new Set);function m(){d.value&&(c.value=!c.value)}function g(N,L){return String(N.id??N.title??L)}function x(N,L){return b.value.has(g(N,L))}function u(N,L){const S=g(N,L),D=new Set(b.value);D.has(S)?D.delete(S):D.add(S),b.value=D}o.watch(c,N=>{N||(b.value=new Set)}),o.watch(p,N=>{N!=="components"&&(c.value=!1,b.value=new Set)});function h(N){return N?N.tagName.toLowerCase():"—"}function f(N){return N?"object":"—"}function v(N){return N.length?`${e("array")} · ${N.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(s.value),tone:s.value?"active":"muted"},{label:e("Components:"),value:v(l.value),tone:d.value>0?"active":"muted"}]),k=o.computed(()=>{var L;const N=a.value;return(L=N==null?void 0:N.classList)!=null&&L.length?Array.from(N.classList):[]}),B=o.computed(()=>{var N;return(N=s.value)!=null&&N.html_code?kO(s.value.html_code):[]}),T=o.computed(()=>{const N=a.value;return!N||N.tagName!=="IMG"?null:N.src||"—"});function w(N){p.value=N}function P(){a.value&&i(e("Element HTML"),a.value.outerHTML,"element")}function A(){a.value&&t(e("Element HTML"),a.value.outerHTML)}function C(N,L){const S=N.title||(L!==void 0?`${e("Component")} #${L+1}`:e("Component"));t(`${S} · ${e("HTML")}`,N.html_code||"")}function E(){s.value&&C(s.value)}function _(N){return kO(N.html_code||"")}return(N,L)=>(o.openBlock(),o.createElementBlock("div",Hde,[o.createElementVNode("p",Vde,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",Rde,[o.createElementVNode("h4",Ode,o.toDisplayString(o.unref(e)("Types")),1),o.createElementVNode("div",Fde,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(y.value,S=>(o.openBlock(),o.createElementBlock("div",{key:S.label,class:"pbx-inspectorRow"},[o.createElementVNode("span",jde,o.toDisplayString(S.label),1),o.createElementVNode("span",{class:o.normalizeClass(["pbx-inspectorBadge",S.tone==="active"?"pbx-inspectorBadgeActive":"pbx-inspectorBadgeMuted"])},o.toDisplayString(S.value),3)]))),128))])]),o.createElementVNode("div",qde,[o.createElementVNode("h4",Ude,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:L[0]||(L[0]=S=>w("element"))},o.toDisplayString(o.unref(e)("Element")),11,Wde),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:L[1]||(L[1]=S=>w("component"))},o.toDisplayString(o.unref(e)("Component")),11,Kde),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:L[2]||(L[2]=S=>w("components"))},o.toDisplayString(o.unref(e)("Components")),11,Jde)],8,Gde),o.createElementVNode("div",Yde,[p.value==="element"?(o.openBlock(),o.createElementBlock("div",Qde,[a.value?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[o.createElementVNode("div",Zde,[T.value!==null?(o.openBlock(),o.createElementBlock("div",ece,[o.createElementVNode("span",tce,o.toDisplayString(o.unref(e)("Element src:")),1),o.createElementVNode("span",rce,o.toDisplayString(T.value),1)])):o.createCommentVNode("",!0),o.createElementVNode("div",oce,[o.createElementVNode("span",ice,o.toDisplayString(o.unref(e)("Element classes:")),1),o.createVNode(Fl,{classes:k.value,"empty-placeholder":""},null,8,["classes"])])]),o.createElementVNode("div",nce,[o.createVNode(qt,{icon:"visibility",label:o.unref(e)("View element HTML"),hint:o.unref(e)("Preview selected element markup"),onClick:A},null,8,["label","hint"]),o.createVNode(qt,{icon:"deployed_code",label:o.unref(e)("Open element HTML editor"),hint:o.unref(e)("Edit selected element markup"),onClick:P},null,8,["label","hint"])])],64)):(o.openBlock(),o.createElementBlock("p",Xde,o.toDisplayString(o.unref(e)("No Element selected")),1))])):o.createCommentVNode("",!0),p.value==="component"?(o.openBlock(),o.createElementBlock("div",ace,[s.value?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[o.createElementVNode("div",lce,[o.createElementVNode("div",pce,[o.createElementVNode("span",dce,o.toDisplayString(o.unref(e)("ID:")),1),o.createVNode(SO,{value:s.value.id},null,8,["value"])]),o.createElementVNode("div",cce,[o.createElementVNode("span",bce,o.toDisplayString(o.unref(e)("Title:")),1),o.createElementVNode("span",mce,o.toDisplayString(s.value.title||"—"),1)]),o.createElementVNode("div",gce,[o.createElementVNode("span",xce,o.toDisplayString(o.unref(e)("Component classes:")),1),o.createVNode(Fl,{classes:B.value,"empty-placeholder":""},null,8,["classes"])])]),o.createVNode(qt,{icon:"visibility",label:o.unref(e)("View component HTML"),hint:o.unref(e)("Preview component markup"),onClick:E},null,8,["label","hint"])],64)):(o.openBlock(),o.createElementBlock("p",sce,o.toDisplayString(o.unref(e)("No Component selected")),1))])):o.createCommentVNode("",!0),p.value==="components"?(o.openBlock(),o.createElementBlock("div",uce,[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",fce,[o.createElementVNode("span",null,o.toDisplayString(o.unref(e)("Components")),1)]),o.createElementVNode("span",yce,o.toDisplayString(c.value?"expand_less":"expand_more"),1)],10,hce)):(o.openBlock(),o.createElementBlock("div",wce,o.toDisplayString(o.unref(e)("No Components added yet")),1)),o.withDirectives(o.createElementVNode("div",vce,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(l.value,(S,D)=>(o.openBlock(),o.createElementBlock("article",{key:String(S.id??S.title??D),class:"pbx-inspectorComponentCard"},[o.createElementVNode("button",{type:"button",class:"pbx-font-sans pbx-inspectorComponentCardToggle","aria-expanded":x(S,D),"aria-label":S.title||o.unref(e)("Component"),onClick:K=>u(S,D)},[o.createElementVNode("span",Sce,[o.createElementVNode("span",Cce,"#"+o.toDisplayString(D+1),1),o.createElementVNode("span",Tce,o.toDisplayString(S.title||o.unref(e)("Component")),1)]),o.createElementVNode("span",Ece,o.toDisplayString(x(S,D)?"expand_less":"expand_more"),1)],8,kce),o.withDirectives(o.createElementVNode("div",Pce,[o.createElementVNode("div",Bce,[o.createElementVNode("div",Mce,[o.createElementVNode("span",Lce,o.toDisplayString(o.unref(e)("ID:")),1),o.createVNode(SO,{value:S.id},null,8,["value"])]),o.createElementVNode("div",Ace,[o.createElementVNode("span",Nce,o.toDisplayString(o.unref(e)("Component classes:")),1),o.createVNode(Fl,{classes:_(S),"empty-placeholder":""},null,8,["classes"])])]),o.createElementVNode("div",_ce,[o.createVNode(qt,{icon:"visibility",label:o.unref(e)("View component HTML"),hint:o.unref(e)("Preview component markup"),onClick:K=>C(S,D)},null,8,["label","hint","onClick"])])],512),[[o.vShow,x(S,D)]])]))),128))],512),[[o.vShow,d.value&&c.value]])])):o.createCommentVNode("",!0)])])]))}}),Dce=r=>/^[a-z][a-z0-9+.-]*:/i.test(r)||r.startsWith("//");function Ice(r){r.querySelectorAll("[data-isl]").forEach(e=>{e.removeAttribute("data-isl-active");const t=e.querySelector(".pbx-isl-t");t&&(t.removeAttribute("style"),t.scrollLeft=0),e.querySelectorAll(".pbx-isl-nums span").forEach(a=>{a.removeAttribute("style")}),e.querySelectorAll(".pbx-isl-dot").forEach(a=>{a.removeAttribute("style")})})}function CO(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"),Ice(t),zl(t),Hl(t),e&&e&&typeof e.imageUrlPrefix=="string"){const a=e.imageUrlPrefix;t.querySelectorAll("img").forEach(l=>{const p=l.getAttribute("src")||"";p&&!p.startsWith("http")&&!Dce(p)&&a&&!p.startsWith(a)&&l.setAttribute("src",a+p.replace(/^\/+/,""))})}const n=a=>{for(let s=a.childNodes.length-1;s>=0;s--){const l=a.childNodes[s];l.nodeType===Node.COMMENT_NODE?a.removeChild(l):l.nodeType===Node.ELEMENT_NODE&&n(l)}};return n(t),t.outerHTML}const bb="--pbx-brand-color",mb="--pbx-brand-color-rgb",gb="--pbx-button-color",xb="--pbx-button-color-rgb",ub="--pbx-button-text-color",hb="--pbx-button-text-color-rgb";function Kl(r){return r!=null&&r.trim()?Mt(r)??r.trim():null}function fb(r){const e=Kl(r);if(!e)return null;const t=PR(e);return t?`${t.r} ${t.g} ${t.b}`:null}function zce(r){if(typeof document>"u")return;const e=Kl(r),t=fb(r);if(e&&t){document.documentElement.style.setProperty(bb,e),document.documentElement.style.setProperty(mb,t);return}TO()}function TO(){typeof document>"u"||(document.documentElement.style.removeProperty(bb),document.documentElement.style.removeProperty(mb))}function Hce(r,e){if(typeof document>"u")return;const t=r!=null&&r.trim()?r:e,i=Kl(t),n=fb(t);if(i&&n){document.documentElement.style.setProperty(gb,i),document.documentElement.style.setProperty(xb,n);return}EO()}function EO(){typeof document>"u"||(document.documentElement.style.removeProperty(gb),document.documentElement.style.removeProperty(xb))}function Vce(r){if(typeof document>"u")return;const e=Kl(r),t=fb(r);if(e&&t){document.documentElement.style.setProperty(ub,e),document.documentElement.style.setProperty(hb,t);return}PO()}function PO(){typeof document>"u"||(document.documentElement.style.removeProperty(ub),document.documentElement.style.removeProperty(hb))}const Rce=`
695
+ border-color 0.15s`}])},null,4)],8,Vpe),h.value===A.id?(o.openBlock(),o.createElementBlock("div",{key:0,class:"pbx-fixed pbx-inset-0 pbx-z-40",onClick:v})):o.createCommentVNode("",!0),h.value===A.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:P[0]||(P[0]=o.withModifiers(()=>{},["stop"]))},[o.createVNode(LR,{"model-value":A.color,"onUpdate:modelValue":C=>u(A,C)},null,8,["model-value","onUpdate:modelValue"])])):o.createCommentVNode("",!0)])])]))),128))]),o.createElementVNode("div",Rpe,[o.createElementVNode("div",null,[o.createElementVNode("p",Ope,o.toDisplayString(o.unref(e)("Reset to provided defaults")),1),o.createElementVNode("p",Fpe,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:k},[P[1]||(P[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(dt,{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:B,onThirdModalButtonFunctionDynamicModalBuilder:T},{default:o.withCtx(()=>[...P[2]||(P[2]=[o.createElementVNode("header",null,null,-1),o.createElementVNode("main",null,null,-1)])]),_:1},8,["showDynamicModalBuilder","title","description","firstButtonText","thirdButtonText"])],64))}}),qpe=o.defineComponent({__name:"ThemeColorSettingsEditor",setup(r){const{translate:e}=le();return(t,i)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Theme & colors")),1)]),content:o.withCtx(()=>[o.createVNode(jpe,{embedded:""})]),_:1}))}}),Upe={class:"pbx-editorSectionDesc"},Gpe={class:"pbx-editorFieldGroup"},Wpe={for:"page-meta-title",class:"pbx-myPrimaryInputLabel"},Kpe=["placeholder"],Jpe={class:"pbx-editorFieldGroup"},Ype={for:"page-meta-description",class:"pbx-myPrimaryInputLabel"},Qpe=["placeholder"],Xpe=["disabled"],Zpe={key:0,class:"material-symbols-outlined"},ede={key:1,class:"material-symbols-outlined pbx-animate-spin"},tde=o.defineComponent({name:"PageMetaSettingsEditor",__name:"PageMetaSettingsEditor",setup(r){const{translate:e}=le(),{showToast:t}=et(),i=Le(),n=o.ref(""),a=o.ref(""),s=o.ref(!1);o.onMounted(()=>{const p=i.getPageMeta();n.value=p.title||"",a.value=p.description||""});const l=async()=>{if(!s.value){s.value=!0,await qi(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{s.value=!1}}};return(p,d)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page Meta")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Upe,o.toDisplayString(o.unref(e)("Page meta description")),1),o.createElementVNode("div",Gpe,[o.createElementVNode("label",Wpe,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,Kpe),[[o.vModelText,n.value]])]),o.createElementVNode("div",Jpe,[o.createElementVNode("label",Ype,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,Qpe),[[o.vModelText,a.value]])]),o.createElementVNode("button",{type:"button",class:"pbx-editChromeButton pbx-w-full",disabled:s.value,onClick:l},[o.createTextVNode(o.toDisplayString(o.unref(e)("Save"))+" ",1),s.value?o.createCommentVNode("",!0):(o.openBlock(),o.createElementBlock("span",Zpe,"save")),s.value?(o.openBlock(),o.createElementBlock("span",ede,"refresh")):o.createCommentVNode("",!0)],8,Xpe)]),_:1}))}}),rde={key:0,class:"pbx-fixed pbx-inset-0 pbx-z-[9999]"},ode={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"},ide={class:"pbx-myQuaternaryHeader pbx-my-0 pbx-py-0 pbx-text-black"},nde={class:"pbx-pt-4 pbx-px-2"},vO=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(s,l)=>(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",rde,[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:l[0]||(l[0]=o.withModifiers(()=>{},["stop"]))},[o.createElementVNode("div",ode,[o.createElementVNode("span",ide,o.toDisplayString(r.title),1),o.createElementVNode("span",{onClick:n},[...l[1]||(l[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",nde,[o.renderSlot(s.$slots,"default")])],2)])):o.createCommentVNode("",!0)]),_:3})]))}}),ade={class:"pbx-overflow-y-auto"},sde={key:0,class:"pbx-flex pbx-items-center pbx-justify-center pbx-gap-2"},lde={class:"pbx-bg-gray-100 pbx-rounded-full pbx-w-32 pbx-h-32 pbx-flex pbx-items-center pbx-justify-center"},pde={class:"pbx-text-center"},dde={class:"pbx-lg:pbx-text-7xl pbx-text-5xl"},cde={key:1,class:"pbx-w-full pbx-space-y-5"},bde={class:"pbx-text-base pbx-font-semibold pbx-text-center pbx-text-myPrimaryDarkGrayColor"},mde={class:"pbx-seoCheckGroupTitle"},gde={class:"pbx-space-y-2"},xde={class:"material-symbols-outlined","aria-hidden":"true"},ude={class:"pbx-pageDesignOpenButtonText"},hde={class:"pbx-pageDesignOpenButtonLabel"},fde={class:"pbx-pageDesignOpenButtonHint"},yde={key:2,class:"pbx-text-gray-500 pbx-text-center pbx-py-8"},wde=o.defineComponent({__name:"SeoCheckPanel",props:{seoResult:{}},setup(r){const e=r,{translate:t}=le(),i=o.computed(()=>{if(!e.seoResult)return[];const n=new Map;for(const a of e.seoResult.checks){const s=a.category??"Other";n.has(s)||n.set(s,[]),n.get(s).push(a)}return Array.from(n.entries()).map(([a,s])=>({title:a,checks:s}))});return(n,a)=>(o.openBlock(),o.createElementBlock("div",ade,[r.seoResult?(o.openBlock(),o.createElementBlock("div",sde,[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",lde,[o.createElementVNode("div",pde,[o.createElementVNode("span",dde,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",cde,[o.createElementVNode("h3",bde,o.toDisplayString(o.unref(t)("SEO Check Results")),1),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.value,s=>(o.openBlock(),o.createElementBlock("div",{key:s.title,class:"pbx-space-y-2"},[o.createElementVNode("h4",mde,o.toDisplayString(o.unref(t)(s.title)),1),o.createElementVNode("ul",gde,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(s.checks,(l,p)=>(o.openBlock(),o.createElementBlock("li",{key:p,class:o.normalizeClass(["pbx-seoCheckRow",l.passed?"pbx-seoCheckRow--pass":"pbx-seoCheckRow--fail"])},[o.createElementVNode("span",{class:o.normalizeClass(["pbx-seoCheckRowIcon",l.passed?"pbx-seoCheckRowIcon--pass":"pbx-seoCheckRowIcon--fail"])},[o.createElementVNode("span",xde,o.toDisplayString(l.passed?"check":"close"),1)],2),o.createElementVNode("span",ude,[o.createElementVNode("span",hde,o.toDisplayString(o.unref(t)(l.check)),1),o.createElementVNode("span",fde,o.toDisplayString(l.details),1)])],2))),128))])]))),128))])):(o.openBlock(),o.createElementBlock("div",yde,o.toDisplayString(o.unref(t)("No SEO checks available.")),1))]))}}),vde={class:"pbx-editorSectionDesc"},kde=o.defineComponent({name:"SeoCheckSettingsEditor",__name:"SeoCheckSettingsEditor",setup(r){const{translate:e}=le(),t=Le(),i=o.ref(null),n=o.ref(!1),a=o.ref(!1),s=async()=>{a.value=!0,n.value=!0,await qi(300);try{i.value=await t.analyzeSEO()}finally{a.value=!1}},l=()=>{n.value=!1};return(p,d)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("SEO Check")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",vde,o.toDisplayString(o.unref(e)("SEO check description")),1),o.createVNode(qt,{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:s},null,8,["label","hint","is-loading"])]),_:1}),o.createVNode(vO,{title:o.unref(e)("SEO Check"),showSidebarPanel:n.value,position:"left",onCloseSidebarPanel:l},{default:o.withCtx(()=>[o.createVNode(wde,{"seo-result":i.value},null,8,["seo-result"])]),_:1},8,["title","showSidebarPanel"])],64))}}),Sde={class:"pbx-editorSectionDesc"},Cde=o.defineComponent({name:"RemoveAllComponentsSettingsEditor",__name:"RemoveAllComponentsSettingsEditor",setup(r){const{translate:e}=le(),{showToast:t}=et(),i=Le(),n=o.ref(!1),a=o.ref(!1),s=o.ref(""),l=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,s.value="delete",l.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({preservePageSettings:!1}),await tt(500),a.value=!1,n.value=!1,t(e("All components removed"),"success")}};return(f,v)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page layout")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Sde,o.toDisplayString(o.unref(e)("Remove all components description")),1),o.createVNode(qt,{icon:"delete_forever",label:o.unref(e)("Remove all Components"),hint:o.unref(e)("Clear every section from the page"),variant:"danger",onClick:h},null,8,["label","hint"])]),_:1}),o.createVNode(dt,{showDynamicModalBuilder:a.value,type:s.value,gridColumnAmount:l.value,title:p.value,description:d.value,isLoading:n.value,firstButtonText:c.value,secondButtonText:b.value??void 0,thirdButtonText:m.value??void 0,onFirstModalButtonFunctionDynamicModalBuilder:v[0]||(v[0]=()=>{var y;return(y=g.value)==null?void 0:y.call(g)}),onSecondModalButtonFunctionDynamicModalBuilder:v[1]||(v[1]=()=>{var y;return(y=x.value)==null?void 0:y.call(x)}),onThirdModalButtonFunctionDynamicModalBuilder:v[2]||(v[2]=()=>{var y;return(y=u.value)==null?void 0:y.call(u)})},{default:o.withCtx(()=>[...v[3]||(v[3]=[o.createElementVNode("header",null,null,-1),o.createElementVNode("main",null,null,-1)])]),_:1},8,["showDynamicModalBuilder","type","gridColumnAmount","title","description","isLoading","firstButtonText","secondButtonText","thirdButtonText"])],64))}}),Tde={class:"pbx-editorSectionDesc"},Ede={class:"pbx-pageDesignOpenButtonText"},Pde={class:"pbx-pageDesignOpenButtonLabel"},Bde={class:"pbx-pageDesignOpenButtonHint"},Mde=o.defineComponent({name:"PageDesignSettingsEditor",__name:"PageDesignSettingsEditor",emits:["open"],setup(r){const{translate:e}=le();return(t,i)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("Page Design")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Tde,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(Mo),o.createElementVNode("span",Ede,[o.createElementVNode("span",Pde,o.toDisplayString(o.unref(e)("Open page design")),1),o.createElementVNode("span",Bde,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}))}}),Lde={class:"pbx-editorSectionDesc"},Ade={class:"pbx-inspectorActionStack"},Nde=o.defineComponent({name:"PageHtmlEditorSettingsEditor",__name:"PageHtmlEditorSettingsEditor",setup(r){const{translate:e}=le(),t=Le(),{openHtmlViewer:i}=jl(),{openHtmlEditor:n}=Gl(),a=async()=>{const l=await t.generateFullPageHtml();n(e("HTML Editor"),l,"page")},s=async()=>{const l=await t.generateFullPageHtml();i(e("Page HTML"),l)};return(l,p)=>(o.openBlock(),o.createBlock(qe,null,{title:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(e)("HTML Editor")),1)]),content:o.withCtx(()=>[o.createElementVNode("p",Lde,o.toDisplayString(o.unref(e)("Page HTML editor description")),1),o.createElementVNode("div",Ade,[o.createVNode(qt,{icon:"visibility",label:o.unref(e)("View page HTML"),hint:o.unref(e)("Preview full page markup"),onClick:s},null,8,["label","hint"]),o.createVNode(qt,{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}))}}),Lo=function(r){return!r||typeof r=="object"&&r.constructor===Object&&Object.keys(r).length===0},_de="3.5.82";function kO(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 cb(r){const{showToast:e}=et(),{translate:t}=le();try{return await navigator.clipboard.writeText(r),e(t("Copied to clipboard"),"success"),!0}catch{return e(t("Clipboard unavailable"),"error"),!1}}const $de=["title","aria-label"],Dde={class:"pbx-inspectorIdChipText"},Ide={class:"pbx-inspectorIdChipIcon material-symbols-outlined","aria-hidden":"true"},zde={key:1,class:"pbx-inspectorValue"},SO=o.defineComponent({__name:"InspectorIdValue",props:{value:{}},setup(r){const e=r,{translate:t}=le(),i=o.ref(!1),n=o.computed(()=>{const l=e.value;return l==null||l===""?null:String(l)}),a=o.computed(()=>{const l=n.value;return l?l.length<=18?l:`${l.slice(0,8)}…${l.slice(-4)}`:"—"});async function s(){if(!n.value)return;await cb(n.value)&&(i.value=!0,globalThis.setTimeout(()=>{i.value=!1},2e3))}return(l,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:s},[o.createElementVNode("span",Dde,o.toDisplayString(a.value),1),o.createElementVNode("span",Ide,o.toDisplayString(i.value?"check":"content_copy"),1)],8,$de)):(o.openBlock(),o.createElementBlock("span",zde,"—"))}}),Hde={class:"pbx-selectedHtmlInspector"},Vde={class:"pbx-editorSectionDesc"},Rde={class:"pbx-editorFieldGroup"},Ode={class:"pbx-editorSectionTitle"},Fde={class:"pbx-inspectorCard"},jde={class:"pbx-inspectorLabel"},qde={class:"pbx-editorFieldGroup"},Ude={class:"pbx-editorSectionTitle"},Gde=["aria-label"],Wde=["aria-selected"],Kde=["aria-selected"],Jde=["aria-selected"],Yde={class:"pbx-inspectorPanel"},Qde={key:0,role:"tabpanel"},Xde={key:0,class:"pbx-inspectorEmpty"},Zde={class:"pbx-inspectorMeta pbx-mb-3"},ece={key:0,class:"pbx-inspectorMetaRow"},tce={class:"pbx-inspectorFieldLabel"},rce={class:"pbx-inspectorValue pbx-inspectorValueBreak"},oce={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},ice={class:"pbx-inspectorFieldLabel"},nce={class:"pbx-inspectorActionStack"},ace={key:1,role:"tabpanel"},sce={key:0,class:"pbx-inspectorEmpty"},lce={class:"pbx-inspectorMeta pbx-mb-3"},pce={class:"pbx-inspectorMetaRow"},dce={class:"pbx-inspectorFieldLabel"},cce={class:"pbx-inspectorMetaRow"},bce={class:"pbx-inspectorFieldLabel"},mce={class:"pbx-inspectorValue"},gce={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},xce={class:"pbx-inspectorFieldLabel"},uce={key:2,role:"tabpanel"},hce=["aria-expanded","aria-label"],fce={class:"pbx-inspectorComponentsSummaryContent"},yce={class:"pbx-inspectorComponentsSummaryChevron material-symbols-outlined","aria-hidden":"true"},wce={key:1,class:"pbx-inspectorComponentsSummary pbx-inspectorComponentsSummaryEmpty"},vce={class:"pbx-inspectorList"},kce=["aria-expanded","aria-label","onClick"],Sce={class:"pbx-inspectorComponentCardTitleContent"},Cce={class:"pbx-inspectorListIndex"},Tce={class:"pbx-inspectorListTitle"},Ece={class:"pbx-inspectorComponentsSummaryChevron material-symbols-outlined","aria-hidden":"true"},Pce={class:"pbx-inspectorComponentCardBody"},Bce={class:"pbx-inspectorMeta pbx-inspectorComponentCardMeta"},Mce={class:"pbx-inspectorMetaRow"},Lce={class:"pbx-inspectorFieldLabel"},Ace={class:"pbx-inspectorMetaRow pbx-inspectorMetaRowStacked"},Nce={class:"pbx-inspectorFieldLabel"},_ce={class:"pbx-inspectorComponentCardFooter"},$ce=o.defineComponent({__name:"SelectedHtmlInspector",setup(r){const{translate:e}=le(),{openHtmlViewer:t}=jl(),{openHtmlEditor:i}=Gl(),n=Ee,a=o.computed(()=>n.getElement),s=o.computed(()=>n.getComponent),l=o.computed(()=>n.getComponents),p=o.ref("element"),d=o.computed(()=>{var N;return((N=l.value)==null?void 0:N.length)??0}),c=o.ref(!1),b=o.ref(new Set);function m(){d.value&&(c.value=!c.value)}function g(N,L){return String(N.id??N.title??L)}function x(N,L){return b.value.has(g(N,L))}function u(N,L){const S=g(N,L),D=new Set(b.value);D.has(S)?D.delete(S):D.add(S),b.value=D}o.watch(c,N=>{N||(b.value=new Set)}),o.watch(p,N=>{N!=="components"&&(c.value=!1,b.value=new Set)});function h(N){return N?N.tagName.toLowerCase():"—"}function f(N){return N?"object":"—"}function v(N){return N.length?`${e("array")} · ${N.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(s.value),tone:s.value?"active":"muted"},{label:e("Components:"),value:v(l.value),tone:d.value>0?"active":"muted"}]),k=o.computed(()=>{var L;const N=a.value;return(L=N==null?void 0:N.classList)!=null&&L.length?Array.from(N.classList):[]}),B=o.computed(()=>{var N;return(N=s.value)!=null&&N.html_code?kO(s.value.html_code):[]}),T=o.computed(()=>{const N=a.value;return!N||N.tagName!=="IMG"?null:N.src||"—"});function w(N){p.value=N}function P(){a.value&&i(e("Element HTML"),a.value.outerHTML,"element")}function A(){a.value&&t(e("Element HTML"),a.value.outerHTML)}function C(N,L){const S=N.title||(L!==void 0?`${e("Component")} #${L+1}`:e("Component"));t(`${S} · ${e("HTML")}`,N.html_code||"")}function E(){s.value&&C(s.value)}function _(N){return kO(N.html_code||"")}return(N,L)=>(o.openBlock(),o.createElementBlock("div",Hde,[o.createElementVNode("p",Vde,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",Rde,[o.createElementVNode("h4",Ode,o.toDisplayString(o.unref(e)("Types")),1),o.createElementVNode("div",Fde,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(y.value,S=>(o.openBlock(),o.createElementBlock("div",{key:S.label,class:"pbx-inspectorRow"},[o.createElementVNode("span",jde,o.toDisplayString(S.label),1),o.createElementVNode("span",{class:o.normalizeClass(["pbx-inspectorBadge",S.tone==="active"?"pbx-inspectorBadgeActive":"pbx-inspectorBadgeMuted"])},o.toDisplayString(S.value),3)]))),128))])]),o.createElementVNode("div",qde,[o.createElementVNode("h4",Ude,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:L[0]||(L[0]=S=>w("element"))},o.toDisplayString(o.unref(e)("Element")),11,Wde),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:L[1]||(L[1]=S=>w("component"))},o.toDisplayString(o.unref(e)("Component")),11,Kde),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:L[2]||(L[2]=S=>w("components"))},o.toDisplayString(o.unref(e)("Components")),11,Jde)],8,Gde),o.createElementVNode("div",Yde,[p.value==="element"?(o.openBlock(),o.createElementBlock("div",Qde,[a.value?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[o.createElementVNode("div",Zde,[T.value!==null?(o.openBlock(),o.createElementBlock("div",ece,[o.createElementVNode("span",tce,o.toDisplayString(o.unref(e)("Element src:")),1),o.createElementVNode("span",rce,o.toDisplayString(T.value),1)])):o.createCommentVNode("",!0),o.createElementVNode("div",oce,[o.createElementVNode("span",ice,o.toDisplayString(o.unref(e)("Element classes:")),1),o.createVNode(Fl,{classes:k.value,"empty-placeholder":""},null,8,["classes"])])]),o.createElementVNode("div",nce,[o.createVNode(qt,{icon:"visibility",label:o.unref(e)("View element HTML"),hint:o.unref(e)("Preview selected element markup"),onClick:A},null,8,["label","hint"]),o.createVNode(qt,{icon:"deployed_code",label:o.unref(e)("Open element HTML editor"),hint:o.unref(e)("Edit selected element markup"),onClick:P},null,8,["label","hint"])])],64)):(o.openBlock(),o.createElementBlock("p",Xde,o.toDisplayString(o.unref(e)("No Element selected")),1))])):o.createCommentVNode("",!0),p.value==="component"?(o.openBlock(),o.createElementBlock("div",ace,[s.value?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[o.createElementVNode("div",lce,[o.createElementVNode("div",pce,[o.createElementVNode("span",dce,o.toDisplayString(o.unref(e)("ID:")),1),o.createVNode(SO,{value:s.value.id},null,8,["value"])]),o.createElementVNode("div",cce,[o.createElementVNode("span",bce,o.toDisplayString(o.unref(e)("Title:")),1),o.createElementVNode("span",mce,o.toDisplayString(s.value.title||"—"),1)]),o.createElementVNode("div",gce,[o.createElementVNode("span",xce,o.toDisplayString(o.unref(e)("Component classes:")),1),o.createVNode(Fl,{classes:B.value,"empty-placeholder":""},null,8,["classes"])])]),o.createVNode(qt,{icon:"visibility",label:o.unref(e)("View component HTML"),hint:o.unref(e)("Preview component markup"),onClick:E},null,8,["label","hint"])],64)):(o.openBlock(),o.createElementBlock("p",sce,o.toDisplayString(o.unref(e)("No Component selected")),1))])):o.createCommentVNode("",!0),p.value==="components"?(o.openBlock(),o.createElementBlock("div",uce,[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",fce,[o.createElementVNode("span",null,o.toDisplayString(o.unref(e)("Components")),1)]),o.createElementVNode("span",yce,o.toDisplayString(c.value?"expand_less":"expand_more"),1)],10,hce)):(o.openBlock(),o.createElementBlock("div",wce,o.toDisplayString(o.unref(e)("No Components added yet")),1)),o.withDirectives(o.createElementVNode("div",vce,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(l.value,(S,D)=>(o.openBlock(),o.createElementBlock("article",{key:String(S.id??S.title??D),class:"pbx-inspectorComponentCard"},[o.createElementVNode("button",{type:"button",class:"pbx-font-sans pbx-inspectorComponentCardToggle","aria-expanded":x(S,D),"aria-label":S.title||o.unref(e)("Component"),onClick:K=>u(S,D)},[o.createElementVNode("span",Sce,[o.createElementVNode("span",Cce,"#"+o.toDisplayString(D+1),1),o.createElementVNode("span",Tce,o.toDisplayString(S.title||o.unref(e)("Component")),1)]),o.createElementVNode("span",Ece,o.toDisplayString(x(S,D)?"expand_less":"expand_more"),1)],8,kce),o.withDirectives(o.createElementVNode("div",Pce,[o.createElementVNode("div",Bce,[o.createElementVNode("div",Mce,[o.createElementVNode("span",Lce,o.toDisplayString(o.unref(e)("ID:")),1),o.createVNode(SO,{value:S.id},null,8,["value"])]),o.createElementVNode("div",Ace,[o.createElementVNode("span",Nce,o.toDisplayString(o.unref(e)("Component classes:")),1),o.createVNode(Fl,{classes:_(S),"empty-placeholder":""},null,8,["classes"])])]),o.createElementVNode("div",_ce,[o.createVNode(qt,{icon:"visibility",label:o.unref(e)("View component HTML"),hint:o.unref(e)("Preview component markup"),onClick:K=>C(S,D)},null,8,["label","hint","onClick"])])],512),[[o.vShow,x(S,D)]])]))),128))],512),[[o.vShow,d.value&&c.value]])])):o.createCommentVNode("",!0)])])]))}}),Dce=r=>/^[a-z][a-z0-9+.-]*:/i.test(r)||r.startsWith("//");function Ice(r){r.querySelectorAll("[data-isl]").forEach(e=>{e.removeAttribute("data-isl-active");const t=e.querySelector(".pbx-isl-t");t&&(t.removeAttribute("style"),t.scrollLeft=0),e.querySelectorAll(".pbx-isl-nums span").forEach(a=>{a.removeAttribute("style")}),e.querySelectorAll(".pbx-isl-dot").forEach(a=>{a.removeAttribute("style")})})}function CO(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"),Ice(t),zl(t),Hl(t),e&&e&&typeof e.imageUrlPrefix=="string"){const a=e.imageUrlPrefix;t.querySelectorAll("img").forEach(l=>{const p=l.getAttribute("src")||"";p&&!p.startsWith("http")&&!Dce(p)&&a&&!p.startsWith(a)&&l.setAttribute("src",a+p.replace(/^\/+/,""))})}const n=a=>{for(let s=a.childNodes.length-1;s>=0;s--){const l=a.childNodes[s];l.nodeType===Node.COMMENT_NODE?a.removeChild(l):l.nodeType===Node.ELEMENT_NODE&&n(l)}};return n(t),t.outerHTML}const bb="--pbx-brand-color",mb="--pbx-brand-color-rgb",gb="--pbx-button-color",xb="--pbx-button-color-rgb",ub="--pbx-button-text-color",hb="--pbx-button-text-color-rgb";function Kl(r){return r!=null&&r.trim()?Mt(r)??r.trim():null}function fb(r){const e=Kl(r);if(!e)return null;const t=PR(e);return t?`${t.r} ${t.g} ${t.b}`:null}function zce(r){if(typeof document>"u")return;const e=Kl(r),t=fb(r);if(e&&t){document.documentElement.style.setProperty(bb,e),document.documentElement.style.setProperty(mb,t);return}TO()}function TO(){typeof document>"u"||(document.documentElement.style.removeProperty(bb),document.documentElement.style.removeProperty(mb))}function Hce(r,e){if(typeof document>"u")return;const t=r!=null&&r.trim()?r:e,i=Kl(t),n=fb(t);if(i&&n){document.documentElement.style.setProperty(gb,i),document.documentElement.style.setProperty(xb,n);return}EO()}function EO(){typeof document>"u"||(document.documentElement.style.removeProperty(gb),document.documentElement.style.removeProperty(xb))}function Vce(r){if(typeof document>"u")return;const e=Kl(r),t=fb(r);if(e&&t){document.documentElement.style.setProperty(ub,e),document.documentElement.style.setProperty(hb,t);return}PO()}function PO(){typeof document>"u"||(document.documentElement.style.removeProperty(ub),document.documentElement.style.removeProperty(hb))}const Rce=`
696
696
  <style>
697
697
  #pagebuilder blockquote,
698
698
  #pagebuilder dl,
@@ -742,7 +742,7 @@ ${Rce}`;return`
742
742
  ${f}
743
743
  </div></div></div>
744
744
  </section>`}const eF=["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"];function o0e(r){if(r.tagName!=="A")return!1;const e=r.className,t=r.classList;return t.contains("pbx-product-card-cta-link")||t.contains("product-card-cta-link")||e.includes("pbx-inline-flex")||/(^|\s)inline-flex(\s|$)/.test(e)||e.includes("pbx-bg-")||/(^|\s)bg-[^\s]+/.test(e)||e.includes("pbx-rounded")||/(^|\s)rounded(-[^\s]+)?(\s|$)/.test(e)||!!r.closest("#linktree, .pbx-product-card-cta, .product-card-cta")}function tF(r){return Array.from(r.querySelectorAll("[class]")).filter(e=>eF.includes(e.tagName)).filter(e=>e.tagName!=="IFRAME").filter(e=>!e.closest("[data-pb-no-select]")).filter(e=>!o0e(e)).filter(e=>e.className.trim().length>0).map(e=>({tagName:e.tagName,className:e.className,outerHTML:e.outerHTML}))}const No={NO_HTML_CONTENT:"No HTML content was provided. Please ensure a valid HTML string is passed.",UNEVEN_SECTIONS:"Uneven <section> tags detected in the provided HTML. Each component must be wrapped in its own properly paired <section>...</section>. Ensure that all <section> tags have a matching closing </section> tag.",NESTED_SECTIONS:"Nested <section> tags are not allowed. Please ensure that no <section> is placed inside another <section>.",NO_SECTIONS_FOUND:"No <section> tags found. Each component must be wrapped in a <section> tag.",SECTION_NOT_ALLOWED_IN_ELEMENT_HTML:"Error: The <section> tag cannot be used as it is already included inside this component.",JSON_NOT_HTML:"Brackets [] or curly braces {} are not valid HTML. They are used for data formats like JSON.",COULD_NOT_PARSE_ELEMENT:"Could not parse element from HTML string."};function rF(r){return`[PageBuilder] A non-editable <${r.tagName.toLowerCase()}> tag was inserted with classes: "${r.className}". Move these classes to an editable wrapper element instead.`}function i0e(r){const e=tF(r);e.length&&e.forEach(t=>{console.error(rF(t),t.outerHTML)})}function oF(r){return{opening:(r.match(/<section\b[^>]*>/gi)||[]).length,closing:(r.match(/<\/section>/gi)||[]).length}}function n0e(r){const e=document.createElement("div");return e.innerHTML=r.trim(),!!e.querySelector("section section")}function iF(r){const e=r.trim(),{opening:t,closing:i}=oF(r);return!r||e.length===0?{message:No.NO_HTML_CONTENT}:t!==i?{message:No.UNEVEN_SECTIONS}:n0e(e)?{message:No.NESTED_SECTIONS}:e.startsWith("[")||e.startsWith("{")?{message:No.JSON_NOT_HTML}:null}function nF(r){const{opening:e}=oF(r);return e===0?{message:No.NO_SECTIONS_FOUND}:null}function a0e(r){return/<section[\s>]/i.test(r)?{message:No.SECTION_NOT_ALLOWED_IN_ELEMENT_HTML}:null}function s0e(r){const e=[];return r.forEach((t,i)=>{if(typeof t.html_code!="string")return;const n=t.html_code,a=typeof t.title=="string"?t.title:null,s=iF(n);if(s)e.push({componentIndex:i,componentTitle:a,message:s.message});else{const p=nF(n);p&&e.push({componentIndex:i,componentTitle:a,message:p.message})}const l=document.createElement("template");l.innerHTML=n,tF(l.content).forEach(p=>{e.push({componentIndex:i,componentTitle:a,message:rF(p),detail:p.outerHTML})})}),e}function l0e(r){r.forEach(e=>{console.error(e.message,e.detail??"",{componentIndex:e.componentIndex,componentTitle:e.componentTitle})})}const Eb="data-meta-title",Pb="data-meta-description";function ya(r){return{title:r.getAttribute(Eb)||"",description:r.getAttribute(Pb)||""}}function wa(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(Eb,t):r.removeAttribute(Eb),i?r.setAttribute(Pb,i):r.removeAttribute(Pb)}function va(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 p0e(r,e){return{...r,meta:{...va(r),...e}}}function d0e(r,e,t=180){const i=e.getBoundingClientRect(),n=r.getBoundingClientRect(),s=i.top-n.top+r.scrollTop-r.clientHeight/2+e.clientHeight/2,l=r.scrollTop,p=s-l;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=l+p*g,window.dispatchEvent(new CustomEvent("pagebuilder:layout-change")),m<1){requestAnimationFrame(c);return}window.dispatchEvent(new CustomEvent("pagebuilder:layout-change"))};requestAnimationFrame(c)}const c0e=["en","zh-Hans","fr","ja","ru","es","pt","de","ar","hi","da","it"],ip="pbx-full-width-component";class aF{constructor(e){xe(this,"fontSizeRegex",/^(sm:|md:|lg:|xl:|2xl:)?pbx-text-(xs|sm|base|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl|8xl|9xl)$/);xe(this,"pageBuilderStateStore");xe(this,"getLocalStorageItemName");xe(this,"getApplyImageToSelection");xe(this,"getHyberlinkEnable");xe(this,"getComponents");xe(this,"getComponent");xe(this,"getElement");xe(this,"getComponentArrayAddMethod");xe(this,"NoneListernesTags");xe(this,"hasStartedEditing",!1);xe(this,"originalComponents");xe(this,"originalPageSettings",null);xe(this,"savedMountComponents",null);xe(this,"pendingMountComponents",null);xe(this,"globalStylesObserver",null);xe(this,"_pendingPageSettings",null);xe(this,"_lastKnownPageSettings",null);xe(this,"isPageBuilderMissingOnStart",!1);xe(this,"hasCompletedBuilderMount",!1);xe(this,"builderWasMountedBeforeClose",!1);xe(this,"builderMountPromise",null);xe(this,"activeBuilderSessionToken",0);xe(this,"canvasClickCaptureListener",null);xe(this,"canvasDblClickCaptureListener",null);xe(this,"persistenceGeneration",0);xe(this,"elementsWithListeners",new WeakMap);xe(this,"translate");xe(this,"handleMouseOver",(e,t)=>{if(this.pageBuilderStateStore.getInlineTipTapEditor)return;e.preventDefault(),e.stopPropagation();const i=this.getBuilderCanvasElement();if(!i)return;const n=i.querySelector("[hovered]");n&&n.removeAttribute("hovered"),t.hasAttribute("selected")||t.setAttribute("hovered","")});xe(this,"handleMouseLeave",e=>{if(this.pageBuilderStateStore.getInlineTipTapEditor)return;e.preventDefault(),e.stopPropagation();const t=this.getBuilderCanvasElement();if(!t)return;const i=t.querySelector("[hovered]");i&&i.removeAttribute("hovered")});xe(this,"addListenersToEditableElements",async()=>{const e=this.getBuilderCanvasElement();if(!e)return;await o.nextTick(),this.attachCanvasInlineEditListeners(e);let t=0,i=0;e.querySelectorAll("section *").forEach(n=>{if(this.isEditableElement(n)){t++;const a=n;if(this.elementsWithListeners.has(a)){const c=this.elementsWithListeners.get(a);c&&(a.removeEventListener("click",c.click),a.removeEventListener("dblclick",c.dblclick),a.removeEventListener("mouseover",c.mouseover),a.removeEventListener("mouseleave",c.mouseleave))}const s=c=>this.handleElementClick(c,a),l=c=>this.handleElementDoubleClick(c,a),p=c=>this.handleMouseOver(c,a),d=c=>this.handleMouseLeave(c);a.addEventListener("click",s),a.addEventListener("dblclick",l),a.addEventListener("mouseover",p),a.addEventListener("mouseleave",d),i++,this.elementsWithListeners.set(a,{click:s,dblclick:l,mouseover:p,mouseleave:d})}}),this.debugLog("log","addListenersToEditableElements(): attached listeners",{eligible:t,attached:i,hasSections:!!e.querySelector("section")})});xe(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)){const i=e.target instanceof Element&&!!e.target.closest("[data-pbx-insert-btn]");i||(e.preventDefault(),e.stopPropagation());const n=i?null:this.findEditableElementFromEventTarget(e.target);this.finishActiveInlineTipTapEditorFromDom(n)}}});xe(this,"handleCanvasDoubleClickCapture",async e=>{await this.openInlineTipTapFromEvent(e)});xe(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,!1)}});xe(this,"handleElementDoubleClick",async(e,t)=>{if(!this.pageBuilderStateStore.getImageSettingsPanelOpen&&!this.pageBuilderStateStore.getInlineTipTapEditor){if(!this.isValidTextElement(t)){e.stopPropagation();return}e.preventDefault(),e.stopPropagation(),this.invalidatePendingPersistence("handleElementDoubleClick"),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setInlineTipTapEditor(!0),await this.openInlineTipTapForElement(t),this.hasInlineTipTapElement()||this.pageBuilderStateStore.setInlineTipTapEditor(!1)}});xe(this,"handleAutoSave",async e=>{if(this.startEditing(),e!==void 0&&e!==this.persistenceGeneration){this.debugLog("warn","handleAutoSave(): skipped — persistence invalidated",{expected:e,current:this.persistenceGeneration});return}if(this.isInlineTipTapActive()){this.debugLog("warn","handleAutoSave(): skipped — TipTap active");return}if(this.pageBuilderStateStore.getImageSettingsPanelOpen){if(this.pageBuilderStateStore.getIsSaving)return;try{this.pageBuilderStateStore.setIsSaving(!0),this.saveDomComponentsToLocalStorage(),await tt(400)}catch(i){console.error("Error trying auto save during image settings.",i),this.debugLog("error","handleAutoSave(): error (image settings)",i);const{showToast:n}=et(),{translate:a}=le();n(a("Auto-save failed — please save manually"),"error")}finally{this.pageBuilderStateStore.setIsSaving(!1)}return}const t=this.pageBuilderStateStore.getPageBuilderConfig;if(t&&t.userSettings&&typeof t.userSettings.autoSave=="boolean"&&t.userSettings.autoSave!==!1){if(this.pageBuilderStateStore.getIsSaving)return;try{if(this.isInlineTipTapActive()){this.debugLog("warn","handleAutoSave(): skipped before write — TipTap active");return}if(e!==void 0&&e!==this.persistenceGeneration)return;if(await this.syncDomToStoreOnly(),this.isInlineTipTapActive()){this.debugLog("warn","handleAutoSave(): skipped after sync — TipTap active");return}this.pageBuilderStateStore.setIsSaving(!0),this.saveDomComponentsToLocalStorage(),await this.addListenersToEditableElements(),await tt(400)}catch(i){console.error("Error trying auto save.",i),this.debugLog("error","handleAutoSave(): error",i);const{showToast:n}=et(),{translate:a}=le();n(a("Auto-save failed — please save manually"),"error")}finally{this.pageBuilderStateStore.setIsSaving(!1)}}if(t&&!t.userSettings)try{if(this.isInlineTipTapActive()){this.debugLog("warn","handleAutoSave(): skipped before write — TipTap active");return}if(e!==void 0&&e!==this.persistenceGeneration)return;if(await this.syncDomToStoreOnly(),this.isInlineTipTapActive()){this.debugLog("warn","handleAutoSave(): skipped after sync — TipTap active");return}this.pageBuilderStateStore.setIsSaving(!0),this.saveDomComponentsToLocalStorage(),await this.addListenersToEditableElements(),await tt(400)}catch(i){console.error("Error trying saving.",i),this.debugLog("error","handleAutoSave(): error (no userSettings)",i);const{showToast:n}=et(),{translate:a}=le();n(a("Auto-save failed — please save manually"),"error")}finally{this.pageBuilderStateStore.setIsSaving(!1)}});xe(this,"handleManualSave",async e=>{this.commitActiveInlineTipTapEditorSync(),await this.syncDomToStoreOnly(),this.pageBuilderStateStore.setIsSaving(!0),e||this.clearHtmlSelection(),this.startEditing(),this.saveDomComponentsToLocalStorage(),await this.refreshListeners(),await tt(300),this.pageBuilderStateStore.setIsSaving(!1)});xe(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"))});xe(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}=le();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=eF}isDebugEnabled(){try{return typeof window<"u"&&window.__PBX_DEBUG__||typeof sessionStorage<"u"&&sessionStorage.getItem("pbx-debug")==="1"?!0:typeof localStorage<"u"&&localStorage.getItem("pbx-debug")==="1"}catch{return!1}}debugLog(e,t,i){if(!this.isDebugEnabled())return;const n="[PBX]";if(i!==void 0){console[e](`${n} ${t}`,i);return}console[e](`${n} ${t}`)}isInlineTipTapActive(){return!!this.pageBuilderStateStore.getInlineTipTapEditor||this.hasInlineTipTapElement()}invalidatePendingPersistence(e){this.persistenceGeneration+=1,this.debugLog("warn","invalidatePendingPersistence()",{reason:e,persistenceGeneration:this.persistenceGeneration})}debugPreview(e,t=320){const i=typeof e=="string"?e:JSON.stringify(e);return i?i.length>t?`${i.slice(0,t)}...`:i:""}debugFindFirstHistoryDiff(e,t){var s,l,p,d;const i=e.components??[],n=t.components??[];if(i.length!==n.length)return{reason:"component-count",currentLength:i.length,nextLength:n.length};const a=n.findIndex((c,b)=>{const m=i[b];return(m==null?void 0:m.html_code)!==c.html_code});return a>=0?{reason:"component-html",index:a,title:((s=n[a])==null?void 0:s.title)??((l=i[a])==null?void 0:l.title)??null,currentHtml:this.debugPreview(((p=i[a])==null?void 0:p.html_code)??""),nextHtml:this.debugPreview(((d=n[a])==null?void 0:d.html_code)??"")}:{reason:"page-settings",currentPageSettings:e.pageSettings??null,nextPageSettings:t.pageSettings??null}}getBuilderCanvasElement(){const e=document.querySelector("#pagebuilder[data-builder-canvas]");return e||document.querySelector("#pagebuilder")}availableLanguage(){return c0e}changeLanguage(e){this.pageBuilderStateStore.setCurrentLanguage(e)}async clearHtmlSelection(){this.pageBuilderStateStore.getImageSettingsPanelOpen||(this.pageBuilderStateStore.setComponent(null),this.pageBuilderStateStore.setElement(null),this.pageBuilderStateStore.setBasePrimaryImage(null),await this.removeHoveredAndSelected())}ensureUpdateOrCreateConfig(e){if(!e.updateOrCreate||e.updateOrCreate&&Lo(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,s=a&&a.language;if((!a||Lo(a)||!s||Lo(s))&&(n=!0),n){const l=a?{...a}:{};l.language={default:"en",enable:i};const p={...e,userSettings:l};this.pageBuilderStateStore.setPageBuilderConfig(p);return}if(s&&Array.isArray(s.enable)&&s.default&&!s.enable.includes(s.default)){const l=[...s.enable,s.default],p={...e,userSettings:{...a,language:{...s,enable:l}}};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 s={...i,userSettings:a};this.pageBuilderStateStore.setPageBuilderConfig(s),i=s}this.ensureLanguage(i)}saveUserSettingsStorage(e){localStorage.setItem("userSettingsPageBuilder",JSON.stringify({userSettings:{lang:e}}))}async startBuilder(e,t){var c,b,m;const i=++this.activeBuilderSessionToken;this.debugLog("warn","startBuilder(): begin",{sessionToken:i,hasPassedComponentsArray:Array.isArray(t),passedComponentsLength:Array.isArray(t)?t.length:null});const n=this.getBuilderCanvasElement(),a=!!(n!=null&&n.querySelector("section[data-componentid]"));this.debugLog("warn","startBuilder(): dom snapshot",{hasLiveMountedContent:a,hasPagebuilderEl:!!n,hasCompletedBuilderMount:this.hasCompletedBuilderMount});const s=this.builderWasMountedBeforeClose&&i>1;(!a||s)&&(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=this.getBuilderCanvasElement();this.debugLog("warn","startBuilder(): #pagebuilder present?",!!l);const p=this.readCurrentPageSettings();this.hasMeaningfulPageSettings(p)&&(this._lastKnownPageSettings=p);let d;try{this.originalComponents=t,this.originalPageSettings=e.pageSettings??null;let g=e;this.hasMeaningfulPageSettings(p)&&!this.hasMeaningfulPageSettings(e.pageSettings)&&(g={...e,pageSettings:p}),this.pageBuilderStateStore.setPageBuilderConfig(g);const x=JSON.parse(localStorage.getItem("userSettingsPageBuilder")??"null");!(x!=null&&x.lang)&&((b=(c=e.userSettings)==null?void 0:c.language)!=null&&b.default)&&this.changeLanguage(e.userSettings.language.default),this.validateConfig(e),d=this.validateUserProvidedComponents(t);const u=Array.isArray(t)&&t.length>0?t:null,h=u!==null,f=h?s0e(u):[];if(f.length&&l0e(f),this.updateLocalStorageItemName(),this.initializeHistory(),this.debugLog("warn","startBuilder(): storage key",{key:this.getLocalStorageItemName.value}),h&&(this.savedMountComponents=u),l||(this.isPageBuilderMissingOnStart=!0),h&&!l){const y=this.getSavedPageHtml();this.debugLog("warn","startBuilder(): deferred mount decision",{existingDraft:!!y,builderWasMountedBeforeClose:this.builderWasMountedBeforeClose,willQueuePendingMount:!0}),this.pendingMountComponents=u}if(l&&(!t||Array.isArray(t))&&(this.debugLog("warn","startBuilder(): calling completeBuilderInitialization",{hasUsablePassedComponents:h,isPageBuilderMissingOnStart:this.isPageBuilderMissingOnStart}),await this.completeBuilderInitializationWithSession(h?u:void 0,i)),l&&(await this.addListenersToEditableElements(),this.debugLog("warn","startBuilder(): listeners attached (safety net)")),a&&l){const y=((m=this.pageBuilderStateStore.getPageBuilderConfig)==null?void 0:m.pageSettings)??null;if(this.hasMeaningfulPageSettings(y)){const k=this.convertStyleObjectToString(y.style),B=l.getAttribute("style")||"";k.trim()&&!B.trim()&&(await o.nextTick(),this.applyPageSettingsToPage(y))}}const v={message:"Page builder started successfully."};return d&&(v.validation=d),f.length&&(v.htmlWarnings=f),Array.isArray(t)&&t.length>=0&&(v.passedComponentsArray=t),v}catch(g){return console.error("Not able to start the Page Builder",g),this.debugLog("error","startBuilder(): error",g),{error:!0,reason:"Failed to start the Page Builder due to an unexpected error."}}}shouldCompleteBuilderMountOnMount(e){if(this.hasCompletedBuilderMount){if(this.isPageBuilderMissingOnStart)return this.hasCompletedBuilderMount=!1,this.builderMountPromise=null,!0;const t=e??this.getBuilderCanvasElement(),i=!!(t!=null&&t.querySelector("section[data-componentid]"));return t&&!i?(this.hasCompletedBuilderMount=!1,this.builderMountPromise=null,!0):!1}return this.isPageBuilderMissingOnStart||!!this.pendingMountComponents}markCanvasUnmountedForNextMount(){this.hasCompletedBuilderMount=!1,this.builderMountPromise=null,this.isPageBuilderMissingOnStart=!0}async completeBuilderInitialization(e){return this.completeBuilderInitializationWithSession(e,this.activeBuilderSessionToken)}async completeBuilderInitializationWithSession(e,t=this.activeBuilderSessionToken){if(t===this.activeBuilderSessionToken){if(this.hasCompletedBuilderMount){this.pageBuilderStateStore.setIsLoadingGlobal(!1);return}this.builderMountPromise||(this.builderMountPromise=this.runCompleteBuilderInitialization(e,t));try{await this.builderMountPromise}finally{this.pageBuilderStateStore.setIsLoadingGlobal(!1)}}}async runCompleteBuilderInitialization(e,t=this.activeBuilderSessionToken){if(t!==this.activeBuilderSessionToken)return;let i=!1;try{if(this.pageBuilderStateStore.setIsLoadingGlobal(!0),i=!0,await tt(400),t!==this.activeBuilderSessionToken)return;this.debugLog("warn","completeBuilderInitialization(): loading ON",{sessionToken:t,key:this.getLocalStorageItemName.value}),this.deleteAllComponentsFromDOM();const n=this.pageBuilderStateStore.getPageBuilderConfig,a=n&&n.updateOrCreate&&n.updateOrCreate.formType,s=this.getSavedPageHtml();if(this.debugLog("warn","completeBuilderInitialization(): draft presence",{key:this.getLocalStorageItemName.value,hasLocalDraft:!!s,draftBytes:typeof s=="string"?s.length:0,isPageBuilderMissingOnStart:this.isPageBuilderMissingOnStart,hasPendingMountComponents:!!this.pendingMountComponents,hasPassedComponents:!!e}),await this.clearHtmlSelection(),t!==this.activeBuilderSessionToken)return;if(a==="update"||a==="create"){if(!this.pendingMountComponents){if(!e&&this.isPageBuilderMissingOnStart&&s){this.debugLog("warn","completeBuilderInitialization(): mounting from local draft (missing-on-start)"),await this.completeMountProcess(s,void 0,t,!0);return}if(e&&!s){this.debugLog("warn","completeBuilderInitialization(): mounting from passed components (no draft)");const l=this.renderComponentsToHtml(e);await this.completeMountProcess(l,!0,t),this.saveDomComponentsToLocalStorage();return}if(e&&s){if(this.builderWasMountedBeforeClose){this.debugLog("warn","completeBuilderInitialization(): reopening session -> mounting from local draft directly",{key:this.getLocalStorageItemName.value}),await this.completeMountProcess(s,void 0,t,!0);return}this.debugLog("warn","completeBuilderInitialization(): both passed + draft exist → mounting passed content + showing resume modal",{key:this.getLocalStorageItemName.value});const l=this.renderComponentsToHtml(e);await this.completeMountProcess(l,!0,t),await tt(500),this.pageBuilderStateStore.setHasLocalDraftForUpdate(!0);return}if(!e&&s&&!this.pendingMountComponents){this.debugLog("warn","completeBuilderInitialization(): mounting from local draft (default path)"),await this.completeMountProcess(s,void 0,t,!0);return}if(!e&&!s&&this.isPageBuilderMissingOnStart){const l=this.renderComponentsToHtml([]);await this.completeMountProcess(l,void 0,t);return}if(!this.isPageBuilderMissingOnStart&&!s&&!e){const l=this.renderComponentsToHtml([]);await this.completeMountProcess(l,void 0,t);return}}if(this.pendingMountComponents){if(s&&this.isPageBuilderMissingOnStart){this.debugLog("warn","completeBuilderInitialization(): pending mount + draft → mounting passed content + showing resume modal");const l=this.renderComponentsToHtml(this.pendingMountComponents);await this.completeMountProcess(l,!0,t),await tt(500),this.pageBuilderStateStore.setHasLocalDraftForUpdate(!0),this.pendingMountComponents=null;return}if(!s&&e&&this.isPageBuilderMissingOnStart){this.debugLog("warn","completeBuilderInitialization(): pending mount (no draft) → mount and save");const l=this.renderComponentsToHtml(this.pendingMountComponents);await this.completeMountProcess(l,!0,t),this.saveDomComponentsToLocalStorage();return}if(!e&&!s&&this.isPageBuilderMissingOnStart){const l=this.renderComponentsToHtml(this.pendingMountComponents);await this.completeMountProcess(l,!0,t),this.saveDomComponentsToLocalStorage();return}}}}finally{i&&this.pageBuilderStateStore.setIsLoadingGlobal(!1)}}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(`
745
- `)}async completeMountProcess(e,t,i=this.activeBuilderSessionToken,n=!1){if(i!==this.activeBuilderSessionToken){this.pageBuilderStateStore.setIsLoadingGlobal(!1);return}if(await this.mountComponentsToDOM(e,t,void 0,n),i!==this.activeBuilderSessionToken){this.pageBuilderStateStore.setIsLoadingGlobal(!1);return}this.deleteOldPageBuilderLocalStorage(),this.pageBuilderStateStore.setIsRestoring(!1),this.hasCompletedBuilderMount=!0,this.builderWasMountedBeforeClose=!0,this.pendingMountComponents=null,this.isPageBuilderMissingOnStart=!1,this.pageBuilderStateStore.setIsLoadingGlobal(!1),this.debugLog("warn","completeMountProcess(): loading OFF + mount complete",{sessionToken:i,hasCompletedBuilderMount:this.hasCompletedBuilderMount})}applyElementClassChanges(e,t,i){const n=this.getActiveStyleTarget();if(!n)return;const a=t===At.roundedGlobal||t===At.roundedTopLeft||t===At.roundedTopRight||t===At.roundedBottomLeft||t===At.roundedBottomRight,s=t===er.backgroundColorVariables||t===er.textColorVariables,l=t===ce.verticalPadding||t===ce.horizontalPadding||t===ce.topPadding||t===ce.rightPadding||t===ce.bottomPadding||t===ce.leftPadding,p=this.resolveNestedButtonAnchorTarget(n,{forBorderRadius:a,forColor:s,forPadding:l,classArray:t}),d=a&&n.tagName==="IMG"?n.closest(".pbx-product-card-image"):null,c=p instanceof HTMLElement?p:d instanceof HTMLElement?d:n,b=t.find(g=>c.classList.contains(g))||(p instanceof HTMLElement?t.find(g=>n.classList.contains(g)):void 0);let m=b||"none";if(e===void 0){if(typeof i=="string"&&i.length>2&&i in this.pageBuilderStateStore&&typeof this.pageBuilderStateStore[i]=="function"){const g=this.pageBuilderStateStore[i];g(m)}return b}if(typeof e=="string"&&e!=="none"?(m&&(c.classList.contains(m)&&c.classList.remove(m),p instanceof HTMLElement&&n.classList.contains(m)&&n.classList.remove(m)),t.forEach(g=>{g!=="none"&&["lg","md","sm","xl","2xl"].forEach(x=>{const u=`${x}:${g}`;c.classList.contains(u)&&c.classList.remove(u),p instanceof HTMLElement&&n.classList.contains(u)&&n.classList.remove(u)})}),c.classList.add(e),m=e):typeof e=="string"&&e==="none"&&m&&(c.classList.remove(m),p instanceof HTMLElement&&n.classList.remove(m),t.forEach(g=>{g!=="none"&&["lg","md","sm","xl","2xl"].forEach(x=>{const u=`${x}:${g}`;c.classList.contains(u)&&c.classList.remove(u),p instanceof HTMLElement&&n.classList.contains(u)&&n.classList.remove(u)})}),m=e),typeof i=="string"&&i.length>2&&i in this.pageBuilderStateStore&&typeof this.pageBuilderStateStore[i]=="function"){const g=this.pageBuilderStateStore[i];g(m),this.pageBuilderStateStore.getInlineTipTapEditor||this.pageBuilderStateStore.setElement(n)}if(e!==void 0){this.pageBuilderStateStore.setCurrentClasses(Array.from(n.classList));const g=n.getAttribute("style");g?this.pageBuilderStateStore.setCurrentStyles(this.parseStyleString(g)):this.pageBuilderStateStore.setCurrentStyles({}),n===this.getBuilderCanvasElement()&&this.syncGlobalPageSettingsIntoRuntimeConfig(),this.refreshInlineTipTapHostClassSnapshotFor(c),c!==n&&this.refreshInlineTipTapHostClassSnapshotFor(n)}return b}refreshInlineTipTapHostClassSnapshotFor(e){const t=e.hasAttribute("data-pbx-inline-original-class")?e:e.closest("[data-pbx-inline-original-class]");t instanceof HTMLElement&&UQ(t)}resolveNestedButtonAnchorTarget(e,t){if(e.tagName==="A"||!t.forBorderRadius&&!t.forColor&&!t.forPadding)return null;const i=Array.from(e.querySelectorAll("a")).filter(n=>n instanceof HTMLAnchorElement);if(!i.length)return null;if(t.forBorderRadius){const n=i.find(a=>t.classArray.some(s=>s!=="none"&&a.classList.contains(s)));if(n)return n}return e.id==="linktree"||e.classList.contains("pbx-product-card-cta")?i[0]??null:null}removeElementClassesFromArray(e,t){t.forEach(i=>{i!=="none"&&e.classList.contains(i)&&e.classList.remove(i)})}syncGlobalPageSettingsIntoRuntimeConfig(){if(!this.pageBuilderStateStore.getToggleGlobalHtmlMode)return;const e=this.getBuilderCanvasElement();if(!e)return;const t={classes:e.className||"",style:e.getAttribute("style")||e.style.cssText||"",meta:ya(e)};this._lastKnownPageSettings=t;const i=this.pageBuilderStateStore.getPageBuilderConfig;i&&typeof i=="object"&&this.pageBuilderStateStore.setPageBuilderConfig({...i,pageSettings:t})}async clearClassesFromPage(){const e=this.getBuilderCanvasElement();e==null||e.removeAttribute("class"),this.initializeElementStyles(),this.syncGlobalPageSettingsIntoRuntimeConfig(),await o.nextTick()}async clearInlineStylesFromPage(){const e=this.getBuilderCanvasElement();e==null||e.removeAttribute("style"),this.initializeElementStyles(),this.syncGlobalPageSettingsIntoRuntimeConfig(),await o.nextTick()}async globalPageStyles(){const e=this.getBuilderCanvasElement();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,Zt.fontWeight,"setFontWeight")}handleFontSizeBase(e){this.applyElementClassChanges(e,pi.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:/,""),s=i[a]||a,l=`lg:${a}`;s!==a?t.classList.add(s,l):t.classList.add(s)}const n=pi.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==="H1"&&e.classList.add("pbx-text-4xl","lg:pbx-text-5xl","pbx-font-medium"),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"))}}reportNonListenerTagClassViolations(e){i0e(e)}async toggleTipTapModal(e){this.pageBuilderStateStore.setShowModalTipTap(e),await o.nextTick(),await this.addListenersToEditableElements(),e||await this.handleAutoSave()}async toggleInlineTipTapEditor(e){if(!(e&&!this.isValidTextElement(this.getElement.value))&&(e&&this.invalidatePendingPersistence("toggleInlineTipTapEditor:open"),this.pageBuilderStateStore.setInlineTipTapEditor(e),await o.nextTick(),await this.addListenersToEditableElements(),!e)){const t=this.commitActiveInlineTipTapEditorSync();t!=null&&t.changed&&this.saveDomComponentsToLocalStorage()}}async finishInlineTipTapEditor(e,t=!0){if(this.pageBuilderStateStore.setInlineTipTapEditor(!1),await o.nextTick(),e){const i=this.getBuilderCanvasElement();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&&(this.isInlineTipTapActive()||this.saveDomComponentsToLocalStorage())}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(ip))??!1}async setSelectedComponentFullWidth(e){const t=this.getSelectedComponentSection();t&&(t.classList.toggle(ip,e),await this.handleAutoSave())}isSelectedProductSection(){return this.resolveLiveSelectedProductSection()!=null}getSelectedProductSectionOptions(){const e=this.resolveLiveSelectedProductSection();return e?uee(e):{...jt}}getSelectedProductSectionContentAvailability(){const e=this.resolveLiveSelectedProductSection();return e?{hasPrices:dee(e),hasImages:pee(e),hasButtons:cee(e),hasLinks:bee(e)}:{hasPrices:!1,hasImages:!1,hasButtons:!1,hasLinks:!1}}async updateSelectedProductSection(e,t={}){const i=this.resolveLiveSelectedProductSection();if(!i)return;const n=i.getAttribute("data-componentid");if(wee(i,e),t.persist!==!1&&(await this.handleAutoSave(),n)){const s=this.findProductSectionByComponentId(n);s&&this.pageBuilderStateStore.setElement(s)}}resolveLiveSelectedProductSection(){var n;const e=this.getElement.value;if(!e||!(e instanceof HTMLElement))return null;const t=e.closest("section");if(t!=null&&t.isConnected&&t.getAttribute("data-pbx-product-section")==="true")return t;const i=(t==null?void 0:t.getAttribute("data-componentid"))||((n=e.closest("section[data-componentid]"))==null?void 0:n.getAttribute("data-componentid"));return i?this.findProductSectionByComponentId(i):null}findProductSectionByComponentId(e){const t=this.getBuilderCanvasElement();if(!t)return null;const i=Array.from(t.querySelectorAll('section[data-pbx-product-section="true"]')).find(n=>n.getAttribute("data-componentid")===e);return i instanceof HTMLElement?i:null}isGlobalFullWidth(){const e=this.getBuilderCanvasElement();return(e==null?void 0:e.classList.contains(ip))??!1}async setGlobalFullWidth(e){const t=this.getBuilderCanvasElement();t==null||t.classList.toggle(ip,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}async closeImageSettingsModal(){var l;const e=this.getElement.value,t=e instanceof HTMLElement&&e.tagName==="IMG"?{componentId:((l=e.closest("section"))==null?void 0:l.getAttribute("data-componentid"))||null,src:e.getAttribute("src"),className:e.className}:null;if(!this.pageBuilderStateStore.getIsSaving)try{this.pageBuilderStateStore.setIsSaving(!0),this.saveDomComponentsToLocalStorage()}finally{this.pageBuilderStateStore.setIsSaving(!1)}if(this.pageBuilderStateStore.setImageSettingsPanelOpen(!1),await this.syncDomToStoreOnly(),await this.addListenersToEditableElements(),!t)return;const i=this.getBuilderCanvasElement();if(!i)return;const n=(t.componentId?Array.from(i.querySelectorAll("section")).find(p=>p.getAttribute("data-componentid")===t.componentId):null)||i,a=Array.from(n.querySelectorAll("img")),s=a.find(p=>p.getAttribute("src")===t.src)||a.find(p=>p.className===t.className)||null;s&&await this.selectEditableElement(s,!1)}findImageAspectClass(e){const t=Sb.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,Sb.objectFit,"setImageObjectFit")}handleImageObjectPosition(e){this.applyElementClassChanges(e,Sb.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=this.getBuilderCanvasElement();if(!t||!t.contains(e))return null;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.invalidatePendingPersistence("openInlineTipTapFromEvent"),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setInlineTipTapEditor(!0),await this.openInlineTipTapForElement(t)}hasInlineTipTapElement(){return!!document.querySelector("#pagebuilder [data-pbx-inline-tiptap]")}commitActiveInlineTipTapEditorSync(){const e=document.querySelector("#pagebuilder [data-pbx-inline-tiptap]");if(!e)return null;const t=e.querySelector(".ProseMirror"),i=e.getAttribute("data-pbx-inline-original-html")??"",n=(t==null?void 0:t.innerHTML)??e.innerHTML,a=this.pageBuilderStateStore.getTextAreaVueModel,s=typeof n=="string"&&n.trim().length>0?n:typeof a=="string"&&a.trim().length>0?a:"",l=Rc(s,i),p=l!==i;return this.debugLog("error","commitActiveInlineTipTapEditorSync()",{changed:p,elementTag:e.tagName,elementId:e.id||null,originalHtml:this.debugPreview(i),htmlSource:this.debugPreview(s),committedHtml:this.debugPreview(l)}),e.innerHTML=l,Oc(e),this.pageBuilderStateStore.setTextAreaVueModel(l),this.pageBuilderStateStore.setInlineTipTapEditor(!1),{element:e,changed:p}}flushPendingEditsToLocalStorage(){this.commitActiveInlineTipTapEditorSync(),this.saveDomComponentsToLocalStorage()}async finishActiveInlineTipTapEditorFromDom(e=null){const t=this.commitActiveInlineTipTapEditorSync();if(!t){await this.toggleInlineTipTapEditor(!1);return}const i=t.element;if(this.pageBuilderStateStore.setElement(i),await this.finishInlineTipTapEditor(i,!1),e&&e!==i&&await this.selectEditableElement(e,!1),t.changed){this.debugLog("error","finishActiveInlineTipTapEditorFromDom(): inline commit changed",{elementTag:i.tagName,elementId:i.id||null,nextElementTag:(e==null?void 0:e.tagName)??null,nextElementId:(e==null?void 0:e.id)??null}),this.saveDomComponentsToLocalStorage(),this.handleAutoSave();return}this.debugLog("error","finishActiveInlineTipTapEditorFromDom(): inline commit unchanged",{elementTag:i.tagName,elementId:i.id||null,nextElementTag:(e==null?void 0:e.tagName)??null,nextElementId:(e==null?void 0:e.id)??null})}async openInlineTipTapForElement(e){this.isValidTextElement(e)&&(await this.selectEditableElement(e,!1),await o.nextTick(),await this.addListenersToEditableElements())}async selectEditableElement(e,t=!1){const i=this.persistenceGeneration,n=this.getBuilderCanvasElement();if(!n){this.debugLog("warn","selectEditableElement(): #pagebuilder missing; cannot select/save",{elementTag:e==null?void 0:e.tagName,elementId:(e==null?void 0:e.id)??null,key:this.getLocalStorageItemName.value});return}if(!n.contains(e)&&e!==n){this.debugLog("warn","selectEditableElement(): refusing element outside #pagebuilder",{elementTag:e==null?void 0:e.tagName,elementId:(e==null?void 0:e.id)??null});return}this.pageBuilderStateStore.setMenuRight(!0);const a=n.querySelector("[selected]");if(a&&a.removeAttribute("selected"),e.removeAttribute("hovered"),e.setAttribute("selected",""),this.pageBuilderStateStore.setElement(e),await o.nextTick(),await this.initializeElementStyles(),t){if(this.isInlineTipTapActive()){this.debugLog("warn","selectEditableElement(): skip save — TipTap active",{elementTag:e.tagName,elementId:e.id||null});return}if(i!==this.persistenceGeneration){this.debugLog("warn","selectEditableElement(): skip save — persistence invalidated",{elementTag:e.tagName,elementId:e.id||null,startedAt:i,current:this.persistenceGeneration});return}const s=this.pageBuilderStateStore.getPageBuilderConfig,l=s&&s.userSettings?s.userSettings.autoSave:void 0;this.saveDomComponentsToLocalStorage(),l!==!1&&this.handleAutoSave(i)}}getHistoryBaseKey(){return this.getLocalStorageItemName.value}initializeHistory(){const e=this.getHistoryBaseKey();if(e){const t=tr.getHistory(e);this.pageBuilderStateStore.setHistoryIndex(t.length-1),this.pageBuilderStateStore.setHistoryLength(t.length)}}getHistorySnapshots(){const e=this.getHistoryBaseKey();return e?tr.getHistory(e):[]}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");this.reportNonListenerTagClassViolations(a),a.querySelectorAll("*").forEach(p=>{this.applyHelperCSSToElements(p)});const l=a.querySelector("section");return l&&(l.querySelectorAll("[class]").forEach(p=>{p.setAttribute("class",this.addTailwindPrefixToClasses(p.getAttribute("class")||"","pbx-"))}),zl(l),Hl(l),l.dataset.componentid=Cb(),t.title&&l.setAttribute("data-component-title",t.title),t.id=l.dataset.componentid,t.html_code=l.outerHTML),t}async removeHoveredAndSelected(){const e=this.getBuilderCanvasElement();if(!e)return;const t=e.querySelector("[hovered]");t&&t.removeAttribute("hovered");const i=e.querySelector("[selected]");i&&i.removeAttribute("selected")}async syncCurrentClasses(){const e=this.getActiveStyleTarget();this.pageBuilderStateStore.setCurrentClasses(Array.from((e==null?void 0:e.classList)??[]))}async syncCurrentStyles(){const e=this.getActiveStyleTarget(),t=e==null?void 0:e.getAttribute("style");if(t){const i=this.parseStyleString(t);this.pageBuilderStateStore.setCurrentStyles(i)}else this.pageBuilderStateStore.setCurrentStyles({})}getActiveStyleTarget(){if(this.pageBuilderStateStore.getToggleGlobalHtmlMode){const e=this.getBuilderCanvasElement();if(e)return this.getElement.value!==e&&this.pageBuilderStateStore.setElement(e),e}return this.getElement.value}handleAddClasses(e){const t=this.getActiveStyleTarget();if(t&&typeof e=="string"&&e.trim()!==""&&!e.includes(" ")&&!t.classList.contains("pbx-"+e.trim())){const i=e.trim(),n=i.startsWith("pbx-")?i:"pbx-"+i;t.classList.add(n),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setClass(n),this.pageBuilderStateStore.setCurrentClasses(Array.from(t.classList))}}handleAddStyle(e,t){const i=this.getActiveStyleTarget();!i||!e||!t||(i.style.setProperty(e,t),this.pageBuilderStateStore.setElement(i),this.pageBuilderStateStore.setCurrentStyles(this.parseStyleString(i.getAttribute("style")||"")))}handleRemoveStyle(e){const t=this.getActiveStyleTarget();if(!t||!e)return;t.style.removeProperty(e),this.pageBuilderStateStore.setElement(t);const i=t.getAttribute("style");i?this.pageBuilderStateStore.setCurrentStyles(this.parseStyleString(i)):this.pageBuilderStateStore.setCurrentStyles({})}async handleFontFamily(e){var i;const t=El((i=this.pageBuilderStateStore.getPageBuilderConfig)==null?void 0:i.userSettings);if(e&&e!=="none")try{await Zye(e)}catch(n){console.error("Failed to load font:",e,n)}this.applyElementClassChanges(e,t,"setFontFamily")}handleFontStyle(e){this.applyElementClassChanges(e,Zt.fontStyle,"setFontStyle")}purgeConflictingClasses(e){const t=this.getActiveStyleTarget();if(!t)return;const n=this.resolveNestedButtonAnchorTarget(t,{forBorderRadius:!1,forColor:!1,forPadding:!0,classArray:e.flat()})??t;e.forEach(a=>{a.forEach(s=>{s!=="none"&&n.classList.contains(s)&&n.classList.remove(s)})})}handleVerticalPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.topPadding,ce.bottomPadding]),this.applyElementClassChanges(e,ce.verticalPadding,"setFontVerticalPadding")}handleHorizontalPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.leftPadding,ce.rightPadding]),this.applyElementClassChanges(e,ce.horizontalPadding,"setFontHorizontalPadding")}handleTopPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.verticalPadding]),this.applyElementClassChanges(e,ce.topPadding,"setFontTopPadding")}handleRightPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.horizontalPadding]),this.applyElementClassChanges(e,ce.rightPadding,"setFontRightPadding")}handleBottomPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.verticalPadding]),this.applyElementClassChanges(e,ce.bottomPadding,"setFontBottomPadding")}handleLeftPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.horizontalPadding]),this.applyElementClassChanges(e,ce.leftPadding,"setFontLeftPadding")}handleVerticalMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.topMargin,ce.bottomMargin]),this.applyElementClassChanges(e,ce.verticalMargin,"setFontVerticalMargin")}handleHorizontalMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.leftMargin,ce.rightMargin]),this.applyElementClassChanges(e,ce.horizontalMargin,"setFontHorizontalMargin")}handleTopMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.verticalMargin]),this.applyElementClassChanges(e,ce.topMargin,"setFontTopMargin")}handleRightMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.horizontalMargin]),this.applyElementClassChanges(e,ce.rightMargin,"setFontRightMargin")}handleBottomMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.verticalMargin]),this.applyElementClassChanges(e,ce.bottomMargin,"setFontBottomMargin")}handleLeftMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.horizontalMargin]),this.applyElementClassChanges(e,ce.leftMargin,"setFontLeftMargin")}handleBorderStyle(e){this.applyElementClassChanges(e,Ji.borderStyle,"setBorderStyle")}handleBorderWidth(e){this.applyElementClassChanges(e,Ji.borderWidth,"setBorderWidth")}handleBorderColor(e){this.applyElementClassChanges(e,Ji.borderColor,"setBorderColor")}handleBackgroundColor(e){const t=this.getActiveStyleTarget();if(!t)return;const n=this.resolveNestedButtonAnchorTarget(t,{forBorderRadius:!1,forColor:!0,classArray:er.backgroundColorVariables})??t;if(e===void 0){const a=n.style.getPropertyValue("background-color");if(a){this.pageBuilderStateStore.setBackgroundColor(`custom:${Mt(a)??a}`);return}}else n.style.removeProperty("background-color");this.applyElementClassChanges(e,er.backgroundColorVariables,"setBackgroundColor")}handleCustomBackgroundColor(e){const t=this.getActiveStyleTarget();if(!t||!e)return;const n=this.resolveNestedButtonAnchorTarget(t,{forBorderRadius:!1,forColor:!0,classArray:er.backgroundColorVariables})??t;this.removeElementClassesFromArray(n,er.backgroundColorVariables),n.style.setProperty("background-color",e),this.pageBuilderStateStore.setBackgroundColor(`custom:${e}`),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setCurrentClasses(Array.from(n.classList)),this.pageBuilderStateStore.setCurrentStyles(this.parseStyleString(n.getAttribute("style")||"")),this.refreshInlineTipTapHostClassSnapshotFor(n),t===this.getBuilderCanvasElement()&&this.syncGlobalPageSettingsIntoRuntimeConfig()}handleTextColor(e){const t=this.getActiveStyleTarget();if(!t)return;const n=this.resolveNestedButtonAnchorTarget(t,{forBorderRadius:!1,forColor:!0,classArray:er.textColorVariables})??t;if(e===void 0){const a=n.style.getPropertyValue("color");if(a){this.pageBuilderStateStore.setTextColor(`custom:${Mt(a)??a}`);return}}else n.style.removeProperty("color");this.applyElementClassChanges(e,er.textColorVariables,"setTextColor")}handleCustomTextColor(e){const t=this.getActiveStyleTarget();if(!t||!e)return;const n=this.resolveNestedButtonAnchorTarget(t,{forBorderRadius:!1,forColor:!0,classArray:er.textColorVariables})??t;this.removeElementClassesFromArray(n,er.textColorVariables),n.style.setProperty("color",e),this.pageBuilderStateStore.setTextColor(`custom:${e}`),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setCurrentClasses(Array.from(n.classList)),this.pageBuilderStateStore.setCurrentStyles(this.parseStyleString(n.getAttribute("style")||"")),this.refreshInlineTipTapHostClassSnapshotFor(n)}handleBorderRadiusGlobal(e){this.applyElementClassChanges(e,At.roundedGlobal,"setBorderRadiusGlobal")}handleBorderRadiusTopLeft(e){this.applyElementClassChanges(e,At.roundedTopLeft,"setBorderRadiusTopLeft")}handleBorderRadiusTopRight(e){this.applyElementClassChanges(e,At.roundedTopRight,"setBorderRadiusTopRight")}handleBorderRadiusBottomleft(e){this.applyElementClassChanges(e,At.roundedBottomLeft,"setBorderRadiusBottomleft")}handleBorderRadiusBottomRight(e){this.applyElementClassChanges(e,At.roundedBottomRight,"setBorderRadiusBottomRight")}handleFontSizeTablet(e){this.applyElementClassChanges(e,pi.fontTablet,"setFontTablet")}handleFontSizeMobile(e){this.applyElementClassChanges(e,pi.fontMobile,"setFontMobile")}handleBackgroundOpacity(e){this.applyElementClassChanges(e,Wl.backgroundOpacities,"setBackgroundOpacity")}handleOpacity(e){this.applyElementClassChanges(e,Wl.opacities,"setOpacity")}deleteAllComponentsFromDOM(){this.pageBuilderStateStore.setComponents([]);const e=this.getBuilderCanvasElement();e&&e.querySelectorAll("section[data-componentid]").forEach(t=>t.remove())}async restoreHistoryStateAtIndex(e){this.pageBuilderStateStore.setIsLoadingGlobal(!0);try{const t=this.getHistoryBaseKey();if(!t)return;const i=tr.getHistory(t);if(e<0||e>=i.length)return;this.pageBuilderStateStore.setHistoryIndex(e),this.pageBuilderStateStore.setHistoryLength(i.length);const n=i[e],a=this.renderComponentsToHtml(n.components);await this.mountComponentsToDOM(a,!1,n.pageSettings)}finally{this.pageBuilderStateStore.setIsLoadingGlobal(!1)}}async restoreHistoryIndex(e){await this.restoreHistoryStateAtIndex(e)}async undo(){const e=this.pageBuilderStateStore.getHistoryIndex;await this.restoreHistoryStateAtIndex(e-1)}async redo(){const e=this.pageBuilderStateStore.getHistoryIndex;await this.restoreHistoryStateAtIndex(e+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(l=>l 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(s=>s.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);this.ensureVerticalGapOnStackedDuplicate(t,e),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()}ensureVerticalGapOnStackedDuplicate(e,t){const i=t.parentElement;if(!i||i.classList.contains("pbx-isl-t")||Array.from(e.classList).some(s=>/(^|:)pbx-mt-\S+/.test(s)||/(^|:)mt-\S+/.test(s)||s.startsWith("pbx-my-")||s.startsWith("pbx-m-")))return;const a=(e.style.marginTop||"").trim();a&&a!=="0"&&a!=="0px"||e.classList.add("pbx-mt-4")}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){const t=this.getActiveStyleTarget();t!=null&&t.classList.contains(e)&&(t.classList.remove(e),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.removeClass(e),this.pageBuilderStateStore.setCurrentClasses(Array.from(t.classList)))}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(l=>l.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"),s=a==null?void 0:a.querySelector(`section[data-componentid="${t.id}"]`);if(s){s.classList.add("pbx-reorder-highlight");const l=s.previousElementSibling,p=s.nextElementSibling;l&&l.tagName==="SECTION"&&l.classList.add("pbx-sibling-highlight"),p&&p.tagName==="SECTION"&&p.classList.add("pbx-sibling-highlight"),a&&(d0e(a,s),window.setTimeout(()=>{s.classList.remove("pbx-reorder-highlight"),l&&l.tagName==="SECTION"&&l.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)}async previewCurrentDesign(){this.pageBuilderStateStore.setElement(null),await this.syncDomToStoreOnly();const e=this.getBuilderCanvasElement();if(!e)return;const t=CO(e,this.pageBuilderStateStore.getPageBuilderConfig?this.pageBuilderStateStore.getPageBuilderConfig:void 0),i=JSON.stringify([t]);this.pageBuilderStateStore.setCurrentLayoutPreview(i),await this.addListenersToEditableElements()}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"),GQ(t),t}getPersistableSections(e){const t=Array.from(e.querySelectorAll("section[data-componentid]"));return t.length>0?t:Array.from(e.querySelectorAll("section")).filter(n=>!n.parentElement||n.parentElement.tagName.toLowerCase()!=="section")}async syncDomToStoreOnly(){const e=this.getBuilderCanvasElement();if(!e)return;const t=Ate(e),i=[];this.getPersistableSections(e).forEach(s=>{const l=this.cloneAndRemoveSelectionAttributes(s);l.getAttribute("data-componentid")||l.setAttribute("data-componentid",Cb()),l.getAttribute("data-component-title")||l.setAttribute("data-component-title","Untitled Component"),i.push({html_code:l.outerHTML,id:l.getAttribute("data-componentid"),title:l.getAttribute("data-component-title")||"Untitled Component"})}),await this.setComponentsPreservingPageSettings(i);const a=this.getBuilderCanvasElement();a&&t.length>0&&await _te(a,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(`
745
+ `)}async completeMountProcess(e,t,i=this.activeBuilderSessionToken,n=!1){if(i!==this.activeBuilderSessionToken){this.pageBuilderStateStore.setIsLoadingGlobal(!1);return}if(await this.mountComponentsToDOM(e,t,void 0,n),i!==this.activeBuilderSessionToken){this.pageBuilderStateStore.setIsLoadingGlobal(!1);return}this.deleteOldPageBuilderLocalStorage(),this.pageBuilderStateStore.setIsRestoring(!1),this.hasCompletedBuilderMount=!0,this.builderWasMountedBeforeClose=!0,this.pendingMountComponents=null,this.isPageBuilderMissingOnStart=!1,this.pageBuilderStateStore.setIsLoadingGlobal(!1),this.debugLog("warn","completeMountProcess(): loading OFF + mount complete",{sessionToken:i,hasCompletedBuilderMount:this.hasCompletedBuilderMount})}applyElementClassChanges(e,t,i){const n=this.getActiveStyleTarget();if(!n)return;const a=t===At.roundedGlobal||t===At.roundedTopLeft||t===At.roundedTopRight||t===At.roundedBottomLeft||t===At.roundedBottomRight,s=t===er.backgroundColorVariables||t===er.textColorVariables,l=t===ce.verticalPadding||t===ce.horizontalPadding||t===ce.topPadding||t===ce.rightPadding||t===ce.bottomPadding||t===ce.leftPadding,p=this.resolveNestedButtonAnchorTarget(n,{forBorderRadius:a,forColor:s,forPadding:l,classArray:t}),d=a&&n.tagName==="IMG"?n.closest(".pbx-product-card-image"):null,c=p instanceof HTMLElement?p:d instanceof HTMLElement?d:n,b=t.find(g=>c.classList.contains(g))||(p instanceof HTMLElement?t.find(g=>n.classList.contains(g)):void 0);let m=b||"none";if(e===void 0){if(typeof i=="string"&&i.length>2&&i in this.pageBuilderStateStore&&typeof this.pageBuilderStateStore[i]=="function"){const g=this.pageBuilderStateStore[i];g(m)}return b}if(typeof e=="string"&&e!=="none"?(m&&(c.classList.contains(m)&&c.classList.remove(m),p instanceof HTMLElement&&n.classList.contains(m)&&n.classList.remove(m)),t.forEach(g=>{g!=="none"&&["lg","md","sm","xl","2xl"].forEach(x=>{const u=`${x}:${g}`;c.classList.contains(u)&&c.classList.remove(u),p instanceof HTMLElement&&n.classList.contains(u)&&n.classList.remove(u)})}),c.classList.add(e),m=e):typeof e=="string"&&e==="none"&&m&&(c.classList.remove(m),p instanceof HTMLElement&&n.classList.remove(m),t.forEach(g=>{g!=="none"&&["lg","md","sm","xl","2xl"].forEach(x=>{const u=`${x}:${g}`;c.classList.contains(u)&&c.classList.remove(u),p instanceof HTMLElement&&n.classList.contains(u)&&n.classList.remove(u)})}),m=e),typeof i=="string"&&i.length>2&&i in this.pageBuilderStateStore&&typeof this.pageBuilderStateStore[i]=="function"){const g=this.pageBuilderStateStore[i];g(m),this.pageBuilderStateStore.getInlineTipTapEditor||this.pageBuilderStateStore.setElement(n)}if(e!==void 0){this.pageBuilderStateStore.setCurrentClasses(Array.from(n.classList));const g=n.getAttribute("style");g?this.pageBuilderStateStore.setCurrentStyles(this.parseStyleString(g)):this.pageBuilderStateStore.setCurrentStyles({}),n===this.getBuilderCanvasElement()&&this.syncGlobalPageSettingsIntoRuntimeConfig(),this.refreshInlineTipTapHostClassSnapshotFor(c),c!==n&&this.refreshInlineTipTapHostClassSnapshotFor(n)}return b}refreshInlineTipTapHostClassSnapshotFor(e){const t=e.hasAttribute("data-pbx-inline-original-class")?e:e.closest("[data-pbx-inline-original-class]");t instanceof HTMLElement&&UQ(t)}resolveNestedButtonAnchorTarget(e,t){if(e.tagName==="A"||!t.forBorderRadius&&!t.forColor&&!t.forPadding)return null;const i=Array.from(e.querySelectorAll("a")).filter(n=>n instanceof HTMLAnchorElement);if(!i.length)return null;if(t.forBorderRadius){const n=i.find(a=>t.classArray.some(s=>s!=="none"&&a.classList.contains(s)));if(n)return n}return e.id==="linktree"||e.classList.contains("pbx-product-card-cta")?i[0]??null:null}removeElementClassesFromArray(e,t){t.forEach(i=>{i!=="none"&&e.classList.contains(i)&&e.classList.remove(i)})}syncGlobalPageSettingsIntoRuntimeConfig(){if(!this.pageBuilderStateStore.getToggleGlobalHtmlMode)return;const e=this.getBuilderCanvasElement();if(!e)return;const t={classes:e.className||"",style:e.getAttribute("style")||e.style.cssText||"",meta:ya(e)};this._lastKnownPageSettings=t;const i=this.pageBuilderStateStore.getPageBuilderConfig;i&&typeof i=="object"&&this.pageBuilderStateStore.setPageBuilderConfig({...i,pageSettings:t})}async clearClassesFromPage(){const e=this.getBuilderCanvasElement();e==null||e.removeAttribute("class"),this.initializeElementStyles(),this.syncGlobalPageSettingsIntoRuntimeConfig(),await o.nextTick()}async clearInlineStylesFromPage(){const e=this.getBuilderCanvasElement();e==null||e.removeAttribute("style"),this.initializeElementStyles(),this.syncGlobalPageSettingsIntoRuntimeConfig(),await o.nextTick()}async globalPageStyles(){const e=this.getBuilderCanvasElement();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,Zt.fontWeight,"setFontWeight")}handleFontSizeBase(e){this.applyElementClassChanges(e,pi.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:/,""),s=i[a]||a,l=`lg:${a}`;s!==a?t.classList.add(s,l):t.classList.add(s),this.pageBuilderStateStore.setFontDesktop(l),this.pageBuilderStateStore.setFontBase(s),this.pageBuilderStateStore.setCurrentClasses(Array.from(t.classList)),this.refreshInlineTipTapHostClassSnapshotFor(t);return}const n=pi.fontDesktop.find(a=>t.classList.contains(a));this.pageBuilderStateStore.setFontDesktop(n||"none")}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==="H1"&&e.classList.add("pbx-text-4xl","lg:pbx-text-5xl","pbx-font-medium"),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"))}}reportNonListenerTagClassViolations(e){i0e(e)}async toggleTipTapModal(e){this.pageBuilderStateStore.setShowModalTipTap(e),await o.nextTick(),await this.addListenersToEditableElements(),e||await this.handleAutoSave()}async toggleInlineTipTapEditor(e){if(!(e&&!this.isValidTextElement(this.getElement.value))&&(e&&this.invalidatePendingPersistence("toggleInlineTipTapEditor:open"),this.pageBuilderStateStore.setInlineTipTapEditor(e),await o.nextTick(),await this.addListenersToEditableElements(),!e)){const t=this.commitActiveInlineTipTapEditorSync();t!=null&&t.changed&&this.saveDomComponentsToLocalStorage()}}async finishInlineTipTapEditor(e,t=!0){if(this.pageBuilderStateStore.setInlineTipTapEditor(!1),await o.nextTick(),e){const i=this.getBuilderCanvasElement();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&&(this.isInlineTipTapActive()||this.saveDomComponentsToLocalStorage())}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(ip))??!1}async setSelectedComponentFullWidth(e){const t=this.getSelectedComponentSection();t&&(t.classList.toggle(ip,e),await this.handleAutoSave())}isSelectedProductSection(){return this.resolveLiveSelectedProductSection()!=null}getSelectedProductSectionOptions(){const e=this.resolveLiveSelectedProductSection();return e?uee(e):{...jt}}getSelectedProductSectionContentAvailability(){const e=this.resolveLiveSelectedProductSection();return e?{hasPrices:dee(e),hasImages:pee(e),hasButtons:cee(e),hasLinks:bee(e)}:{hasPrices:!1,hasImages:!1,hasButtons:!1,hasLinks:!1}}async updateSelectedProductSection(e,t={}){const i=this.resolveLiveSelectedProductSection();if(!i)return;const n=i.getAttribute("data-componentid");if(wee(i,e),t.persist!==!1&&(await this.handleAutoSave(),n)){const s=this.findProductSectionByComponentId(n);s&&this.pageBuilderStateStore.setElement(s)}}resolveLiveSelectedProductSection(){var n;const e=this.getElement.value;if(!e||!(e instanceof HTMLElement))return null;const t=e.closest("section");if(t!=null&&t.isConnected&&t.getAttribute("data-pbx-product-section")==="true")return t;const i=(t==null?void 0:t.getAttribute("data-componentid"))||((n=e.closest("section[data-componentid]"))==null?void 0:n.getAttribute("data-componentid"));return i?this.findProductSectionByComponentId(i):null}findProductSectionByComponentId(e){const t=this.getBuilderCanvasElement();if(!t)return null;const i=Array.from(t.querySelectorAll('section[data-pbx-product-section="true"]')).find(n=>n.getAttribute("data-componentid")===e);return i instanceof HTMLElement?i:null}isGlobalFullWidth(){const e=this.getBuilderCanvasElement();return(e==null?void 0:e.classList.contains(ip))??!1}async setGlobalFullWidth(e){const t=this.getBuilderCanvasElement();t==null||t.classList.toggle(ip,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}async closeImageSettingsModal(){var l;const e=this.getElement.value,t=e instanceof HTMLElement&&e.tagName==="IMG"?{componentId:((l=e.closest("section"))==null?void 0:l.getAttribute("data-componentid"))||null,src:e.getAttribute("src"),className:e.className}:null;if(!this.pageBuilderStateStore.getIsSaving)try{this.pageBuilderStateStore.setIsSaving(!0),this.saveDomComponentsToLocalStorage()}finally{this.pageBuilderStateStore.setIsSaving(!1)}if(this.pageBuilderStateStore.setImageSettingsPanelOpen(!1),await this.syncDomToStoreOnly(),await this.addListenersToEditableElements(),!t)return;const i=this.getBuilderCanvasElement();if(!i)return;const n=(t.componentId?Array.from(i.querySelectorAll("section")).find(p=>p.getAttribute("data-componentid")===t.componentId):null)||i,a=Array.from(n.querySelectorAll("img")),s=a.find(p=>p.getAttribute("src")===t.src)||a.find(p=>p.className===t.className)||null;s&&await this.selectEditableElement(s,!1)}findImageAspectClass(e){const t=Sb.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,Sb.objectFit,"setImageObjectFit")}handleImageObjectPosition(e){this.applyElementClassChanges(e,Sb.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=this.getBuilderCanvasElement();if(!t||!t.contains(e))return null;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.invalidatePendingPersistence("openInlineTipTapFromEvent"),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setInlineTipTapEditor(!0),await this.openInlineTipTapForElement(t)}hasInlineTipTapElement(){return!!document.querySelector("#pagebuilder [data-pbx-inline-tiptap]")}commitActiveInlineTipTapEditorSync(){const e=document.querySelector("#pagebuilder [data-pbx-inline-tiptap]");if(!e)return null;const t=e.querySelector(".ProseMirror"),i=e.getAttribute("data-pbx-inline-original-html")??"",n=(t==null?void 0:t.innerHTML)??e.innerHTML,a=this.pageBuilderStateStore.getTextAreaVueModel,s=typeof n=="string"&&n.trim().length>0?n:typeof a=="string"&&a.trim().length>0?a:"",l=Rc(s,i),p=l!==i;return this.debugLog("error","commitActiveInlineTipTapEditorSync()",{changed:p,elementTag:e.tagName,elementId:e.id||null,originalHtml:this.debugPreview(i),htmlSource:this.debugPreview(s),committedHtml:this.debugPreview(l)}),e.innerHTML=l,Oc(e),this.pageBuilderStateStore.setTextAreaVueModel(l),this.pageBuilderStateStore.setInlineTipTapEditor(!1),{element:e,changed:p}}flushPendingEditsToLocalStorage(){this.commitActiveInlineTipTapEditorSync(),this.saveDomComponentsToLocalStorage()}async finishActiveInlineTipTapEditorFromDom(e=null){const t=this.commitActiveInlineTipTapEditorSync();if(!t){await this.toggleInlineTipTapEditor(!1);return}const i=t.element;if(this.pageBuilderStateStore.setElement(i),await this.finishInlineTipTapEditor(i,!1),e&&e!==i&&await this.selectEditableElement(e,!1),t.changed){this.debugLog("error","finishActiveInlineTipTapEditorFromDom(): inline commit changed",{elementTag:i.tagName,elementId:i.id||null,nextElementTag:(e==null?void 0:e.tagName)??null,nextElementId:(e==null?void 0:e.id)??null}),this.saveDomComponentsToLocalStorage(),this.handleAutoSave();return}this.debugLog("error","finishActiveInlineTipTapEditorFromDom(): inline commit unchanged",{elementTag:i.tagName,elementId:i.id||null,nextElementTag:(e==null?void 0:e.tagName)??null,nextElementId:(e==null?void 0:e.id)??null})}async openInlineTipTapForElement(e){this.isValidTextElement(e)&&(await this.selectEditableElement(e,!1),await o.nextTick(),await this.addListenersToEditableElements())}async selectEditableElement(e,t=!1){const i=this.persistenceGeneration,n=this.getBuilderCanvasElement();if(!n){this.debugLog("warn","selectEditableElement(): #pagebuilder missing; cannot select/save",{elementTag:e==null?void 0:e.tagName,elementId:(e==null?void 0:e.id)??null,key:this.getLocalStorageItemName.value});return}if(!n.contains(e)&&e!==n){this.debugLog("warn","selectEditableElement(): refusing element outside #pagebuilder",{elementTag:e==null?void 0:e.tagName,elementId:(e==null?void 0:e.id)??null});return}this.pageBuilderStateStore.setMenuRight(!0);const a=n.querySelector("[selected]");if(a&&a.removeAttribute("selected"),e.removeAttribute("hovered"),e.setAttribute("selected",""),this.pageBuilderStateStore.setElement(e),await o.nextTick(),await this.initializeElementStyles(),t){if(this.isInlineTipTapActive()){this.debugLog("warn","selectEditableElement(): skip save — TipTap active",{elementTag:e.tagName,elementId:e.id||null});return}if(i!==this.persistenceGeneration){this.debugLog("warn","selectEditableElement(): skip save — persistence invalidated",{elementTag:e.tagName,elementId:e.id||null,startedAt:i,current:this.persistenceGeneration});return}const s=this.pageBuilderStateStore.getPageBuilderConfig,l=s&&s.userSettings?s.userSettings.autoSave:void 0;this.saveDomComponentsToLocalStorage(),l!==!1&&this.handleAutoSave(i)}}getHistoryBaseKey(){return this.getLocalStorageItemName.value}initializeHistory(){const e=this.getHistoryBaseKey();if(e){const t=tr.getHistory(e);this.pageBuilderStateStore.setHistoryIndex(t.length-1),this.pageBuilderStateStore.setHistoryLength(t.length)}}getHistorySnapshots(){const e=this.getHistoryBaseKey();return e?tr.getHistory(e):[]}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");this.reportNonListenerTagClassViolations(a),a.querySelectorAll("*").forEach(p=>{this.applyHelperCSSToElements(p)});const l=a.querySelector("section");return l&&(l.querySelectorAll("[class]").forEach(p=>{p.setAttribute("class",this.addTailwindPrefixToClasses(p.getAttribute("class")||"","pbx-"))}),zl(l),Hl(l),l.dataset.componentid=Cb(),t.title&&l.setAttribute("data-component-title",t.title),t.id=l.dataset.componentid,t.html_code=l.outerHTML),t}async removeHoveredAndSelected(){const e=this.getBuilderCanvasElement();if(!e)return;const t=e.querySelector("[hovered]");t&&t.removeAttribute("hovered");const i=e.querySelector("[selected]");i&&i.removeAttribute("selected")}async syncCurrentClasses(){const e=this.getActiveStyleTarget();this.pageBuilderStateStore.setCurrentClasses(Array.from((e==null?void 0:e.classList)??[]))}async syncCurrentStyles(){const e=this.getActiveStyleTarget(),t=e==null?void 0:e.getAttribute("style");if(t){const i=this.parseStyleString(t);this.pageBuilderStateStore.setCurrentStyles(i)}else this.pageBuilderStateStore.setCurrentStyles({})}getActiveStyleTarget(){if(this.pageBuilderStateStore.getToggleGlobalHtmlMode){const e=this.getBuilderCanvasElement();if(e)return this.getElement.value!==e&&this.pageBuilderStateStore.setElement(e),e}return this.getElement.value}handleAddClasses(e){const t=this.getActiveStyleTarget();if(t&&typeof e=="string"&&e.trim()!==""&&!e.includes(" ")&&!t.classList.contains("pbx-"+e.trim())){const i=e.trim(),n=i.startsWith("pbx-")?i:"pbx-"+i;t.classList.add(n),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setClass(n),this.pageBuilderStateStore.setCurrentClasses(Array.from(t.classList)),this.refreshInlineTipTapHostClassSnapshotFor(t)}}handleAddStyle(e,t){const i=this.getActiveStyleTarget();!i||!e||!t||(i.style.setProperty(e,t),this.pageBuilderStateStore.setElement(i),this.pageBuilderStateStore.setCurrentStyles(this.parseStyleString(i.getAttribute("style")||"")))}handleRemoveStyle(e){const t=this.getActiveStyleTarget();if(!t||!e)return;t.style.removeProperty(e),this.pageBuilderStateStore.setElement(t);const i=t.getAttribute("style");i?this.pageBuilderStateStore.setCurrentStyles(this.parseStyleString(i)):this.pageBuilderStateStore.setCurrentStyles({})}async handleFontFamily(e){var i;const t=El((i=this.pageBuilderStateStore.getPageBuilderConfig)==null?void 0:i.userSettings);if(e&&e!=="none")try{await Zye(e)}catch(n){console.error("Failed to load font:",e,n)}this.applyElementClassChanges(e,t,"setFontFamily")}handleFontStyle(e){this.applyElementClassChanges(e,Zt.fontStyle,"setFontStyle")}purgeConflictingClasses(e){const t=this.getActiveStyleTarget();if(!t)return;const n=this.resolveNestedButtonAnchorTarget(t,{forBorderRadius:!1,forColor:!1,forPadding:!0,classArray:e.flat()})??t;e.forEach(a=>{a.forEach(s=>{s!=="none"&&n.classList.contains(s)&&n.classList.remove(s)})})}handleVerticalPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.topPadding,ce.bottomPadding]),this.applyElementClassChanges(e,ce.verticalPadding,"setFontVerticalPadding")}handleHorizontalPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.leftPadding,ce.rightPadding]),this.applyElementClassChanges(e,ce.horizontalPadding,"setFontHorizontalPadding")}handleTopPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.verticalPadding]),this.applyElementClassChanges(e,ce.topPadding,"setFontTopPadding")}handleRightPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.horizontalPadding]),this.applyElementClassChanges(e,ce.rightPadding,"setFontRightPadding")}handleBottomPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.verticalPadding]),this.applyElementClassChanges(e,ce.bottomPadding,"setFontBottomPadding")}handleLeftPadding(e){e!==void 0&&this.purgeConflictingClasses([ce.horizontalPadding]),this.applyElementClassChanges(e,ce.leftPadding,"setFontLeftPadding")}handleVerticalMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.topMargin,ce.bottomMargin]),this.applyElementClassChanges(e,ce.verticalMargin,"setFontVerticalMargin")}handleHorizontalMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.leftMargin,ce.rightMargin]),this.applyElementClassChanges(e,ce.horizontalMargin,"setFontHorizontalMargin")}handleTopMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.verticalMargin]),this.applyElementClassChanges(e,ce.topMargin,"setFontTopMargin")}handleRightMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.horizontalMargin]),this.applyElementClassChanges(e,ce.rightMargin,"setFontRightMargin")}handleBottomMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.verticalMargin]),this.applyElementClassChanges(e,ce.bottomMargin,"setFontBottomMargin")}handleLeftMargin(e){e!==void 0&&this.purgeConflictingClasses([ce.horizontalMargin]),this.applyElementClassChanges(e,ce.leftMargin,"setFontLeftMargin")}handleBorderStyle(e){this.applyElementClassChanges(e,Ji.borderStyle,"setBorderStyle")}handleBorderWidth(e){this.applyElementClassChanges(e,Ji.borderWidth,"setBorderWidth")}handleBorderColor(e){this.applyElementClassChanges(e,Ji.borderColor,"setBorderColor")}handleBackgroundColor(e){const t=this.getActiveStyleTarget();if(!t)return;const n=this.resolveNestedButtonAnchorTarget(t,{forBorderRadius:!1,forColor:!0,classArray:er.backgroundColorVariables})??t;if(e===void 0){const a=n.style.getPropertyValue("background-color");if(a){this.pageBuilderStateStore.setBackgroundColor(`custom:${Mt(a)??a}`);return}}else n.style.removeProperty("background-color");this.applyElementClassChanges(e,er.backgroundColorVariables,"setBackgroundColor")}handleCustomBackgroundColor(e){const t=this.getActiveStyleTarget();if(!t||!e)return;const n=this.resolveNestedButtonAnchorTarget(t,{forBorderRadius:!1,forColor:!0,classArray:er.backgroundColorVariables})??t;this.removeElementClassesFromArray(n,er.backgroundColorVariables),n.style.setProperty("background-color",e),this.pageBuilderStateStore.setBackgroundColor(`custom:${e}`),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setCurrentClasses(Array.from(n.classList)),this.pageBuilderStateStore.setCurrentStyles(this.parseStyleString(n.getAttribute("style")||"")),this.refreshInlineTipTapHostClassSnapshotFor(n),t===this.getBuilderCanvasElement()&&this.syncGlobalPageSettingsIntoRuntimeConfig()}handleTextColor(e){const t=this.getActiveStyleTarget();if(!t)return;const n=this.resolveNestedButtonAnchorTarget(t,{forBorderRadius:!1,forColor:!0,classArray:er.textColorVariables})??t;if(e===void 0){const a=n.style.getPropertyValue("color");if(a){this.pageBuilderStateStore.setTextColor(`custom:${Mt(a)??a}`);return}}else n.style.removeProperty("color");this.applyElementClassChanges(e,er.textColorVariables,"setTextColor")}handleCustomTextColor(e){const t=this.getActiveStyleTarget();if(!t||!e)return;const n=this.resolveNestedButtonAnchorTarget(t,{forBorderRadius:!1,forColor:!0,classArray:er.textColorVariables})??t;this.removeElementClassesFromArray(n,er.textColorVariables),n.style.setProperty("color",e),this.pageBuilderStateStore.setTextColor(`custom:${e}`),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.setCurrentClasses(Array.from(n.classList)),this.pageBuilderStateStore.setCurrentStyles(this.parseStyleString(n.getAttribute("style")||"")),this.refreshInlineTipTapHostClassSnapshotFor(n)}handleBorderRadiusGlobal(e){this.applyElementClassChanges(e,At.roundedGlobal,"setBorderRadiusGlobal")}handleBorderRadiusTopLeft(e){this.applyElementClassChanges(e,At.roundedTopLeft,"setBorderRadiusTopLeft")}handleBorderRadiusTopRight(e){this.applyElementClassChanges(e,At.roundedTopRight,"setBorderRadiusTopRight")}handleBorderRadiusBottomleft(e){this.applyElementClassChanges(e,At.roundedBottomLeft,"setBorderRadiusBottomleft")}handleBorderRadiusBottomRight(e){this.applyElementClassChanges(e,At.roundedBottomRight,"setBorderRadiusBottomRight")}handleFontSizeTablet(e){this.applyElementClassChanges(e,pi.fontTablet,"setFontTablet")}handleFontSizeMobile(e){this.applyElementClassChanges(e,pi.fontMobile,"setFontMobile")}handleBackgroundOpacity(e){this.applyElementClassChanges(e,Wl.backgroundOpacities,"setBackgroundOpacity")}handleOpacity(e){this.applyElementClassChanges(e,Wl.opacities,"setOpacity")}deleteAllComponentsFromDOM(){this.pageBuilderStateStore.setComponents([]);const e=this.getBuilderCanvasElement();e&&e.querySelectorAll("section[data-componentid]").forEach(t=>t.remove())}async restoreHistoryStateAtIndex(e){this.pageBuilderStateStore.setIsLoadingGlobal(!0);try{const t=this.getHistoryBaseKey();if(!t)return;const i=tr.getHistory(t);if(e<0||e>=i.length)return;this.pageBuilderStateStore.setHistoryIndex(e),this.pageBuilderStateStore.setHistoryLength(i.length);const n=i[e],a=this.renderComponentsToHtml(n.components);await this.mountComponentsToDOM(a,!1,n.pageSettings)}finally{this.pageBuilderStateStore.setIsLoadingGlobal(!1)}}async restoreHistoryIndex(e){await this.restoreHistoryStateAtIndex(e)}async undo(){const e=this.pageBuilderStateStore.getHistoryIndex;await this.restoreHistoryStateAtIndex(e-1)}async redo(){const e=this.pageBuilderStateStore.getHistoryIndex;await this.restoreHistoryStateAtIndex(e+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(l=>l 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(s=>s.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);this.ensureVerticalGapOnStackedDuplicate(t,e),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()}ensureVerticalGapOnStackedDuplicate(e,t){const i=t.parentElement;if(!i||i.classList.contains("pbx-isl-t")||Array.from(e.classList).some(s=>/(^|:)pbx-mt-\S+/.test(s)||/(^|:)mt-\S+/.test(s)||s.startsWith("pbx-my-")||s.startsWith("pbx-m-")))return;const a=(e.style.marginTop||"").trim();a&&a!=="0"&&a!=="0px"||e.classList.add("pbx-mt-4")}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){const t=this.getActiveStyleTarget();t!=null&&t.classList.contains(e)&&(t.classList.remove(e),this.pageBuilderStateStore.setElement(t),this.pageBuilderStateStore.removeClass(e),this.pageBuilderStateStore.setCurrentClasses(Array.from(t.classList)),this.refreshInlineTipTapHostClassSnapshotFor(t))}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(l=>l.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"),s=a==null?void 0:a.querySelector(`section[data-componentid="${t.id}"]`);if(s){s.classList.add("pbx-reorder-highlight");const l=s.previousElementSibling,p=s.nextElementSibling;l&&l.tagName==="SECTION"&&l.classList.add("pbx-sibling-highlight"),p&&p.tagName==="SECTION"&&p.classList.add("pbx-sibling-highlight"),a&&(d0e(a,s),window.setTimeout(()=>{s.classList.remove("pbx-reorder-highlight"),l&&l.tagName==="SECTION"&&l.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)}async previewCurrentDesign(){this.pageBuilderStateStore.setElement(null),await this.syncDomToStoreOnly();const e=this.getBuilderCanvasElement();if(!e)return;const t=CO(e,this.pageBuilderStateStore.getPageBuilderConfig?this.pageBuilderStateStore.getPageBuilderConfig:void 0),i=JSON.stringify([t]);this.pageBuilderStateStore.setCurrentLayoutPreview(i),await this.addListenersToEditableElements()}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"),GQ(t),t}getPersistableSections(e){const t=Array.from(e.querySelectorAll("section[data-componentid]"));return t.length>0?t:Array.from(e.querySelectorAll("section")).filter(n=>!n.parentElement||n.parentElement.tagName.toLowerCase()!=="section")}async syncDomToStoreOnly(){const e=this.getBuilderCanvasElement();if(!e)return;const t=Ate(e),i=[];this.getPersistableSections(e).forEach(s=>{const l=this.cloneAndRemoveSelectionAttributes(s);l.getAttribute("data-componentid")||l.setAttribute("data-componentid",Cb()),l.getAttribute("data-component-title")||l.setAttribute("data-component-title","Untitled Component"),i.push({html_code:l.outerHTML,id:l.getAttribute("data-componentid"),title:l.getAttribute("data-component-title")||"Untitled Component"})}),await this.setComponentsPreservingPageSettings(i);const a=this.getBuilderCanvasElement();a&&t.length>0&&await _te(a,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(`
746
746
  `)):""}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 wa(i,va(t)),e.forEach(n=>{const l=new DOMParser().parseFromString(n.html_code,"text/html").querySelector("section");if(l){l.removeAttribute("data-componentid"),i.appendChild(document.importNode(l,!0));return}i.insertAdjacentHTML("beforeend",n.html_code)}),i.outerHTML}saveDomComponentsToLocalStorage(){if(this.isInlineTipTapActive()){this.debugLog("warn","saveDomComponentsToLocalStorage(): blocked — TipTap active",{flag:this.pageBuilderStateStore.getInlineTipTapEditor,hasHost:this.hasInlineTipTapElement()});return}this.getLocalStorageItemName.value||this.updateLocalStorageItemName();const e=this.getLocalStorageItemName.value;e||this.debugLog("warn","saveDomComponentsToLocalStorage(): no storage key resolved",{config:this.pageBuilderStateStore.getPageBuilderConfig??null});const t=this.getBuilderCanvasElement();if(!t){this.debugLog("warn","saveDomComponentsToLocalStorage(): no #pagebuilder in DOM",{key:e});return}const i=t.querySelector("[hovered]");i&&i.removeAttribute("hovered");const n=[];this.getPersistableSections(t).forEach(c=>{const b=this.cloneAndRemoveSelectionAttributes(c);b.removeAttribute("data-componentid"),b.getAttribute("data-component-title")||b.setAttribute("data-component-title","Untitled Component"),n.push({html_code:b.outerHTML,title:b.getAttribute("data-component-title")||"Untitled Component"})}),this.debugLog("warn","saveDomComponentsToLocalStorage(): collected sections",{key:e,sections:n.length,hasSelected:!!t.querySelector("[selected]"),hasInlineTipTap:!!t.querySelector("[data-pbx-inline-tiptap]")});const s=this.buildPageSettingsForPersistence(t),l=this.pageBuilderStateStore.getPageBuilderConfig;if(l&&typeof l=="object"){const c=l.pageSettings;!tr.hasSameUndoPayload({components:[],pageSettings:c??null},{components:[],pageSettings:s})&&this.pageBuilderStateStore.setPageBuilderConfig({...l,pageSettings:s})}this.debugLog("warn","saveDomComponentsToLocalStorage(): pageSettings snapshot",{classes:(s==null?void 0:s.classes)??"",style:typeof(s==null?void 0:s.style)=="string"?s.style:s!=null&&s.style?this.convertStyleObjectToString(s.style):""});const p={components:n,pageBuilderContentSavedAt:new Date().toISOString(),pageSettings:s},d=this.getHistoryBaseKey();if(d){const c=localStorage.getItem(d);this.debugLog("warn","saveDomComponentsToLocalStorage(): existing key?",{baseKey:d,hasExisting:!!c});try{localStorage.setItem(d,JSON.stringify(p))}catch(b){this.debugLog("error","saveDomComponentsToLocalStorage(): localStorage.setItem failed",{baseKey:d,err:b});return}if(c){const b=JSON.parse(c);if(!tr.hasSameUndoPayload(b,p)){const g=tr.getHistory(d);this.debugLog("error","saveDomComponentsToLocalStorage(): wrote draft",{baseKey:d,sections:p.components.length,historyIndex:this.pageBuilderStateStore.getHistoryIndex,historyLengthBefore:g.length,diff:this.debugFindFirstHistoryDiff(b,p)}),g.length===0&&tr.addToHistory(d,b,this.pageBuilderStateStore.getHistoryIndex);const x=tr.addToHistory(d,p,this.pageBuilderStateStore.getHistoryIndex);this.debugLog("error","saveDomComponentsToLocalStorage(): history after write",{baseKey:d,historyLengthAfter:x.length,nextHistoryIndex:x.length-1}),this.pageBuilderStateStore.setHistoryIndex(x.length-1),this.pageBuilderStateStore.setHistoryLength(x.length);return}this.debugLog("warn","saveDomComponentsToLocalStorage(): no undo changes",{baseKey:d,sections:p.components.length,historyIndex:this.pageBuilderStateStore.getHistoryIndex,historyLength:tr.getHistory(d).length})}}}async removeCurrentComponentsFromLocalStorage(){this.updateLocalStorageItemName(),await o.nextTick();const e=this.getLocalStorageItemName.value;e&&localStorage.removeItem(e)}async handleFormSubmission(e){const t=(e==null?void 0:e.preservePageSettings)??!1,i=this.readCurrentPageSettings();if(i&&t?this._lastKnownPageSettings=i:t||(this._lastKnownPageSettings=null),await this.removeCurrentComponentsFromLocalStorage(),this.deleteAllComponentsFromDOM(),this.pageBuilderStateStore.setComponents([]),!t){const n=this.getBuilderCanvasElement();n==null||n.removeAttribute("class"),n==null||n.removeAttribute("style"),n&&wa(n,{title:"",description:""});const a=this.pageBuilderStateStore.getPageBuilderConfig;a&&typeof a=="object"&&this.pageBuilderStateStore.setPageBuilderConfig({...a,pageSettings:{classes:"",style:"",meta:{title:"",description:""}}})}if(i&&t){this.updateLocalStorageItemName();const n=this.getLocalStorageItemName.value;if(n){const a={components:[],pageBuilderContentSavedAt:new Date().toISOString(),pageSettings:i};localStorage.setItem(n,JSON.stringify(a))}}}buildPageSettingsForPersistence(e){const t=ya(e),i=Array.from(new Set((e.className||"").split(/\s+/).map(a=>a.trim()).filter(Boolean))).sort().join(" "),n=(e.getAttribute("style")||"").trim();return{classes:i,style:n,meta:t}}readCurrentPageSettings(){var n;const e=this.readPersistedPageSettingsFromLocalStorage(),t=this.getBuilderCanvasElement();if(t){const a={classes:t.className||"",style:t.getAttribute("style")||t.style.cssText||"",meta:ya(t)},s=typeof a.style=="string"?a.style.trim():this.convertStyleObjectToString(a.style).trim(),l=e&&typeof e.style=="string"?e.style.trim():this.convertStyleObjectToString(e==null?void 0:e.style).trim(),p=C=>(C||"").split(/\s+/).map(E=>E.trim()).filter(Boolean),d=p(a.classes),c=p(e==null?void 0:e.classes),b=d.join(" "),m=c.join(" "),g=d.some(C=>C.startsWith("pbx-bg-")),x=b!==m,u=x&&(g||d.length>=c.length),h=d.length>0&&d.every(C=>c.includes(C)),f=c.length>d.length,v=x&&c.length>0,y=!s&&v&&h&&f,k=this.pageBuilderStateStore.getToggleGlobalHtmlMode,B=(n=this.pageBuilderStateStore.getPageBuilderConfig)==null?void 0:n.pageSettings,T=typeof(B==null?void 0:B.style)=="string"?B.style.trim():this.convertStyleObjectToString(B==null?void 0:B.style).trim(),w=p(B==null?void 0:B.classes).join(" "),P=b===w,A=!T;return!s&&(l||y)?k&&A&&P?{classes:a.classes,style:"",meta:a.meta||(e==null?void 0:e.meta)}:u?{classes:a.classes,style:"",meta:a.meta||(e==null?void 0:e.meta)}:{classes:(e==null?void 0:e.classes)||a.classes||"",style:(e==null?void 0:e.style)||"",meta:a.meta||(e==null?void 0:e.meta)}:a}const i=document.querySelector("[data-pagebuilder-content]");return i?{classes:i.className||"",style:i.getAttribute("style")||i.style.cssText||""}:e}readPersistedPageSettingsFromLocalStorage(){this.updateLocalStorageItemName();const e=this.getLocalStorageItemName.value;if(!e)return null;try{const t=localStorage.getItem(e);if(!t)return null;const i=JSON.parse(t);return i!=null&&i.pageSettings?i.pageSettings:null}catch{return null}}applyPageSettingsToPage(e){const t=this.getBuilderCanvasElement();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"),wa(t,va(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=this.getBuilderCanvasElement();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(s=>s.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 s=0;s<localStorage.length;s++){const l=localStorage.key(s);if(l&&l.startsWith("page-builder-update-resource-"))try{const p=localStorage.getItem(l);if(!p)continue;const c=JSON.parse(p).pageBuilderContentSavedAt;c&&new Date(c)<a&&(i++,n.push({Number:i,Key:l,SavedAt:c}),localStorage.removeItem(l))}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();const e=this.getBuilderCanvasElement();if(e){const t=zl(e),i=Hl(e);(t||i)&&await this.syncDomToStoreOnly()}await this.addListenersToEditableElements(),this.reapplyConfigPageSettingsIfMissing()}reapplyConfigPageSettingsIfMissing(){var a;const e=this.getBuilderCanvasElement();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 tt(400),await this.mountComponentsToDOM(e,!1,void 0,!0),this.pageBuilderStateStore.setIsLoadingResumeEditing(!1)),await o.nextTick(),await this.addListenersToEditableElements(),this.pageBuilderStateStore.setIsLoadingResumeEditing(!1)}async restoreOriginalContent(){if(this.updateLocalStorageItemName(),this.pageBuilderStateStore.setIsRestoring(!0),await tt(400),Array.isArray(this.originalComponents)){await this.clearClassesFromPage(),await this.clearInlineStylesFromPage();const e=this.renderComponentsToHtml(this.originalComponents);await this.mountComponentsToDOM(e,!1,this.originalPageSettings??void 0),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||"",s=typeof a=="string"?a:this.convertStyleObjectToString(a),l=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(`
747
747
  `);return`<div id="pagebuilder" class="${n}" style="${s}">
748
748
  ${l}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myissue/vue-website-page-builder",
3
- "version": "3.5.81",
3
+ "version": "3.5.82",
4
4
  "description": "Free open-source Vue 3 page builder and drag-and-drop visual editor for ecommerce admin, multi-tenant SaaS, and headless CMS. Self-hosted Builder.io / GrapesJS-style alternative with custom media library and product catalog integration.",
5
5
  "type": "module",
6
6
  "main": "./dist/vue-website-page-builder.umd.cjs",