builder-settings-types 0.0.194 → 0.0.196

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.
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let I=(c=21)=>{let t="",e=crypto.getRandomValues(new Uint8Array(c|=0));for(;c--;)t+=P[e[c]&63];return t};function y(c){if(c===null||typeof c!="object")return c;if(c instanceof Date)return new Date(c.getTime());if(Array.isArray(c)){const i=[];for(let s=0;s<c.length;s++)i[s]=y(c[s]);return i}const t={};for(const i in c)Object.prototype.hasOwnProperty.call(c,i)&&(t[i]=y(c[i]));const e=Object.getPrototypeOf(c);return e!==Object.prototype&&Object.setPrototypeOf(t,e),t}function z(c){switch(c){case"number":return 0;case"text":return"";case"select":return null;case"color":return"#000000";case"date":return new Date().toISOString().split("T")[0];case"button":return"";default:return""}}class p{constructor(t={}){this.props=t,this.id=t.id||I(),this.value=this.props.default,this.desktop=this.props.default,this.title=t.title||""}destroy(){throw new Error("Method not implemented.")}setOnChange(t){return this.onChange=t,this}setOnBlur(t){return this.onBlur=t,this}setValue(t){this.value=t,this.inputEl&&(this.inputEl.value=String(t)),this.onChange&&this.onChange(t),this.props.detectChange&&this.props.detectChange(t)}clone(){const t=this.constructor,e=y(this.props),i=new t(e);return i.value=y(this.value),i}createInput(t){t={...this.props.inputProps,...t};const e=document.createElement("div");if(e.className=t.wrapperClassName||"",t.title||t.icon){const o=document.createElement("div");if(o.className="icon-container",t.icon){const l=this.createIcon(t.icon,t.iconClassName);o.appendChild(l)}if(t.title){const l=this.createLabel(t.title,t.labelClassName);o.appendChild(l)}e.appendChild(o)}const i=document.createElement("div");i.className=t.wrapperClassName||"";const s=document.createElement("input");this.inputEl=s,s.value=String(t.value||z(t.inputType)),s.type=t.inputType,s.placeholder=t.placeholder||"",s.className=t.inputClassName||"";const n=o=>{const l=o.target;let r=l.value;switch(t.inputType){case"number":r=Number(l.value);break;case"color":r=l.value;break;case"date":r=l.value;break;case"select":r=l.value;break;case"text":r=l.value;break;case"button":r=l.value;break;default:r=l.value}this.value=r,this.onChange&&this.onChange(this.value),this.props.detectChange&&this.props.detectChange(this.value)},a=o=>{o.target,this.onBlur&&this.onBlur(this.value)};return s.addEventListener("input",n),s.addEventListener("change",n),s.addEventListener("blur",a),t.inputCustomizer&&t.inputCustomizer(s),i.appendChild(s),e.appendChild(i),e}createLabel(t,e){const i=document.createElement("span");return i.textContent=t,i.className="input-label "+(e||""),i}createIcon(t,e){const i=document.createElement("span");return i.className="input-icon "+(e||""),i.innerHTML=t,i}}function O(c){let t=0,e=c.parentElement;for(;e;)e.classList.contains("setting-group")&&e!==c&&t++,e=e.parentElement;return t}function M(c,t){const e=Math.min(Math.max(t,0),5);c.setAttribute("data-nesting-level",e.toString()),e>0?c.style.setProperty("--visual-indent",`${e*2}px`):(c.style.removeProperty("--visual-indent"),c.style.marginLeft="")}function H(c,t=0){c.querySelectorAll(":scope > .setting-group-content > .setting-group").forEach(i=>{const s=i,n=t+1;M(s,n),H(s,n)})}const W={maxLevel:5,spacingMultiplier:1,visualIndentMultiplier:2,enableAutoDetection:!0};class D{constructor(t={}){this.observedElements=new Set,this.config={...W,...t},this.config.enableAutoDetection&&this.setupAutoDetection()}setupAutoDetection(){this.observer=new MutationObserver(t=>{let e=!1;t.forEach(i=>{i.type==="childList"&&i.addedNodes.forEach(s=>{s instanceof HTMLElement&&(s.classList.contains("setting-group")?[s]:Array.from(s.querySelectorAll(".setting-group"))).length>0&&(e=!0)})}),e&&this.updateAllNesting()}),this.observer.observe(document.body,{childList:!0,subtree:!0})}trackElement(t){this.observedElements.add(t),this.updateElementNesting(t)}untrackElement(t){this.observedElements.delete(t)}updateElementNesting(t){const e=O(t);this.applyNestingWithConfig(t,e)}updateAllNesting(){this.observedElements.forEach(t=>{t.isConnected?this.updateElementNesting(t):this.observedElements.delete(t)})}applyNestingWithConfig(t,e){const i=Math.min(Math.max(e,0),this.config.maxLevel);if(t.setAttribute("data-nesting-level",i.toString()),i>0){const s=i*this.config.visualIndentMultiplier;t.style.setProperty("--visual-indent",`${s}px`)}else t.style.removeProperty("--visual-indent"),t.style.marginLeft=""}recalculateNesting(t=document.body){t.querySelectorAll(".setting-group").forEach(i=>{const s=i;this.updateElementNesting(s),this.trackElement(s)})}getNestingStats(){const t={};return this.observedElements.forEach(e=>{const i=parseInt(e.getAttribute("data-nesting-level")||"0",10);t[i]=(t[i]||0)+1}),t}destroy(){this.observer&&(this.observer.disconnect(),this.observer=void 0),this.observedElements.clear()}}const _=new D;function x(c,t){for(const e in c)if(c.hasOwnProperty(e)){const i=c[e];t(e,i)}}const m=class m{constructor(t){this.elementRef=null,this.isHidden=!1,this.custom=!1,this.initialValues={},this.changeTimeout=null,this.isHandlingChange=!1,this.changeHandlers=new Set,this.blurTimeout=null,this.lastValues={},this.lastChangeTime=0,this.CHANGE_DEBOUNCE=100,this.handleBlur=()=>{},this.pendingBlurHandler=null,this.originalDefaultValues={},this.nestingLevel=0,this.parentNestingLevel=0,this.id=t.id||I(),this.title=t.title,this.settings=t.settings,this.description=t.description,this.icon=t.icon,this.isCollapsed=t.collapsed??!1,this.isMain=t.main??!1,this.custom=t.custom??!1,this.hideCondition=t.hideCondition,this.onBlur=t.onBlur,this.parentNestingLevel=t.parentNestingLevel??0,this.nestingLevel=this.parentNestingLevel,Object.assign(this,t.settings),this.initialValues=this.getValues(),this.originalDefaultValues=this.getDefaultValues(),this.propagateNestingLevel()}propagateNestingLevel(){const t=this.nestingLevel+1;x(this.settings,(e,i)=>{i instanceof m&&(i.parentNestingLevel=this.nestingLevel,i.nestingLevel=t,i.propagateNestingLevel())})}getNestingLevel(){return this.nestingLevel}setNestingLevel(t){this.nestingLevel=t,this.propagateNestingLevel(),this.elementRef&&this.updateNestingStyles()}updateNestingStyles(){this.elementRef&&(M(this.elementRef,this.nestingLevel),H(this.elementRef,this.nestingLevel))}autoDetectNestingLevel(){if(!this.elementRef)return;const t=O(this.elementRef);t!==this.nestingLevel&&this.setNestingLevel(t)}static hide(){this.hiddenElements.forEach(t=>{t&&(t.style.display="none")})}static show(){this.hiddenElements.forEach(t=>{t&&(t.style.display="")})}setOnChange(t){this.onChange=t;const e=()=>{this.isHandlingChange||(this.isHandlingChange=!0,this.changeTimeout&&clearTimeout(this.changeTimeout),this.changeTimeout=setTimeout(()=>{const i=this.getValues(),s=this.calculateChanges(this.initialValues,i);Object.keys(s).length>0&&(this.lastChangeTime=Date.now(),this.initialValues=i,t(i),this.updateVisibility()),this.isHandlingChange=!1},50))};return this.changeHandlers.clear(),x(this.settings,(i,s)=>{var n;if(s instanceof m)s.setOnChange(a=>{const o=this.getValues();this.initialValues=o,t(o)}),this.changeHandlers.add(()=>t(this.getValues()));else if(s instanceof p){const a=()=>{e()};this.changeHandlers.add(a),s.setOnChange(a)}else{const a=()=>{e()};this.changeHandlers.add(a),(n=s.setOnChange)==null||n.call(s,a)}}),this}setOnBlur(t){return this.onBlur=t,this.pendingBlurHandler=t,this.handleBlur=e=>{(e==null?void 0:e.target)instanceof HTMLElement&&e.target.closest(".setting-group")!==this.elementRef||(this.blurTimeout&&clearTimeout(this.blurTimeout),this.blurTimeout=setTimeout(()=>{t()},100))},this.elementRef&&this.setupBlurHandlers(),this}setupBlurHandlers(){this.elementRef&&this.elementRef.removeEventListener("focusout",this.handleBlur),this.elementRef&&this.elementRef.addEventListener("focusout",this.handleBlur,!0),x(this.settings,(t,e)=>{e instanceof m&&e.setOnBlur(()=>{this.onBlur&&this.onBlur()})})}cleanup(){this.changeTimeout&&(clearTimeout(this.changeTimeout),this.changeTimeout=null),this.blurTimeout&&(clearTimeout(this.blurTimeout),this.blurTimeout=null),this.elementRef&&this.elementRef.removeEventListener("focusout",this.handleBlur),this.changeHandlers.clear()}clone(){const t={};x(this.settings,(s,n)=>{typeof n.clone=="function"?t[s]=n.clone():(console.warn(`Setting with key '${s}' does not have a clone method. Copying reference.`),t[s]=n)});const e={title:this.title,settings:t,description:this.description,icon:this.icon,collapsed:this.isCollapsed,main:this.isMain,custom:this.custom,hideCondition:this.hideCondition,parentNestingLevel:this.parentNestingLevel},i=A(e);return i.initialValues=this.getValues(),i}setValue(t){if(!t||typeof t!="object")return;Object.entries(t).forEach(([i,s])=>{const n=this.settings[i];n&&(n instanceof m||n instanceof p)&&typeof n.setValue=="function"&&n.setValue(s)}),setTimeout(()=>{this.forceChildUIRefresh()},0);const e=this.getValues();this.initialValues=e,this.onChange&&this.onChange(e)}forceChildUIRefresh(){Object.entries(this.settings).forEach(([t,e])=>{try{if(e instanceof m){const i=e.getValues();e.setValue(i)}else if(typeof e.setValue=="function"){const i=e.value;i!==void 0&&e.setValue(i)}}catch(i){console.warn(`Error refreshing UI for setting ${t}:`,i)}})}calculateChanges(t,e){const i={};return new Set([...Object.keys(t),...Object.keys(e)]).forEach(n=>{const a=t[n],o=e[n];JSON.stringify(a)!==JSON.stringify(o)&&(i[n]={from:a,to:o})}),i}hide(){this.elementRef&&(this.elementRef.style.display="none",this.isHidden=!0)}show(){this.elementRef&&(this.elementRef.style.display="",this.isHidden=!1)}getValues(t){if(t===void 0){const e={};for(const i in this.settings)if(this.settings.hasOwnProperty(i)){const s=this.settings[i];s instanceof m?e[i]=s.getValues():e[i]=s.value}return e}else{const e=this.settings[t];return e?e instanceof m?e.getValues():e.value:void 0}}getDefaultValues(t){if(t===void 0){const e={};for(const i in this.settings)if(this.settings.hasOwnProperty(i)){const s=this.settings[i];s instanceof m?e[i]=s.getDefaultValues():e[i]=s.default!==void 0?s.default:s.value}return e}else{const e=this.settings[t];return e?e instanceof m?e.getDefaultValues():e.default!==void 0?e.default:e.value:void 0}}getMobileValues(t){if(t===void 0){const e={};for(const i in this.settings)if(this.settings.hasOwnProperty(i)){const s=this.settings[i];if(s instanceof m)e[i]=s.getMobileValues();else if(typeof s.getMobileValue=="function"){const n=s.getMobileValue();e[i]=n!==void 0?n:s.value}else e[i]=s.value}return e}else{const e=this.settings[t];if(!e)return;if(e instanceof m)return e.getMobileValues();if(typeof e.getMobileValue=="function"){const i=e.getMobileValue();return i!==void 0?i:e.value}else return e.value}}setMobileValues(t){if(!(!t||typeof t!="object")&&(Object.entries(t).forEach(([e,i])=>{const s=this.settings[e];s&&(s instanceof m?typeof i=="object"&&i!==null&&s.setMobileValues(i):typeof s.setMobileValue=="function"&&s.setMobileValue(i))}),this.setValue(t),this.onChange)){const e=this.getValues();this.onChange(e)}}resetDefault(){const t=this.originalDefaultValues;if(this.setValue(t),this.onChange){const e=this.getValues();this.onChange(e)}}draw(){const t=document.createElement("div");t.className="setting-group",t.id=`setting-group-${this.id}`,m.hiddenElements.add(t),this.hideCondition&&this.hideCondition()&&(t.style.display="none"),this.isMain&&t.classList.add("main-group"),this.custom&&t.classList.add("custom_class"),M(t,this.nestingLevel);const e=document.createElement("div");e.className="setting-group-title",this.isCollapsed&&e.classList.add("collapsed-view"),e.setAttribute("role","button"),e.setAttribute("aria-expanded",(!this.isCollapsed).toString()),e.setAttribute("tabindex","0");const i=document.createElement("div");if(i.className="title-section",this.icon){const h=document.createElement("span");h.className="group-icon",h.innerHTML=this.icon,i.appendChild(h)}const s=document.createElement("h3");s.textContent=this.title,i.appendChild(s);const n=document.createElement("div");if(n.className="actions-section",this.description&&this.isCollapsed){const h=document.createElement("span");h.className="info-marker",h.innerHTML=`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let I=(c=21)=>{let t="",e=crypto.getRandomValues(new Uint8Array(c|=0));for(;c--;)t+=P[e[c]&63];return t};function y(c){if(c===null||typeof c!="object")return c;if(c instanceof Date)return new Date(c.getTime());if(Array.isArray(c)){const i=[];for(let s=0;s<c.length;s++)i[s]=y(c[s]);return i}const t={};for(const i in c)Object.prototype.hasOwnProperty.call(c,i)&&(t[i]=y(c[i]));const e=Object.getPrototypeOf(c);return e!==Object.prototype&&Object.setPrototypeOf(t,e),t}function z(c){switch(c){case"number":return 0;case"text":return"";case"select":return null;case"color":return"#000000";case"date":return new Date().toISOString().split("T")[0];case"button":return"";default:return""}}class p{constructor(t={}){this.props=t,this.id=t.id||I(),this.value=this.props.default,this.desktop=this.props.default,this.title=t.title||""}static SetUploadUrl(t){window.DefaultUploadUrl=t,p.DefaultUploadUrl=t}destroy(){throw new Error("Method not implemented.")}setOnChange(t){return this.onChange=t,this}setOnBlur(t){return this.onBlur=t,this}setValue(t){this.value=t,this.inputEl&&(this.inputEl.value=String(t)),this.onChange&&this.onChange(t),this.props.detectChange&&this.props.detectChange(t)}clone(){const t=this.constructor,e=y(this.props),i=new t(e);return i.value=y(this.value),i}createInput(t){t={...this.props.inputProps,...t};const e=document.createElement("div");if(e.className=t.wrapperClassName||"",t.title||t.icon){const o=document.createElement("div");if(o.className="icon-container",t.icon){const l=this.createIcon(t.icon,t.iconClassName);o.appendChild(l)}if(t.title){const l=this.createLabel(t.title,t.labelClassName);o.appendChild(l)}e.appendChild(o)}const i=document.createElement("div");i.className=t.wrapperClassName||"";const s=document.createElement("input");this.inputEl=s,s.value=String(t.value||z(t.inputType)),s.type=t.inputType,s.placeholder=t.placeholder||"",s.className=t.inputClassName||"";const n=o=>{const l=o.target;let r=l.value;switch(t.inputType){case"number":r=Number(l.value);break;case"color":r=l.value;break;case"date":r=l.value;break;case"select":r=l.value;break;case"text":r=l.value;break;case"button":r=l.value;break;default:r=l.value}this.value=r,this.onChange&&this.onChange(this.value),this.props.detectChange&&this.props.detectChange(this.value)},a=o=>{o.target,this.onBlur&&this.onBlur(this.value)};return s.addEventListener("input",n),s.addEventListener("change",n),s.addEventListener("blur",a),t.inputCustomizer&&t.inputCustomizer(s),i.appendChild(s),e.appendChild(i),e}createLabel(t,e){const i=document.createElement("span");return i.textContent=t,i.className="input-label "+(e||""),i}createIcon(t,e){const i=document.createElement("span");return i.className="input-icon "+(e||""),i.innerHTML=t,i}}function O(c){let t=0,e=c.parentElement;for(;e;)e.classList.contains("setting-group")&&e!==c&&t++,e=e.parentElement;return t}function M(c,t){const e=Math.min(Math.max(t,0),5);c.setAttribute("data-nesting-level",e.toString()),e>0?c.style.setProperty("--visual-indent",`${e*2}px`):(c.style.removeProperty("--visual-indent"),c.style.marginLeft="")}function H(c,t=0){c.querySelectorAll(":scope > .setting-group-content > .setting-group").forEach(i=>{const s=i,n=t+1;M(s,n),H(s,n)})}const U={maxLevel:5,spacingMultiplier:1,visualIndentMultiplier:2,enableAutoDetection:!0};class D{constructor(t={}){this.observedElements=new Set,this.config={...U,...t},this.config.enableAutoDetection&&this.setupAutoDetection()}setupAutoDetection(){this.observer=new MutationObserver(t=>{let e=!1;t.forEach(i=>{i.type==="childList"&&i.addedNodes.forEach(s=>{s instanceof HTMLElement&&(s.classList.contains("setting-group")?[s]:Array.from(s.querySelectorAll(".setting-group"))).length>0&&(e=!0)})}),e&&this.updateAllNesting()}),this.observer.observe(document.body,{childList:!0,subtree:!0})}trackElement(t){this.observedElements.add(t),this.updateElementNesting(t)}untrackElement(t){this.observedElements.delete(t)}updateElementNesting(t){const e=O(t);this.applyNestingWithConfig(t,e)}updateAllNesting(){this.observedElements.forEach(t=>{t.isConnected?this.updateElementNesting(t):this.observedElements.delete(t)})}applyNestingWithConfig(t,e){const i=Math.min(Math.max(e,0),this.config.maxLevel);if(t.setAttribute("data-nesting-level",i.toString()),i>0){const s=i*this.config.visualIndentMultiplier;t.style.setProperty("--visual-indent",`${s}px`)}else t.style.removeProperty("--visual-indent"),t.style.marginLeft=""}recalculateNesting(t=document.body){t.querySelectorAll(".setting-group").forEach(i=>{const s=i;this.updateElementNesting(s),this.trackElement(s)})}getNestingStats(){const t={};return this.observedElements.forEach(e=>{const i=parseInt(e.getAttribute("data-nesting-level")||"0",10);t[i]=(t[i]||0)+1}),t}destroy(){this.observer&&(this.observer.disconnect(),this.observer=void 0),this.observedElements.clear()}}const W=new D;function x(c,t){for(const e in c)if(c.hasOwnProperty(e)){const i=c[e];t(e,i)}}const m=class m{constructor(t){this.elementRef=null,this.isHidden=!1,this.custom=!1,this.initialValues={},this.changeTimeout=null,this.isHandlingChange=!1,this.changeHandlers=new Set,this.blurTimeout=null,this.lastValues={},this.lastChangeTime=0,this.CHANGE_DEBOUNCE=100,this.handleBlur=()=>{},this.pendingBlurHandler=null,this.originalDefaultValues={},this.nestingLevel=0,this.parentNestingLevel=0,this.id=t.id||I(),this.title=t.title,this.settings=t.settings,this.description=t.description,this.icon=t.icon,this.isCollapsed=t.collapsed??!1,this.isMain=t.main??!1,this.custom=t.custom??!1,this.hideCondition=t.hideCondition,this.onBlur=t.onBlur,this.parentNestingLevel=t.parentNestingLevel??0,this.nestingLevel=this.parentNestingLevel,Object.assign(this,t.settings),this.initialValues=this.getValues(),this.originalDefaultValues=this.getDefaultValues(),this.propagateNestingLevel()}propagateNestingLevel(){const t=this.nestingLevel+1;x(this.settings,(e,i)=>{i instanceof m&&(i.parentNestingLevel=this.nestingLevel,i.nestingLevel=t,i.propagateNestingLevel())})}getNestingLevel(){return this.nestingLevel}setNestingLevel(t){this.nestingLevel=t,this.propagateNestingLevel(),this.elementRef&&this.updateNestingStyles()}updateNestingStyles(){this.elementRef&&(M(this.elementRef,this.nestingLevel),H(this.elementRef,this.nestingLevel))}autoDetectNestingLevel(){if(!this.elementRef)return;const t=O(this.elementRef);t!==this.nestingLevel&&this.setNestingLevel(t)}static hide(){this.hiddenElements.forEach(t=>{t&&(t.style.display="none")})}static show(){this.hiddenElements.forEach(t=>{t&&(t.style.display="")})}setOnChange(t){this.onChange=t;const e=()=>{this.isHandlingChange||(this.isHandlingChange=!0,this.changeTimeout&&clearTimeout(this.changeTimeout),this.changeTimeout=setTimeout(()=>{const i=this.getValues(),s=this.calculateChanges(this.initialValues,i);Object.keys(s).length>0&&(this.lastChangeTime=Date.now(),this.initialValues=i,t(i),this.updateVisibility()),this.isHandlingChange=!1},50))};return this.changeHandlers.clear(),x(this.settings,(i,s)=>{var n;if(s instanceof m)s.setOnChange(a=>{const o=this.getValues();this.initialValues=o,t(o)}),this.changeHandlers.add(()=>t(this.getValues()));else if(s instanceof p){const a=()=>{e()};this.changeHandlers.add(a),s.setOnChange(a)}else{const a=()=>{e()};this.changeHandlers.add(a),(n=s.setOnChange)==null||n.call(s,a)}}),this}setOnBlur(t){return this.onBlur=t,this.pendingBlurHandler=t,this.handleBlur=e=>{(e==null?void 0:e.target)instanceof HTMLElement&&e.target.closest(".setting-group")!==this.elementRef||(this.blurTimeout&&clearTimeout(this.blurTimeout),this.blurTimeout=setTimeout(()=>{t()},100))},this.elementRef&&this.setupBlurHandlers(),this}setupBlurHandlers(){this.elementRef&&this.elementRef.removeEventListener("focusout",this.handleBlur),this.elementRef&&this.elementRef.addEventListener("focusout",this.handleBlur,!0),x(this.settings,(t,e)=>{e instanceof m&&e.setOnBlur(()=>{this.onBlur&&this.onBlur()})})}cleanup(){this.changeTimeout&&(clearTimeout(this.changeTimeout),this.changeTimeout=null),this.blurTimeout&&(clearTimeout(this.blurTimeout),this.blurTimeout=null),this.elementRef&&this.elementRef.removeEventListener("focusout",this.handleBlur),this.changeHandlers.clear()}clone(){const t={};x(this.settings,(s,n)=>{typeof n.clone=="function"?t[s]=n.clone():(console.warn(`Setting with key '${s}' does not have a clone method. Copying reference.`),t[s]=n)});const e={title:this.title,settings:t,description:this.description,icon:this.icon,collapsed:this.isCollapsed,main:this.isMain,custom:this.custom,hideCondition:this.hideCondition,parentNestingLevel:this.parentNestingLevel},i=A(e);return i.initialValues=this.getValues(),i}setValue(t){if(!t||typeof t!="object")return;Object.entries(t).forEach(([i,s])=>{const n=this.settings[i];n&&(n instanceof m||n instanceof p)&&typeof n.setValue=="function"&&n.setValue(s)}),setTimeout(()=>{this.forceChildUIRefresh()},0);const e=this.getValues();this.initialValues=e,this.onChange&&this.onChange(e)}forceChildUIRefresh(){Object.entries(this.settings).forEach(([t,e])=>{try{if(e instanceof m){const i=e.getValues();e.setValue(i)}else if(typeof e.setValue=="function"){const i=e.value;i!==void 0&&e.setValue(i)}}catch(i){console.warn(`Error refreshing UI for setting ${t}:`,i)}})}calculateChanges(t,e){const i={};return new Set([...Object.keys(t),...Object.keys(e)]).forEach(n=>{const a=t[n],o=e[n];JSON.stringify(a)!==JSON.stringify(o)&&(i[n]={from:a,to:o})}),i}hide(){this.elementRef&&(this.elementRef.style.display="none",this.isHidden=!0)}show(){this.elementRef&&(this.elementRef.style.display="",this.isHidden=!1)}getValues(t){if(t===void 0){const e={};for(const i in this.settings)if(this.settings.hasOwnProperty(i)){const s=this.settings[i];s instanceof m?e[i]=s.getValues():e[i]=s.value}return e}else{const e=this.settings[t];return e?e instanceof m?e.getValues():e.value:void 0}}getDefaultValues(t){if(t===void 0){const e={};for(const i in this.settings)if(this.settings.hasOwnProperty(i)){const s=this.settings[i];s instanceof m?e[i]=s.getDefaultValues():e[i]=s.default!==void 0?s.default:s.value}return e}else{const e=this.settings[t];return e?e instanceof m?e.getDefaultValues():e.default!==void 0?e.default:e.value:void 0}}getMobileValues(t){if(t===void 0){const e={};for(const i in this.settings)if(this.settings.hasOwnProperty(i)){const s=this.settings[i];if(s instanceof m)e[i]=s.getMobileValues();else if(typeof s.getMobileValue=="function"){const n=s.getMobileValue();e[i]=n!==void 0?n:s.value}else e[i]=s.value}return e}else{const e=this.settings[t];if(!e)return;if(e instanceof m)return e.getMobileValues();if(typeof e.getMobileValue=="function"){const i=e.getMobileValue();return i!==void 0?i:e.value}else return e.value}}setMobileValues(t){if(!(!t||typeof t!="object")&&(Object.entries(t).forEach(([e,i])=>{const s=this.settings[e];s&&(s instanceof m?typeof i=="object"&&i!==null&&s.setMobileValues(i):typeof s.setMobileValue=="function"&&s.setMobileValue(i))}),this.setValue(t),this.onChange)){const e=this.getValues();this.onChange(e)}}resetDefault(){const t=this.originalDefaultValues;if(this.setValue(t),this.onChange){const e=this.getValues();this.onChange(e)}}draw(){const t=document.createElement("div");t.className="setting-group",t.id=`setting-group-${this.id}`,m.hiddenElements.add(t),this.hideCondition&&this.hideCondition()&&(t.style.display="none"),this.isMain&&t.classList.add("main-group"),this.custom&&t.classList.add("custom_class"),M(t,this.nestingLevel);const e=document.createElement("div");e.className="setting-group-title",this.isCollapsed&&e.classList.add("collapsed-view"),e.setAttribute("role","button"),e.setAttribute("aria-expanded",(!this.isCollapsed).toString()),e.setAttribute("tabindex","0");const i=document.createElement("div");if(i.className="title-section",this.icon){const h=document.createElement("span");h.className="group-icon",h.innerHTML=this.icon,i.appendChild(h)}const s=document.createElement("h3");s.textContent=this.title,i.appendChild(s);const n=document.createElement("div");if(n.className="actions-section",this.description&&this.isCollapsed){const h=document.createElement("span");h.className="info-marker",h.innerHTML=`
2
2
  <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
3
3
  <path d="M8 5.33333V8M8 10.6667H8.00667M14 8C14 11.3137 11.3137 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2C11.3137 2 14 4.68629 14 8Z"
4
4
  stroke="currentColor" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
@@ -12,7 +12,7 @@
12
12
  <path d="M8 5.33333V8M8 10.6667H8.00667M14 8C14 11.3137 11.3137 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2C11.3137 2 14 4.68629 14 8Z"
13
13
  stroke="currentColor" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
14
14
  </svg>
15
- `,u.title=this.description,n.insertBefore(u,a)}}else{if(!h){const u=document.createElement("div");u.className="setting-group-description",u.textContent=this.description,o.insertBefore(u,o.firstChild)}d&&d.remove()}};if(e.onclick=l,e.onkeydown=h=>{(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),l())},Object.keys(this.settings).length>0){for(const h in this.settings)if(this.settings.hasOwnProperty(h)){const d=this.settings[h];d instanceof m&&d.setNestingLevel(this.nestingLevel+1),o.appendChild(d.draw())}}else{const h=document.createElement("div");h.className="setting-group-empty",h.textContent="No settings in this group",o.appendChild(h)}return e.appendChild(i),e.appendChild(n),t.appendChild(e),t.appendChild(o),this.elementRef=t,_.trackElement(t),setTimeout(()=>{this.updateNestingStyles()},0),this.pendingBlurHandler&&(this.setupBlurHandlers(),this.pendingBlurHandler=null),t}collapse(){if(!this.elementRef||this.isCollapsed)return;const t=this.elementRef.querySelector(".setting-group-content"),e=this.elementRef.querySelector(".setting-group-arrow"),i=this.elementRef.querySelector(".setting-group-title");t&&e&&i&&(this.isCollapsed=!0,t.classList.add("collapsed"),e.classList.add("rotated"),i.setAttribute("aria-expanded","false"))}expand(){if(!this.elementRef||!this.isCollapsed)return;const t=this.elementRef.querySelector(".setting-group-content"),e=this.elementRef.querySelector(".setting-group-arrow"),i=this.elementRef.querySelector(".setting-group-title");t&&e&&i&&(this.isCollapsed=!1,t.classList.remove("collapsed"),e.classList.remove("rotated"),i.setAttribute("aria-expanded","true"))}updateVisibility(){this.elementRef&&this.hideCondition&&(this.elementRef.style.display=this.hideCondition()?"none":"")}toggle(){this.isHidden?this.show():this.hide()}getJson(){return JSON.stringify(this.getValues(),null,2)}setJson(t){try{const e=JSON.parse(t);let i=e;const s=Object.keys(this.settings),n=Object.keys(e);if(!s.some(o=>n.includes(o))&&n.length===1){const o=n[0];i=e[o]}this.setValue(i)}catch(e){throw console.error("Invalid JSON provided to setJson:",e),new Error("Invalid JSON format")}}};m.hiddenElements=new Set;let g=m;function A(c){return new g(c)}function U(c){return c}class T extends g{constructor(t){if(!t.tabs||t.tabs.length===0)throw new Error("At least one tab is required for TabsSettingGroup");const e=t.activeTabId||t.tabs[0].id,i=t.tabs.find(a=>a.id===e)||t.tabs[0],s=T.createCombinedSettings(t.tabs),n={title:t.title,settings:s,id:t.id||I(),collapsed:t.collapsed,main:t.main,description:t.description,icon:t.icon,hideCondition:t.hideCondition,onBlur:t.onBlur,custom:t.custom,parentNestingLevel:t.parentNestingLevel};super(n),this.tabs=[],this.activeTabId="",this.tabsContainer=null,this.contentContainers=new Map,this.drawnElement=null,this.tabs=t.tabs,this.activeTabId=i.id}static createCombinedSettings(t){const e={};return t.forEach(i=>{Object.entries(i.settings).forEach(([s,n])=>{const a=`${i.id}_${s}`;e[a]=n})}),e}getValues(){const t={};if(!this.tabs||this.tabs.length===0)return t.tabs={},t.activeTabId=this.activeTabId||"",t;const e={};return this.tabs.forEach(i=>{e[i.id]={},Object.entries(i.settings).forEach(([s,n])=>{const a=`${i.id}_${s}`,o=this.settings[a];o&&(o instanceof g?e[i.id][s]=o.getValues():e[i.id][s]=o.value)})}),t.tabs=e,t.activeTabId=this.activeTabId,t}setValue(t){t&&(t.tabs&&Object.entries(t.tabs).forEach(([e,i])=>{typeof i=="object"&&i!==null&&this.setTabValues(e,i)}),t.activeTabId&&this.tabs&&this.tabs.find(e=>e.id===t.activeTabId)&&this.switchToTab(t.activeTabId),Object.entries(t).forEach(([e,i])=>{if(e!=="tabs"&&e!=="activeTabId"){const s=this.settings[e];s&&typeof s.setValue=="function"&&s.setValue(i)}}),this.initialValues=this.getValues(),this.forceUIUpdate(),this.onChange&&this.onChange(this.getValues()))}setTabValues(t,e){!this.tabs||!this.tabs.find(s=>s.id===t)||(Object.entries(e).forEach(([s,n])=>{const a=`${t}_${s}`,o=this.settings[a];o&&(o instanceof g?typeof n=="object"&&n!==null&&o.setValue(n):typeof o.setValue=="function"&&o.setValue(n))}),t===this.activeTabId&&setTimeout(()=>{this.updateTabUI()},0))}getTabValues(t){if(!this.tabs)return{};const e=this.tabs.find(s=>s.id===t);if(!e)return{};const i={};return Object.entries(e.settings).forEach(([s,n])=>{const a=`${t}_${s}`,o=this.settings[a];o&&(o instanceof g?i[s]=o.getValues():i[s]=o.value)}),i}switchToTab(t){!this.tabs||!this.tabs.find(e=>e.id===t)||t===this.activeTabId||(this.activeTabId=t,this.updateTabUI(),this.onChange&&this.onChange(this.getValues()))}getActiveTabId(){return this.activeTabId}draw(){const t=super.draw();t.classList.add("tabs-settings-container"),this.drawnElement=t;const e=document.createElement("div");e.classList.add("tabs-header"),t.classList.contains("main-group")&&e.classList.add("main-header"),this.tabsContainer=e,this.tabs.forEach(s=>{const n=document.createElement("button");if(n.classList.add("tab-button"),n.setAttribute("data-tab-id",s.id),s.id===this.activeTabId&&n.classList.add("active"),s.icon){const o=document.createElement("span");o.className="tab-icon",o.innerHTML=s.icon,n.appendChild(o)}const a=document.createElement("span");a.textContent=s.label,n.appendChild(a),n.onclick=()=>this.switchToTab(s.id),e.appendChild(n)});const i=t.querySelector(".setting-group-content");return i&&(t.insertBefore(e,i),this.setupTabContent(i)),t}setupTabContent(t){t.innerHTML="",this.tabs.forEach(e=>{const i=document.createElement("div");i.classList.add("tab-content"),i.setAttribute("data-tab-id",e.id),e.id!==this.activeTabId&&(i.style.display="none"),Object.entries(e.settings).forEach(([s,n])=>{const a=`${e.id}_${s}`,o=this.settings[a];if(o&&typeof o.draw=="function"){const l=o.draw();i.appendChild(l)}}),t.appendChild(i),this.contentContainers.set(e.id,i)})}updateTabUI(){this.tabsContainer&&this.tabsContainer.querySelectorAll(".tab-button").forEach(e=>{e.getAttribute("data-tab-id")===this.activeTabId?e.classList.add("active"):e.classList.remove("active")}),this.contentContainers.forEach((t,e)=>{e===this.activeTabId?t.style.display="":t.style.display="none"})}addTab(t){this.tabs.push(t),Object.entries(t.settings).forEach(([e,i])=>{const s=`${t.id}_${e}`;this.settings[s]=i}),this.tabsContainer&&this.redraw()}removeTab(t){const e=this.tabs.findIndex(s=>s.id===t);if(e===-1)return;const i=this.tabs[e];Object.keys(i.settings).forEach(s=>{const n=`${t}_${s}`;delete this.settings[n]}),this.tabs.splice(e,1),this.activeTabId===t&&this.tabs.length>0&&(this.activeTabId=this.tabs[0].id),this.tabsContainer&&this.tabs.length>0&&this.redraw()}redraw(){if(this.drawnElement&&this.drawnElement.parentNode){const t=this.draw();this.drawnElement.parentNode.replaceChild(t,this.drawnElement),this.drawnElement=t}}getJson(t){const e={format:"full",...t};if(e.tabId){const i=this.getTabValues(e.tabId);return JSON.stringify(i,null,2)}else if(e.activeTabOnly){const i=this.getTabValues(this.activeTabId);return JSON.stringify(i,null,2)}else if(e.format==="flat"){const i=this.getTabValues(this.activeTabId);return JSON.stringify(i,null,2)}else return JSON.stringify(this.getValues(),null,2)}setJson(t,e){try{const i=JSON.parse(t),s={autoDetect:!0,...e};if(s.toTabId){this.setTabValues(s.toTabId,i);return}if(s.toActiveTab){this.setTabValues(this.activeTabId,i);return}s.autoDetect?i.tabs&&i.activeTabId!==void 0?this.setValue(i):(this.setTabValues(this.activeTabId,i),this.onChange&&this.onChange(this.getValues())):super.setJson(t)}catch(i){throw console.error("Invalid JSON provided to TabsSettingGroup.setJson:",i),new Error("Invalid JSON format")}}getTabJson(t){return this.getJson({tabId:t})}setTabJson(t,e){this.setJson(e,{toTabId:t})}getActiveTabJson(){return this.getJson({activeTabOnly:!0})}setActiveTabJson(t){this.setJson(t,{toActiveTab:!0})}forceUIUpdate(){setTimeout(()=>{this.updateTabUI(),this.tabs.forEach(t=>{Object.entries(t.settings).forEach(([e,i])=>{const s=`${t.id}_${e}`,n=this.settings[s];if(n&&typeof n.setValue=="function")try{if(n instanceof g){const a=n.getValues();n.setValue(a)}else{const a=n.value;a!==void 0&&n.setValue(a)}}catch(a){console.warn(`Error updating UI for tab setting ${s}:`,a)}})})},20)}}function q(c){const t=new T(c);return Object.assign(t,t.settings)}class V extends p{constructor(t={}){super(t),this.inputType="text",t.onChange&&this.setOnChange(t.onChange)}draw(){const t=e=>{this.props.maxLength!==void 0&&(e.maxLength=this.props.maxLength),this.props.className&&e.classList.add(this.props.className)};return this.createInput({value:this.value,inputType:this.inputType,title:this.props.title,placeholder:this.props.placeholder,icon:this.props.icon,inputClassName:"string-setting-input "+(this.props.inputClassName||""),wrapperClassName:"string-setting-wrapper "+(this.props.wrapperClassName||""),inputCustomizer:t})}}const J="<svg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19' fill='none'><path d='M8.99999 15.8542C9.79613 16.5667 10.8475 17 12 17C14.4853 17 16.5 14.9853 16.5 12.5C16.5 10.4248 15.0953 8.67769 13.1849 8.15763M4.81513 8.15762C2.9047 8.67768 1.5 10.4248 1.5 12.5C1.5 14.9853 3.51472 17 6 17C8.48528 17 10.5 14.9853 10.5 12.5C10.5 11.9146 10.3882 11.3554 10.1849 10.8424M13.5 6.5C13.5 8.98528 11.4853 11 9 11C6.51472 11 4.5 8.98528 4.5 6.5C4.5 4.01472 6.51472 2 9 2C11.4853 2 13.5 4.01472 13.5 6.5Z' stroke='#667085' stroke-linecap='round' stroke-linejoin='round'/></svg>";class f extends V{constructor(t){super({...t,icon:t.icon||J,title:t.title||"Color",default:t.default?f.normalizeColorValue(t.default):"#000000"}),this.inputType="color",this.element=null,this.colorInputEl=null,this.textInputEl=null,this.detectChange=t.detectChange}static normalizeColorValue(t){return t.startsWith("#")?f.normalizeHexValue(t):t.includes(",")?f.rgbToHexStatic(t):f.normalizeHexValue(t)}static normalizeHexValue(t){return t=t.replace("#",""),t.length===3&&(t=t.split("").map(e=>e+e).join("")),t.length!==6?(console.warn(`Invalid hex value "${t}", using default "#000000"`),"#000000"):/^[0-9A-Fa-f]{6}$/.test(t)?`#${t.toLowerCase()}`:(console.warn(`Invalid hex value "${t}", using default "#000000"`),"#000000")}static rgbToHexStatic(t){const e=t.split(",").map(h=>parseInt(h.trim()));if(e.length!==3||e.some(isNaN))return console.warn(`Invalid RGB value "${t}", using default "#000000"`),"#000000";const[i,s,n]=e,a=Math.max(0,Math.min(255,i)),o=Math.max(0,Math.min(255,s)),l=Math.max(0,Math.min(255,n)),r=h=>{const d=h.toString(16);return d.length===1?"0"+d:d};return`#${r(a)}${r(o)}${r(l)}`}setValue(t){if(t===void 0){this.value="#000000",this.colorInputEl&&(this.colorInputEl.value="#000000"),this.textInputEl&&(this.textInputEl.value="#000000"),this.onChange&&this.onChange("#000000"),this.props.detectChange&&this.props.detectChange("#000000");return}if(typeof t=="string"){const e=f.normalizeColorValue(t);this.value=e,this.colorInputEl&&(this.colorInputEl.value=e),this.textInputEl&&(this.textInputEl.value=e),this.onChange&&this.onChange(e),this.props.detectChange&&this.props.detectChange(e)}else this.value="#000000",this.colorInputEl&&(this.colorInputEl.value="#000000"),this.textInputEl&&(this.textInputEl.value="#000000"),this.onChange&&this.onChange("#000000"),this.props.detectChange&&this.props.detectChange("#000000")}hexToRgb(t){t=t.replace("#","");const e=parseInt(t.substring(0,2),16),i=parseInt(t.substring(2,4),16),s=parseInt(t.substring(4,6),16);return`${e}, ${i}, ${s}`}draw(){const t=document.createElement("div");if(t.className="color-setting-wrapper "+(this.props.wrapperClassName||""),this.props.title||this.props.icon){const l=document.createElement("div");if(l.className="icon-container",this.props.icon){const r=document.createElement("span");r.className="input-icon",r.innerHTML=this.props.icon,l.appendChild(r)}if(this.props.title){const r=document.createElement("span");r.className="input-label",r.textContent=this.props.title,l.appendChild(r)}t.appendChild(l)}const e=document.createElement("div");e.className="color-input-wrapper";const i=l=>{const r=l.value.trim();if(!r)return e.classList.remove("error"),!0;const d=/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(r);return d?e.classList.remove("error"):e.classList.add("error"),d},s=document.createElement("input");s.type="color",s.className="color-picker",s.value=this.value||"#000000",s.setAttribute("aria-label","Choose color"),s.setAttribute("title","Click to open color picker"),this.colorInputEl=s;const n=document.createElement("div");n.className="color-preview";const a=this.value||"#000000";n.style.backgroundColor=a;const o=document.createElement("input");return o.type="text",o.className="color-text-input",o.value=this.value||"",o.placeholder="#000000",o.setAttribute("pattern","#[0-9A-Fa-f]{6}"),o.setAttribute("title","Enter a hex color value (e.g., #ff0000)"),o.setAttribute("aria-label","Hex color value"),o.setAttribute("maxlength","7"),this.textInputEl=o,this.textInputEl.addEventListener("input",l=>{var h,d;let r=l.target.value.trim();if(this.textInputEl&&i(this.textInputEl)){const u=f.normalizeColorValue(r);this.value=u,(h=this.onChange)==null||h.call(this,u),(d=this.detectChange)==null||d.call(this,u),this.colorInputEl&&(this.colorInputEl.value=u),n.style.backgroundColor=u}}),this.colorInputEl.addEventListener("input",l=>{var d,u;const r=l.target.value,h=f.normalizeColorValue(r);this.value=h,(d=this.onChange)==null||d.call(this,h),(u=this.detectChange)==null||u.call(this,h),this.textInputEl&&(this.textInputEl.value=h),n.style.backgroundColor=h,e.classList.remove("error")}),this.colorInputEl.addEventListener("change",l=>{var d,u;const r=l.target.value,h=f.normalizeColorValue(r);this.value=h,(d=this.onChange)==null||d.call(this,h),(u=this.detectChange)==null||u.call(this,h),this.textInputEl&&(this.textInputEl.value=h),n.style.backgroundColor=h}),e.appendChild(s),e.appendChild(n),e.appendChild(o),t.appendChild(e),this.element=t,t}getElement(){return this.element}getNormalizedValue(){return this.value?f.normalizeColorValue(this.value):"#000000"}isValidHex(){return this.value?/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(this.value):!1}toRgb(){return this.isValidHex()?this.hexToRgb(this.value):"0, 0, 0"}}const Z=`
15
+ `,u.title=this.description,n.insertBefore(u,a)}}else{if(!h){const u=document.createElement("div");u.className="setting-group-description",u.textContent=this.description,o.insertBefore(u,o.firstChild)}d&&d.remove()}};if(e.onclick=l,e.onkeydown=h=>{(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),l())},Object.keys(this.settings).length>0){for(const h in this.settings)if(this.settings.hasOwnProperty(h)){const d=this.settings[h];d instanceof m&&d.setNestingLevel(this.nestingLevel+1),o.appendChild(d.draw())}}else{const h=document.createElement("div");h.className="setting-group-empty",h.textContent="No settings in this group",o.appendChild(h)}return e.appendChild(i),e.appendChild(n),t.appendChild(e),t.appendChild(o),this.elementRef=t,W.trackElement(t),setTimeout(()=>{this.updateNestingStyles()},0),this.pendingBlurHandler&&(this.setupBlurHandlers(),this.pendingBlurHandler=null),t}collapse(){if(!this.elementRef||this.isCollapsed)return;const t=this.elementRef.querySelector(".setting-group-content"),e=this.elementRef.querySelector(".setting-group-arrow"),i=this.elementRef.querySelector(".setting-group-title");t&&e&&i&&(this.isCollapsed=!0,t.classList.add("collapsed"),e.classList.add("rotated"),i.setAttribute("aria-expanded","false"))}expand(){if(!this.elementRef||!this.isCollapsed)return;const t=this.elementRef.querySelector(".setting-group-content"),e=this.elementRef.querySelector(".setting-group-arrow"),i=this.elementRef.querySelector(".setting-group-title");t&&e&&i&&(this.isCollapsed=!1,t.classList.remove("collapsed"),e.classList.remove("rotated"),i.setAttribute("aria-expanded","true"))}updateVisibility(){this.elementRef&&this.hideCondition&&(this.elementRef.style.display=this.hideCondition()?"none":"")}toggle(){this.isHidden?this.show():this.hide()}getJson(){return JSON.stringify(this.getValues(),null,2)}setJson(t){try{const e=JSON.parse(t);let i=e;const s=Object.keys(this.settings),n=Object.keys(e);if(!s.some(o=>n.includes(o))&&n.length===1){const o=n[0];i=e[o]}this.setValue(i)}catch(e){throw console.error("Invalid JSON provided to setJson:",e),new Error("Invalid JSON format")}}};m.hiddenElements=new Set;let g=m;function A(c){return new g(c)}function _(c){return c}class T extends g{constructor(t){if(!t.tabs||t.tabs.length===0)throw new Error("At least one tab is required for TabsSettingGroup");const e=t.activeTabId||t.tabs[0].id,i=t.tabs.find(a=>a.id===e)||t.tabs[0],s=T.createCombinedSettings(t.tabs),n={title:t.title,settings:s,id:t.id||I(),collapsed:t.collapsed,main:t.main,description:t.description,icon:t.icon,hideCondition:t.hideCondition,onBlur:t.onBlur,custom:t.custom,parentNestingLevel:t.parentNestingLevel};super(n),this.tabs=[],this.activeTabId="",this.tabsContainer=null,this.contentContainers=new Map,this.drawnElement=null,this.tabs=t.tabs,this.activeTabId=i.id}static createCombinedSettings(t){const e={};return t.forEach(i=>{Object.entries(i.settings).forEach(([s,n])=>{const a=`${i.id}_${s}`;e[a]=n})}),e}getValues(){const t={};if(!this.tabs||this.tabs.length===0)return t.tabs={},t.activeTabId=this.activeTabId||"",t;const e={};return this.tabs.forEach(i=>{e[i.id]={},Object.entries(i.settings).forEach(([s,n])=>{const a=`${i.id}_${s}`,o=this.settings[a];o&&(o instanceof g?e[i.id][s]=o.getValues():e[i.id][s]=o.value)})}),t.tabs=e,t.activeTabId=this.activeTabId,t}setValue(t){t&&(t.tabs&&Object.entries(t.tabs).forEach(([e,i])=>{typeof i=="object"&&i!==null&&this.setTabValues(e,i)}),t.activeTabId&&this.tabs&&this.tabs.find(e=>e.id===t.activeTabId)&&this.switchToTab(t.activeTabId),Object.entries(t).forEach(([e,i])=>{if(e!=="tabs"&&e!=="activeTabId"){const s=this.settings[e];s&&typeof s.setValue=="function"&&s.setValue(i)}}),this.initialValues=this.getValues(),this.forceUIUpdate(),this.onChange&&this.onChange(this.getValues()))}setTabValues(t,e){!this.tabs||!this.tabs.find(s=>s.id===t)||(Object.entries(e).forEach(([s,n])=>{const a=`${t}_${s}`,o=this.settings[a];o&&(o instanceof g?typeof n=="object"&&n!==null&&o.setValue(n):typeof o.setValue=="function"&&o.setValue(n))}),t===this.activeTabId&&setTimeout(()=>{this.updateTabUI()},0))}getTabValues(t){if(!this.tabs)return{};const e=this.tabs.find(s=>s.id===t);if(!e)return{};const i={};return Object.entries(e.settings).forEach(([s,n])=>{const a=`${t}_${s}`,o=this.settings[a];o&&(o instanceof g?i[s]=o.getValues():i[s]=o.value)}),i}switchToTab(t){!this.tabs||!this.tabs.find(e=>e.id===t)||t===this.activeTabId||(this.activeTabId=t,this.updateTabUI(),this.onChange&&this.onChange(this.getValues()))}getActiveTabId(){return this.activeTabId}draw(){const t=super.draw();t.classList.add("tabs-settings-container"),this.drawnElement=t;const e=document.createElement("div");e.classList.add("tabs-header"),t.classList.contains("main-group")&&e.classList.add("main-header"),this.tabsContainer=e,this.tabs.forEach(s=>{const n=document.createElement("button");if(n.classList.add("tab-button"),n.setAttribute("data-tab-id",s.id),s.id===this.activeTabId&&n.classList.add("active"),s.icon){const o=document.createElement("span");o.className="tab-icon",o.innerHTML=s.icon,n.appendChild(o)}const a=document.createElement("span");a.textContent=s.label,n.appendChild(a),n.onclick=()=>this.switchToTab(s.id),e.appendChild(n)});const i=t.querySelector(".setting-group-content");return i&&(t.insertBefore(e,i),this.setupTabContent(i)),t}setupTabContent(t){t.innerHTML="",this.tabs.forEach(e=>{const i=document.createElement("div");i.classList.add("tab-content"),i.setAttribute("data-tab-id",e.id),e.id!==this.activeTabId&&(i.style.display="none"),Object.entries(e.settings).forEach(([s,n])=>{const a=`${e.id}_${s}`,o=this.settings[a];if(o&&typeof o.draw=="function"){const l=o.draw();i.appendChild(l)}}),t.appendChild(i),this.contentContainers.set(e.id,i)})}updateTabUI(){this.tabsContainer&&this.tabsContainer.querySelectorAll(".tab-button").forEach(e=>{e.getAttribute("data-tab-id")===this.activeTabId?e.classList.add("active"):e.classList.remove("active")}),this.contentContainers.forEach((t,e)=>{e===this.activeTabId?t.style.display="":t.style.display="none"})}addTab(t){this.tabs.push(t),Object.entries(t.settings).forEach(([e,i])=>{const s=`${t.id}_${e}`;this.settings[s]=i}),this.tabsContainer&&this.redraw()}removeTab(t){const e=this.tabs.findIndex(s=>s.id===t);if(e===-1)return;const i=this.tabs[e];Object.keys(i.settings).forEach(s=>{const n=`${t}_${s}`;delete this.settings[n]}),this.tabs.splice(e,1),this.activeTabId===t&&this.tabs.length>0&&(this.activeTabId=this.tabs[0].id),this.tabsContainer&&this.tabs.length>0&&this.redraw()}redraw(){if(this.drawnElement&&this.drawnElement.parentNode){const t=this.draw();this.drawnElement.parentNode.replaceChild(t,this.drawnElement),this.drawnElement=t}}getJson(t){const e={format:"full",...t};if(e.tabId){const i=this.getTabValues(e.tabId);return JSON.stringify(i,null,2)}else if(e.activeTabOnly){const i=this.getTabValues(this.activeTabId);return JSON.stringify(i,null,2)}else if(e.format==="flat"){const i=this.getTabValues(this.activeTabId);return JSON.stringify(i,null,2)}else return JSON.stringify(this.getValues(),null,2)}setJson(t,e){try{const i=JSON.parse(t),s={autoDetect:!0,...e};if(s.toTabId){this.setTabValues(s.toTabId,i);return}if(s.toActiveTab){this.setTabValues(this.activeTabId,i);return}s.autoDetect?i.tabs&&i.activeTabId!==void 0?this.setValue(i):(this.setTabValues(this.activeTabId,i),this.onChange&&this.onChange(this.getValues())):super.setJson(t)}catch(i){throw console.error("Invalid JSON provided to TabsSettingGroup.setJson:",i),new Error("Invalid JSON format")}}getTabJson(t){return this.getJson({tabId:t})}setTabJson(t,e){this.setJson(e,{toTabId:t})}getActiveTabJson(){return this.getJson({activeTabOnly:!0})}setActiveTabJson(t){this.setJson(t,{toActiveTab:!0})}forceUIUpdate(){setTimeout(()=>{this.updateTabUI(),this.tabs.forEach(t=>{Object.entries(t.settings).forEach(([e,i])=>{const s=`${t.id}_${e}`,n=this.settings[s];if(n&&typeof n.setValue=="function")try{if(n instanceof g){const a=n.getValues();n.setValue(a)}else{const a=n.value;a!==void 0&&n.setValue(a)}}catch(a){console.warn(`Error updating UI for tab setting ${s}:`,a)}})})},20)}}function q(c){const t=new T(c);return Object.assign(t,t.settings)}class V extends p{constructor(t={}){super(t),this.inputType="text",t.onChange&&this.setOnChange(t.onChange)}draw(){const t=e=>{this.props.maxLength!==void 0&&(e.maxLength=this.props.maxLength),this.props.className&&e.classList.add(this.props.className)};return this.createInput({value:this.value,inputType:this.inputType,title:this.props.title,placeholder:this.props.placeholder,icon:this.props.icon,inputClassName:"string-setting-input "+(this.props.inputClassName||""),wrapperClassName:"string-setting-wrapper "+(this.props.wrapperClassName||""),inputCustomizer:t})}}const J="<svg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19' fill='none'><path d='M8.99999 15.8542C9.79613 16.5667 10.8475 17 12 17C14.4853 17 16.5 14.9853 16.5 12.5C16.5 10.4248 15.0953 8.67769 13.1849 8.15763M4.81513 8.15762C2.9047 8.67768 1.5 10.4248 1.5 12.5C1.5 14.9853 3.51472 17 6 17C8.48528 17 10.5 14.9853 10.5 12.5C10.5 11.9146 10.3882 11.3554 10.1849 10.8424M13.5 6.5C13.5 8.98528 11.4853 11 9 11C6.51472 11 4.5 8.98528 4.5 6.5C4.5 4.01472 6.51472 2 9 2C11.4853 2 13.5 4.01472 13.5 6.5Z' stroke='#667085' stroke-linecap='round' stroke-linejoin='round'/></svg>";class f extends V{constructor(t){super({...t,icon:t.icon||J,title:t.title||"Color",default:t.default?f.normalizeColorValue(t.default):"#000000"}),this.inputType="color",this.element=null,this.colorInputEl=null,this.textInputEl=null,this.detectChange=t.detectChange}static normalizeColorValue(t){return t.startsWith("#")?f.normalizeHexValue(t):t.includes(",")?f.rgbToHexStatic(t):f.normalizeHexValue(t)}static normalizeHexValue(t){return t=t.replace("#",""),t.length===3&&(t=t.split("").map(e=>e+e).join("")),t.length!==6?(console.warn(`Invalid hex value "${t}", using default "#000000"`),"#000000"):/^[0-9A-Fa-f]{6}$/.test(t)?`#${t.toLowerCase()}`:(console.warn(`Invalid hex value "${t}", using default "#000000"`),"#000000")}static rgbToHexStatic(t){const e=t.split(",").map(h=>parseInt(h.trim()));if(e.length!==3||e.some(isNaN))return console.warn(`Invalid RGB value "${t}", using default "#000000"`),"#000000";const[i,s,n]=e,a=Math.max(0,Math.min(255,i)),o=Math.max(0,Math.min(255,s)),l=Math.max(0,Math.min(255,n)),r=h=>{const d=h.toString(16);return d.length===1?"0"+d:d};return`#${r(a)}${r(o)}${r(l)}`}setValue(t){if(t===void 0){this.value="#000000",this.colorInputEl&&(this.colorInputEl.value="#000000"),this.textInputEl&&(this.textInputEl.value="#000000"),this.onChange&&this.onChange("#000000"),this.props.detectChange&&this.props.detectChange("#000000");return}if(typeof t=="string"){const e=f.normalizeColorValue(t);this.value=e,this.colorInputEl&&(this.colorInputEl.value=e),this.textInputEl&&(this.textInputEl.value=e),this.onChange&&this.onChange(e),this.props.detectChange&&this.props.detectChange(e)}else this.value="#000000",this.colorInputEl&&(this.colorInputEl.value="#000000"),this.textInputEl&&(this.textInputEl.value="#000000"),this.onChange&&this.onChange("#000000"),this.props.detectChange&&this.props.detectChange("#000000")}hexToRgb(t){t=t.replace("#","");const e=parseInt(t.substring(0,2),16),i=parseInt(t.substring(2,4),16),s=parseInt(t.substring(4,6),16);return`${e}, ${i}, ${s}`}draw(){const t=document.createElement("div");if(t.className="color-setting-wrapper "+(this.props.wrapperClassName||""),this.props.title||this.props.icon){const l=document.createElement("div");if(l.className="icon-container",this.props.icon){const r=document.createElement("span");r.className="input-icon",r.innerHTML=this.props.icon,l.appendChild(r)}if(this.props.title){const r=document.createElement("span");r.className="input-label",r.textContent=this.props.title,l.appendChild(r)}t.appendChild(l)}const e=document.createElement("div");e.className="color-input-wrapper";const i=l=>{const r=l.value.trim();if(!r)return e.classList.remove("error"),!0;const d=/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(r);return d?e.classList.remove("error"):e.classList.add("error"),d},s=document.createElement("input");s.type="color",s.className="color-picker",s.value=this.value||"#000000",s.setAttribute("aria-label","Choose color"),s.setAttribute("title","Click to open color picker"),this.colorInputEl=s;const n=document.createElement("div");n.className="color-preview";const a=this.value||"#000000";n.style.backgroundColor=a;const o=document.createElement("input");return o.type="text",o.className="color-text-input",o.value=this.value||"",o.placeholder="#000000",o.setAttribute("pattern","#[0-9A-Fa-f]{6}"),o.setAttribute("title","Enter a hex color value (e.g., #ff0000)"),o.setAttribute("aria-label","Hex color value"),o.setAttribute("maxlength","7"),this.textInputEl=o,this.textInputEl.addEventListener("input",l=>{var h,d;let r=l.target.value.trim();if(this.textInputEl&&i(this.textInputEl)){const u=f.normalizeColorValue(r);this.value=u,(h=this.onChange)==null||h.call(this,u),(d=this.detectChange)==null||d.call(this,u),this.colorInputEl&&(this.colorInputEl.value=u),n.style.backgroundColor=u}}),this.colorInputEl.addEventListener("input",l=>{var d,u;const r=l.target.value,h=f.normalizeColorValue(r);this.value=h,(d=this.onChange)==null||d.call(this,h),(u=this.detectChange)==null||u.call(this,h),this.textInputEl&&(this.textInputEl.value=h),n.style.backgroundColor=h,e.classList.remove("error")}),this.colorInputEl.addEventListener("change",l=>{var d,u;const r=l.target.value,h=f.normalizeColorValue(r);this.value=h,(d=this.onChange)==null||d.call(this,h),(u=this.detectChange)==null||u.call(this,h),this.textInputEl&&(this.textInputEl.value=h),n.style.backgroundColor=h}),e.appendChild(s),e.appendChild(n),e.appendChild(o),t.appendChild(e),this.element=t,t}getElement(){return this.element}getNormalizedValue(){return this.value?f.normalizeColorValue(this.value):"#000000"}isValidHex(){return this.value?/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(this.value):!1}toRgb(){return this.isValidHex()?this.hexToRgb(this.value):"0, 0, 0"}}const Z=`
16
16
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
17
17
  <path d="M8.99999 15.8542C9.79613 16.5667 10.8475 17 12 17C14.4853 17 16.5 14.9853 16.5 12.5C16.5 10.4248 15.0953 8.67769 13.1849 8.15763M4.81513 8.15762C2.9047 8.67768 1.5 10.4248 1.5 12.5C1.5 14.9853 3.51472 17 6 17C8.48528 17 10.5 14.9853 10.5 12.5C10.5 11.9146 10.3882 11.3554 10.1849 10.8424M13.5 6.5C13.5 8.98528 11.4853 11 9 11C6.51472 11 4.5 8.98528 4.5 6.5C4.5 4.01472 6.51472 2 9 2C11.4853 2 13.5 4.01472 13.5 6.5Z" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
18
18
  <path d="M9 17C13.4183 17 17 13.4183 17 9C17 4.58172 13.4183 1 9 1C4.58172 1 1 4.58172 1 9C1 13.4183 4.58172 17 9 17Z" stroke="#667085" stroke-width="0.5" stroke-linecap="round" stroke-linejoin="round" opacity="0.5"/>
@@ -78,7 +78,7 @@
78
78
  `))}draw(){const t=document.createElement("div");t.className="upload-setting-wrapper",t.setAttribute("data-setting-id",this.id),t.addEventListener("focusout",l=>{var r;l.relatedTarget&&t.contains(l.relatedTarget)||(r=this.onBlur)==null||r.call(this,this.value??"")},!0);const e=!!(this.props.title||this.props.icon);if(e||t.classList.add("no-label"),e){const l=document.createElement("div");if(l.className="icon-title-container",this.props.icon){const r=this.createIcon(this.props.icon);l.appendChild(r)}if(this.props.title){const r=this.createLabel(this.props.title);l.appendChild(r)}t.appendChild(l)}this.errorContainer=document.createElement("div"),this.errorContainer.className="error-message",this.errorContainer.style.display="none",t.appendChild(this.errorContainer);const i=document.createElement("div");i.className="preview-button-container";const s=this.value&&this.value!=="";s||i.classList.add("no-image");const n=document.createElement("div");if(n.className="preview-placeholder",n.innerHTML=st,this.previewWrapper=document.createElement("div"),this.previewWrapper.className="preview-wrapper",this.previewEl=document.createElement("img"),this.previewEl.className="upload-preview",this.props.delete){const l=document.createElement("button");l.className="delete-button",l.type="button",l.title="Delete image",l.innerHTML=nt,this.previewWrapper.appendChild(l),l.onclick=r=>{var h;r.stopPropagation(),this.value="",o.value="",this.updatePreviewState(null),(h=this.onChange)==null||h.call(this,""),this.hideError()}}this.previewWrapper.appendChild(this.previewEl);const a=document.createElement("button");a.className="upload-button",a.innerHTML=`
79
79
  <span class="upload-icon">${k}</span>
80
80
  <span class="upload-label">Upload</span>
81
- `;const o=document.createElement("input");return o.type="file",o.accept="image/*",o.style.display="none",i.appendChild(n),i.appendChild(this.previewWrapper),i.appendChild(a),t.appendChild(i),t.appendChild(o),s?this.updatePreviewState(this.value):this.updatePreviewState(null),a.onclick=()=>{o.click()},o.onchange=async()=>{var r,h,d;const l=(r=o.files)==null?void 0:r[0];if(l){if(!this.validateFileSize(l)){o.value="";return}this.hideError();try{a.classList.add("loading"),a.disabled=!0;const u=new FormData,j=this.props.formFieldName||"file";u.append(j,l,l.name);const N=this.props.uploadUrl;if(!N)throw new Error("No uploadUrl provided to UploadSetting.");const F=this.props.requestMethod||"POST",G={...this.props.requestHeaders||{}},w=await(await fetch(N,{method:F,body:u,headers:G})).json();console.log("Upload response:",w);let b;if(this.props.parseResponse)b=this.props.parseResponse(w);else if(b=(h=w==null?void 0:w.data)==null?void 0:h.url,!b)throw new Error("No URL found in response. Provide a parseResponse if needed.");console.log("Final URL:",b),this.value=b,this.updatePreviewState(b),(d=this.onChange)==null||d.call(this,b)}catch(u){console.error("Error uploading file:",u),this.showError(`Upload failed: ${u instanceof Error?u.message:"Unknown error"}`),o.value=""}finally{a.classList.remove("loading"),a.disabled=!1}}},t}}class at extends v{constructor(t={}){super({...t,title:t.title||"Height",suffix:t.suffix||"px",minValue:t.minValue??0,icon:t.icon||ot,default:t.default??100}),this.inputType="number",this.mobileValue=t.mobile}getMobileValue(){return this.mobileValue}setMobileValue(t){this.mobileValue=t,t!==void 0&&this.setValue(t)}}const ot=`<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
81
+ `;const o=document.createElement("input");return o.type="file",o.accept="image/*",o.style.display="none",i.appendChild(n),i.appendChild(this.previewWrapper),i.appendChild(a),t.appendChild(i),t.appendChild(o),s?this.updatePreviewState(this.value):this.updatePreviewState(null),a.onclick=()=>{o.click()},o.onchange=async()=>{var r,h,d;const l=(r=o.files)==null?void 0:r[0];if(l){if(!this.validateFileSize(l)){o.value="";return}this.hideError();try{a.classList.add("loading"),a.disabled=!0;const u=new FormData,j=this.props.formFieldName||"file";u.append(j,l,l.name);const N=this.props.uploadUrl||p.DefaultUploadUrl;if(!N)throw new Error("No uploadUrl provided to UploadSetting.");const F=this.props.requestMethod||"POST",G={...this.props.requestHeaders||{}},E=await(await fetch(N,{method:F,body:u,headers:G})).json();console.log("Upload response:",E);let b;if(this.props.parseResponse)b=this.props.parseResponse(E);else if(b=(h=E==null?void 0:E.data)==null?void 0:h.url,!b)throw new Error("No URL found in response. Provide a parseResponse if needed.");console.log("Final URL:",b),this.value=b,this.updatePreviewState(b),(d=this.onChange)==null||d.call(this,b)}catch(u){console.error("Error uploading file:",u),this.showError(`Upload failed: ${u instanceof Error?u.message:"Unknown error"}`),o.value=""}finally{a.classList.remove("loading"),a.disabled=!1}}},t}}class at extends v{constructor(t={}){super({...t,title:t.title||"Height",suffix:t.suffix||"px",minValue:t.minValue??0,icon:t.icon||ot,default:t.default??100}),this.inputType="number",this.mobileValue=t.mobile}getMobileValue(){return this.mobileValue}setMobileValue(t){this.mobileValue=t,t!==void 0&&this.setValue(t)}}const ot=`<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
82
82
  <path d="M9 14L9 5M9 14L6.75 12.5M9 14L11.25 12.5M9 5L6.75 6.5M9 5L11.25 6.5M15.75 2.75H2.25M15.75 16.25H2.25" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
83
83
  </svg>`;class lt extends v{constructor(t={}){super({...t,title:t.title||"Width",suffix:t.suffix||"px",minValue:t.minValue??0,icon:t.icon||rt,default:t.default??100}),this.inputType="number",this.mobileValue=t.mobile}getMobileValue(){return this.mobileValue}setMobileValue(t){this.mobileValue=t,t!==void 0&&this.setValue(t)}}const rt=`<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
84
84
  <path d="M4.5 9.5H13.5M4.5 9.5L6 7.25M4.5 9.5L6 11.75M13.5 9.5L12 7.25M13.5 9.5L12 11.75M15.75 16.25V2.75M2.25 16.25V2.75" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
@@ -95,7 +95,7 @@
95
95
  }
96
96
  `,document.head.appendChild(l)}return i.appendChild(s),i.appendChild(n),t.appendChild(i),t}setDetectChange(t){this.detectChangeCallback=t}}const ut=`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
97
97
  <path d="M13.3334 5.99996H2.66675M13.3334 9.99996H2.66675M5.33341 12.6666V3.33329M10.6667 12.6666V3.33329" stroke="#667085" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
98
- </svg>`;class pt extends p{constructor(t={}){t.rowGap=t.rowGap??!0,t.columnGap=t.columnGap??!0,t.title=t.title??"Gap",t.icon=t.icon??ut,t.suffix=t.suffix??"px",t.minValue=t.minValue??0,super(t),this.inputType="number",this.inputValues={},this.mobileValue=t.mobile,this.value=this.validateValue(t.default??0),t.rowGap&&(this.inputValues.row=this.value),t.columnGap&&(this.inputValues.column=this.value)}draw(){const t=document.createElement("div");t.className=`setting-container ${this.props.className||""}`,t.id=this.id;const e=document.createElement("div");e.className="setting-label-input-wrapper";const i=document.createElement("label");i.className="setting-label",i.setAttribute("for",this.id+"-input");const s=document.createElement("span");if(s.textContent=this.props.title??"Gap",i.appendChild(s),this.props.icon){const o=document.createElement("span");o.className="setting-icon",o.innerHTML=this.props.icon,i.insertBefore(o,s)}const n=document.createElement("div");n.className=`setting-input-wrapper ${this.props.wrapperClassName||""}`,n.classList.add("gap-setting-wrapper");const a=document.createElement("div");return a.className="gap-inputs-container",this.props.rowGap&&a.appendChild(this.createGapInput("row","Row")),this.props.columnGap&&a.appendChild(this.createGapInput("column","Col")),n.appendChild(a),e.appendChild(i),e.appendChild(n),t.appendChild(e),t}createGapInput(t,e){const i=document.createElement("div");i.className="gap-input-wrapper";const s=document.createElement("input");if(s.type="number",s.className=`gap-input gap-${t}-input ${this.props.inputClassName||""}`,s.id=`${this.id}-${t}-input`,s.min=String(this.props.minValue??0),this.props.maxValue!==void 0&&(s.max=String(this.props.maxValue)),s.step=String(this.props.step??1),s.value=String(this.inputValues[t]??this.value),s.title=e,s.addEventListener("input",n=>{const a=n.target;let o=parseFloat(a.value);o=this.validateValue(o),String(o)!==a.value&&(a.value=String(o)),this.inputValues[t]=o,this.setValue(o)}),s.addEventListener("blur",n=>{var l,r;const a=n.target;let o=parseFloat(a.value);o=this.validateValue(o),String(o)!==a.value&&(a.value=String(o),this.inputValues[t]=o,this.setValue(o)),(r=(l=this.props).onBlur)==null||r.call(l)}),i.appendChild(s),this.props.suffix&&this.props.suffix!=="none"){const n=document.createElement("span");n.className="gap-suffix",n.textContent=this.props.suffix,i.appendChild(n),s.style.paddingRight="30px"}return i}validateValue(t){(t==null||isNaN(t))&&(t=this.props.default??0);const e=this.props.minValue??Number.MIN_SAFE_INTEGER,i=this.props.maxValue??Number.MAX_SAFE_INTEGER;let s=Number(t);return s<e&&(s=e),s>i&&(s=i),s}getMobileValue(){return this.mobileValue}setMobileValue(t){this.mobileValue=t,t!==void 0&&this.setValue(t)}}class E extends g{constructor(t){var o;if(!t.tabs)throw new Error("Tabs array is required for TabsSettings");const e=t.tabs,i=t.activeTabId||((o=e[0])==null?void 0:o.id)||"",s=e.find(l=>l.id===i),n=s?s.settings:{},a={title:t.title||"",settings:n,collapsed:t.collapsed,main:t.main,description:t.description,icon:t.icon,custom:t.custom,hideCondition:t.hideCondition,onBlur:t.onBlur};super(a),this.tabs=[],this.activeTabId="",this.tabsContainer=null,this.previousTabId="",this.container=null,this.tabValues={},this.internalChangeTimeout=null,this.isHandlingInternalChange=!1,this.INTERNAL_CHANGE_DEBOUNCE=50,this.tabs=e,this.activeTabId=i,this.previousTabId=i,this.onStateChangeCallback=t.onStateChange,this.detectChangeCallback=t.detectChange,this.initializeTabValues(),this.connectChildChangeHandlers()}updateSettingsFromTab(t){const e=this.tabs.find(i=>i.id===t);e&&(this.settings=e.settings,this.tabValues[t]=this.getTabValues(e),this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId},Object.values(e.settings).forEach(i=>{i instanceof E&&(i._parentTabsSettings=this)}),this.connectChildChangeHandlers())}connectChildChangeHandlers(){if(!this.settings)return;const t=()=>{Promise.resolve().then(()=>{if(this.activeTabId){const e=this.tabs.find(i=>i.id===this.activeTabId);e&&(this.tabValues[this.activeTabId]=this.getTabValues(e))}this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId},this.triggerDebouncedChange()})};Object.values(this.settings).forEach(e=>{e instanceof g?e.setOnChange(()=>{t()}):e instanceof p&&e.setOnChange(()=>{t()})}),this.tabs.forEach(e=>{Object.entries(e.settings).forEach(([i,s])=>{(s instanceof g||s instanceof p)&&(s instanceof E?(s._parentTabsSettings=this,s.setOnChange(n=>{Promise.resolve().then(()=>{this.tabValues[e.id]=this.getTabValues(e),this.triggerDebouncedChange()})})):s instanceof g?s.setOnChange(()=>{Promise.resolve().then(()=>{this.tabValues[e.id]=this.getTabValues(e),this.triggerDebouncedChange()})}):s instanceof p&&s.setOnChange(()=>{Promise.resolve().then(()=>{this.tabValues[e.id]=this.getTabValues(e),this.triggerDebouncedChange()})}))})})}draw(){const t=super.draw();this.container=t,t.classList.add("tabs-settings-container");const e=document.createElement("div");e.classList.add("tabs-header"),this.main&&e.classList.add("main-header"),this.tabsContainer=e,this.tabs.forEach(s=>{const n=document.createElement("button");n.classList.add("tab-button"),s.id===this.activeTabId&&n.classList.add("active"),n.textContent=s.label,n.onclick=()=>this.handleTabClick(s.id),e.appendChild(n)});const i=t.querySelector(".setting-group-content");return i&&t.insertBefore(e,i),t}handleTabClick(t){var o,l;if(t===this.activeTabId)return;const e=this.tabs.find(r=>r.id===this.activeTabId);e&&(this.tabValues[this.activeTabId]=this.getTabValues(e)),this.previousTabId=this.activeTabId,this.activeTabId=t;const i=(o=this.tabsContainer)==null?void 0:o.querySelectorAll(".tab-button");i==null||i.forEach(r=>{if(r instanceof HTMLElement){const h=this.tabs.find(d=>d.label===r.textContent);r.classList.toggle("active",(h==null?void 0:h.id)===t)}}),this.updateSettingsFromTab(t);const s=(l=this.container)==null?void 0:l.querySelector(".setting-group-content");if(s){s.innerHTML="";const r=this.settings;Object.values(r).forEach(h=>{s.appendChild(h.draw())})}const n=this.getValues();this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId},this.connectChildChangeHandlers(),this.onStateChangeCallback&&this.onStateChangeCallback(t,n),this.detectChangeCallback&&this.detectChangeCallback(t,n),this.onChange&&this.onChange(n);const a=this.findParentTabsSettings();a&&a.onChange&&a.onChange(a.getValues())}findParentTabsSettings(){return this._parentTabsSettings||null}setOnStateChange(t){return this.onStateChangeCallback=t,this}setDetectChange(t){return this.detectChangeCallback=t,this}getActiveTabId(){return this.activeTabId}getValues(){return this.updateTabValues(),{tabs:this.tabValues,activeTabId:this.activeTabId}}updateTabValues(){!this.tabs||this.tabs.length===0||this.tabs.forEach(t=>{this.tabValues[t.id]=this.getTabValues(t)})}propagateChanges(){const t=this.findParentTabsSettings();t&&(t.updateTabValues(),t.triggerDebouncedChange())}triggerDebouncedChange(){this.isHandlingInternalChange||(this.isHandlingInternalChange=!0,this.internalChangeTimeout&&clearTimeout(this.internalChangeTimeout),this.internalChangeTimeout=setTimeout(()=>{this.onChange&&this.onChange(this.getValues()),this.isHandlingInternalChange=!1,this.internalChangeTimeout=null;const t=this.findParentTabsSettings();t&&t.triggerDebouncedChange()},this.INTERNAL_CHANGE_DEBOUNCE))}updateInitialValues(){!this.tabs||this.tabs.length===0||(this.updateTabValues(),this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId},this.tabs.forEach(t=>{Object.values(t.settings).forEach(e=>{e instanceof E&&e.updateInitialValues()})}))}setOnChange(t){return this.onChange=t,this.connectChildChangeHandlers(),this.updateTabValues(),this}initializeTabValues(){!this.tabs||this.tabs.length===0||(this.tabs.forEach(t=>{this.tabValues[t.id]=this.getTabValues(t)}),this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId})}getTabValues(t){const e={};return Object.entries(t.settings).forEach(([i,s])=>{s instanceof E||s instanceof g?e[i]=s.getValues():(s instanceof p,e[i]=s.value)}),e}clone(){const t=this.tabs.map(i=>{const s={};return Object.entries(i.settings).forEach(([n,a])=>{typeof a.clone=="function"?s[n]=a.clone():(console.warn(`Setting with key '${n}' in tab '${i.id}' does not have a clone method. Copying reference.`),s[n]=a)}),{...i,settings:s}}),e={title:this.title,tabs:t,activeTabId:this.activeTabId,collapsed:this.isCollapsed,main:this.isMain,description:this.description,icon:this.icon,custom:this.custom,hideCondition:this.hideCondition,settings:{}};return new E(e)}setValue(t){if(t&&typeof t=="object"){let e=!1;if(t.activeTabId&&t.activeTabId!==this.activeTabId&&(this.previousTabId=this.activeTabId,this.activeTabId=t.activeTabId,e=!0),t.tabs&&typeof t.tabs=="object"&&Object.entries(t.tabs).forEach(([i,s])=>{const n=this.tabs.find(a=>a.id===i);n&&s&&typeof s=="object"&&Object.entries(s).forEach(([a,o])=>{n.settings[a]&&typeof n.settings[a].setValue=="function"&&n.settings[a].setValue(o)})}),this.updateTabValues(),this.triggerDebouncedChange(),this.container){if(this.updateSettingsFromTab(this.activeTabId),this.tabsContainer){const s=this.tabsContainer.querySelectorAll(".tab-button");s==null||s.forEach(n=>{if(n instanceof HTMLElement){const a=this.tabs.find(o=>o.label===n.textContent);n.classList.toggle("active",(a==null?void 0:a.id)===this.activeTabId)}})}const i=this.container.querySelector(".setting-group-content");if(i){i.innerHTML="";const s=this.settings;Object.values(s).forEach(n=>{i.appendChild(n.draw())})}e&&this.onStateChangeCallback&&this.onStateChangeCallback(this.activeTabId,this.getValues())}this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId}}}updateTabSetting(t,e,i){const s=this.tabs.find(a=>a.id===t);if(!s||!s.settings[e])return;const n=s.settings[e];typeof n.setValue=="function"&&(n.setValue(i),this.tabValues[t]=this.getTabValues(s),t!==this.activeTabId&&this.onChange&&this.onChange(this.getValues()))}getTabsConfiguration(){return this.tabs}}const gt=`<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
98
+ </svg>`;class pt extends p{constructor(t={}){t.rowGap=t.rowGap??!0,t.columnGap=t.columnGap??!0,t.title=t.title??"Gap",t.icon=t.icon??ut,t.suffix=t.suffix??"px",t.minValue=t.minValue??0,super(t),this.inputType="number",this.inputValues={},this.mobileValue=t.mobile,this.value=this.validateValue(t.default??0),t.rowGap&&(this.inputValues.row=this.value),t.columnGap&&(this.inputValues.column=this.value)}draw(){const t=document.createElement("div");t.className=`setting-container ${this.props.className||""}`,t.id=this.id;const e=document.createElement("div");e.className="setting-label-input-wrapper";const i=document.createElement("label");i.className="setting-label",i.setAttribute("for",this.id+"-input");const s=document.createElement("span");if(s.textContent=this.props.title??"Gap",i.appendChild(s),this.props.icon){const o=document.createElement("span");o.className="setting-icon",o.innerHTML=this.props.icon,i.insertBefore(o,s)}const n=document.createElement("div");n.className=`setting-input-wrapper ${this.props.wrapperClassName||""}`,n.classList.add("gap-setting-wrapper");const a=document.createElement("div");return a.className="gap-inputs-container",this.props.rowGap&&a.appendChild(this.createGapInput("row","Row")),this.props.columnGap&&a.appendChild(this.createGapInput("column","Col")),n.appendChild(a),e.appendChild(i),e.appendChild(n),t.appendChild(e),t}createGapInput(t,e){const i=document.createElement("div");i.className="gap-input-wrapper";const s=document.createElement("input");if(s.type="number",s.className=`gap-input gap-${t}-input ${this.props.inputClassName||""}`,s.id=`${this.id}-${t}-input`,s.min=String(this.props.minValue??0),this.props.maxValue!==void 0&&(s.max=String(this.props.maxValue)),s.step=String(this.props.step??1),s.value=String(this.inputValues[t]??this.value),s.title=e,s.addEventListener("input",n=>{const a=n.target;let o=parseFloat(a.value);o=this.validateValue(o),String(o)!==a.value&&(a.value=String(o)),this.inputValues[t]=o,this.setValue(o)}),s.addEventListener("blur",n=>{var l,r;const a=n.target;let o=parseFloat(a.value);o=this.validateValue(o),String(o)!==a.value&&(a.value=String(o),this.inputValues[t]=o,this.setValue(o)),(r=(l=this.props).onBlur)==null||r.call(l)}),i.appendChild(s),this.props.suffix&&this.props.suffix!=="none"){const n=document.createElement("span");n.className="gap-suffix",n.textContent=this.props.suffix,i.appendChild(n),s.style.paddingRight="30px"}return i}validateValue(t){(t==null||isNaN(t))&&(t=this.props.default??0);const e=this.props.minValue??Number.MIN_SAFE_INTEGER,i=this.props.maxValue??Number.MAX_SAFE_INTEGER;let s=Number(t);return s<e&&(s=e),s>i&&(s=i),s}getMobileValue(){return this.mobileValue}setMobileValue(t){this.mobileValue=t,t!==void 0&&this.setValue(t)}}class w extends g{constructor(t){var o;if(!t.tabs)throw new Error("Tabs array is required for TabsSettings");const e=t.tabs,i=t.activeTabId||((o=e[0])==null?void 0:o.id)||"",s=e.find(l=>l.id===i),n=s?s.settings:{},a={title:t.title||"",settings:n,collapsed:t.collapsed,main:t.main,description:t.description,icon:t.icon,custom:t.custom,hideCondition:t.hideCondition,onBlur:t.onBlur};super(a),this.tabs=[],this.activeTabId="",this.tabsContainer=null,this.previousTabId="",this.container=null,this.tabValues={},this.internalChangeTimeout=null,this.isHandlingInternalChange=!1,this.INTERNAL_CHANGE_DEBOUNCE=50,this.tabs=e,this.activeTabId=i,this.previousTabId=i,this.onStateChangeCallback=t.onStateChange,this.detectChangeCallback=t.detectChange,this.initializeTabValues(),this.connectChildChangeHandlers()}updateSettingsFromTab(t){const e=this.tabs.find(i=>i.id===t);e&&(this.settings=e.settings,this.tabValues[t]=this.getTabValues(e),this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId},Object.values(e.settings).forEach(i=>{i instanceof w&&(i._parentTabsSettings=this)}),this.connectChildChangeHandlers())}connectChildChangeHandlers(){if(!this.settings)return;const t=()=>{Promise.resolve().then(()=>{if(this.activeTabId){const e=this.tabs.find(i=>i.id===this.activeTabId);e&&(this.tabValues[this.activeTabId]=this.getTabValues(e))}this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId},this.triggerDebouncedChange()})};Object.values(this.settings).forEach(e=>{e instanceof g?e.setOnChange(()=>{t()}):e instanceof p&&e.setOnChange(()=>{t()})}),this.tabs.forEach(e=>{Object.entries(e.settings).forEach(([i,s])=>{(s instanceof g||s instanceof p)&&(s instanceof w?(s._parentTabsSettings=this,s.setOnChange(n=>{Promise.resolve().then(()=>{this.tabValues[e.id]=this.getTabValues(e),this.triggerDebouncedChange()})})):s instanceof g?s.setOnChange(()=>{Promise.resolve().then(()=>{this.tabValues[e.id]=this.getTabValues(e),this.triggerDebouncedChange()})}):s instanceof p&&s.setOnChange(()=>{Promise.resolve().then(()=>{this.tabValues[e.id]=this.getTabValues(e),this.triggerDebouncedChange()})}))})})}draw(){const t=super.draw();this.container=t,t.classList.add("tabs-settings-container");const e=document.createElement("div");e.classList.add("tabs-header"),this.main&&e.classList.add("main-header"),this.tabsContainer=e,this.tabs.forEach(s=>{const n=document.createElement("button");n.classList.add("tab-button"),s.id===this.activeTabId&&n.classList.add("active"),n.textContent=s.label,n.onclick=()=>this.handleTabClick(s.id),e.appendChild(n)});const i=t.querySelector(".setting-group-content");return i&&t.insertBefore(e,i),t}handleTabClick(t){var o,l;if(t===this.activeTabId)return;const e=this.tabs.find(r=>r.id===this.activeTabId);e&&(this.tabValues[this.activeTabId]=this.getTabValues(e)),this.previousTabId=this.activeTabId,this.activeTabId=t;const i=(o=this.tabsContainer)==null?void 0:o.querySelectorAll(".tab-button");i==null||i.forEach(r=>{if(r instanceof HTMLElement){const h=this.tabs.find(d=>d.label===r.textContent);r.classList.toggle("active",(h==null?void 0:h.id)===t)}}),this.updateSettingsFromTab(t);const s=(l=this.container)==null?void 0:l.querySelector(".setting-group-content");if(s){s.innerHTML="";const r=this.settings;Object.values(r).forEach(h=>{s.appendChild(h.draw())})}const n=this.getValues();this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId},this.connectChildChangeHandlers(),this.onStateChangeCallback&&this.onStateChangeCallback(t,n),this.detectChangeCallback&&this.detectChangeCallback(t,n),this.onChange&&this.onChange(n);const a=this.findParentTabsSettings();a&&a.onChange&&a.onChange(a.getValues())}findParentTabsSettings(){return this._parentTabsSettings||null}setOnStateChange(t){return this.onStateChangeCallback=t,this}setDetectChange(t){return this.detectChangeCallback=t,this}getActiveTabId(){return this.activeTabId}getValues(){return this.updateTabValues(),{tabs:this.tabValues,activeTabId:this.activeTabId}}updateTabValues(){!this.tabs||this.tabs.length===0||this.tabs.forEach(t=>{this.tabValues[t.id]=this.getTabValues(t)})}propagateChanges(){const t=this.findParentTabsSettings();t&&(t.updateTabValues(),t.triggerDebouncedChange())}triggerDebouncedChange(){this.isHandlingInternalChange||(this.isHandlingInternalChange=!0,this.internalChangeTimeout&&clearTimeout(this.internalChangeTimeout),this.internalChangeTimeout=setTimeout(()=>{this.onChange&&this.onChange(this.getValues()),this.isHandlingInternalChange=!1,this.internalChangeTimeout=null;const t=this.findParentTabsSettings();t&&t.triggerDebouncedChange()},this.INTERNAL_CHANGE_DEBOUNCE))}updateInitialValues(){!this.tabs||this.tabs.length===0||(this.updateTabValues(),this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId},this.tabs.forEach(t=>{Object.values(t.settings).forEach(e=>{e instanceof w&&e.updateInitialValues()})}))}setOnChange(t){return this.onChange=t,this.connectChildChangeHandlers(),this.updateTabValues(),this}initializeTabValues(){!this.tabs||this.tabs.length===0||(this.tabs.forEach(t=>{this.tabValues[t.id]=this.getTabValues(t)}),this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId})}getTabValues(t){const e={};return Object.entries(t.settings).forEach(([i,s])=>{s instanceof w||s instanceof g?e[i]=s.getValues():(s instanceof p,e[i]=s.value)}),e}clone(){const t=this.tabs.map(i=>{const s={};return Object.entries(i.settings).forEach(([n,a])=>{typeof a.clone=="function"?s[n]=a.clone():(console.warn(`Setting with key '${n}' in tab '${i.id}' does not have a clone method. Copying reference.`),s[n]=a)}),{...i,settings:s}}),e={title:this.title,tabs:t,activeTabId:this.activeTabId,collapsed:this.isCollapsed,main:this.isMain,description:this.description,icon:this.icon,custom:this.custom,hideCondition:this.hideCondition,settings:{}};return new w(e)}setValue(t){if(t&&typeof t=="object"){let e=!1;if(t.activeTabId&&t.activeTabId!==this.activeTabId&&(this.previousTabId=this.activeTabId,this.activeTabId=t.activeTabId,e=!0),t.tabs&&typeof t.tabs=="object"&&Object.entries(t.tabs).forEach(([i,s])=>{const n=this.tabs.find(a=>a.id===i);n&&s&&typeof s=="object"&&Object.entries(s).forEach(([a,o])=>{n.settings[a]&&typeof n.settings[a].setValue=="function"&&n.settings[a].setValue(o)})}),this.updateTabValues(),this.triggerDebouncedChange(),this.container){if(this.updateSettingsFromTab(this.activeTabId),this.tabsContainer){const s=this.tabsContainer.querySelectorAll(".tab-button");s==null||s.forEach(n=>{if(n instanceof HTMLElement){const a=this.tabs.find(o=>o.label===n.textContent);n.classList.toggle("active",(a==null?void 0:a.id)===this.activeTabId)}})}const i=this.container.querySelector(".setting-group-content");if(i){i.innerHTML="";const s=this.settings;Object.values(s).forEach(n=>{i.appendChild(n.draw())})}e&&this.onStateChangeCallback&&this.onStateChangeCallback(this.activeTabId,this.getValues())}this.initialValues={tabs:this.tabValues,activeTabId:this.activeTabId}}}updateTabSetting(t,e,i){const s=this.tabs.find(a=>a.id===t);if(!s||!s.settings[e])return;const n=s.settings[e];typeof n.setValue=="function"&&(n.setValue(i),this.tabValues[t]=this.getTabValues(s),t!==this.activeTabId&&this.onChange&&this.onChange(this.getValues()))}getTabsConfiguration(){return this.tabs}}const gt=`<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
99
99
  <path d="M2.25 11.75H15.75M5.85 2.75H12.15C13.4101 2.75 14.0402 2.75 14.5215 2.99524C14.9448 3.21095 15.289 3.55516 15.5048 3.97852C15.75 4.45982 15.75 5.08988 15.75 6.35V12.65C15.75 13.9101 15.75 14.5402 15.5048 15.0215C15.289 15.4448 14.9448 15.789 14.5215 16.0048C14.0402 16.25 13.4101 16.25 12.15 16.25H5.85C4.58988 16.25 3.95982 16.25 3.47852 16.0048C3.05516 15.789 2.71095 15.4448 2.49524 15.0215C2.25 14.5402 2.25 13.9101 2.25 12.65V6.35C2.25 5.08988 2.25 4.45982 2.49524 3.97852C2.71095 3.55516 3.05516 3.21095 3.47852 2.99524C3.95982 2.75 4.58988 2.75 5.85 2.75Z" stroke="#667085" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
100
100
  </svg>`;class mt extends v{constructor(t={}){super({...t,minValue:t.minValue??0,maxValue:t.maxValue??1e3,icon:t.icon||gt,title:t.title||"Margin Bottom",default:t.default??20,wrapperClassName:"margin-bottom-wrapper "+(t.wrapperClassName||"")}),this.inputType="number"}}const ft=`<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
101
101
  <path d="M15.75 7.25H2.25m9.9 9h-6.3c-1.26 0-1.89 0-2.371-.245a2.25 2.25 0 0 1-.984-.983c-.245-.482-.245-1.112-.245-2.372v-6.3c0-1.26 0-1.89.245-2.371a2.25 2.25 0 0 1 .984-.984c.48-.245 1.11-.245 2.371-.245h6.3c1.26 0 1.89 0 2.371.245.424.216.768.56.984.984.245.48.245 1.11.245 2.371v6.3c0 1.26 0 1.89-.245 2.371-.216.424-.56.768-.984.984-.48.245-1.11.245-2.371.245"
@@ -112,7 +112,7 @@
112
112
  <line x1="12" y1="5" x2="12" y2="19"></line>
113
113
  <line x1="5" y1="12" x2="19" y2="12"></line>
114
114
  </svg>
115
- `;class Et extends p{constructor(t={}){super(t),this.inputType={},this.container=null,this.languagesContainer=null,this.addLanguageSelect=null,this.addButton=null,this.defaultLanguages=[{code:"en",name:"English"},{code:"ka",name:"Georgian"},{code:"ru",name:"Russian"},{code:"tr",name:"Turkish"},{code:"de",name:"German"},{code:"fr",name:"French"},{code:"es",name:"Spanish"},{code:"it",name:"Italian"},{code:"ar",name:"Arabic"},{code:"zh",name:"Chinese"}],this.value||(this.value={})}get availableLanguages(){return this.props.availableLanguages||this.defaultLanguages}get usedLanguageCodes(){return Object.keys(this.value||{})}get availableLanguageOptions(){return this.availableLanguages.filter(t=>!this.usedLanguageCodes.includes(t.code))}updateAddLanguageSelect(){if(!this.addLanguageSelect)return;this.addLanguageSelect.innerHTML='<option value="">Select language...</option>',this.availableLanguageOptions.forEach(i=>{const s=document.createElement("option");s.value=i.code,s.textContent=i.name,this.addLanguageSelect.appendChild(s)});const t=this.availableLanguageOptions.length>0,e=this.props.maxLanguages&&this.usedLanguageCodes.length>=this.props.maxLanguages;this.addButton&&(this.addButton.disabled=!t||!!e)}createLanguageRow(t,e){const i=document.createElement("div");i.classList.add("multi-language-row"),i.dataset.language=t;const s=document.createElement("span");s.classList.add("language-label"),s.textContent=t.toUpperCase();const n=document.createElement("div");n.classList.add("language-input-group");const a=document.createElement("input");a.type="text",a.classList.add("language-input"),a.value=e||"",a.placeholder=this.props.placeholder||"Enter text...",a.addEventListener("input",l=>{const r=l.target;this.updateLanguageValue(t,r.value)});const o=document.createElement("button");return o.type="button",o.classList.add("delete-language-btn"),o.innerHTML=Ct,o.title=`Delete ${t.toUpperCase()}`,o.addEventListener("click",()=>{this.removeLanguage(t)}),n.appendChild(a),n.appendChild(o),i.appendChild(s),i.appendChild(n),i}updateLanguageValue(t,e){this.value||(this.value={}),this.value[t]=e,this.onChange&&this.onChange(this.value),this.props.detectChange&&this.props.detectChange(this.value)}removeLanguage(t){var i;if(!this.value)return;delete this.value[t],this.onChange&&this.onChange(this.value),this.props.detectChange&&this.props.detectChange(this.value);const e=(i=this.languagesContainer)==null?void 0:i.querySelector(`[data-language="${t}"]`);e&&e.remove(),this.updateAddLanguageSelect()}addLanguage(t){var s;if(!t||this.usedLanguageCodes.includes(t))return;this.value||(this.value={}),this.value[t]="",this.onChange&&this.onChange(this.value),this.props.detectChange&&this.props.detectChange(this.value);const e=this.createLanguageRow(t,"");(s=this.languagesContainer)==null||s.appendChild(e),this.updateAddLanguageSelect(),this.addLanguageSelect&&(this.addLanguageSelect.value="");const i=e.querySelector(".language-input");i&&i.focus()}createAddLanguageSection(){const t=document.createElement("div");t.classList.add("add-language-section");const e=document.createElement("div");e.classList.add("add-language-label"),e.textContent="Add language:";const i=document.createElement("div");i.classList.add("add-language-controls");const s=document.createElement("select");s.classList.add("add-language-select"),this.addLanguageSelect=s;const n=document.createElement("button");return n.type="button",n.classList.add("add-language-btn"),n.innerHTML=`${bt} Add`,this.addButton=n,n.addEventListener("click",()=>{const a=s.value;a&&this.addLanguage(a)}),i.appendChild(s),i.appendChild(n),t.appendChild(e),t.appendChild(i),t}draw(){const t=document.createElement("div");if(t.classList.add("multi-language-wrapper"),this.props.title){const n=document.createElement("div");n.classList.add("multi-language-title"),n.textContent=this.props.title,t.appendChild(n)}const e=document.createElement("div");e.classList.add("multi-language-content");const i=document.createElement("div");i.classList.add("languages-container"),this.languagesContainer=i,this.value&&Object.entries(this.value).forEach(([n,a])=>{const o=this.createLanguageRow(n,a);i.appendChild(o)}),e.appendChild(i);const s=this.createAddLanguageSection();return e.appendChild(s),t.appendChild(e),this.updateAddLanguageSelect(),this.container=t,t}setValue(t){super.setValue(t),this.languagesContainer&&(this.languagesContainer.innerHTML="",this.value&&Object.entries(this.value).forEach(([e,i])=>{const s=this.createLanguageRow(e,i);this.languagesContainer.appendChild(s)}),this.updateAddLanguageSelect())}}const wt=`
115
+ `;class wt extends p{constructor(t={}){super(t),this.inputType={},this.container=null,this.languagesContainer=null,this.addLanguageSelect=null,this.addButton=null,this.defaultLanguages=[{code:"en",name:"English"},{code:"ka",name:"Georgian"},{code:"ru",name:"Russian"},{code:"tr",name:"Turkish"},{code:"de",name:"German"},{code:"fr",name:"French"},{code:"es",name:"Spanish"},{code:"it",name:"Italian"},{code:"ar",name:"Arabic"},{code:"zh",name:"Chinese"}],this.value||(this.value={})}get availableLanguages(){return this.props.availableLanguages||this.defaultLanguages}get usedLanguageCodes(){return Object.keys(this.value||{})}get availableLanguageOptions(){return this.availableLanguages.filter(t=>!this.usedLanguageCodes.includes(t.code))}updateAddLanguageSelect(){if(!this.addLanguageSelect)return;this.addLanguageSelect.innerHTML='<option value="">Select language...</option>',this.availableLanguageOptions.forEach(i=>{const s=document.createElement("option");s.value=i.code,s.textContent=i.name,this.addLanguageSelect.appendChild(s)});const t=this.availableLanguageOptions.length>0,e=this.props.maxLanguages&&this.usedLanguageCodes.length>=this.props.maxLanguages;this.addButton&&(this.addButton.disabled=!t||!!e)}createLanguageRow(t,e){const i=document.createElement("div");i.classList.add("multi-language-row"),i.dataset.language=t;const s=document.createElement("span");s.classList.add("language-label"),s.textContent=t.toUpperCase();const n=document.createElement("div");n.classList.add("language-input-group");const a=document.createElement("input");a.type="text",a.classList.add("language-input"),a.value=e||"",a.placeholder=this.props.placeholder||"Enter text...",a.addEventListener("input",l=>{const r=l.target;this.updateLanguageValue(t,r.value)});const o=document.createElement("button");return o.type="button",o.classList.add("delete-language-btn"),o.innerHTML=Ct,o.title=`Delete ${t.toUpperCase()}`,o.addEventListener("click",()=>{this.removeLanguage(t)}),n.appendChild(a),n.appendChild(o),i.appendChild(s),i.appendChild(n),i}updateLanguageValue(t,e){this.value||(this.value={}),this.value[t]=e,this.onChange&&this.onChange(this.value),this.props.detectChange&&this.props.detectChange(this.value)}removeLanguage(t){var i;if(!this.value)return;delete this.value[t],this.onChange&&this.onChange(this.value),this.props.detectChange&&this.props.detectChange(this.value);const e=(i=this.languagesContainer)==null?void 0:i.querySelector(`[data-language="${t}"]`);e&&e.remove(),this.updateAddLanguageSelect()}addLanguage(t){var s;if(!t||this.usedLanguageCodes.includes(t))return;this.value||(this.value={}),this.value[t]="",this.onChange&&this.onChange(this.value),this.props.detectChange&&this.props.detectChange(this.value);const e=this.createLanguageRow(t,"");(s=this.languagesContainer)==null||s.appendChild(e),this.updateAddLanguageSelect(),this.addLanguageSelect&&(this.addLanguageSelect.value="");const i=e.querySelector(".language-input");i&&i.focus()}createAddLanguageSection(){const t=document.createElement("div");t.classList.add("add-language-section");const e=document.createElement("div");e.classList.add("add-language-label"),e.textContent="Add language:";const i=document.createElement("div");i.classList.add("add-language-controls");const s=document.createElement("select");s.classList.add("add-language-select"),this.addLanguageSelect=s;const n=document.createElement("button");return n.type="button",n.classList.add("add-language-btn"),n.innerHTML=`${bt} Add`,this.addButton=n,n.addEventListener("click",()=>{const a=s.value;a&&this.addLanguage(a)}),i.appendChild(s),i.appendChild(n),t.appendChild(e),t.appendChild(i),t}draw(){const t=document.createElement("div");if(t.classList.add("multi-language-wrapper"),this.props.title){const n=document.createElement("div");n.classList.add("multi-language-title"),n.textContent=this.props.title,t.appendChild(n)}const e=document.createElement("div");e.classList.add("multi-language-content");const i=document.createElement("div");i.classList.add("languages-container"),this.languagesContainer=i,this.value&&Object.entries(this.value).forEach(([n,a])=>{const o=this.createLanguageRow(n,a);i.appendChild(o)}),e.appendChild(i);const s=this.createAddLanguageSection();return e.appendChild(s),t.appendChild(e),this.updateAddLanguageSelect(),this.container=t,t}setValue(t){super.setValue(t),this.languagesContainer&&(this.languagesContainer.innerHTML="",this.value&&Object.entries(this.value).forEach(([e,i])=>{const s=this.createLanguageRow(e,i);this.languagesContainer.appendChild(s)}),this.updateAddLanguageSelect())}}const Et=`
116
116
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
117
117
  <path d="M5.625 9.5H5.6325M12.375 9.5H12.3825M9 9.5H9.0075M9 12.875H9.0075M9 6.125H9.0075M2.25 6.35L2.25 12.65C2.25 13.9101 2.25 14.5402 2.49524 15.0215C2.71095 15.4448 3.05516 15.789 3.47852 16.0048C3.95982 16.25 4.58988 16.25 5.85 16.25H12.15C13.4101 16.25 14.0402 16.25 14.5215 16.0048C14.9448 15.789 15.289 15.4448 15.5048 15.0215C15.75 14.5402 15.75 13.9101 15.75 12.65V6.35C15.75 5.08988 15.75 4.45982 15.5048 3.97852C15.289 3.55516 14.9448 3.21095 14.5215 2.99524C14.0402 2.75 13.4101 2.75 12.15 2.75L5.85 2.75C4.58988 2.75 3.95982 2.75 3.47852 2.99524C3.05516 3.21095 2.71095 3.55516 2.49524 3.97852C2.25 4.45982 2.25 5.08988 2.25 6.35Z" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
118
118
  </svg>
@@ -120,7 +120,7 @@
120
120
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
121
121
  <path d="M6 2.75H5.85C4.58988 2.75 3.95982 2.75 3.47852 2.99524C3.05516 3.21095 2.71095 3.55516 2.49524 3.97852C2.25 4.45982 2.25 5.08988 2.25 6.35V6.5M6 16.25H5.85C4.58988 16.25 3.95982 16.25 3.47852 16.0048C3.05516 15.789 2.71095 15.4448 2.49524 15.0215C2.25 14.5402 2.25 13.9101 2.25 12.65V12.5M15.75 6.5V6.35C15.75 5.08988 15.75 4.45982 15.5048 3.97852C15.289 3.55516 14.9448 3.21095 14.5215 2.99524C14.0402 2.75 13.4101 2.75 12.15 2.75H12M15.75 12.5V12.65C15.75 13.9101 15.75 14.5402 15.5048 15.0215C15.289 15.4448 14.9448 15.789 14.5215 16.0048C14.0402 16.25 13.4101 16.25 12.15 16.25H12" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
122
122
  </svg>
123
- `;class Lt extends g{constructor(t){super({title:"Border",collapsed:t==null?void 0:t.collapsed,hideCondition:t==null?void 0:t.hideCondition,settings:{size:new v({title:"Size",icon:xt,default:(t==null?void 0:t.size)??0,suffix:"px"}),color:new C({default:(t==null?void 0:t.color)??"0, 0, 30"}),radius:new v({title:"Radius",icon:wt,default:(t==null?void 0:t.radius)??12,suffix:"px"})}})}getCssCode(){const t=this.settings.color.value??"#000000",e=this.settings.radius.value??0,i=this.settings.size.value??0;return`
123
+ `;class Lt extends g{constructor(t){super({title:"Border",collapsed:t==null?void 0:t.collapsed,hideCondition:t==null?void 0:t.hideCondition,settings:{size:new v({title:"Size",icon:xt,default:(t==null?void 0:t.size)??0,suffix:"px"}),color:new C({default:(t==null?void 0:t.color)??"0, 0, 30"}),radius:new v({title:"Radius",icon:Et,default:(t==null?void 0:t.radius)??12,suffix:"px"})}})}getCssCode(){const t=this.settings.color.value??"#000000",e=this.settings.radius.value??0,i=this.settings.size.value??0;return`
124
124
  border-color: ${t};
125
125
  border-width: ${i}px;
126
126
  border-radius: ${e}px;
@@ -183,4 +183,4 @@
183
183
  </svg>
184
184
  </span>
185
185
  <span class="add-label">Add Tab</span>
186
- `,i.onclick=()=>{this.addTab(),this.rerender()},e.appendChild(i),t.appendChild(e),t}rerender(){if(!this._el)return;const t=this._el.querySelector(".setting-group-content");t&&(t.innerHTML="",Object.keys(this.settings).forEach(e=>{const i=this.settings[e];t.appendChild(i.draw())}))}}function $t(c){return c instanceof g}function Rt(c){return c instanceof p}exports.AlignSetting=$;exports.BackgroundSettingSet=Ht;exports.BorderSettingSet=Lt;exports.ButtonSetting=Y;exports.ColorSetting=f;exports.ColorWithOpacitySetting=C;exports.DimensionSetting=tt;exports.GapSetting=pt;exports.HeaderTypographySettingSet=kt;exports.HeightSetting=at;exports.HtmlSetting=K;exports.MarginBottomSetting=mt;exports.MarginSettingGroup=Mt;exports.MarginTopSetting=vt;exports.MultiLanguageSetting=Et;exports.NumberSetting=v;exports.OpacitySetting=B;exports.SelectApiSettings=ct;exports.SelectSetting=S;exports.Setting=p;exports.SettingGroup=g;exports.StringSetting=V;exports.TabsContainerGroup=Bt;exports.TabsSettingGroup=T;exports.TabsSettings=E;exports.Toggle=dt;exports.UploadSetting=R;exports.WidthSetting=lt;exports.asSettingGroupWithSettings=U;exports.createSettingGroup=A;exports.createTabsSettingGroup=q;exports.isSetting=Rt;exports.isSettingGroup=$t;exports.iterateSettings=x;
186
+ `,i.onclick=()=>{this.addTab(),this.rerender()},e.appendChild(i),t.appendChild(e),t}rerender(){if(!this._el)return;const t=this._el.querySelector(".setting-group-content");t&&(t.innerHTML="",Object.keys(this.settings).forEach(e=>{const i=this.settings[e];t.appendChild(i.draw())}))}}function $t(c){return c instanceof g}function Rt(c){return c instanceof p}exports.AlignSetting=$;exports.BackgroundSettingSet=Ht;exports.BorderSettingSet=Lt;exports.ButtonSetting=Y;exports.ColorSetting=f;exports.ColorWithOpacitySetting=C;exports.DimensionSetting=tt;exports.GapSetting=pt;exports.HeaderTypographySettingSet=kt;exports.HeightSetting=at;exports.HtmlSetting=K;exports.MarginBottomSetting=mt;exports.MarginSettingGroup=Mt;exports.MarginTopSetting=vt;exports.MultiLanguageSetting=wt;exports.NumberSetting=v;exports.OpacitySetting=B;exports.SelectApiSettings=ct;exports.SelectSetting=S;exports.Setting=p;exports.SettingGroup=g;exports.StringSetting=V;exports.TabsContainerGroup=Bt;exports.TabsSettingGroup=T;exports.TabsSettings=w;exports.Toggle=dt;exports.UploadSetting=R;exports.WidthSetting=lt;exports.asSettingGroupWithSettings=_;exports.createSettingGroup=A;exports.createTabsSettingGroup=q;exports.isSetting=Rt;exports.isSettingGroup=$t;exports.iterateSettings=x;
@@ -44,6 +44,9 @@ class p {
44
44
  constructor(t = {}) {
45
45
  this.props = t, this.id = t.id || M(), this.value = this.props.default, this.desktop = this.props.default, this.title = t.title || "";
46
46
  }
47
+ static SetUploadUrl(t) {
48
+ window.DefaultUploadUrl = t, p.DefaultUploadUrl = t;
49
+ }
47
50
  destroy() {
48
51
  throw new Error("Method not implemented.");
49
52
  }
@@ -56,7 +59,6 @@ class p {
56
59
  setValue(t) {
57
60
  this.value = t, this.inputEl && (this.inputEl.value = String(t)), this.onChange && this.onChange(t), this.props.detectChange && this.props.detectChange(t);
58
61
  }
59
- // Basic clone method
60
62
  clone() {
61
63
  const t = this.constructor, e = y(this.props), i = new t(e);
62
64
  return i.value = y(this.value), i;
@@ -854,7 +856,7 @@ class I extends g {
854
856
  }, 20);
855
857
  }
856
858
  }
857
- function Et(c) {
859
+ function wt(c) {
858
860
  const t = new I(c);
859
861
  return Object.assign(t, t.settings);
860
862
  }
@@ -878,12 +880,12 @@ class k extends p {
878
880
  });
879
881
  }
880
882
  }
881
- const D = "<svg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19' fill='none'><path d='M8.99999 15.8542C9.79613 16.5667 10.8475 17 12 17C14.4853 17 16.5 14.9853 16.5 12.5C16.5 10.4248 15.0953 8.67769 13.1849 8.15763M4.81513 8.15762C2.9047 8.67768 1.5 10.4248 1.5 12.5C1.5 14.9853 3.51472 17 6 17C8.48528 17 10.5 14.9853 10.5 12.5C10.5 11.9146 10.3882 11.3554 10.1849 10.8424M13.5 6.5C13.5 8.98528 11.4853 11 9 11C6.51472 11 4.5 8.98528 4.5 6.5C4.5 4.01472 6.51472 2 9 2C11.4853 2 13.5 4.01472 13.5 6.5Z' stroke='#667085' stroke-linecap='round' stroke-linejoin='round'/></svg>";
883
+ const U = "<svg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19' fill='none'><path d='M8.99999 15.8542C9.79613 16.5667 10.8475 17 12 17C14.4853 17 16.5 14.9853 16.5 12.5C16.5 10.4248 15.0953 8.67769 13.1849 8.15763M4.81513 8.15762C2.9047 8.67768 1.5 10.4248 1.5 12.5C1.5 14.9853 3.51472 17 6 17C8.48528 17 10.5 14.9853 10.5 12.5C10.5 11.9146 10.3882 11.3554 10.1849 10.8424M13.5 6.5C13.5 8.98528 11.4853 11 9 11C6.51472 11 4.5 8.98528 4.5 6.5C4.5 4.01472 6.51472 2 9 2C11.4853 2 13.5 4.01472 13.5 6.5Z' stroke='#667085' stroke-linecap='round' stroke-linejoin='round'/></svg>";
882
884
  class f extends k {
883
885
  constructor(t) {
884
886
  super({
885
887
  ...t,
886
- icon: t.icon || D,
888
+ icon: t.icon || U,
887
889
  title: t.title || "Color",
888
890
  default: t.default ? f.normalizeColorValue(t.default) : "#000000"
889
891
  }), this.inputType = "color", this.element = null, this.colorInputEl = null, this.textInputEl = null, this.detectChange = t.detectChange;
@@ -982,7 +984,7 @@ class f extends k {
982
984
  return this.isValidHex() ? this.hexToRgb(this.value) : "0, 0, 0";
983
985
  }
984
986
  }
985
- const _ = `
987
+ const D = `
986
988
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
987
989
  <path d="M8.99999 15.8542C9.79613 16.5667 10.8475 17 12 17C14.4853 17 16.5 14.9853 16.5 12.5C16.5 10.4248 15.0953 8.67769 13.1849 8.15763M4.81513 8.15762C2.9047 8.67768 1.5 10.4248 1.5 12.5C1.5 14.9853 3.51472 17 6 17C8.48528 17 10.5 14.9853 10.5 12.5C10.5 11.9146 10.3882 11.3554 10.1849 10.8424M13.5 6.5C13.5 8.98528 11.4853 11 9 11C6.51472 11 4.5 8.98528 4.5 6.5C4.5 4.01472 6.51472 2 9 2C11.4853 2 13.5 4.01472 13.5 6.5Z" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
988
990
  <path d="M9 17C13.4183 17 17 13.4183 17 9C17 4.58172 13.4183 1 9 1C4.58172 1 1 4.58172 1 9C1 13.4183 4.58172 17 9 17Z" stroke="#667085" stroke-width="0.5" stroke-linecap="round" stroke-linejoin="round" opacity="0.5"/>
@@ -992,7 +994,7 @@ class C extends p {
992
994
  constructor(t = {}) {
993
995
  super({
994
996
  ...t,
995
- icon: t.icon || _,
997
+ icon: t.icon || D,
996
998
  title: t.title || "Color & Opacity",
997
999
  default: t.default || "#000000FF"
998
1000
  }), this.inputType = "color", this.element = null, this.colorInputEl = null, this.textInputEl = null, this.opacityInputEl = null, this.colorPreviewEl = null, this.detectChange = t.detectChange, this.value && (this.value = C.normalizeHexWithOpacity(this.value));
@@ -1095,7 +1097,7 @@ class C extends p {
1095
1097
  };
1096
1098
  }
1097
1099
  }
1098
- class wt extends p {
1100
+ class Et extends p {
1099
1101
  constructor(t = {}) {
1100
1102
  super(t), this.inputType = "text", t.onChange && this.setOnChange(t.onChange);
1101
1103
  }
@@ -1191,7 +1193,7 @@ const W = `
1191
1193
  <path d="M9 17C13.4183 17 17 13.4183 17 9C17 4.58172 13.4183 1 9 1C4.58172 1 1 4.58172 1 9C1 13.4183 4.58172 17 9 17Z" stroke="#667085" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1192
1194
  <path d="M9 1V17C4.58172 17 1 13.4183 1 9C1 4.58172 4.58172 1 9 1Z" fill="#667085" stroke="#667085" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1193
1195
  </svg>`;
1194
- class U extends v {
1196
+ class _ extends v {
1195
1197
  constructor(t = {}) {
1196
1198
  const e = {
1197
1199
  title: "Opacity",
@@ -1515,7 +1517,9 @@ class Y extends p {
1515
1517
  const e = (this.props.maxFileSizeMB || 5) * 1024 * 1024;
1516
1518
  if (t.size > e) {
1517
1519
  const i = this.props.maxFileSizeMB || 5, s = (t.size / (1024 * 1024)).toFixed(1);
1518
- return this.showError(`File size (${s}MB) exceeds maximum limit of ${i}MB`), !1;
1520
+ return this.showError(
1521
+ `File size (${s}MB) exceeds maximum limit of ${i}MB`
1522
+ ), !1;
1519
1523
  }
1520
1524
  return !0;
1521
1525
  }
@@ -1590,25 +1594,27 @@ class Y extends p {
1590
1594
  a.classList.add("loading"), a.disabled = !0;
1591
1595
  const u = new FormData(), A = this.props.formFieldName || "file";
1592
1596
  u.append(A, l, l.name);
1593
- const S = this.props.uploadUrl;
1597
+ const S = this.props.uploadUrl || p.DefaultUploadUrl;
1594
1598
  if (!S)
1595
- throw new Error("No uploadUrl provided to UploadSetting.");
1596
- const B = this.props.requestMethod || "POST", $ = { ...this.props.requestHeaders || {} }, w = await (await fetch(S, {
1599
+ throw new Error("No uploadUrl provided to UploadSetting.");
1600
+ const B = this.props.requestMethod || "POST", $ = { ...this.props.requestHeaders || {} }, E = await (await fetch(S, {
1597
1601
  method: B,
1598
1602
  body: u,
1599
1603
  headers: $
1600
1604
  })).json();
1601
- console.log("Upload response:", w);
1605
+ console.log("Upload response:", E);
1602
1606
  let b;
1603
1607
  if (this.props.parseResponse)
1604
- b = this.props.parseResponse(w);
1605
- else if (b = (h = w == null ? void 0 : w.data) == null ? void 0 : h.url, !b)
1608
+ b = this.props.parseResponse(E);
1609
+ else if (b = (h = E == null ? void 0 : E.data) == null ? void 0 : h.url, !b)
1606
1610
  throw new Error(
1607
1611
  "No URL found in response. Provide a parseResponse if needed."
1608
1612
  );
1609
1613
  console.log("Final URL:", b), this.value = b, this.updatePreviewState(b), (d = this.onChange) == null || d.call(this, b);
1610
1614
  } catch (u) {
1611
- console.error("Error uploading file:", u), this.showError(`Upload failed: ${u instanceof Error ? u.message : "Unknown error"}`), o.value = "";
1615
+ console.error("Error uploading file:", u), this.showError(
1616
+ `Upload failed: ${u instanceof Error ? u.message : "Unknown error"}`
1617
+ ), o.value = "";
1612
1618
  } finally {
1613
1619
  a.classList.remove("loading"), a.disabled = !1;
1614
1620
  }
@@ -1908,7 +1914,7 @@ class Mt extends p {
1908
1914
  this.mobileValue = t, t !== void 0 && this.setValue(t);
1909
1915
  }
1910
1916
  }
1911
- class E extends g {
1917
+ class w extends g {
1912
1918
  constructor(t) {
1913
1919
  var o;
1914
1920
  if (!t.tabs)
@@ -1932,7 +1938,7 @@ class E extends g {
1932
1938
  tabs: this.tabValues,
1933
1939
  activeTabId: this.activeTabId
1934
1940
  }, Object.values(e.settings).forEach((i) => {
1935
- i instanceof E && (i._parentTabsSettings = this);
1941
+ i instanceof w && (i._parentTabsSettings = this);
1936
1942
  }), this.connectChildChangeHandlers());
1937
1943
  }
1938
1944
  connectChildChangeHandlers() {
@@ -1957,7 +1963,7 @@ class E extends g {
1957
1963
  });
1958
1964
  }), this.tabs.forEach((e) => {
1959
1965
  Object.entries(e.settings).forEach(([i, s]) => {
1960
- (s instanceof g || s instanceof p) && (s instanceof E ? (s._parentTabsSettings = this, s.setOnChange((n) => {
1966
+ (s instanceof g || s instanceof p) && (s instanceof w ? (s._parentTabsSettings = this, s.setOnChange((n) => {
1961
1967
  Promise.resolve().then(() => {
1962
1968
  this.tabValues[e.id] = this.getTabValues(e), this.triggerDebouncedChange();
1963
1969
  });
@@ -2052,7 +2058,7 @@ class E extends g {
2052
2058
  activeTabId: this.activeTabId
2053
2059
  }, this.tabs.forEach((t) => {
2054
2060
  Object.values(t.settings).forEach((e) => {
2055
- e instanceof E && e.updateInitialValues();
2061
+ e instanceof w && e.updateInitialValues();
2056
2062
  });
2057
2063
  }));
2058
2064
  }
@@ -2070,7 +2076,7 @@ class E extends g {
2070
2076
  getTabValues(t) {
2071
2077
  const e = {};
2072
2078
  return Object.entries(t.settings).forEach(([i, s]) => {
2073
- s instanceof E || s instanceof g ? e[i] = s.getValues() : (s instanceof p, e[i] = s.value);
2079
+ s instanceof w || s instanceof g ? e[i] = s.getValues() : (s instanceof p, e[i] = s.value);
2074
2080
  }), e;
2075
2081
  }
2076
2082
  clone() {
@@ -2096,7 +2102,7 @@ class E extends g {
2096
2102
  hideCondition: this.hideCondition,
2097
2103
  settings: {}
2098
2104
  };
2099
- return new E(
2105
+ return new w(
2100
2106
  e
2101
2107
  );
2102
2108
  }
@@ -2556,7 +2562,7 @@ class Bt extends g {
2556
2562
  ...t == null ? void 0 : t.uploadProps,
2557
2563
  default: (t == null ? void 0 : t.backgroundImage) ?? ""
2558
2564
  }),
2559
- opacity: new U({
2565
+ opacity: new _({
2560
2566
  default: (t == null ? void 0 : t.opacity) ?? 100
2561
2567
  }),
2562
2568
  backgroundColor: new C({
@@ -2721,13 +2727,13 @@ export {
2721
2727
  Mt as GapSetting,
2722
2728
  Ht as HeaderTypographySettingSet,
2723
2729
  yt as HeightSetting,
2724
- wt as HtmlSetting,
2730
+ Et as HtmlSetting,
2725
2731
  It as MarginBottomSetting,
2726
2732
  At as MarginSettingGroup,
2727
2733
  St as MarginTopSetting,
2728
2734
  Nt as MultiLanguageSetting,
2729
2735
  v as NumberSetting,
2730
- U as OpacitySetting,
2736
+ _ as OpacitySetting,
2731
2737
  Tt as SelectApiSettings,
2732
2738
  N as SelectSetting,
2733
2739
  p as Setting,
@@ -2735,13 +2741,13 @@ export {
2735
2741
  k as StringSetting,
2736
2742
  $t as TabsContainerGroup,
2737
2743
  I as TabsSettingGroup,
2738
- E as TabsSettings,
2744
+ w as TabsSettings,
2739
2745
  kt as Toggle,
2740
2746
  Y as UploadSetting,
2741
2747
  Vt as WidthSetting,
2742
2748
  bt as asSettingGroupWithSettings,
2743
2749
  z as createSettingGroup,
2744
- Et as createTabsSettingGroup,
2750
+ wt as createTabsSettingGroup,
2745
2751
  jt as isSetting,
2746
2752
  Rt as isSettingGroup,
2747
2753
  x as iterateSettings
package/dist/index.d.ts CHANGED
@@ -528,6 +528,8 @@ export declare interface SelectSettingProps<T = any> extends SettingProps<T> {
528
528
 
529
529
  export declare abstract class Setting<T, P extends SettingProps<T>> implements IDrawable, IChangable<T> {
530
530
  protected props: P;
531
+ static DefaultUploadUrl: string;
532
+ static SetUploadUrl(url: string): void;
531
533
  destroy(): void;
532
534
  protected inputEl?: HTMLInputElement;
533
535
  id: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "builder-settings-types",
3
3
  "description": "builder settings",
4
- "version": "0.0.194",
4
+ "version": "0.0.196",
5
5
  "type": "module",
6
6
  "main": "dist/builder-settings-types.cjs.js",
7
7
  "module": "dist/builder-settings-types.es.js",