builder-settings-types 0.0.280 → 0.0.281
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 bt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let dt=(c=21)=>{let t="",e=crypto.getRandomValues(new Uint8Array(c|=0));for(;c--;)t+=bt[e[c]&63];return t};function wt(c){let t=0,e=c.parentElement;for(;e;)e.classList.contains("setting-group")&&e!==c&&t++,e=e.parentElement;return t}function X(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 it(c,t=0){c.querySelectorAll(":scope > .setting-group-content > .setting-group").forEach(i=>{const s=i,n=t+1;X(s,n),it(s,n)})}const xt={maxLevel:5,spacingMultiplier:1,visualIndentMultiplier:2,enableAutoDetection:!0};class Lt{constructor(t={}){this.observedElements=new Set,this.config={...xt,...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=wt(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 rt=new Lt;function Z(c){if(c===null||typeof c!="object")return c;if(c instanceof Date)return new Date(c.getTime());if(c instanceof Array)return c.map(t=>Z(t));if(typeof c=="object"){const t={};for(const e in c)Object.prototype.hasOwnProperty.call(c,e)&&(t[e]=Z(c[e]));return t}return c}function kt(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 b{constructor(t={}){this.props=t,this.dataPropsPath="",this.id=t.id||dt(),this.value=this.props.default,this.desktop=this.props.default,this.title=t.title||"",this.includeGetJson=t.includeGetJson!==void 0?t.includeGetJson:!0}static SetUploadUrl(t){globalThis.DefaultUploadUrl=t,b.DefaultUploadUrl=t}static SetDefaultLanguage(t){globalThis.DefaultLanguage=t,b.DefaultLanguage=t}destroy(){throw new Error("Method not implemented.")}setOnChange(t){return this.onChange=t,this}setOnBlur(t){return this.onBlur=t,this}setDataPropsPath(t){this.dataPropsPath=t}getDataPropsPath(){return this.dataPropsPath}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=Z(this.props),i=new t(e);return i.value=Z(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 a=document.createElement("div");if(a.className="icon-container",t.icon){const l=this.createIcon(t.icon,t.iconClassName);a.appendChild(l)}if(t.title){const l=this.createLabel(t.title,t.labelClassName);a.appendChild(l)}e.appendChild(a)}const i=document.createElement("div");i.className=t.wrapperClassName||"";const s=document.createElement("input");this.inputEl=s,s.value=String(t.value||kt(t.inputType)),s.type=t.inputType,s.placeholder=t.placeholder||"",s.className=t.inputClassName||"",this.dataPropsPath&&s.setAttribute("data-test-id",this.dataPropsPath);const n=a=>{const l=a.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)},o=a=>{a.target,this.onBlur&&this.onBlur(this.value)};return s.addEventListener("input",n),s.addEventListener("change",n),s.addEventListener("blur",o),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 P(c){return c instanceof b}function L(c){return c instanceof N}function st(c){return P(c)||L(c)}function W(c,t){for(const e in c)if(Object.prototype.hasOwnProperty.call(c,e)){const i=c[e];t(e,i)}}const Q=class Q{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.lastChangeTime=0,this.handleBlur=()=>{},this.pendingBlurHandler=null,this.originalDefaultValues={},this.nestingLevel=0,this.dataPropsPath="",this.hide=!1,this.id=t.id||dt(),this.title=t.title,this.settings=t.settings,this.isCollapsed=t.collapsed??!1,this.isMain=t.main??!1,this.custom=t.custom??!1,this.nestingLevel=0,this.includeGetJson=t.includeGetJson??!0,this.addItemCfg=t.addItem,this.deleteItemCfg=t.deleteItem,this.dataProps=t.dataProps,this.dataPropsPath=t.dataProps||"",this.hide=t.hide??!1,Object.assign(this,t.settings),this.initialValues=this.getValues(),this.originalDefaultValues=this.getDefaultValues(),this.propagateNestingLevel(),this.propagateDataPropsPath()}propagateNestingLevel(){const t=this.nestingLevel+1;W(this.settings,(e,i)=>{L(i)&&(i.nestingLevel=t,i.propagateNestingLevel())})}getNestingLevel(){return this.nestingLevel}setNestingLevel(t){this.nestingLevel=t,this.propagateNestingLevel(),this.elementRef&&this.updateNestingStyles()}getDataPropsPath(){return this.dataPropsPath}setDataPropsPath(t){this.dataPropsPath=t,this.propagateDataPropsPath()}propagateDataPropsPath(){W(this.settings,(t,e)=>{const i=String(t),s=this.dataPropsPath?`${this.dataPropsPath}_${i}`:i;(L(e)||P(e)&&typeof e.setDataPropsPath=="function")&&e.setDataPropsPath(s)})}updateNestingStyles(){this.elementRef&&(X(this.elementRef,this.nestingLevel),it(this.elementRef,this.nestingLevel))}forceChildUIRefresh(){Object.entries(this.settings).forEach(([t,e])=>{try{if(L(e)){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)}})}removeSetting(t){var s;const e=this.settings[t];if(!e)return;if(delete this.settings[t],this.elementRef){const n=this.elementRef.querySelector(".setting-group-content");if(n){const o=Array.from(n.querySelectorAll(".setting-group, .setting"));for(const a of o){const l=a.id;if(l&&"id"in e&&typeof e.id=="string"&&l.includes(e.id)){a.remove();break}}}}typeof e.cleanup=="function"&&e.cleanup(),this.updateNestingStyles();const i=this.getValues();this.initialValues=i,(s=this.onChange)==null||s.call(this,i)}updateVisibility(){this.elementRef}clone(){const t={};W(this.settings,(s,n)=>{const o=String(s);typeof n.clone=="function"?t[o]=n.clone():(console.warn(`Setting with key '${o}' does not have a clone method. Copying reference.`),t[o]=n)});const e={title:this.title,settings:t,collapsed:this.isCollapsed,main:this.isMain,custom:this.custom,includeGetJson:this.includeGetJson,addItem:this.addItemCfg,deleteItem:this.deleteItemCfg,dataProps:this.dataProps,hide:this.hide},i=ut(e);return i.initialValues=this.getValues(),i}resetDefault(){const t=this.originalDefaultValues;this.setValue(t),this.onChange&&this.onChange(this.getValues())}setMobileValues(t){!t||typeof t!="object"||(Object.entries(t).forEach(([e,i])=>{const s=this.settings[e];s&&(L(s)||P(s))&&typeof s.setMobileValue=="function"&&s.setMobileValue(i)}),this.setValue(t),this.onChange&&this.onChange(this.getValues()))}getMobileValues(t){if(t===void 0){const e={};for(const i in this.settings)if(Object.prototype.hasOwnProperty.call(this.settings,i)){const s=this.settings[i];if(L(s))e[i]=s.getMobileValues();else{const n=s;e[i]=n.mobileValue!==void 0?n.mobileValue:n.value}}return e}else{const e=this.settings[t];if(!e)return;if(L(e))return e.getMobileValues();const i=e;return i.mobileValue!==void 0?i.mobileValue:i.value}}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(),W(this.settings,(i,s)=>{var n;if(L(s))s.setOnChange(()=>{const o=this.getValues();this.initialValues=o,t(o)}),this.changeHandlers.add(()=>t(this.getValues()));else if(P(s)){const o=()=>e();this.changeHandlers.add(o),s.setOnChange(o)}else{const o=()=>e();this.changeHandlers.add(o),(n=s.setOnChange)==null||n.call(s,o)}}),this}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()}setValue(t){if(!t||typeof t!="object")return;Object.entries(t).forEach(([i,s])=>{let n=this.settings[i];if(!n&&this.addItemCfg&&i.startsWith(this.addItemCfg.keyPrefix)){const o=i.slice(this.addItemCfg.keyPrefix.length),a=Number(o);if(Number.isFinite(a)){const l=this.addItemCfg.createItem(a);st(l)&&(this.addSetting(i,l),n=l)}}n&&(L(n)||P(n))&&typeof n.setValue=="function"&&n.setValue(s)}),setTimeout(()=>{this.forceChildUIRefresh()},0);const e=this.getValues();this.initialValues=e,this.onChange&&this.onChange(e)}wireChild(t){var i;const e=()=>{var n;const s=this.getValues();this.initialValues=s,(n=this.onChange)==null||n.call(this,s),this.updateVisibility()};L(t)?t.setOnChange(()=>e()):P(t)?t.setOnChange(()=>e()):(i=t.setOnChange)==null||i.call(t,()=>e())}addSetting(t,e){var s,n;if(this.settings[t]=e,this.wireChild(e),this.elementRef){const o=this.elementRef.querySelector(".setting-group-content");if(o){L(e)&&typeof e.setNestingLevel=="function"&&e.setNestingLevel(this.nestingLevel+1);const a=e.draw(),l=this.deleteItemCfg??this.addItemCfg;if(l){const p=l.keyPrefix??((s=this.addItemCfg)==null?void 0:s.keyPrefix);p&&t.startsWith(p)&&this.addDeleteButtonToElement(a,t)}const r=o.querySelector(".sg-add-button-bottom");r?o.insertBefore(a,r):o.appendChild(a),rt.trackElement(a),X(a,this.nestingLevel+1),it(a,this.nestingLevel+1);const h=a.style.display;a.style.display="none",a.offsetHeight,a.style.display=h,this.updateNestingStyles()}}const i=this.getValues();this.initialValues=i,(n=this.onChange)==null||n.call(this,i)}addDeleteButtonToElement(t,e,i){let s=null;try{s=t.querySelector(":scope > .setting-group-title")}catch{s=null}if(!s){const r=Array.from(t.querySelectorAll(".setting-group-title"));for(const h of r)if(h.closest(".setting-group")===t){s=h;break}s||(s=r[0]??null)}if(!s)return;const n=s.querySelector(".actions-section");if(!n)return;const o=document.createElement("button");o.type="button",o.className="sg-delete-button",i?i.deleteItemCfg:this.deleteItemCfg??this.addItemCfg,o.title="Delete",o.style.cssText=`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const bt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let dt=(c=21)=>{let t="",e=crypto.getRandomValues(new Uint8Array(c|=0));for(;c--;)t+=bt[e[c]&63];return t};function wt(c){let t=0,e=c.parentElement;for(;e;)e.classList.contains("setting-group")&&e!==c&&t++,e=e.parentElement;return t}function X(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 it(c,t=0){c.querySelectorAll(":scope > .setting-group-content > .setting-group").forEach(i=>{const s=i,n=t+1;X(s,n),it(s,n)})}const xt={maxLevel:5,spacingMultiplier:1,visualIndentMultiplier:2,enableAutoDetection:!0};class Lt{constructor(t={}){this.observedElements=new Set,this.config={...xt,...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=wt(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 rt=new Lt;function Z(c){if(c===null||typeof c!="object")return c;if(c instanceof Date)return new Date(c.getTime());if(c instanceof Array)return c.map(t=>Z(t));if(typeof c=="object"){const t={};for(const e in c)Object.prototype.hasOwnProperty.call(c,e)&&(t[e]=Z(c[e]));return t}return c}function kt(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 b{constructor(t={}){this.props=t,this.dataPropsPath="",this.id=t.id||dt(),this.value=this.props.default,this.desktop=this.props.default,this.title=t.title||"",this.includeGetJson=t.includeGetJson!==void 0?t.includeGetJson:!0}static SetUploadUrl(t){globalThis.DefaultUploadUrl=t,b.DefaultUploadUrl=t}static SetDefaultLanguage(t){globalThis.DefaultLanguage=t,b.DefaultLanguage=t}destroy(){throw new Error("Method not implemented.")}setOnChange(t){return this.onChange=t,this}setOnBlur(t){return this.onBlur=t,this}setDataPropsPath(t){this.dataPropsPath=t}getDataPropsPath(){return this.dataPropsPath}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=Z(this.props),i=new t(e);return i.value=Z(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 a=document.createElement("div");if(a.className="icon-container",t.icon){const l=this.createIcon(t.icon,t.iconClassName);a.appendChild(l)}if(t.title){const l=this.createLabel(t.title,t.labelClassName);a.appendChild(l)}e.appendChild(a)}const i=document.createElement("div");i.className=t.wrapperClassName||"";const s=document.createElement("input");this.inputEl=s,s.value=String(t.value||kt(t.inputType)),s.type=t.inputType,s.placeholder=t.placeholder||"",s.className=t.inputClassName||"",this.dataPropsPath&&s.setAttribute("data-test-id",this.dataPropsPath);const n=a=>{const l=a.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)},o=a=>{a.target,this.onBlur&&this.onBlur(this.value)};return s.addEventListener("input",n),s.addEventListener("change",n),s.addEventListener("blur",o),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){return c instanceof b}function L(c){return c instanceof N}function st(c){return O(c)||L(c)}function W(c,t){for(const e in c)if(Object.prototype.hasOwnProperty.call(c,e)){const i=c[e];t(e,i)}}const Q=class Q{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.lastChangeTime=0,this.handleBlur=()=>{},this.pendingBlurHandler=null,this.originalDefaultValues={},this.nestingLevel=0,this.dataPropsPath="",this.hide=!1,this.id=t.id||dt(),this.title=t.title,this.settings=t.settings,this.isCollapsed=t.collapsed??!1,this.isMain=t.main??!1,this.custom=t.custom??!1,this.nestingLevel=0,this.includeGetJson=t.includeGetJson??!0,this.addItemCfg=t.addItem,this.deleteItemCfg=t.deleteItem,this.dataProps=t.dataProps,this.dataPropsPath=t.dataProps||"",this.hide=t.hide??!1,Object.assign(this,t.settings),this.initialValues=this.getValues(),this.originalDefaultValues=this.getDefaultValues(),this.propagateNestingLevel(),this.propagateDataPropsPath()}propagateNestingLevel(){const t=this.nestingLevel+1;W(this.settings,(e,i)=>{L(i)&&(i.nestingLevel=t,i.propagateNestingLevel())})}getNestingLevel(){return this.nestingLevel}setNestingLevel(t){this.nestingLevel=t,this.propagateNestingLevel(),this.elementRef&&this.updateNestingStyles()}getDataPropsPath(){return this.dataPropsPath}setDataPropsPath(t){this.dataPropsPath=t,this.propagateDataPropsPath()}propagateDataPropsPath(){W(this.settings,(t,e)=>{const i=String(t),s=this.dataPropsPath?`${this.dataPropsPath}_${i}`:i;(L(e)||O(e)&&typeof e.setDataPropsPath=="function")&&e.setDataPropsPath(s)})}updateNestingStyles(){this.elementRef&&(X(this.elementRef,this.nestingLevel),it(this.elementRef,this.nestingLevel))}forceChildUIRefresh(){Object.entries(this.settings).forEach(([t,e])=>{try{if(L(e)){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)}})}removeSetting(t){var s;const e=this.settings[t];if(!e)return;if(delete this.settings[t],this.elementRef){const n=this.elementRef.querySelector(".setting-group-content");if(n){const o=Array.from(n.querySelectorAll(".setting-group, .setting"));for(const a of o){const l=a.id;if(l&&"id"in e&&typeof e.id=="string"&&l.includes(e.id)){a.remove();break}}}}typeof e.cleanup=="function"&&e.cleanup(),this.updateNestingStyles();const i=this.getValues();this.initialValues=i,(s=this.onChange)==null||s.call(this,i)}updateVisibility(){this.elementRef}clone(){const t={};W(this.settings,(s,n)=>{const o=String(s);typeof n.clone=="function"?t[o]=n.clone():(console.warn(`Setting with key '${o}' does not have a clone method. Copying reference.`),t[o]=n)});const e={title:this.title,settings:t,collapsed:this.isCollapsed,main:this.isMain,custom:this.custom,includeGetJson:this.includeGetJson,addItem:this.addItemCfg,deleteItem:this.deleteItemCfg,dataProps:this.dataProps,hide:this.hide},i=ut(e);return i.initialValues=this.getValues(),i}resetDefault(){const t=this.originalDefaultValues;this.setValue(t),this.onChange&&this.onChange(this.getValues())}setMobileValues(t){!t||typeof t!="object"||(Object.entries(t).forEach(([e,i])=>{const s=this.settings[e];s&&(L(s)||O(s))&&typeof s.setMobileValue=="function"&&s.setMobileValue(i)}),this.setValue(t),this.onChange&&this.onChange(this.getValues()))}getMobileValues(t){if(t===void 0){const e={};for(const i in this.settings)if(Object.prototype.hasOwnProperty.call(this.settings,i)){const s=this.settings[i];if(L(s))e[i]=s.getMobileValues();else{const n=s;e[i]=n.mobileValue!==void 0?n.mobileValue:n.value}}return e}else{const e=this.settings[t];if(!e)return;if(L(e))return e.getMobileValues();const i=e;return i.mobileValue!==void 0?i.mobileValue:i.value}}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(),W(this.settings,(i,s)=>{var n;if(L(s))s.setOnChange(()=>{const o=this.getValues();this.initialValues=o,t(o)}),this.changeHandlers.add(()=>t(this.getValues()));else if(O(s)){const o=()=>e();this.changeHandlers.add(o),s.setOnChange(o)}else{const o=()=>e();this.changeHandlers.add(o),(n=s.setOnChange)==null||n.call(s,o)}}),this}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()}setValue(t){if(!t||typeof t!="object")return;Object.entries(t).forEach(([i,s])=>{let n=this.settings[i];if(!n&&this.addItemCfg&&i.startsWith(this.addItemCfg.keyPrefix)){const o=i.slice(this.addItemCfg.keyPrefix.length),a=Number(o);if(Number.isFinite(a)){const l=this.addItemCfg.createItem(a);st(l)&&(this.addSetting(i,l),n=l)}}n&&(L(n)||O(n))&&typeof n.setValue=="function"&&n.setValue(s)}),setTimeout(()=>{this.forceChildUIRefresh()},0);const e=this.getValues();this.initialValues=e,this.onChange&&this.onChange(e)}wireChild(t){var i;const e=()=>{var n;const s=this.getValues();this.initialValues=s,(n=this.onChange)==null||n.call(this,s),this.updateVisibility()};L(t)?t.setOnChange(()=>e()):O(t)?t.setOnChange(()=>e()):(i=t.setOnChange)==null||i.call(t,()=>e())}addSetting(t,e){var s,n;if(this.settings[t]=e,this.wireChild(e),this.elementRef){const o=this.elementRef.querySelector(".setting-group-content");if(o){L(e)&&typeof e.setNestingLevel=="function"&&e.setNestingLevel(this.nestingLevel+1);const a=e.draw(),l=this.deleteItemCfg??this.addItemCfg;if(l){const p=l.keyPrefix??((s=this.addItemCfg)==null?void 0:s.keyPrefix);p&&t.startsWith(p)&&this.addDeleteButtonToElement(a,t)}const r=o.querySelector(".sg-add-button-bottom");r?o.insertBefore(a,r):o.appendChild(a),rt.trackElement(a),X(a,this.nestingLevel+1),it(a,this.nestingLevel+1);const h=a.style.display;a.style.display="none",a.offsetHeight,a.style.display=h,this.updateNestingStyles()}}const i=this.getValues();this.initialValues=i,(n=this.onChange)==null||n.call(this,i)}addDeleteButtonToElement(t,e,i){let s=null;try{s=t.querySelector(":scope > .setting-group-title")}catch{s=null}if(!s){const r=Array.from(t.querySelectorAll(".setting-group-title"));for(const h of r)if(h.closest(".setting-group")===t){s=h;break}s||(s=r[0]??null)}if(!s)return;const n=s.querySelector(".actions-section");if(!n)return;const o=document.createElement("button");o.type="button",o.className="sg-delete-button",i?i.deleteItemCfg:this.deleteItemCfg??this.addItemCfg,o.title="Delete",o.style.cssText=`
|
|
2
2
|
background: none;
|
|
3
3
|
border: none;
|
|
4
4
|
cursor: pointer;
|
|
@@ -88,11 +88,11 @@
|
|
|
88
88
|
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
|
|
89
89
|
<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"/>
|
|
90
90
|
<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"/>
|
|
91
|
-
</svg>`;class mt extends S{constructor(t={}){const e={title:"Opacity",suffix:"%",minValue:0,maxValue:100,step:1,default:t.default??100,icon:Tt,...t};super(e),this.inputType="number",this.mobileValue=t.mobile}getMobileValue(){return this.mobileValue}setMobileValue(t){this.mobileValue=t,t!==void 0&&this.setValue(t)}}const
|
|
91
|
+
</svg>`;class mt extends S{constructor(t={}){const e={title:"Opacity",suffix:"%",minValue:0,maxValue:100,step:1,default:t.default??100,icon:Tt,...t};super(e),this.inputType="number",this.mobileValue=t.mobile}getMobileValue(){return this.mobileValue}setMobileValue(t){this.mobileValue=t,t!==void 0&&this.setValue(t)}}const Pt=`
|
|
92
92
|
<svg xmlns="http://www.w3.org/2000/svg" class="svg-select" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down">
|
|
93
93
|
<polyline points="6 9 12 15 18 9"></polyline>
|
|
94
94
|
</svg>
|
|
95
|
-
`;class K extends b{constructor(t={}){if(super(t),this.inputType="select",this._options=[],this.isOpen=!1,this.selectedOptionIndex=null,this.optionsListEl=null,this.svgContainer=null,this.buttonEl=null,this.isLoading=!1,this.container=null,this.clickOutsideListener=null,this.resizeListener=null,t.options&&(this._options=[...t.options]),t.getOptions&&this._options.push(...t.getOptions()),t.getOptionsAsync&&(this.isLoading=!0),this.value!==void 0){const e=this._options.findIndex(i=>i.value===this.value);e>=0&&(this.selectedOptionIndex=e)}}setValue(t){super.setValue(t);const e=this._options.findIndex(i=>i.value===t);e>=0?this.selectedOptionIndex=e:this.selectedOptionIndex=null,this.updateButtonText()}createOption(t,e){const i=document.createElement("li");return i.classList.add("select-option"),i.textContent=t.name,i.dataset.index=String(e),this.selectedOptionIndex===e&&i.classList.add("selected"),i}draw(){const t=document.createElement("div");if(t.classList.add("select-container"),this.container=t,this.props.icon||this.props.title){const n=document.createElement("div");if(n.className="icon-container",this.props.icon){const o=this.createIcon(this.props.icon);n.appendChild(o)}if(this.props.title){const o=this.createLabel(this.props.title);n.appendChild(o)}t.appendChild(n)}else{const n=document.createElement("div");t.appendChild(n)}const e=document.createElement("div");e.classList.add("select-button"),this.getDataPropsPath()&&e.setAttribute("data-test-id",this.getDataPropsPath()),this.isLoading?e.classList.add("loading"):e.textContent=this.selectedOptionIndex!==null?this._options[this.selectedOptionIndex].name:this.props.placeholder||"Select an option",e.onclick=()=>{var n,o;this.isLoading||(this.isOpen=!this.isOpen,this.isOpen?this.checkDropdownPosition():this.cleanupDropdownPosition(),(n=this.optionsListEl)==null||n.classList.toggle("open",this.isOpen),(o=this.svgContainer)==null||o.classList.toggle("open",this.isOpen))},t.appendChild(e),this.buttonEl=e;const i=document.createElement("ul");i.classList.add("select-options"),this._options.forEach((n,o)=>{const a=this.createOption(n,o);a.onclick=l=>this.selectOption(l,o,e),i.appendChild(a)}),document.body.appendChild(i);const s=document.createElement("div");return s.classList.add("svg-container"),s.innerHTML=
|
|
95
|
+
`;class K extends b{constructor(t={}){if(super(t),this.inputType="select",this._options=[],this.isOpen=!1,this.selectedOptionIndex=null,this.optionsListEl=null,this.svgContainer=null,this.buttonEl=null,this.isLoading=!1,this.container=null,this.clickOutsideListener=null,this.resizeListener=null,t.options&&(this._options=[...t.options]),t.getOptions&&this._options.push(...t.getOptions()),t.getOptionsAsync&&(this.isLoading=!0),this.value!==void 0){const e=this._options.findIndex(i=>i.value===this.value);e>=0&&(this.selectedOptionIndex=e)}}setValue(t){super.setValue(t);const e=this._options.findIndex(i=>i.value===t);e>=0?this.selectedOptionIndex=e:this.selectedOptionIndex=null,this.updateButtonText()}createOption(t,e){const i=document.createElement("li");return i.classList.add("select-option"),i.textContent=t.name,i.dataset.index=String(e),this.selectedOptionIndex===e&&i.classList.add("selected"),i}draw(){const t=document.createElement("div");if(t.classList.add("select-container"),this.container=t,this.props.icon||this.props.title){const n=document.createElement("div");if(n.className="icon-container",this.props.icon){const o=this.createIcon(this.props.icon);n.appendChild(o)}if(this.props.title){const o=this.createLabel(this.props.title);n.appendChild(o)}t.appendChild(n)}else{const n=document.createElement("div");t.appendChild(n)}const e=document.createElement("div");e.classList.add("select-button"),this.getDataPropsPath()&&e.setAttribute("data-test-id",this.getDataPropsPath()),this.isLoading?e.classList.add("loading"):e.textContent=this.selectedOptionIndex!==null?this._options[this.selectedOptionIndex].name:this.props.placeholder||"Select an option",e.onclick=()=>{var n,o;this.isLoading||(this.isOpen=!this.isOpen,this.isOpen?this.checkDropdownPosition():this.cleanupDropdownPosition(),(n=this.optionsListEl)==null||n.classList.toggle("open",this.isOpen),(o=this.svgContainer)==null||o.classList.toggle("open",this.isOpen))},t.appendChild(e),this.buttonEl=e;const i=document.createElement("ul");i.classList.add("select-options"),this._options.forEach((n,o)=>{const a=this.createOption(n,o);a.onclick=l=>this.selectOption(l,o,e),i.appendChild(a)}),document.body.appendChild(i);const s=document.createElement("div");return s.classList.add("svg-container"),s.innerHTML=Pt,t.appendChild(s),this.optionsListEl=i,this.svgContainer=s,this.props.getOptionsAsync&&(this.isLoading=!0,this.updateButtonText(),this.props.getOptionsAsync().then(n=>{this._options.push(...n),this.isLoading=!1,this.updateOptionsList(),this.updateButtonText()}).catch(n=>{console.error("Failed to fetch async options:",n),this.isLoading=!1,this.updateButtonText("Failed to load options")})),this.clickOutsideListener&&document.removeEventListener("click",this.clickOutsideListener),this.clickOutsideListener=n=>{var o,a;this.isOpen&&!t.contains(n.target)&&(this.isOpen=!1,(o=this.optionsListEl)==null||o.classList.remove("open"),(a=this.svgContainer)==null||a.classList.remove("open"),this.cleanupDropdownPosition())},document.addEventListener("click",this.clickOutsideListener),this.resizeListener&&window.removeEventListener("resize",this.resizeListener),this.resizeListener=()=>{this.isOpen&&this.checkDropdownPosition()},window.addEventListener("resize",this.resizeListener),t}checkDropdownPosition(){if(!this.optionsListEl||!this.buttonEl||!this.container)return;const t=this.buttonEl.getBoundingClientRect();this.optionsListEl.classList.remove("dropdown-up"),this.optionsListEl.style.position="fixed",this.optionsListEl.style.top=`${t.bottom+2}px`,this.optionsListEl.style.bottom="auto",this.optionsListEl.style.left=`${t.left}px`,this.optionsListEl.style.right="auto",this.optionsListEl.style.width=`${t.width}px`;const e=Math.min(this._options.length*40+12,280);if(window.innerHeight-t.bottom<e){const s=Math.max(10,window.innerHeight-e-10);this.optionsListEl.style.top=`${s}px`}}selectOption(t,e,i){var n,o;const s=this._options[e];s&&(this.setValue(s.value),this.selectedOptionIndex=e,this.isOpen=!1,i.textContent=s.name,(n=this.optionsListEl)==null||n.classList.remove("open"),(o=this.svgContainer)==null||o.classList.remove("open"),this.cleanupDropdownPosition(),this.optionsListEl&&this.optionsListEl.querySelectorAll(".select-option").forEach((l,r)=>{r===e?l.classList.add("selected"):l.classList.remove("selected")}))}cleanupDropdownPosition(){this.optionsListEl&&(this.optionsListEl.style.position="",this.optionsListEl.style.top="",this.optionsListEl.style.bottom="",this.optionsListEl.style.left="",this.optionsListEl.style.right="",this.optionsListEl.style.width="")}updateOptionsList(){if(this.optionsListEl){if(this.optionsListEl.innerHTML="",this._options.length===0){const t=document.createElement("li");t.classList.add("select-option","empty-message"),t.textContent="No options available",this.optionsListEl.appendChild(t);return}this._options.forEach((t,e)=>{const i=this.createOption(t,e);i.onclick=s=>{this.buttonEl&&this.selectOption(s,e,this.buttonEl)},this.optionsListEl.appendChild(i)})}}updateButtonText(t){if(!this.buttonEl)return;if(this.isLoading){this.buttonEl.classList.add("loading"),this.buttonEl.textContent=this.props.loadingText||"Loading options...";return}this.buttonEl.classList.remove("loading","error");let e;t?((t.includes("Failed")||t.includes("Error"))&&this.buttonEl.classList.add("error"),e=t):this.selectedOptionIndex!==null&&this._options[this.selectedOptionIndex]?e=this._options[this.selectedOptionIndex].name:e=this.props.placeholder||"Select an option",this.buttonEl.textContent=e}destroy(){this.clickOutsideListener&&(document.removeEventListener("click",this.clickOutsideListener),this.clickOutsideListener=null),this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null),this.cleanupDropdownPosition(),this.optionsListEl&&this.optionsListEl.parentNode&&this.optionsListEl.parentNode.removeChild(this.optionsListEl),super.destroy()}}class ft extends b{constructor(t={}){super(t),this.inputType="button",this.value||(this.value="center")}draw(){const t=document.createElement("div");t.className="align-setting-wrapper";const e=document.createElement("label");e.className="align-setting-label",e.textContent=this.title||"Align",t.appendChild(e);const i=document.createElement("div");return i.className="align-options-container",[{name:"left",icon:`
|
|
96
96
|
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none">
|
|
97
97
|
<path d="M10.5 7.5C11.1989 7.5 11.5484 7.5 11.824 7.38582C12.1916 7.23358 12.4836 6.94157 12.6358 6.57402C12.75 6.29837 12.75 5.94891 12.75 5.25C12.75 4.55109 12.75 4.20163 12.6358 3.92598C12.4836 3.55843 12.1916 3.26642 11.824 3.11418C11.5484 3 11.1989 3 10.5 3L4.5 3C3.80109 3 3.45163 3 3.17598 3.11418C2.80843 3.26642 2.51642 3.55843 2.36418 3.92597C2.25 4.20163 2.25 4.55109 2.25 5.25C2.25 5.94891 2.25 6.29837 2.36418 6.57402C2.51642 6.94157 2.80843 7.23358 3.17598 7.38582C3.45163 7.5 3.80109 7.5 4.5 7.5L10.5 7.5Z"
|
|
98
98
|
stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
<path d="M13.5 15C14.1989 15 14.5484 15 14.824 14.8858C15.1916 14.7336 15.4836 14.4416 15.6358 14.074C15.75 13.7984 15.75 13.4489 15.75 12.75C15.75 12.0511 15.75 11.7016 15.6358 11.426C15.4836 11.0584 15.1916 10.7664 14.824 10.6142C14.5484 10.5 14.1989 10.5 13.5 10.5H4.5C3.80109 10.5 3.45163 10.5 3.17598 10.6142C2.80843 10.7664 2.51642 11.0584 2.36418 11.426C2.25 11.7016 2.25 12.0511 2.25 12.75C2.25 13.4489 2.25 13.7984 2.36418 14.074C2.51642 14.4416 2.80843 14.7336 3.17597 14.8858C3.45163 15 3.80109 15 4.5 15L13.5 15Z"
|
|
114
114
|
stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
|
115
115
|
</svg>
|
|
116
|
-
`}].forEach(n=>{const o=document.createElement("button");o.className="align-option-button",o.innerHTML=n.icon,this.getDataPropsPath()&&o.setAttribute("data-test-id",`${this.getDataPropsPath()}_${n.name}`),this.value===n.name&&o.classList.add("selected"),o.addEventListener("click",()=>{var a;i.querySelectorAll(".align-option-button").forEach(l=>l.classList.remove("selected")),o.classList.add("selected"),this.value=n.name,(a=this.onChange)==null||a.call(this,this.value)}),i.appendChild(o)}),t.appendChild(i),t}}class
|
|
116
|
+
`}].forEach(n=>{const o=document.createElement("button");o.className="align-option-button",o.innerHTML=n.icon,this.getDataPropsPath()&&o.setAttribute("data-test-id",`${this.getDataPropsPath()}_${n.name}`),this.value===n.name&&o.classList.add("selected"),o.addEventListener("click",()=>{var a;i.querySelectorAll(".align-option-button").forEach(l=>l.classList.remove("selected")),o.classList.add("selected"),this.value=n.name,(a=this.onChange)==null||a.call(this,this.value)}),i.appendChild(o)}),t.appendChild(i),t}}class Ot extends b{constructor(t){super(t),this.inputType="button",this.bgWithAlpha="rgba(145, 158, 171, 0.08)"}draw(){const t=document.createElement("button");t.className="button-setting "+(this.props.className||""),t.textContent=this.props.label,t.style.borderColor=this.props.borderColor||"rgba(145, 158, 171, 0.32)",this.getDataPropsPath()&&t.setAttribute("data-test-id",this.getDataPropsPath());const e=this.props.backgroundColor||"rgba(0,0,0,0)",i=this.props.textColor||"black";t.style.backgroundColor=e,t.style.color=i;let s=e;const n=e.match(/^rgba\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)$/i);if(n){let a=+n[1],l=+n[2],r=+n[3],h=+n[4];h>=1?(a=Math.round(a*.9),l=Math.round(l*.9),r=Math.round(r*.9)):h=Math.min(1,h+.12),s=`rgba(${a},${l},${r},${h})`}t.addEventListener("mouseenter",()=>{console.log("hoverBg",s),t.style.setProperty("background-color",s,"important")}),t.addEventListener("mouseleave",()=>{t.style.setProperty("background-color",e,"important")}),t.addEventListener("click",()=>{var a,l;return(l=(a=this.props).onClick)==null?void 0:l.call(a)});const o=document.createElement("div");return o.className="button-setting-wrapper "+(this.props.wrapperClassName||""),o.appendChild(t),o}}class Ht extends b{constructor(t={}){super(t),this.inputType={width:"number",height:"number"},this.aspectRatio=1,this.isUpdating=!1;const e=t.width||0,i=t.height||0;this.value||(this.value={width:e,height:i}),this.minWidth=t.minWidth??0,this.maxWidth=t.maxWidth,this.minHeight=t.minHeight??0,this.maxHeight=t.maxHeight,this.locked=t.locked??!1,this.value.height>0&&(this.aspectRatio=this.value.width/this.value.height),this.widthSetting=new S({title:"Width",default:this.value.width,suffix:"px",minValue:this.minWidth,maxValue:this.maxWidth,icon:$t}),this.heightSetting=new S({title:"Height",default:this.value.height,suffix:"px",minValue:this.minHeight,maxValue:this.maxHeight,icon:At}),this.widthSetting.setOnChange(this.handleWidthChange.bind(this)),this.heightSetting.setOnChange(this.handleHeightChange.bind(this))}handleWidthChange(t){if(!this.isUpdating&&!(isNaN(t)||t<0)){t=Math.max(this.minWidth,t),this.maxWidth&&t>this.maxWidth&&(t=this.maxWidth),this.isUpdating=!0;try{let e=t,i=this.value.height;this.locked&&this.aspectRatio>0&&(i=Math.round(e/this.aspectRatio),this.maxHeight&&i>this.maxHeight&&(i=this.maxHeight,e=Math.round(i*this.aspectRatio),this.maxWidth&&e>this.maxWidth&&(e=this.maxWidth,i>0&&(this.aspectRatio=e/i)))),this.value={width:e,height:i},this.widthSetting.setValue(e),this.locked&&this.heightSetting.setValue(i),this.onChange&&this.onChange(this.value)}finally{this.isUpdating=!1}}}handleHeightChange(t){if(!this.isUpdating&&!(isNaN(t)||t<0)){t=Math.max(this.minHeight,t),this.maxHeight&&t>this.maxHeight&&(t=this.maxHeight),this.isUpdating=!0;try{let e=t,i=this.value.width;this.locked&&this.aspectRatio>0&&(i=Math.round(e*this.aspectRatio),this.maxWidth&&i>this.maxWidth&&(i=this.maxWidth,e=Math.round(i/this.aspectRatio),this.maxHeight&&e>this.maxHeight&&(e=this.maxHeight,e>0&&(this.aspectRatio=i/e)))),this.value={width:i,height:e},this.locked&&this.widthSetting.setValue(i),this.heightSetting.setValue(e),this.onChange&&this.onChange(this.value)}finally{this.isUpdating=!1}}}toggleLock(t){if(this.locked=!this.locked,this.locked&&this.value){const{width:i,height:s}=this.value;s>0&&(this.aspectRatio=i/s)}t.innerHTML=this.getLockSVG(this.locked),t.setAttribute("aria-pressed",String(this.locked)),t.title=this.locked?"Unlock aspect ratio":"Lock aspect ratio";const e=t.closest(".dimension-setting-container");e&&(this.locked?e.classList.add("aspect-locked"):e.classList.remove("aspect-locked")),t.style.transform="scale(0.9)",setTimeout(()=>{t.style.transform="scale(1)"},100)}getLockSVG(t){return t?`
|
|
117
117
|
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none">
|
|
118
118
|
<path d="M2.91663 4.58333V3.33333C2.91663 2.18274 3.84937 1.25 4.99996 1.25C6.00786 1.25 6.84859 1.96573 7.04162 2.91667M3.66663 8.75H6.33329C7.03336 8.75 7.38339 8.75 7.65078 8.61376C7.88598 8.49392 8.07721 8.30269 8.19705 8.06749C8.33329 7.8001 8.33329 7.45007 8.33329 6.75V6.58333C8.33329 5.88327 8.33329 5.53323 8.19705 5.26584C8.07721 5.03064 7.88598 4.83942 7.65078 4.71958C7.38339 4.58333 7.03336 4.58333 6.33329 4.58333H3.66663C2.96656 4.58333 2.61653 4.58333 2.34914 4.71958C2.11394 4.83942 1.92271 5.03064 1.80287 5.26584C1.66663 5.53323 1.66663 5.88327 1.66663 6.58333V6.75C1.66663 7.45007 1.66663 7.8001 1.80287 8.06749C1.92271 8.30269 2.11394 8.49392 2.34914 8.61376C2.61653 8.75 2.96656 8.75 3.66663 8.75Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
|
119
119
|
</svg>`:`
|
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
<path d="M14.1333 12.4667H0.8M0.8 12.4667L4.13333 9.13332M0.8 12.4667L4.13333 15.8M0.8 4.13332H14.1333M14.1333 4.13332L10.8 0.799988M14.1333 4.13332L10.8 7.46665" stroke="#919EAB" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
199
199
|
</svg>`,re=`<svg width="14" height="2" viewBox="0 0 14 2" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
200
200
|
<path d="M0.8 0.800003H12.4667" stroke="#919EAB" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
201
|
-
</svg>`;class ce{constructor(t,e="gradient"){this.isOpen=!1,this.currentColor="#FF0000",this.currentOpacity=100,this.outsideClick=i=>{if(!this.isOpen)return;const s=i.target;if(this.element.contains(s))return;const n=document.querySelectorAll(".gstop-color-input");Array.from(n).some(a=>a.contains(s))||(i.preventDefault(),i.stopPropagation(),this.close(!0))},this.keyDown=i=>{if(this.isOpen){if(i.key==="Escape")i.preventDefault(),this.close(!0);else if(i.key==="Enter"){const s=i.target;if(s&&(s.tagName==="INPUT"||s.tagName==="TEXTAREA"))return;i.preventDefault(),this.close(!0)}}},this.onChange=t,this.recentScope=e,this.element=this.build(),this.backdrop=this.createBackdrop()}parsePercentage(t){const e=parseFloat(t);return isNaN(e)?0:e/100}build(){const t=document.createElement("div");t.className="custom-color-picker",t.style.display="none";const e=document.createElement("div");e.className="color-picker-header",e.style.cursor="move";const i=document.createElement("span");i.textContent="Color";const s=document.createElement("button");s.className="color-picker-close",s.innerHTML=Et,s.addEventListener("click",()=>this.close(!0)),e.appendChild(i),e.appendChild(s),ee(e,t);const n=document.createElement("div");n.className="color-picker-area",this.colorArea=n;const o=document.createElement("div");o.className="color-picker-marker",this.colorMarker=o,n.appendChild(o);const a=document.createElement("div");a.className="color-picker-hue-container";const l=document.createElement("button");l.className="color-picker-eyedropper",l.type="button",l.innerHTML=ae;const r=document.createElement("div");r.className="color-picker-hue",this.hueSlider=r;const h=document.createElement("div");h.className="color-picker-hue-marker",this.hueMarker=h,r.appendChild(h),a.appendChild(l),a.appendChild(r);const p=document.createElement("div");p.className="color-picker-opacity",this.opacitySlider=p;const d=document.createElement("div");d.className="color-picker-opacity-marker",this.opacityMarker=d,p.appendChild(d);const u=at(R=>{var U;this.setColor(R),(U=this.onChange)==null||U.call(this,R,this.currentOpacity)},this.recentScope);this.recentSectionRefresh=u.refresh;const g=document.createElement("div");g.className="color-picker-format-section";const m=document.createElement("select");m.className="color-picker-format-select",this.select=m;const f=document.createElement("option");f.value="hex",f.textContent="HEX";const C=document.createElement("option");C.value="rgb",C.textContent="RGB";const y=document.createElement("option");y.value="hsl",y.textContent="HSL",m.appendChild(f),m.appendChild(C),m.appendChild(y);const E=document.createElement("input");E.type="text",E.className="color-picker-color-input",E.value=this.currentColor,this.input=E;const
|
|
201
|
+
</svg>`;class ce{constructor(t,e="gradient"){this.isOpen=!1,this.currentColor="#FF0000",this.currentOpacity=100,this.outsideClick=i=>{if(!this.isOpen)return;const s=i.target;if(this.element.contains(s))return;const n=document.querySelectorAll(".gstop-color-input");Array.from(n).some(a=>a.contains(s))||(i.preventDefault(),i.stopPropagation(),this.close(!0))},this.keyDown=i=>{if(this.isOpen){if(i.key==="Escape")i.preventDefault(),this.close(!0);else if(i.key==="Enter"){const s=i.target;if(s&&(s.tagName==="INPUT"||s.tagName==="TEXTAREA"))return;i.preventDefault(),this.close(!0)}}},this.onChange=t,this.recentScope=e,this.element=this.build(),this.backdrop=this.createBackdrop()}parsePercentage(t){const e=parseFloat(t);return isNaN(e)?0:e/100}build(){const t=document.createElement("div");t.className="custom-color-picker",t.style.display="none";const e=document.createElement("div");e.className="color-picker-header",e.style.cursor="move";const i=document.createElement("span");i.textContent="Color";const s=document.createElement("button");s.className="color-picker-close",s.innerHTML=Et,s.addEventListener("click",()=>this.close(!0)),e.appendChild(i),e.appendChild(s),ee(e,t);const n=document.createElement("div");n.className="color-picker-area",this.colorArea=n;const o=document.createElement("div");o.className="color-picker-marker",this.colorMarker=o,n.appendChild(o);const a=document.createElement("div");a.className="color-picker-hue-container";const l=document.createElement("button");l.className="color-picker-eyedropper",l.type="button",l.innerHTML=ae;const r=document.createElement("div");r.className="color-picker-hue",this.hueSlider=r;const h=document.createElement("div");h.className="color-picker-hue-marker",this.hueMarker=h,r.appendChild(h),a.appendChild(l),a.appendChild(r);const p=document.createElement("div");p.className="color-picker-opacity",this.opacitySlider=p;const d=document.createElement("div");d.className="color-picker-opacity-marker",this.opacityMarker=d,p.appendChild(d);const u=at(R=>{var U;this.setColor(R),(U=this.onChange)==null||U.call(this,R,this.currentOpacity)},this.recentScope);this.recentSectionRefresh=u.refresh;const g=document.createElement("div");g.className="color-picker-format-section";const m=document.createElement("select");m.className="color-picker-format-select",this.select=m;const f=document.createElement("option");f.value="hex",f.textContent="HEX";const C=document.createElement("option");C.value="rgb",C.textContent="RGB";const y=document.createElement("option");y.value="hsl",y.textContent="HSL",m.appendChild(f),m.appendChild(C),m.appendChild(y);const E=document.createElement("input");E.type="text",E.className="color-picker-color-input",E.value=this.currentColor,this.input=E;const P=document.createElement("div");P.className="color-picker-input-container";const M=document.createElement("button");return M.className="color-picker-copy-inside",M.textContent="Copy",P.appendChild(E),P.appendChild(M),g.appendChild(m),g.appendChild(P),t.appendChild(e),t.appendChild(n),t.appendChild(a),t.appendChild(p),t.appendChild(u.container),t.appendChild(g),t.addEventListener("click",R=>R.stopPropagation()),this.bind(n,r,p,E,m,M,l),t}createBackdrop(){const t=document.createElement("div");return t.className="color-picker-backdrop",t.style.display="none",t.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),this.close(!0)}),t}bind(t,e,i,s,n,o,a){const l=p=>{var y;const d=t.getBoundingClientRect(),u=Math.max(0,Math.min(1,(p.clientX-d.left)/d.width)),g=Math.max(0,Math.min(1,(p.clientY-d.top)/d.height));this.colorMarker.style.left=`${u*100}%`,this.colorMarker.style.top=`${g*100}%`;const f=this.parsePercentage(this.hueMarker.style.left||"0%")*360,C=q(f,u,1-g);this.currentColor=C,this.syncInput(),this.updateOpacityBg(),(y=this.onChange)==null||y.call(this,C,this.currentOpacity)},r=p=>{var y;const d=e.getBoundingClientRect();let u=Math.max(0,Math.min(1,(p.clientX-d.left)/d.width));this.hueMarker.style.left=`${u*100}%`;const g=u*360,m=this.parsePercentage(this.colorMarker.style.left||"0%"),f=this.parsePercentage(this.colorMarker.style.top||"0%"),C=q(g,m,1-f);this.currentColor=C,this.colorArea.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${g}, 100%, 50%))`,this.syncInput(),this.updateOpacityBg(),(y=this.onChange)==null||y.call(this,C,this.currentOpacity)},h=p=>{var g;const d=i.getBoundingClientRect(),u=Math.max(0,Math.min(1,(p.clientX-d.left)/d.width));this.opacityMarker.style.left=`${u*100}%`,this.currentOpacity=Math.round(u*100),(g=this.onChange)==null||g.call(this,this.currentColor,this.currentOpacity)};t.addEventListener("mousedown",p=>{p.preventDefault(),l(p);const d=g=>l(g),u=()=>{document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",d),document.addEventListener("mouseup",u)}),e.addEventListener("mousedown",p=>{p.preventDefault(),r(p);const d=g=>r(g),u=()=>{document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",d),document.addEventListener("mouseup",u)}),i.addEventListener("mousedown",p=>{p.preventDefault(),h(p);const d=g=>h(g),u=()=>{document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",d),document.addEventListener("mouseup",u)}),n.addEventListener("change",()=>this.syncInput()),s.addEventListener("input",()=>this.applyFromInput()),s.addEventListener("blur",()=>this.syncInput()),s.addEventListener("keydown",p=>{p.key==="Enter"&&(p.preventDefault(),this.syncInput(),s.blur())}),o.addEventListener("click",async()=>{try{await navigator.clipboard.writeText(s.value)}catch{s.select(),document.execCommand("copy")}}),a.addEventListener("click",async()=>{var p;if(!("EyeDropper"in window)){alert("EyeDropper API is not supported in this browser.");return}try{const d=new window.EyeDropper,{sRGBHex:u}=await d.open();this.setColor(u),(p=this.onChange)==null||p.call(this,u,this.currentOpacity)}catch{}}),document.addEventListener("keydown",this.keyDown,!0),setTimeout(()=>document.addEventListener("click",this.outsideClick,!0),0)}setColor(t){var o;this.currentColor=t;const{h:e,s:i,v:s}=A(t),n=e>=360?e%360:e;this.hueMarker.style.left=`${n/360*100}%`,this.colorMarker.style.left=`${i*100}%`,this.colorMarker.style.top=`${(1-s)*100}%`,this.colorArea.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${n}, 100%, 50%))`,this.syncInput(),this.updateOpacityBg(),(o=this.onChange)==null||o.call(this,t,this.currentOpacity)}syncInput(){const t=this.select.value,{h:e,s:i,v:s}=A(this.currentColor);if(t==="hex")this.input.value=this.currentColor;else if(t==="rgb"){const{r:n,g:o,b:a}=I(this.currentColor);this.input.value=`rgb(${n}, ${o}, ${a})`}else{const{hue:n,sat:o,lightness:a}=ie(e,i,s);this.input.value=`hsl(${Math.round(n)}, ${Math.round(o*100)}%, ${Math.round(a*100)}%)`}}applyFromInput(){const t=this.input.value.trim();let e="";if(/^#[0-9A-Fa-f]{6}$/.test(t))e=t;else{const i=t.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(i){const s=parseInt(i[1]),n=parseInt(i[2]),o=parseInt(i[3]);s<=255&&n<=255&&o<=255&&(e=`#${[s,n,o].map(a=>a.toString(16).padStart(2,"0")).join("")}`)}else{const s=t.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);if(s){const n=parseInt(s[1]),o=parseInt(s[2])/100,a=parseInt(s[3])/100,l=a+o*Math.min(a,1-a),r=l===0?0:2*(1-a/l);e=q(n,r,l)}}}e&&this.setColor(e)}updateOpacityBg(){const{r:t,g:e,b:i}=I(this.currentColor);this.opacitySlider.style.setProperty("--base-color",`rgb(${t}, ${e}, ${i})`)}open(t,e,i){var E;this.currentColor=t,this.currentOpacity=i??100,this.syncInput();const{h:s,s:n,v:o}=A(t);this.hueMarker.style.left=`${s/360*100}%`,this.colorMarker.style.left=`${n*100}%`,this.colorMarker.style.top=`${(1-o)*100}%`,this.colorArea.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${s}, 100%, 50%))`,this.updateOpacityBg(),this.opacityMarker.style.left=`${this.currentOpacity}%`,(E=this.recentSectionRefresh)==null||E.call(this),this.isOpen=!0,this.backdrop.style.display="block",this.backdrop.parentElement||document.body.appendChild(this.backdrop),this.element.style.display="block",this.element.style.position="fixed",this.element.style.zIndex="10002",this.element.style.left="-9999px",this.element.style.top="0px",this.element.parentElement||document.body.appendChild(this.element);const a=this.element.offsetWidth,l=this.element.offsetHeight,r=e.getBoundingClientRect(),h=window.innerWidth,p=window.innerHeight,d=16;let u=r.right+8,g=r.top;const m=h-r.right,f=r.left;m>=a+d?u=r.right+8:f>=a+d?u=r.left-a-8:u=Math.max(d,(h-a)/2);const C=p-r.bottom,y=r.top;C>=l+d?g=r.bottom+8:y>=l+d?g=r.top-l-8:C>y?(g=r.bottom+8,g+l>p-d&&(g=p-l-d)):(g=r.top-l-8,g<d&&(g=d)),this.element.style.left=`${u}px`,this.element.style.top=`${g}px`}close(t){var e;this.isOpen&&(this.isOpen=!1,this.backdrop.style.display="none",this.element.style.display="none",document.removeEventListener("click",this.outsideClick,!0),document.removeEventListener("keydown",this.keyDown,!0),t&&this.recentScope!=="gradient"&&(D.addColor(this.currentColor,this.recentScope),(e=this.recentSectionRefresh)==null||e.call(this)))}getElement(){return this.element}}class he{constructor(t){this.recentScope="all",this.currentColor=t.initialColor,this.currentOpacity=t.initialOpacity,this.onColorChange=t.onColorChange,t.scope&&(this.recentScope=t.scope),this.container=this.createContainer(),this.initializePicker()}createContainer(){const t=document.createElement("div");t.className="embedded-color-picker-content",t.innerHTML=`
|
|
202
202
|
<div class="color-picker-area embedded">
|
|
203
203
|
<div class="color-picker-marker"></div>
|
|
204
204
|
</div>
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
<button class="color-picker-copy-inside">Copy</button>
|
|
227
227
|
</div>
|
|
228
228
|
</div>
|
|
229
|
-
`;const e=at(i=>{this.applyRecentColor(i)},this.recentScope);return this.recentSectionRefresh=e.refresh,t.appendChild(e.container),t}initializePicker(){const t=this.container.querySelector(".color-picker-area"),e=this.container.querySelector(".color-picker-marker"),i=this.container.querySelector(".color-picker-hue"),s=this.container.querySelector(".color-picker-hue-marker"),n=this.container.querySelector(".color-picker-opacity"),o=this.container.querySelector(".color-picker-opacity-marker"),a=this.container.querySelector(".color-picker-format-select"),l=this.container.querySelector(".color-picker-color-input"),r=this.container.querySelector(".color-picker-copy-inside"),{h,s:p,v:d}=A(this.currentColor);s.style.left=`${h/360*100}%`,e.style.left=`${p*100}%`,e.style.top=`${(1-d)*100}%`,t.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${h}, 100%, 50%))`,o.style.left=`${this.currentOpacity}%`,this.updateOpacityBackground(n),this.updateColorInput(a,l),this.setupColorAreaEvents(t,e,s),this.setupHueSliderEvents(i,s,t,e,a,l,n),this.setupOpacitySliderEvents(n,o),this.setupFormatEvents(a,l,r)}updateOpacityBackground(t){const e=I(this.currentColor);t.style.setProperty("--base-color",`rgb(${e.r}, ${e.g}, ${e.b})`)}updateColorInput(t,e){switch(t.value){case"hex":e.value=this.currentColor;break;case"rgb":const s=I(this.currentColor);e.value=`rgb(${s.r}, ${s.g}, ${s.b})`;break;case"hsl":const{h:n,s:o,v:a}=A(this.currentColor),l=a*(1-o/2),r=l===0||l===1?0:(a-l)/Math.min(l,1-l);e.value=`hsl(${Math.round(n)}, ${Math.round(r*100)}%, ${Math.round(l*100)}%)`;break}}applyRecentColor(t){if(this.currentColor=t,!(t.includes("gradient")||t.includes("radial"))){this.updatePickerVisualState();const i=this.container.querySelector(".color-picker-format-select"),s=this.container.querySelector(".color-picker-color-input");this.updateColorInput(i,s)}this.triggerChange()}commitRecentColor(){var t;D.addColor(this.currentColor,this.recentScope),(t=this.recentSectionRefresh)==null||t.call(this)}setupColorAreaEvents(t,e,i){const s=n=>{const o=t.getBoundingClientRect(),a=Math.max(0,Math.min(1,(n.clientX-o.left)/o.width)),l=Math.max(0,Math.min(1,(n.clientY-o.top)/o.height));e.style.left=`${a*100}%`,e.style.top=`${l*100}%`;const r=parseFloat(i.style.left||"0%")/100*360,h=q(r,a,1-l);this.currentColor=h;const p=this.container.querySelector(".color-picker-format-select"),d=this.container.querySelector(".color-picker-color-input"),u=this.container.querySelector(".color-picker-opacity");this.updateColorInput(p,d),this.updateOpacityBackground(u),this.triggerChange()};t.addEventListener("mousedown",n=>{n.preventDefault(),s(n);const o=l=>s(l),a=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",a)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",a)})}setupHueSliderEvents(t,e,i,s,n,o,a){const l=r=>{const h=t.getBoundingClientRect();let p=(r.clientX-h.left)/h.width;p=Math.max(0,Math.min(1,p)),e.style.left=`${p*100}%`;const d=p*360,u=parseFloat(s.style.left||"50%")/100,g=parseFloat(s.style.top||"50%")/100;i.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${d}, 100%, 50%))`;const m=q(d,u,1-g);this.currentColor=m,this.updateColorInput(n,o),this.updateOpacityBackground(a),this.triggerChange()};t.addEventListener("mousedown",r=>{r.preventDefault(),l(r);const h=d=>l(d),p=()=>{document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",p)};document.addEventListener("mousemove",h),document.addEventListener("mouseup",p)})}setupOpacitySliderEvents(t,e){const i=s=>{const n=t.getBoundingClientRect(),o=Math.max(0,Math.min(1,(s.clientX-n.left)/n.width));e.style.left=`${o*100}%`,this.currentOpacity=Math.round(o*100),this.triggerChange()};t.addEventListener("mousedown",s=>{s.preventDefault(),i(s);const n=a=>i(a),o=()=>{document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",o)};document.addEventListener("mousemove",n),document.addEventListener("mouseup",o)})}setupFormatEvents(t,e,i){t.addEventListener("change",()=>{this.updateColorInput(t,e)}),i.addEventListener("click",()=>{navigator.clipboard.writeText(e.value).catch(()=>{e.select(),document.execCommand("copy")})}),e.addEventListener("input",()=>{this.handleManualColorInput(e.value,t)}),e.addEventListener("blur",()=>{this.updateColorInput(t,e)})}handleManualColorInput(t,e){const i=t.trim();let s=null;switch(e.value){case"hex":s=this.parseHexInput(i);break;case"rgb":s=this.parseRgbInput(i);break;case"hsl":s=this.parseHslInput(i);break}s||(s=this.autoDetectColorFormat(i)),s&&(this.currentColor=s,this.updatePickerVisualState(),this.triggerChange())}parseHexInput(t){const e=t.startsWith("#")?t:`#${t}`;return G(e)}parseRgbInput(t){const e=t.match(/rgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*[\d.]+)?\s*\)/);if(e){const i=parseInt(e[1]),s=parseInt(e[2]),n=parseInt(e[3]);if(i<=255&&s<=255&&n<=255)return F(i,s,n)}return null}parseHslInput(t){const e=t.match(/hsla?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*[\d.]+)?\s*\)/);if(e){const i=parseFloat(e[1]),s=parseFloat(e[2])/100,n=parseFloat(e[3])/100;if(i>=0&&i<=360&&s>=0&&s<=1&&n>=0&&n<=1){const o=Y(i,s,n);return F(o.r,o.g,o.b)}}return null}autoDetectColorFormat(t){const e=this.parseHexInput(t);if(e)return e;const i=this.parseRgbInput(t);if(i)return i;const s=this.parseHslInput(t);return s||null}updatePickerVisualState(){const t=this.container.querySelector(".color-picker-area"),e=this.container.querySelector(".color-picker-marker"),i=this.container.querySelector(".color-picker-hue-marker"),s=this.container.querySelector(".color-picker-opacity"),{h:n,s:o,v:a}=A(this.currentColor);i.style.left=`${n/360*100}%`,e.style.left=`${o*100}%`,e.style.top=`${(1-a)*100}%`,t.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${n}, 100%, 50%))`,this.updateOpacityBackground(s)}triggerChange(){this.onColorChange(this.currentColor,this.currentOpacity)}getElement(){return this.container}updateColor(t,e){this.currentColor=t,this.currentOpacity=e;const i=this.container.querySelector(".color-picker-area"),s=this.container.querySelector(".color-picker-marker"),n=this.container.querySelector(".color-picker-hue-marker"),o=this.container.querySelector(".color-picker-opacity-marker"),a=this.container.querySelector(".color-picker-opacity"),l=this.container.querySelector(".color-picker-format-select"),r=this.container.querySelector(".color-picker-color-input"),{h,s:p,v:d}=A(t),u=h>=360?h%360:h;n.style.left=`${u/360*100}%`,s.style.left=`${p*100}%`,s.style.top=`${(1-d)*100}%`,i.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${u}, 100%, 50%))`,o.style.left=`${e}%`,this.updateOpacityBackground(a),this.updateColorInput(l,r)}}const T=class T extends b{constructor(t={}){const e=typeof t.default=="string"?void 0:t.default;super({...t,title:t.title||"Gradient",default:e}),this.inputType={type:"text",angle:"number",stops:"text"},this.element=null,this.previewEl=null,this.inputEl=void 0,this.popoverEl=null,this.isPopoverOpen=!1,this.isEditing=!1,this.previewUpdateTimeout=null,this.solidPicker=null,this.pendingSolidColor=null,this.onBackgroundClick=i=>{var p;if(!this.popoverEl||!this.isPopoverOpen)return;const s=i.target,n=this.popoverEl.contains(s),o=(p=this.element)==null?void 0:p.contains(s),a=document.querySelectorAll(".custom-color-picker"),l=Array.from(a).some(d=>d.contains(s)),r=s.closest(".gstop-color-input, .gradient-mini-preview, .gstop-color-preview"),h=s.classList.contains("color-picker-backdrop");!n&&!o&&!l&&!r&&!h&&this.closePopover()},this.handlePopoverKeydown=i=>{if(this.isPopoverOpen){if(i.key==="Escape"){i.preventDefault(),this.closePopover();return}if(i.key==="Enter"){const s=i.target;if(s&&(s.tagName==="INPUT"||s.tagName==="TEXTAREA"))return;i.preventDefault(),this.closePopover()}}},this.detectChange=t.detectChange,this.originalDefault=t.default,this.value=this.defaultValue()}defaultValue(){const t=this.originalDefault;if(typeof t=="string"){const i=H(t);if(i)return B(i)}return B(t&&typeof t=="object"?t:{type:"linear",angle:90,stops:[{color:"#a84b4b",position:0,opacity:100},{color:"#786666",position:100,opacity:100}]})}setValue(t){var i,s;let e=null;typeof t=="string"?e=H(t):t&&typeof t=="object"&&(e=B(t)),e||(e=this.defaultValue()),this.value=e,this.updateUI(),this.isPopoverOpen&&this.refreshPopoverContent(),(i=this.onChange)==null||i.call(this,this.value),(s=this.detectChange)==null||s.call(this,this.value),this.pendingSolidColor=null}updateUI(){if(this.previewEl&&this.value)if(this.value.type==="solid"){const t=this.value.stops[0],e=t.opacity??100;this.previewEl.style.background=vt(t.color,e)}else this.previewEl.style.background=V(this.value);this.inputEl&&this.value&&!this.isEditing&&(this.inputEl.value=et(this.value))}cssForTextValue(){return this.value?{background:V(this.value),"-webkit-background-clip":"text","background-clip":"text",color:"transparent","-webkit-text-fill-color":"transparent"}:{}}draw(){const t=document.createElement("div");if(t.className="gradient-setting-wrapper",this.props.title){const i=document.createElement("div");i.className="icon-container";const s=document.createElement("span");s.className="input-label",s.textContent=this.props.title,i.appendChild(s),t.appendChild(i)}const e=document.createElement("div");return e.className="gradient-input-wrapper",this.previewEl=document.createElement("div"),this.previewEl.className="gradient-mini-preview",this.previewEl.style.background=this.value?V(this.value):"linear-gradient(90deg, #a84b4b 0%, #786666 100%)",this.previewEl.addEventListener("mousedown",i=>{i.preventDefault(),i.stopPropagation(),this.openPopover()}),this.inputEl=document.createElement("input"),this.inputEl.type="text",this.inputEl.className="gradient-text-input",this.inputEl.placeholder="Enter gradient CSS or paste color...",this.inputEl.value=this.value?et(this.value):"",this.inputEl.readOnly=!1,this.inputEl.addEventListener("focus",()=>{this.isEditing=!0,this.value&&(this.inputEl.value=V(this.value))}),this.inputEl.addEventListener("blur",()=>{this.isEditing=!1,this.value&&(this.inputEl.value=et(this.value))}),this.inputEl.addEventListener("paste",i=>this.handlePaste(i)),this.inputEl.addEventListener("input",i=>this.handleTextInput(i)),this.inputEl.addEventListener("keydown",i=>{i.key==="Enter"&&(this.handleTextInput(i),this.inputEl.blur()),i.key==="Escape"&&(this.value&&(this.inputEl.value=V(this.value)),this.inputEl.blur())}),e.appendChild(this.previewEl),e.appendChild(this.inputEl),t.appendChild(e),this.createPopover(),this.element=t,t}createPopover(){if(this.popoverEl)return;this.popoverEl=document.createElement("div"),this.popoverEl.className="gradient-popover",this.popoverEl.style.display="none";const t=document.createElement("div");t.className="gradient-popover-header";const e=document.createElement("span");e.textContent="Fill";const i=document.createElement("button");i.type="button",i.className="gradient-popover-close",i.innerHTML=Et,i.addEventListener("click",()=>this.closePopover()),t.appendChild(e),t.appendChild(i);const s=document.createElement("div");s.className="gradient-editor";const n=this.createTypeTabs();s.appendChild(n);const o=document.createElement("div");o.className="gradient-editor-content",this.updatePopoverContent(o),s.appendChild(o),this.popoverEl.appendChild(t),this.popoverEl.appendChild(s),document.body.appendChild(this.popoverEl)}createTypeTabs(){var s,n;const t=document.createElement("div");t.className="gradient-type-tabs";const e=document.createElement("button");e.type="button",e.className=`gradient-type-tab ${((s=this.value)==null?void 0:s.type)==="solid"?"active":""}`,e.textContent="Solid",e.addEventListener("click",()=>this.switchType("solid"));const i=document.createElement("button");return i.type="button",i.className=`gradient-type-tab ${((n=this.value)==null?void 0:n.type)!=="solid"?"active":""}`,i.textContent="Gradient",i.addEventListener("click",()=>{var a,l;const o=((a=this.value)==null?void 0:a.type)==="solid"?"linear":((l=this.value)==null?void 0:l.type)||"linear";this.switchType(o)}),t.appendChild(e),t.appendChild(i),t}switchType(t){var i,s;if(!this.value)return;if(this.value.type=t,t!=="solid"&&(!this.value.stops||this.value.stops.length===0)&&(this.value.stops=[{color:"#a84b4b",position:0,opacity:100},{color:"#786666",position:100,opacity:100}]),this.popoverEl){const n=this.popoverEl.querySelectorAll(".gradient-type-tab");n.forEach(l=>l.classList.remove("active"));const o=n[0],a=n[1];t==="solid"?o==null||o.classList.add("active"):a==null||a.classList.add("active")}const e=(i=this.popoverEl)==null?void 0:i.querySelector(".gradient-editor-content");e&&(this.updatePopoverContent(e),((s=document.activeElement)==null?void 0:s.tagName)!=="INPUT"&&this.repositionPopover()),this.updateUI(),this.triggerChange()}updatePopoverContent(t){t.innerHTML="",this.value&&(this.value.type==="solid"?this.renderSolid(t):this.renderGradient(t))}renderSolid(t){(!this.value||!this.value.stops||!this.value.stops.length)&&(this.value||(this.value=this.defaultValue()),this.value.stops=[{color:"#000000",position:0,opacity:100}]);const e=this.value.stops[0],i=new he({initialColor:e.color,initialOpacity:e.opacity??100,onColorChange:(s,n)=>{if(this.value){const o=H(s);if(o&&o.type!=="solid"){this.value=o,this.switchType(o.type);return}this.value.stops[0].color=s,this.value.stops[0].opacity=n,this.updateUI(),this.triggerChange(),this.pendingSolidColor=s}}});this.solidPicker=i,t.appendChild(i.getElement())}renderGradient(t){this.solidPicker=null;const e=document.createElement("div");e.className="gradient-subtype-inline";const i=document.createElement("select");i.className="gradient-subtype-select";const s=document.createElement("option");s.value="linear",s.textContent="Linear";const n=document.createElement("option");n.value="radial",n.textContent="Radial",i.appendChild(s),i.appendChild(n),i.value=this.value.type==="radial"?"radial":"linear";const o=document.createElement("input");o.type="text",o.inputMode="numeric",o.className="gradient-degree-input",o.value=`${this.value.angle??0}°`,o.style.width="75px",o.style.textAlign="center";const a=document.createElement("button");a.type="button",a.className="gradient-flip-btn",a.innerHTML=le,i.addEventListener("change",()=>{this.switchType(i.value==="radial"?"radial":"linear"),this.updateDegreeVisibility(o)}),o.addEventListener("focus",m=>{const f=m.target;f.value=f.value.replace(/[^0-9-]/g,""),setTimeout(()=>f.select(),0)}),o.addEventListener("input",m=>{const f=parseInt(m.target.value);!Number.isNaN(f)&&this.value&&(this.value.angle=Math.max(0,Math.min(360,f)),this.debouncedPreviewUpdate())}),o.addEventListener("blur",m=>{var y;this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null);const f=m.target;let C=parseInt(f.value);Number.isNaN(C)&&(C=((y=this.value)==null?void 0:y.angle)??0),C=Math.max(0,Math.min(360,C)),this.value&&(this.value.angle=C),f.value=`${C}°`,this.updateGradientPreview(),this.updateUI(),this.triggerChange()}),a.addEventListener("click",()=>{!this.value||!this.value.stops||(this.value.stops.forEach(m=>{m.position=100-m.position}),this.value.stops.sort((m,f)=>m.position-f.position),this.updateGradientPreview(l),this.createHandles(r,l),this.updateStopsList(u),this.updateUI(),this.triggerChange())}),e.appendChild(i),e.appendChild(o),e.appendChild(a),t.appendChild(e),this.updateDegreeVisibility(o);const l=document.createElement("div");l.className="gradient-preview",this.updateGradientPreview(l);const r=document.createElement("div");r.className="gradient-handles",l.appendChild(r),t.appendChild(l),this.createHandles(r,l);const h=document.createElement("div");h.className="gradient-stops-header";const p=document.createElement("span");p.textContent="Stops";const d=document.createElement("button");d.type="button",d.className="gradient-add-stop",d.textContent="+",h.appendChild(p),h.appendChild(d);const u=document.createElement("div");u.className="gradient-stops",t.appendChild(h),t.appendChild(u),this.updateStopsList(u);const g=at(m=>{const f=H(m);f&&(this.value=f,this.switchType(f.type),this.updateUI(),this.triggerChange())},"all");this.recentGradientRefresh=g.refresh,t.appendChild(g.container),d.addEventListener("click",()=>{var m;this.addStop(),this.updateStopsList(u),this.updateGradientPreview(l),this.createHandles(r,l),this.updateUI(),((m=document.activeElement)==null?void 0:m.tagName)!=="INPUT"&&this.repositionPopover(),this.triggerChange()})}updateDegreeVisibility(t){var e;((e=this.value)==null?void 0:e.type)==="radial"?(t.disabled=!0,t.style.opacity="0.5"):(t.disabled=!1,t.style.opacity="1")}updateGradientPreview(t){var i;const e=t||((i=this.popoverEl)==null?void 0:i.querySelector(".gradient-preview"));e&&this.value&&(e.style.background=V(this.value))}debouncedPreviewUpdate(t){this.previewUpdateTimeout&&clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=window.setTimeout(()=>{this.updateGradientPreview(t),this.previewUpdateTimeout=null},16)}createHandles(t,e){t.innerHTML="",!(!this.value||this.value.type==="solid"||!this.value.stops)&&this.value.stops.forEach((i,s)=>{const n=document.createElement("div");n.className="gstop-handle",n.style.left=`${Math.max(0,Math.min(100,i.position))}%`,n.style.top="0%";const o=document.createElement("div");o.className="gstop-chip",o.style.backgroundColor=i.color,n.appendChild(o);let a=!1,l=0,r=0;const h=u=>{a=!0,l=u.clientX,r=this.value.stops[s].position,n.classList.add("selected"),document.addEventListener("mousemove",p),document.addEventListener("mouseup",d),u.preventDefault(),u.stopPropagation()},p=u=>{if(!a||!this.value)return;const g=e.getBoundingClientRect(),m=u.clientX-l;let f=r+m/g.width*100;f=Math.max(0,Math.min(100,f)),this.value.stops[s].position=Math.round(f),n.style.left=`${f}%`,this.updateGradientPreview(),this.updateUI()},d=()=>{a&&(a=!1,n.classList.remove("selected"),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",d),this.value&&(this.value.stops.sort((u,g)=>u.position-g.position),this.createHandles(t,e)),this.updateStopsList(),this.updateUI(),this.triggerChange())};n.addEventListener("mousedown",h),t.appendChild(n)})}updateStopsList(t){var s;const e=t||((s=this.popoverEl)==null?void 0:s.querySelector(".gradient-stops"));if(!e||!this.value||this.value.type==="solid"||!this.value.stops)return;e.innerHTML="";const i=[...this.value.stops].sort((n,o)=>n.position-o.position);i.forEach((n,o)=>{var U,lt;const a=this.value.stops.findIndex((v,w)=>v.position===n.position&&v.color===n.color&&v.opacity===n.opacity&&this.value.stops.slice(0,w).filter(x=>x.position===n.position&&x.color===n.color&&x.opacity===n.opacity).length===i.slice(0,o).filter(x=>x.position===n.position&&x.color===n.color&&x.opacity===n.opacity).length),l=a!==-1?a:o,r=document.createElement("div");r.className="gstop-row";const h=document.createElement("div");h.className="gstop-position-group";const p=document.createElement("input");p.type="text",p.className="gstop-position-input",p.value=`${n.position}%`,p.style.width="60px",h.appendChild(p);const d=document.createElement("div");d.className="gstop-color-container";const u=document.createElement("div");u.className="gstop-color-preview",u.style.backgroundColor=n.color;const g=document.createElement("input");g.type="text",g.className="gstop-color-input",g.value=n.color.replace("#","").toUpperCase();const m=document.createElement("button");m.type="button",m.className="gstop-color-copy",m.textContent="Copy",d.appendChild(u),d.appendChild(g),d.appendChild(m);const f=document.createElement("button");f.type="button",f.className="gstop-del",f.innerHTML=re,f.disabled=(((lt=(U=this.value)==null?void 0:U.stops)==null?void 0:lt.length)||0)<=2,r.appendChild(h),r.appendChild(d),r.appendChild(f),e.appendChild(r);const C=document.createElement("span");C.className="gstop-opacity-label",C.textContent="Opacity";const y=document.createElement("div");y.className="gstop-opacity-group";const E=document.createElement("input");E.type="range",E.className="gstop-opacity-slider",E.min="0",E.max="100",E.value=String(n.opacity??100);const O=I(n.color);E.style.setProperty("--slider-color",`rgb(${O.r}, ${O.g}, ${O.b})`);const M=document.createElement("span");M.className="gstop-opacity-value",M.textContent=`${n.opacity??100}%`,y.appendChild(E),y.appendChild(M);const R=new ce((v,w)=>{g.value=v.replace("#","").toUpperCase(),u.style.backgroundColor=v,this.value.stops[l].color=v,w!==void 0&&(this.value.stops[l].opacity=w,E.value=String(w),M.textContent=`${w}%`);const x=I(v);E.style.setProperty("--slider-color",`rgb(${x.r}, ${x.g}, ${x.b})`),this.updateGradientPreview(),this.createHandles(this.popoverEl.querySelector(".gradient-handles"),this.popoverEl.querySelector(".gradient-preview")),this.updateUI(),this.triggerChange()},"solid");g.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation(),R.open(n.color,g,n.opacity??100)}),g.addEventListener("input",()=>{const v=g.value.trim(),w=v.startsWith("#")?v:`#${v}`;if(/^#[0-9A-Fa-f]{6}$/.test(w)){this.value.stops[l].color=w,u.style.backgroundColor=w;const x=I(w);E.style.setProperty("--slider-color",`rgb(${x.r}, ${x.g}, ${x.b})`),this.debouncedPreviewUpdate()}}),g.addEventListener("blur",()=>{this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null),this.updateGradientPreview(),this.updateUI(),this.triggerChange()}),m.addEventListener("click",async v=>{v.stopPropagation();try{await navigator.clipboard.writeText(`#${g.value}`)}catch{}}),p.addEventListener("focus",v=>{const w=v.target;w.value=w.value.replace("%",""),w.select()}),p.addEventListener("input",v=>{const w=v.target,x=parseInt(w.value.replace(/[^\d]/g,""),10);if(!Number.isNaN(x)){const z=Math.max(0,Math.min(100,x));this.value.stops[l].position=z,w.value=`${z}%`,this.debouncedPreviewUpdate()}}),p.addEventListener("blur",v=>{this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null);const w=v.target,x=parseInt(w.value.replace(/[^\d]/g,""),10);if(Number.isNaN(x))w.value=`${this.value.stops[l].position}%`;else{const z=Math.max(0,Math.min(100,x));this.value.stops[l].position=z,w.value=`${z}%`}this.updateGradientPreview(),this.createHandles(this.popoverEl.querySelector(".gradient-handles"),this.popoverEl.querySelector(".gradient-preview")),this.updateStopsList(),this.updateUI(),this.triggerChange()}),f.addEventListener("click",()=>{var v;(this.value.stops.length||0)<=2||(this.value.stops.splice(l,1),this.createHandles(this.popoverEl.querySelector(".gradient-handles"),this.popoverEl.querySelector(".gradient-preview")),this.updateStopsList(),this.updateGradientPreview(),this.updateUI(),((v=document.activeElement)==null?void 0:v.tagName)!=="INPUT"&&this.repositionPopover(),this.triggerChange())}),E.addEventListener("input",()=>{const v=parseInt(E.value,10);this.value.stops[l].opacity=Math.max(0,Math.min(100,v)),M.textContent=`${this.value.stops[l].opacity}%`,this.debouncedPreviewUpdate()}),E.addEventListener("change",()=>{this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null),this.updateGradientPreview(),this.updateUI(),this.triggerChange()})})}addStop(){if(!this.value||this.value.type==="solid"||!this.value.stops)return;const t=this.value.stops.map(o=>o.position).sort((o,a)=>o-a);let e=50,i=0;for(let o=0;o<t.length-1;o++){const a=t[o+1]-t[o];a>i&&(i=a,e=t[o]+a/2)}const s=this.value.stops.reduce((o,a)=>Math.abs(a.position-e)<Math.abs(o.position-e)?a:o),n={position:Math.round(e),color:s.color,opacity:s.opacity??100};this.value.stops.push(n),this.value.stops.sort((o,a)=>o.position-a.position)}openPopover(){if(this.popoverEl&&(T.openInstance&&T.openInstance!==this&&T.openInstance.closePopover(),!this.isPopoverOpen)){if(this.isPopoverOpen=!0,T.openInstance=this,this.popoverEl.style.display="flex",this.refreshPopoverContent(),this.element){const t=this.element.getBoundingClientRect(),e=306,i=window.innerWidth,s=window.innerHeight,n=16;this.popoverEl.style.position="fixed",this.popoverEl.style.zIndex="10000",this.popoverEl.style.left="-9999px",this.popoverEl.style.top="0px";const o=this.popoverEl.offsetHeight;let a=t.right+8,l=t.top;const r=i-t.right,h=t.left,p=e+n;r<p&&h>r+100&&(a=t.left-e-8);const d=s-t.bottom,u=t.top;u>=o+n?l=t.top-o-8:d>=o+n?l=t.bottom+8:u>d?(l=t.top-o-8,l<n&&(l=n)):(l=t.bottom+8,l+o>s-n&&(l=s-o-n)),this.popoverEl.style.left=`${a}px`,this.popoverEl.style.top=`${l}px`}setTimeout(()=>document.addEventListener("click",this.onBackgroundClick,!0),0),document.addEventListener("keydown",this.handlePopoverKeydown,!0)}}repositionPopover(){var t;!this.popoverEl||!this.isPopoverOpen||!this.element||((t=document.activeElement)==null?void 0:t.tagName)!=="INPUT"&&requestAnimationFrame(()=>{if(!this.popoverEl||!this.element)return;const e=this.element.getBoundingClientRect(),i=306,s=window.innerWidth,n=window.innerHeight,o=16;this.popoverEl.style.left,this.popoverEl.style.top,this.popoverEl.style.left="-9999px",this.popoverEl.style.top="0px";const a=this.popoverEl.offsetHeight;let l=e.right+8,r=e.top;const h=s-e.right,p=e.left,d=i+o;h<d&&p>h+100&&(l=e.left-i-8);const u=n-e.bottom,g=e.top;g>=a+o?r=e.top-a-8:u>=a+o?r=e.bottom+8:g>u?(r=e.top-a-8,r<o&&(r=o)):(r=e.bottom+8,r+a>n-o&&(r=n-a-o)),this.popoverEl.style.left=`${l}px`,this.popoverEl.style.top=`${r}px`})}refreshPopoverContent(){var n,o;if(!this.popoverEl)return;const t=this.popoverEl.querySelectorAll(".gradient-type-tab");t.forEach(a=>a.classList.remove("active"));const e=t[0],i=t[1];((n=this.value)==null?void 0:n.type)==="solid"?e.classList.add("active"):(i.classList.add("active"),(o=this.recentGradientRefresh)==null||o.call(this)),this.popoverEl.offsetHeight;const s=this.popoverEl.querySelector(".gradient-editor-content");s&&this.updatePopoverContent(s)}closePopover(){if(!(!this.popoverEl||!this.isPopoverOpen)){if(this.isPopoverOpen=!1,this.popoverEl.style.display="none",document.removeEventListener("click",this.onBackgroundClick,!0),document.removeEventListener("keydown",this.handlePopoverKeydown,!0),this.commitPendingSolidColor(),this.value&&this.value.type!=="solid"){const t=V(this.value);D.addColor(t,"gradient")}this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null),T.openInstance===this&&(T.openInstance=null)}}commitPendingSolidColor(){this.pendingSolidColor&&(this.solidPicker?this.solidPicker.commitRecentColor():D.addColor(this.pendingSolidColor,"solid"),this.pendingSolidColor=null)}handlePaste(t){var i;t.preventDefault();const e=((i=t.clipboardData)==null?void 0:i.getData("text"))||"";this.parseAndSet(e)}handleTextInput(t){const e=t.target;this.parseAndSet(e.value)}parseAndSet(t){const e=H(t.trim());e&&this.setValue(e)}triggerChange(){var t,e;this.value&&((t=this.onChange)==null||t.call(this,this.value),(e=this.detectChange)==null||e.call(this,this.value))}getElement(){return this.element}getValue(){return this.value?V(this.value):""}getCSSValue(){return this.value?V(this.value):""}getCSSForText(){return this.value?this.cssForTextValue():{}}getRawValue(){return this.value}};T.openInstance=null;let _=T;const pe=`
|
|
229
|
+
`;const e=at(i=>{this.applyRecentColor(i)},this.recentScope);return this.recentSectionRefresh=e.refresh,t.appendChild(e.container),t}initializePicker(){const t=this.container.querySelector(".color-picker-area"),e=this.container.querySelector(".color-picker-marker"),i=this.container.querySelector(".color-picker-hue"),s=this.container.querySelector(".color-picker-hue-marker"),n=this.container.querySelector(".color-picker-opacity"),o=this.container.querySelector(".color-picker-opacity-marker"),a=this.container.querySelector(".color-picker-format-select"),l=this.container.querySelector(".color-picker-color-input"),r=this.container.querySelector(".color-picker-copy-inside"),{h,s:p,v:d}=A(this.currentColor);s.style.left=`${h/360*100}%`,e.style.left=`${p*100}%`,e.style.top=`${(1-d)*100}%`,t.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${h}, 100%, 50%))`,o.style.left=`${this.currentOpacity}%`,this.updateOpacityBackground(n),this.updateColorInput(a,l),this.setupColorAreaEvents(t,e,s),this.setupHueSliderEvents(i,s,t,e,a,l,n),this.setupOpacitySliderEvents(n,o),this.setupFormatEvents(a,l,r)}updateOpacityBackground(t){const e=I(this.currentColor);t.style.setProperty("--base-color",`rgb(${e.r}, ${e.g}, ${e.b})`)}updateColorInput(t,e){switch(t.value){case"hex":e.value=this.currentColor;break;case"rgb":const s=I(this.currentColor);e.value=`rgb(${s.r}, ${s.g}, ${s.b})`;break;case"hsl":const{h:n,s:o,v:a}=A(this.currentColor),l=a*(1-o/2),r=l===0||l===1?0:(a-l)/Math.min(l,1-l);e.value=`hsl(${Math.round(n)}, ${Math.round(r*100)}%, ${Math.round(l*100)}%)`;break}}applyRecentColor(t){if(this.currentColor=t,!(t.includes("gradient")||t.includes("radial"))){this.updatePickerVisualState();const i=this.container.querySelector(".color-picker-format-select"),s=this.container.querySelector(".color-picker-color-input");this.updateColorInput(i,s)}this.triggerChange()}commitRecentColor(){var t;D.addColor(this.currentColor,this.recentScope),(t=this.recentSectionRefresh)==null||t.call(this)}setupColorAreaEvents(t,e,i){const s=n=>{const o=t.getBoundingClientRect(),a=Math.max(0,Math.min(1,(n.clientX-o.left)/o.width)),l=Math.max(0,Math.min(1,(n.clientY-o.top)/o.height));e.style.left=`${a*100}%`,e.style.top=`${l*100}%`;const r=parseFloat(i.style.left||"0%")/100*360,h=q(r,a,1-l);this.currentColor=h;const p=this.container.querySelector(".color-picker-format-select"),d=this.container.querySelector(".color-picker-color-input"),u=this.container.querySelector(".color-picker-opacity");this.updateColorInput(p,d),this.updateOpacityBackground(u),this.triggerChange()};t.addEventListener("mousedown",n=>{n.preventDefault(),s(n);const o=l=>s(l),a=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",a)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",a)})}setupHueSliderEvents(t,e,i,s,n,o,a){const l=r=>{const h=t.getBoundingClientRect();let p=(r.clientX-h.left)/h.width;p=Math.max(0,Math.min(1,p)),e.style.left=`${p*100}%`;const d=p*360,u=parseFloat(s.style.left||"50%")/100,g=parseFloat(s.style.top||"50%")/100;i.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${d}, 100%, 50%))`;const m=q(d,u,1-g);this.currentColor=m,this.updateColorInput(n,o),this.updateOpacityBackground(a),this.triggerChange()};t.addEventListener("mousedown",r=>{r.preventDefault(),l(r);const h=d=>l(d),p=()=>{document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",p)};document.addEventListener("mousemove",h),document.addEventListener("mouseup",p)})}setupOpacitySliderEvents(t,e){const i=s=>{const n=t.getBoundingClientRect(),o=Math.max(0,Math.min(1,(s.clientX-n.left)/n.width));e.style.left=`${o*100}%`,this.currentOpacity=Math.round(o*100),this.triggerChange()};t.addEventListener("mousedown",s=>{s.preventDefault(),i(s);const n=a=>i(a),o=()=>{document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",o)};document.addEventListener("mousemove",n),document.addEventListener("mouseup",o)})}setupFormatEvents(t,e,i){t.addEventListener("change",()=>{this.updateColorInput(t,e)}),i.addEventListener("click",()=>{navigator.clipboard.writeText(e.value).catch(()=>{e.select(),document.execCommand("copy")})}),e.addEventListener("input",()=>{this.handleManualColorInput(e.value,t)}),e.addEventListener("blur",()=>{this.updateColorInput(t,e)})}handleManualColorInput(t,e){const i=t.trim();let s=null;switch(e.value){case"hex":s=this.parseHexInput(i);break;case"rgb":s=this.parseRgbInput(i);break;case"hsl":s=this.parseHslInput(i);break}s||(s=this.autoDetectColorFormat(i)),s&&(this.currentColor=s,this.updatePickerVisualState(),this.triggerChange())}parseHexInput(t){const e=t.startsWith("#")?t:`#${t}`;return G(e)}parseRgbInput(t){const e=t.match(/rgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*[\d.]+)?\s*\)/);if(e){const i=parseInt(e[1]),s=parseInt(e[2]),n=parseInt(e[3]);if(i<=255&&s<=255&&n<=255)return F(i,s,n)}return null}parseHslInput(t){const e=t.match(/hsla?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*[\d.]+)?\s*\)/);if(e){const i=parseFloat(e[1]),s=parseFloat(e[2])/100,n=parseFloat(e[3])/100;if(i>=0&&i<=360&&s>=0&&s<=1&&n>=0&&n<=1){const o=Y(i,s,n);return F(o.r,o.g,o.b)}}return null}autoDetectColorFormat(t){const e=this.parseHexInput(t);if(e)return e;const i=this.parseRgbInput(t);if(i)return i;const s=this.parseHslInput(t);return s||null}updatePickerVisualState(){const t=this.container.querySelector(".color-picker-area"),e=this.container.querySelector(".color-picker-marker"),i=this.container.querySelector(".color-picker-hue-marker"),s=this.container.querySelector(".color-picker-opacity"),{h:n,s:o,v:a}=A(this.currentColor);i.style.left=`${n/360*100}%`,e.style.left=`${o*100}%`,e.style.top=`${(1-a)*100}%`,t.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${n}, 100%, 50%))`,this.updateOpacityBackground(s)}triggerChange(){this.onColorChange(this.currentColor,this.currentOpacity)}getElement(){return this.container}updateColor(t,e){this.currentColor=t,this.currentOpacity=e;const i=this.container.querySelector(".color-picker-area"),s=this.container.querySelector(".color-picker-marker"),n=this.container.querySelector(".color-picker-hue-marker"),o=this.container.querySelector(".color-picker-opacity-marker"),a=this.container.querySelector(".color-picker-opacity"),l=this.container.querySelector(".color-picker-format-select"),r=this.container.querySelector(".color-picker-color-input"),{h,s:p,v:d}=A(t),u=h>=360?h%360:h;n.style.left=`${u/360*100}%`,s.style.left=`${p*100}%`,s.style.top=`${(1-d)*100}%`,i.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${u}, 100%, 50%))`,o.style.left=`${e}%`,this.updateOpacityBackground(a),this.updateColorInput(l,r)}}const T=class T extends b{constructor(t={}){const e=typeof t.default=="string"?void 0:t.default;super({...t,title:t.title||"Color",default:e}),this.inputType={type:"text",angle:"number",stops:"text"},this.element=null,this.previewEl=null,this.inputEl=void 0,this.popoverEl=null,this.backdropEl=null,this.isPopoverOpen=!1,this.isEditing=!1,this.previewUpdateTimeout=null,this.solidPicker=null,this.pendingSolidColor=null,this.onBackgroundClick=i=>{var d;if(!this.popoverEl||!this.isPopoverOpen)return;const s=i.target,n=this.popoverEl.contains(s),o=(d=this.element)==null?void 0:d.contains(s),a=document.querySelectorAll(".custom-color-picker"),l=Array.from(a).some(u=>u.contains(s)),r=s.closest(".gstop-color-input, .gradient-mini-preview, .gstop-color-preview"),h=s.classList.contains("color-picker-backdrop"),p=s.classList.contains("gradient-popover-backdrop");!n&&!o&&!l&&!r&&!h&&!p&&this.closePopover()},this.handlePopoverKeydown=i=>{if(this.isPopoverOpen){if(i.key==="Escape"){i.preventDefault(),this.closePopover();return}if(i.key==="Enter"){const s=i.target;if(s&&(s.tagName==="INPUT"||s.tagName==="TEXTAREA"))return;i.preventDefault(),this.closePopover()}}},this.detectChange=t.detectChange,this.originalDefault=t.default,this.value=this.defaultValue()}defaultValue(){const t=this.originalDefault;if(typeof t=="string"){const i=H(t);if(i)return B(i)}return B(t&&typeof t=="object"?t:{type:"linear",angle:90,stops:[{color:"#a84b4b",position:0,opacity:100},{color:"#786666",position:100,opacity:100}]})}setValue(t){var i,s;let e=null;typeof t=="string"?e=H(t):t&&typeof t=="object"&&(e=B(t)),e||(e=this.defaultValue()),this.value=e,this.updateUI(),this.isPopoverOpen&&this.refreshPopoverContent(),(i=this.onChange)==null||i.call(this,this.value),(s=this.detectChange)==null||s.call(this,this.value),this.pendingSolidColor=null}updateUI(){if(this.previewEl&&this.value)if(this.value.type==="solid"){const t=this.value.stops[0],e=t.opacity??100;this.previewEl.style.background=vt(t.color,e)}else this.previewEl.style.background=V(this.value);this.inputEl&&this.value&&!this.isEditing&&(this.inputEl.value=et(this.value))}cssForTextValue(){return this.value?{background:V(this.value),"-webkit-background-clip":"text","background-clip":"text",color:"transparent","-webkit-text-fill-color":"transparent"}:{}}draw(){const t=document.createElement("div");if(t.className="gradient-setting-wrapper",this.props.title){const i=document.createElement("div");i.className="icon-container";const s=document.createElement("span");s.className="input-label",s.textContent=this.props.title,i.appendChild(s),t.appendChild(i)}const e=document.createElement("div");return e.className="gradient-input-wrapper",this.previewEl=document.createElement("div"),this.previewEl.className="gradient-mini-preview",this.previewEl.style.background=this.value?V(this.value):"linear-gradient(90deg, #a84b4b 0%, #786666 100%)",this.previewEl.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),this.openPopover()}),this.inputEl=document.createElement("input"),this.inputEl.type="text",this.inputEl.className="gradient-text-input",this.inputEl.placeholder="Enter gradient CSS or paste color...",this.inputEl.value=this.value?et(this.value):"",this.inputEl.readOnly=!1,this.inputEl.addEventListener("focus",()=>{this.isEditing=!0,this.value&&(this.inputEl.value=V(this.value))}),this.inputEl.addEventListener("blur",()=>{this.isEditing=!1,this.value&&(this.inputEl.value=et(this.value))}),this.inputEl.addEventListener("paste",i=>this.handlePaste(i)),this.inputEl.addEventListener("input",i=>this.handleTextInput(i)),this.inputEl.addEventListener("keydown",i=>{i.key==="Enter"&&(this.handleTextInput(i),this.inputEl.blur()),i.key==="Escape"&&(this.value&&(this.inputEl.value=V(this.value)),this.inputEl.blur())}),e.appendChild(this.previewEl),e.appendChild(this.inputEl),t.appendChild(e),this.createPopover(),this.element=t,t}createPopover(){if(this.popoverEl)return;this.backdropEl=document.createElement("div"),this.backdropEl.className="gradient-popover-backdrop",this.backdropEl.style.display="none",this.backdropEl.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation(),this.closePopover()}),this.popoverEl=document.createElement("div"),this.popoverEl.className="gradient-popover",this.popoverEl.style.display="none",this.popoverEl.addEventListener("click",a=>{a.stopPropagation()});const t=document.createElement("div");t.className="gradient-popover-header";const e=document.createElement("span");e.textContent="Fill";const i=document.createElement("button");i.type="button",i.className="gradient-popover-close",i.innerHTML=Et,i.addEventListener("click",()=>this.closePopover()),t.appendChild(e),t.appendChild(i);const s=document.createElement("div");s.className="gradient-editor";const n=this.createTypeTabs();s.appendChild(n);const o=document.createElement("div");o.className="gradient-editor-content",this.updatePopoverContent(o),s.appendChild(o),this.popoverEl.appendChild(t),this.popoverEl.appendChild(s),document.body.appendChild(this.backdropEl),document.body.appendChild(this.popoverEl)}createTypeTabs(){var s,n;const t=document.createElement("div");t.className="gradient-type-tabs";const e=document.createElement("button");e.type="button",e.className=`gradient-type-tab ${((s=this.value)==null?void 0:s.type)==="solid"?"active":""}`,e.textContent="Solid",e.addEventListener("click",()=>this.switchType("solid"));const i=document.createElement("button");return i.type="button",i.className=`gradient-type-tab ${((n=this.value)==null?void 0:n.type)!=="solid"?"active":""}`,i.textContent="Gradient",i.addEventListener("click",()=>{var a,l;const o=((a=this.value)==null?void 0:a.type)==="solid"?"linear":((l=this.value)==null?void 0:l.type)||"linear";this.switchType(o)}),t.appendChild(e),t.appendChild(i),t}switchType(t){var i,s;if(!this.value)return;if(this.value.type=t,t!=="solid"&&(!this.value.stops||this.value.stops.length===0)&&(this.value.stops=[{color:"#a84b4b",position:0,opacity:100},{color:"#786666",position:100,opacity:100}]),this.popoverEl){const n=this.popoverEl.querySelectorAll(".gradient-type-tab");n.forEach(l=>l.classList.remove("active"));const o=n[0],a=n[1];t==="solid"?o==null||o.classList.add("active"):a==null||a.classList.add("active")}const e=(i=this.popoverEl)==null?void 0:i.querySelector(".gradient-editor-content");e&&(this.updatePopoverContent(e),((s=document.activeElement)==null?void 0:s.tagName)!=="INPUT"&&this.repositionPopover()),this.updateUI(),this.triggerChange()}updatePopoverContent(t){t.innerHTML="",this.value&&(this.value.type==="solid"?this.renderSolid(t):this.renderGradient(t))}renderSolid(t){(!this.value||!this.value.stops||!this.value.stops.length)&&(this.value||(this.value=this.defaultValue()),this.value.stops=[{color:"#000000",position:0,opacity:100}]);const e=this.value.stops[0],i=new he({initialColor:e.color,initialOpacity:e.opacity??100,onColorChange:(s,n)=>{if(this.value){const o=H(s);if(o&&o.type!=="solid"){this.value=o,this.switchType(o.type);return}this.value.stops[0].color=s,this.value.stops[0].opacity=n,this.updateUI(),this.triggerChange(),this.pendingSolidColor=s}}});this.solidPicker=i,t.appendChild(i.getElement())}renderGradient(t){this.solidPicker=null;const e=document.createElement("div");e.className="gradient-subtype-inline";const i=document.createElement("select");i.className="gradient-subtype-select";const s=document.createElement("option");s.value="linear",s.textContent="Linear";const n=document.createElement("option");n.value="radial",n.textContent="Radial",i.appendChild(s),i.appendChild(n),i.value=this.value.type==="radial"?"radial":"linear";const o=document.createElement("input");o.type="text",o.inputMode="numeric",o.className="gradient-degree-input",o.value=`${this.value.angle??0}°`,o.style.width="75px",o.style.textAlign="center";const a=document.createElement("button");a.type="button",a.className="gradient-flip-btn",a.innerHTML=le,i.addEventListener("change",()=>{this.switchType(i.value==="radial"?"radial":"linear"),this.updateDegreeVisibility(o)}),o.addEventListener("focus",m=>{const f=m.target;f.value=f.value.replace(/[^0-9-]/g,""),setTimeout(()=>f.select(),0)}),o.addEventListener("input",m=>{const f=parseInt(m.target.value);!Number.isNaN(f)&&this.value&&(this.value.angle=Math.max(0,Math.min(360,f)),this.debouncedPreviewUpdate())}),o.addEventListener("blur",m=>{var y;this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null);const f=m.target;let C=parseInt(f.value);Number.isNaN(C)&&(C=((y=this.value)==null?void 0:y.angle)??0),C=Math.max(0,Math.min(360,C)),this.value&&(this.value.angle=C),f.value=`${C}°`,this.updateGradientPreview(),this.updateUI(),this.triggerChange()}),a.addEventListener("click",()=>{!this.value||!this.value.stops||(this.value.stops.forEach(m=>{m.position=100-m.position}),this.value.stops.sort((m,f)=>m.position-f.position),this.updateGradientPreview(l),this.createHandles(r,l),this.updateStopsList(u),this.updateUI(),this.triggerChange())}),e.appendChild(i),e.appendChild(o),e.appendChild(a),t.appendChild(e),this.updateDegreeVisibility(o);const l=document.createElement("div");l.className="gradient-preview",this.updateGradientPreview(l);const r=document.createElement("div");r.className="gradient-handles",l.appendChild(r),t.appendChild(l),this.createHandles(r,l);const h=document.createElement("div");h.className="gradient-stops-header";const p=document.createElement("span");p.textContent="Stops";const d=document.createElement("button");d.type="button",d.className="gradient-add-stop",d.textContent="+",h.appendChild(p),h.appendChild(d);const u=document.createElement("div");u.className="gradient-stops",t.appendChild(h),t.appendChild(u),this.updateStopsList(u);const g=at(m=>{const f=H(m);f&&(this.value=f,this.switchType(f.type),this.updateUI(),this.triggerChange())},"all");this.recentGradientRefresh=g.refresh,t.appendChild(g.container),d.addEventListener("click",()=>{var m;this.addStop(),this.updateStopsList(u),this.updateGradientPreview(l),this.createHandles(r,l),this.updateUI(),((m=document.activeElement)==null?void 0:m.tagName)!=="INPUT"&&this.repositionPopover(),this.triggerChange()})}updateDegreeVisibility(t){var e;((e=this.value)==null?void 0:e.type)==="radial"?(t.disabled=!0,t.style.opacity="0.5"):(t.disabled=!1,t.style.opacity="1")}updateGradientPreview(t){var i;const e=t||((i=this.popoverEl)==null?void 0:i.querySelector(".gradient-preview"));e&&this.value&&(e.style.background=V(this.value))}debouncedPreviewUpdate(t){this.previewUpdateTimeout&&clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=window.setTimeout(()=>{this.updateGradientPreview(t),this.previewUpdateTimeout=null},16)}createHandles(t,e){t.innerHTML="",!(!this.value||this.value.type==="solid"||!this.value.stops)&&this.value.stops.forEach((i,s)=>{const n=document.createElement("div");n.className="gstop-handle",n.style.left=`${Math.max(0,Math.min(100,i.position))}%`,n.style.top="0%";const o=document.createElement("div");o.className="gstop-chip",o.style.backgroundColor=i.color,n.appendChild(o);let a=!1,l=0,r=0;const h=u=>{a=!0,l=u.clientX,r=this.value.stops[s].position,n.classList.add("selected"),document.addEventListener("mousemove",p),document.addEventListener("mouseup",d),u.preventDefault(),u.stopPropagation()},p=u=>{if(!a||!this.value)return;const g=e.getBoundingClientRect(),m=u.clientX-l;let f=r+m/g.width*100;f=Math.max(0,Math.min(100,f)),this.value.stops[s].position=Math.round(f),n.style.left=`${f}%`,this.updateGradientPreview(),this.updateUI()},d=()=>{a&&(a=!1,n.classList.remove("selected"),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",d),this.value&&(this.value.stops.sort((u,g)=>u.position-g.position),this.createHandles(t,e)),this.updateStopsList(),this.updateUI(),this.triggerChange())};n.addEventListener("mousedown",h),t.appendChild(n)})}updateStopsList(t){var s;const e=t||((s=this.popoverEl)==null?void 0:s.querySelector(".gradient-stops"));if(!e||!this.value||this.value.type==="solid"||!this.value.stops)return;e.innerHTML="";const i=[...this.value.stops].sort((n,o)=>n.position-o.position);i.forEach((n,o)=>{var U,lt;const a=this.value.stops.findIndex((v,w)=>v.position===n.position&&v.color===n.color&&v.opacity===n.opacity&&this.value.stops.slice(0,w).filter(x=>x.position===n.position&&x.color===n.color&&x.opacity===n.opacity).length===i.slice(0,o).filter(x=>x.position===n.position&&x.color===n.color&&x.opacity===n.opacity).length),l=a!==-1?a:o,r=document.createElement("div");r.className="gstop-row";const h=document.createElement("div");h.className="gstop-position-group";const p=document.createElement("input");p.type="text",p.className="gstop-position-input",p.value=`${n.position}%`,p.style.width="60px",h.appendChild(p);const d=document.createElement("div");d.className="gstop-color-container";const u=document.createElement("div");u.className="gstop-color-preview",u.style.backgroundColor=n.color;const g=document.createElement("input");g.type="text",g.className="gstop-color-input",g.value=n.color.replace("#","").toUpperCase();const m=document.createElement("button");m.type="button",m.className="gstop-color-copy",m.textContent="Copy",d.appendChild(u),d.appendChild(g),d.appendChild(m);const f=document.createElement("button");f.type="button",f.className="gstop-del",f.innerHTML=re,f.disabled=(((lt=(U=this.value)==null?void 0:U.stops)==null?void 0:lt.length)||0)<=2,r.appendChild(h),r.appendChild(d),r.appendChild(f),e.appendChild(r);const C=document.createElement("span");C.className="gstop-opacity-label",C.textContent="Opacity";const y=document.createElement("div");y.className="gstop-opacity-group";const E=document.createElement("input");E.type="range",E.className="gstop-opacity-slider",E.min="0",E.max="100",E.value=String(n.opacity??100);const P=I(n.color);E.style.setProperty("--slider-color",`rgb(${P.r}, ${P.g}, ${P.b})`);const M=document.createElement("span");M.className="gstop-opacity-value",M.textContent=`${n.opacity??100}%`,y.appendChild(E),y.appendChild(M);const R=new ce((v,w)=>{g.value=v.replace("#","").toUpperCase(),u.style.backgroundColor=v,this.value.stops[l].color=v,w!==void 0&&(this.value.stops[l].opacity=w,E.value=String(w),M.textContent=`${w}%`);const x=I(v);E.style.setProperty("--slider-color",`rgb(${x.r}, ${x.g}, ${x.b})`),this.updateGradientPreview(),this.createHandles(this.popoverEl.querySelector(".gradient-handles"),this.popoverEl.querySelector(".gradient-preview")),this.updateUI(),this.triggerChange()},"solid");g.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation(),R.open(n.color,g,n.opacity??100)}),g.addEventListener("input",()=>{const v=g.value.trim(),w=v.startsWith("#")?v:`#${v}`;if(/^#[0-9A-Fa-f]{6}$/.test(w)){this.value.stops[l].color=w,u.style.backgroundColor=w;const x=I(w);E.style.setProperty("--slider-color",`rgb(${x.r}, ${x.g}, ${x.b})`),this.debouncedPreviewUpdate()}}),g.addEventListener("blur",()=>{this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null),this.updateGradientPreview(),this.updateUI(),this.triggerChange()}),m.addEventListener("click",async v=>{v.stopPropagation();try{await navigator.clipboard.writeText(`#${g.value}`)}catch{}}),p.addEventListener("focus",v=>{const w=v.target;w.value=w.value.replace("%",""),w.select()}),p.addEventListener("input",v=>{const w=v.target,x=parseInt(w.value.replace(/[^\d]/g,""),10);if(!Number.isNaN(x)){const z=Math.max(0,Math.min(100,x));this.value.stops[l].position=z,w.value=`${z}%`,this.debouncedPreviewUpdate()}}),p.addEventListener("blur",v=>{this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null);const w=v.target,x=parseInt(w.value.replace(/[^\d]/g,""),10);if(Number.isNaN(x))w.value=`${this.value.stops[l].position}%`;else{const z=Math.max(0,Math.min(100,x));this.value.stops[l].position=z,w.value=`${z}%`}this.updateGradientPreview(),this.createHandles(this.popoverEl.querySelector(".gradient-handles"),this.popoverEl.querySelector(".gradient-preview")),this.updateStopsList(),this.updateUI(),this.triggerChange()}),f.addEventListener("click",()=>{var v;(this.value.stops.length||0)<=2||(this.value.stops.splice(l,1),this.createHandles(this.popoverEl.querySelector(".gradient-handles"),this.popoverEl.querySelector(".gradient-preview")),this.updateStopsList(),this.updateGradientPreview(),this.updateUI(),((v=document.activeElement)==null?void 0:v.tagName)!=="INPUT"&&this.repositionPopover(),this.triggerChange())}),E.addEventListener("input",()=>{const v=parseInt(E.value,10);this.value.stops[l].opacity=Math.max(0,Math.min(100,v)),M.textContent=`${this.value.stops[l].opacity}%`,this.debouncedPreviewUpdate()}),E.addEventListener("change",()=>{this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null),this.updateGradientPreview(),this.updateUI(),this.triggerChange()})})}addStop(){if(!this.value||this.value.type==="solid"||!this.value.stops)return;const t=this.value.stops.map(o=>o.position).sort((o,a)=>o-a);let e=50,i=0;for(let o=0;o<t.length-1;o++){const a=t[o+1]-t[o];a>i&&(i=a,e=t[o]+a/2)}const s=this.value.stops.reduce((o,a)=>Math.abs(a.position-e)<Math.abs(o.position-e)?a:o),n={position:Math.round(e),color:s.color,opacity:s.opacity??100};this.value.stops.push(n),this.value.stops.sort((o,a)=>o.position-a.position)}openPopover(){if(this.popoverEl&&(T.openInstance&&T.openInstance!==this&&T.openInstance.closePopover(),!this.isPopoverOpen)){if(this.isPopoverOpen=!0,T.openInstance=this,this.backdropEl&&(this.backdropEl.style.display="block",this.backdropEl.parentElement||document.body.appendChild(this.backdropEl)),this.popoverEl.style.display="flex",this.refreshPopoverContent(),this.element){const t=this.element.getBoundingClientRect(),e=306,i=window.innerWidth,s=window.innerHeight,n=16;this.popoverEl.style.position="fixed",this.popoverEl.style.zIndex="10000",this.popoverEl.style.left="-9999px",this.popoverEl.style.top="0px";const o=this.popoverEl.offsetHeight;let a=t.right+8,l=t.top;const r=i-t.right,h=t.left,p=e+n;r<p&&h>r+100&&(a=t.left-e-8);const d=s-t.bottom,u=t.top;u>=o+n?l=t.top-o-8:d>=o+n?l=t.bottom+8:u>d?(l=t.top-o-8,l<n&&(l=n)):(l=t.bottom+8,l+o>s-n&&(l=s-o-n)),this.popoverEl.style.left=`${a}px`,this.popoverEl.style.top=`${l}px`}setTimeout(()=>document.addEventListener("click",this.onBackgroundClick,!0),200),document.addEventListener("keydown",this.handlePopoverKeydown,!0)}}repositionPopover(){var t;!this.popoverEl||!this.isPopoverOpen||!this.element||((t=document.activeElement)==null?void 0:t.tagName)!=="INPUT"&&requestAnimationFrame(()=>{if(!this.popoverEl||!this.element)return;const e=this.element.getBoundingClientRect(),i=306,s=window.innerWidth,n=window.innerHeight,o=16;this.popoverEl.style.left,this.popoverEl.style.top,this.popoverEl.style.left="-9999px",this.popoverEl.style.top="0px";const a=this.popoverEl.offsetHeight;let l=e.right+8,r=e.top;const h=s-e.right,p=e.left,d=i+o;h<d&&p>h+100&&(l=e.left-i-8);const u=n-e.bottom,g=e.top;g>=a+o?r=e.top-a-8:u>=a+o?r=e.bottom+8:g>u?(r=e.top-a-8,r<o&&(r=o)):(r=e.bottom+8,r+a>n-o&&(r=n-a-o)),this.popoverEl.style.left=`${l}px`,this.popoverEl.style.top=`${r}px`})}refreshPopoverContent(){var n,o;if(!this.popoverEl)return;const t=this.popoverEl.querySelectorAll(".gradient-type-tab");t.forEach(a=>a.classList.remove("active"));const e=t[0],i=t[1];((n=this.value)==null?void 0:n.type)==="solid"?e.classList.add("active"):(i.classList.add("active"),(o=this.recentGradientRefresh)==null||o.call(this)),this.popoverEl.offsetHeight;const s=this.popoverEl.querySelector(".gradient-editor-content");s&&this.updatePopoverContent(s)}closePopover(){if(!(!this.popoverEl||!this.isPopoverOpen)){if(this.isPopoverOpen=!1,this.backdropEl&&(this.backdropEl.style.display="none"),this.popoverEl.style.display="none",document.removeEventListener("click",this.onBackgroundClick,!0),document.removeEventListener("keydown",this.handlePopoverKeydown,!0),this.commitPendingSolidColor(),this.value&&this.value.type!=="solid"){const t=V(this.value);D.addColor(t,"gradient")}this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null),T.openInstance===this&&(T.openInstance=null)}}commitPendingSolidColor(){this.pendingSolidColor&&(this.solidPicker?this.solidPicker.commitRecentColor():D.addColor(this.pendingSolidColor,"solid"),this.pendingSolidColor=null)}handlePaste(t){var i;t.preventDefault();const e=((i=t.clipboardData)==null?void 0:i.getData("text"))||"";this.parseAndSet(e)}handleTextInput(t){const e=t.target;this.parseAndSet(e.value)}parseAndSet(t){const e=H(t.trim());e&&this.setValue(e)}triggerChange(){var t,e;this.value&&((t=this.onChange)==null||t.call(this,this.value),(e=this.detectChange)==null||e.call(this,this.value))}getElement(){return this.element}getValue(){return this.value?V(this.value):""}getCSSValue(){return this.value?V(this.value):""}getCSSForText(){return this.value?this.cssForTextValue():{}}getRawValue(){return this.value}};T.openInstance=null;let _=T;const pe=`
|
|
230
230
|
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
|
|
231
231
|
<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"/>
|
|
232
232
|
</svg>
|
|
@@ -284,4 +284,4 @@
|
|
|
284
284
|
opacity: ${e/100};
|
|
285
285
|
`:`
|
|
286
286
|
background-color: ${i};
|
|
287
|
-
`}}exports.AlignSetting=ft;exports.AnimationSetting=te;exports.BackgroundSettingSet=xe;exports.BorderSettingSet=ue;exports.ButtonSetting=
|
|
287
|
+
`}}exports.AlignSetting=ft;exports.AnimationSetting=te;exports.BackgroundSettingSet=xe;exports.BorderSettingSet=ue;exports.ButtonSetting=Ot;exports.ColorSetting=k;exports.ColorWithOpacitySetting=$;exports.DimensionSetting=Ht;exports.GapSetting=Jt;exports.GradientSetting=_;exports.HeaderTypographySettingSet=ve;exports.HeightSetting=Ft;exports.HtmlSetting=Vt;exports.MarginBottomSetting=Zt;exports.MarginSettingGroup=Ce;exports.MarginTopSetting=Yt;exports.MultiLanguageSetting=Qt;exports.NumberSetting=S;exports.OpacitySetting=mt;exports.SelectApiSettings=qt;exports.SelectSetting=K;exports.Setting=b;exports.SettingGroup=N;exports.StringSetting=gt;exports.TabSettingGroup=nt;exports.TabsSettingGroup=nt;exports.Toggle=jt;exports.UploadSetting=ot;exports.WidthSetting=Ut;exports.asSettingGroupWithSettings=Mt;exports.createSettingGroup=ut;exports.createTabSettingGroup=St;exports.isSetting=O;exports.isSettingChild=st;exports.isSettingGroup=L;exports.iterateSettings=W;
|
|
@@ -237,7 +237,7 @@ function D(c) {
|
|
|
237
237
|
return c instanceof w;
|
|
238
238
|
}
|
|
239
239
|
function L(c) {
|
|
240
|
-
return c instanceof
|
|
240
|
+
return c instanceof P;
|
|
241
241
|
}
|
|
242
242
|
function at(c) {
|
|
243
243
|
return D(c) || L(c);
|
|
@@ -810,11 +810,11 @@ const Y = class Y {
|
|
|
810
810
|
}
|
|
811
811
|
};
|
|
812
812
|
Y.hiddenElements = /* @__PURE__ */ new Set();
|
|
813
|
-
let
|
|
813
|
+
let P = Y;
|
|
814
814
|
function ae(c) {
|
|
815
815
|
return new bt(c);
|
|
816
816
|
}
|
|
817
|
-
class bt extends
|
|
817
|
+
class bt extends P {
|
|
818
818
|
constructor(t) {
|
|
819
819
|
super(t);
|
|
820
820
|
const e = Object.keys(this.settings)[0];
|
|
@@ -866,7 +866,7 @@ class bt extends T {
|
|
|
866
866
|
}
|
|
867
867
|
}
|
|
868
868
|
function wt(c) {
|
|
869
|
-
return new
|
|
869
|
+
return new P(c);
|
|
870
870
|
}
|
|
871
871
|
function le(c) {
|
|
872
872
|
return c;
|
|
@@ -1457,7 +1457,7 @@ class he extends w {
|
|
|
1457
1457
|
suffix: "px",
|
|
1458
1458
|
minValue: this.minHeight,
|
|
1459
1459
|
maxValue: this.maxHeight,
|
|
1460
|
-
icon:
|
|
1460
|
+
icon: Pt
|
|
1461
1461
|
}), this.widthSetting.setOnChange(this.handleWidthChange.bind(this)), this.heightSetting.setOnChange(this.handleHeightChange.bind(this));
|
|
1462
1462
|
}
|
|
1463
1463
|
handleWidthChange(t) {
|
|
@@ -1553,18 +1553,18 @@ class he extends w {
|
|
|
1553
1553
|
}
|
|
1554
1554
|
const Vt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
|
|
1555
1555
|
<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="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1556
|
-
</svg>`,
|
|
1556
|
+
</svg>`, Pt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
|
|
1557
1557
|
<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="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1558
1558
|
</svg>`, Q = `
|
|
1559
1559
|
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="16" viewBox="0 0 15 16" fill="none">
|
|
1560
1560
|
<path d="M5 10.5L7.5 8M7.5 8L10 10.5M7.5 8V13.625M12.5 10.9643C13.2634 10.3338 13.75 9.37996 13.75 8.3125C13.75 6.41402 12.211 4.875 10.3125 4.875C10.1759 4.875 10.0482 4.80375 9.97882 4.68609C9.16379 3.30302 7.65902 2.375 5.9375 2.375C3.34867 2.375 1.25 4.47367 1.25 7.0625C1.25 8.35381 1.77215 9.52317 2.61684 10.371" stroke="#475467" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1561
1561
|
</svg>
|
|
1562
|
-
`,
|
|
1562
|
+
`, Tt = `
|
|
1563
1563
|
<svg width="91" height="71" viewBox="0 0 91 71" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
1564
1564
|
<rect width="91" height="71" rx="4" fill="#F2F4F7"/>
|
|
1565
1565
|
<path d="M37 31.5L39.5 29M39.5 29L42 31.5M39.5 29V34.625M44.5 31.9643C45.2634 31.3338 45.75 30.38 45.75 29.3125C45.75 27.414 44.211 25.875 42.3125 25.875C42.1759 25.875 42.0482 25.8037 41.9788 25.6861C41.1638 24.303 39.659 23.375 37.9375 23.375C35.3487 23.375 33.25 25.4737 33.25 28.0625C33.25 29.3538 33.7721 30.5232 34.6168 31.371" stroke="#475467" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1566
1566
|
</svg>
|
|
1567
|
-
`,
|
|
1567
|
+
`, Ot = `
|
|
1568
1568
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 12 12" fill="none">
|
|
1569
1569
|
<path d="M8 3V2.6C8 2.03995 8 1.75992 7.89101 1.54601C7.79513 1.35785 7.64215 1.20487 7.45399 1.10899C7.24008 1 6.96005 1 6.4 1H5.6C5.03995 1 4.75992 1 4.54601 1.10899C4.35785 1.20487 4.20487 1.35785 4.10899 1.54601C4 1.75992 4 2.03995 4 2.6V3M5 5.75V8.25M7 5.75V8.25M1.5 3H10.5M9.5 3V8.6C9.5 9.44008 9.5 9.86012 9.33651 10.181C9.1927 10.4632 8.96323 10.6927 8.68099 10.8365C8.36012 11 7.94008 11 7.1 11H4.9C4.05992 11 3.63988 11 3.31901 10.8365C3.03677 10.6927 2.8073 10.4632 2.66349 10.181C2.5 9.86012 2.5 9.44008 2.5 8.6V3" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1570
1570
|
</svg>
|
|
@@ -1685,9 +1685,9 @@ class pt extends w {
|
|
|
1685
1685
|
const s = this.value && this.value !== "";
|
|
1686
1686
|
s || i.classList.add("no-image");
|
|
1687
1687
|
const n = document.createElement("div");
|
|
1688
|
-
if (n.className = "preview-placeholder", n.innerHTML =
|
|
1688
|
+
if (n.className = "preview-placeholder", n.innerHTML = Tt, this.previewWrapper = document.createElement("div"), this.previewWrapper.className = "preview-wrapper", this.loadingSpinner = document.createElement("div"), this.loadingSpinner.className = "loading-spinner", this.loadingSpinner.innerHTML = Ht, this.loadingSpinner.style.display = "none", this.previewWrapper.appendChild(this.loadingSpinner), this.previewEl = document.createElement("img"), this.previewEl.className = "upload-preview", this.props.delete) {
|
|
1689
1689
|
const a = document.createElement("button");
|
|
1690
|
-
a.className = "delete-button", a.type = "button", a.title = "Delete image", a.innerHTML =
|
|
1690
|
+
a.className = "delete-button", a.type = "button", a.title = "Delete image", a.innerHTML = Ot, this.previewWrapper.appendChild(a), a.onclick = (l) => {
|
|
1691
1691
|
var r;
|
|
1692
1692
|
l.stopPropagation(), this.value = "", this.updatePreviewState(null), (r = this.onChange) == null || r.call(this, ""), this.hideError();
|
|
1693
1693
|
};
|
|
@@ -2433,7 +2433,7 @@ const Gt = (c, t) => {
|
|
|
2433
2433
|
opacity: e.opacity === void 0 || Number.isNaN(e.opacity) ? 100 : e.opacity
|
|
2434
2434
|
}))
|
|
2435
2435
|
};
|
|
2436
|
-
},
|
|
2436
|
+
}, O = (c) => {
|
|
2437
2437
|
const t = c.replace(/;$/, "").trim();
|
|
2438
2438
|
if (Wt(t)) {
|
|
2439
2439
|
const s = gt(t);
|
|
@@ -2492,7 +2492,7 @@ const Gt = (c, t) => {
|
|
|
2492
2492
|
const e = /* @__PURE__ */ new Set(), i = [];
|
|
2493
2493
|
return t.forEach((s) => {
|
|
2494
2494
|
let n = G(s);
|
|
2495
|
-
n ||
|
|
2495
|
+
n || O(s) && (n = s), n && (e.has(n) || (e.add(n), i.push(n)));
|
|
2496
2496
|
}), i.slice(0, this.MAX_COLORS);
|
|
2497
2497
|
}
|
|
2498
2498
|
static ensureLoaded() {
|
|
@@ -2539,7 +2539,7 @@ const Gt = (c, t) => {
|
|
|
2539
2539
|
if (i)
|
|
2540
2540
|
s = "solid";
|
|
2541
2541
|
else {
|
|
2542
|
-
const l =
|
|
2542
|
+
const l = O(t);
|
|
2543
2543
|
l && (i = t, s = l.type === "solid" ? "solid" : "gradient");
|
|
2544
2544
|
}
|
|
2545
2545
|
if (!i) return;
|
|
@@ -2652,10 +2652,10 @@ class Xt {
|
|
|
2652
2652
|
y.value = "hsl", y.textContent = "HSL", m.appendChild(f), m.appendChild(C), m.appendChild(y);
|
|
2653
2653
|
const E = document.createElement("input");
|
|
2654
2654
|
E.type = "text", E.className = "color-picker-color-input", E.value = this.currentColor, this.input = E;
|
|
2655
|
-
const
|
|
2656
|
-
|
|
2655
|
+
const T = document.createElement("div");
|
|
2656
|
+
T.className = "color-picker-input-container";
|
|
2657
2657
|
const k = document.createElement("button");
|
|
2658
|
-
return k.className = "color-picker-copy-inside", k.textContent = "Copy",
|
|
2658
|
+
return k.className = "color-picker-copy-inside", k.textContent = "Copy", T.appendChild(E), T.appendChild(k), g.appendChild(m), g.appendChild(T), t.appendChild(e), t.appendChild(n), t.appendChild(a), t.appendChild(p), t.appendChild(u.container), t.appendChild(g), t.addEventListener("click", (B) => B.stopPropagation()), this.bind(n, r, p, E, m, k, l), t;
|
|
2659
2659
|
}
|
|
2660
2660
|
createBackdrop() {
|
|
2661
2661
|
const t = document.createElement("div");
|
|
@@ -3061,19 +3061,23 @@ const V = class V extends w {
|
|
|
3061
3061
|
const e = typeof t.default == "string" ? void 0 : t.default;
|
|
3062
3062
|
super({
|
|
3063
3063
|
...t,
|
|
3064
|
-
title: t.title || "
|
|
3064
|
+
title: t.title || "Color",
|
|
3065
3065
|
default: e
|
|
3066
3066
|
}), this.inputType = {
|
|
3067
3067
|
type: "text",
|
|
3068
3068
|
angle: "number",
|
|
3069
3069
|
stops: "text"
|
|
3070
|
-
}, this.element = null, this.previewEl = null, this.inputEl = void 0, this.popoverEl = null, this.isPopoverOpen = !1, this.isEditing = !1, this.previewUpdateTimeout = null, this.solidPicker = null, this.pendingSolidColor = null, this.onBackgroundClick = (i) => {
|
|
3071
|
-
var
|
|
3070
|
+
}, this.element = null, this.previewEl = null, this.inputEl = void 0, this.popoverEl = null, this.backdropEl = null, this.isPopoverOpen = !1, this.isEditing = !1, this.previewUpdateTimeout = null, this.solidPicker = null, this.pendingSolidColor = null, this.onBackgroundClick = (i) => {
|
|
3071
|
+
var d;
|
|
3072
3072
|
if (!this.popoverEl || !this.isPopoverOpen) return;
|
|
3073
|
-
const s = i.target, n = this.popoverEl.contains(s), o = (
|
|
3073
|
+
const s = i.target, n = this.popoverEl.contains(s), o = (d = this.element) == null ? void 0 : d.contains(s), a = document.querySelectorAll(".custom-color-picker"), l = Array.from(a).some((u) => u.contains(s)), r = s.closest(
|
|
3074
3074
|
".gstop-color-input, .gradient-mini-preview, .gstop-color-preview"
|
|
3075
|
-
), h = s.classList.contains(
|
|
3076
|
-
|
|
3075
|
+
), h = s.classList.contains(
|
|
3076
|
+
"color-picker-backdrop"
|
|
3077
|
+
), p = s.classList.contains(
|
|
3078
|
+
"gradient-popover-backdrop"
|
|
3079
|
+
);
|
|
3080
|
+
!n && !o && !l && !r && !h && !p && this.closePopover();
|
|
3077
3081
|
}, this.handlePopoverKeydown = (i) => {
|
|
3078
3082
|
if (this.isPopoverOpen) {
|
|
3079
3083
|
if (i.key === "Escape") {
|
|
@@ -3092,7 +3096,7 @@ const V = class V extends w {
|
|
|
3092
3096
|
defaultValue() {
|
|
3093
3097
|
const t = this.originalDefault;
|
|
3094
3098
|
if (typeof t == "string") {
|
|
3095
|
-
const i =
|
|
3099
|
+
const i = O(t);
|
|
3096
3100
|
if (i)
|
|
3097
3101
|
return $(i);
|
|
3098
3102
|
}
|
|
@@ -3108,7 +3112,7 @@ const V = class V extends w {
|
|
|
3108
3112
|
setValue(t) {
|
|
3109
3113
|
var i, s;
|
|
3110
3114
|
let e = null;
|
|
3111
|
-
typeof t == "string" ? e =
|
|
3115
|
+
typeof t == "string" ? e = O(t) : t && typeof t == "object" && (e = $(t)), e || (e = this.defaultValue()), this.value = e, this.updateUI(), this.isPopoverOpen && this.refreshPopoverContent(), (i = this.onChange) == null || i.call(this, this.value), (s = this.detectChange) == null || s.call(this, this.value), this.pendingSolidColor = null;
|
|
3112
3116
|
}
|
|
3113
3117
|
updateUI() {
|
|
3114
3118
|
if (this.previewEl && this.value)
|
|
@@ -3137,7 +3141,7 @@ const V = class V extends w {
|
|
|
3137
3141
|
s.className = "input-label", s.textContent = this.props.title, i.appendChild(s), t.appendChild(i);
|
|
3138
3142
|
}
|
|
3139
3143
|
const e = document.createElement("div");
|
|
3140
|
-
return e.className = "gradient-input-wrapper", this.previewEl = document.createElement("div"), this.previewEl.className = "gradient-mini-preview", this.previewEl.style.background = this.value ? N(this.value) : "linear-gradient(90deg, #a84b4b 0%, #786666 100%)", this.previewEl.addEventListener("
|
|
3144
|
+
return e.className = "gradient-input-wrapper", this.previewEl = document.createElement("div"), this.previewEl.className = "gradient-mini-preview", this.previewEl.style.background = this.value ? N(this.value) : "linear-gradient(90deg, #a84b4b 0%, #786666 100%)", this.previewEl.addEventListener("click", (i) => {
|
|
3141
3145
|
i.preventDefault(), i.stopPropagation(), this.openPopover();
|
|
3142
3146
|
}), this.inputEl = document.createElement("input"), this.inputEl.type = "text", this.inputEl.className = "gradient-text-input", this.inputEl.placeholder = "Enter gradient CSS or paste color...", this.inputEl.value = this.value ? tt(this.value) : "", this.inputEl.readOnly = !1, this.inputEl.addEventListener("focus", () => {
|
|
3143
3147
|
this.isEditing = !0, this.value && (this.inputEl.value = N(this.value));
|
|
@@ -3152,7 +3156,11 @@ const V = class V extends w {
|
|
|
3152
3156
|
}
|
|
3153
3157
|
createPopover() {
|
|
3154
3158
|
if (this.popoverEl) return;
|
|
3155
|
-
this.
|
|
3159
|
+
this.backdropEl = document.createElement("div"), this.backdropEl.className = "gradient-popover-backdrop", this.backdropEl.style.display = "none", this.backdropEl.addEventListener("click", (a) => {
|
|
3160
|
+
a.preventDefault(), a.stopPropagation(), this.closePopover();
|
|
3161
|
+
}), this.popoverEl = document.createElement("div"), this.popoverEl.className = "gradient-popover", this.popoverEl.style.display = "none", this.popoverEl.addEventListener("click", (a) => {
|
|
3162
|
+
a.stopPropagation();
|
|
3163
|
+
});
|
|
3156
3164
|
const t = document.createElement("div");
|
|
3157
3165
|
t.className = "gradient-popover-header";
|
|
3158
3166
|
const e = document.createElement("span");
|
|
@@ -3164,7 +3172,7 @@ const V = class V extends w {
|
|
|
3164
3172
|
const n = this.createTypeTabs();
|
|
3165
3173
|
s.appendChild(n);
|
|
3166
3174
|
const o = document.createElement("div");
|
|
3167
|
-
o.className = "gradient-editor-content", this.updatePopoverContent(o), s.appendChild(o), this.popoverEl.appendChild(t), this.popoverEl.appendChild(s), document.body.appendChild(this.popoverEl);
|
|
3175
|
+
o.className = "gradient-editor-content", this.updatePopoverContent(o), s.appendChild(o), this.popoverEl.appendChild(t), this.popoverEl.appendChild(s), document.body.appendChild(this.backdropEl), document.body.appendChild(this.popoverEl);
|
|
3168
3176
|
}
|
|
3169
3177
|
createTypeTabs() {
|
|
3170
3178
|
var s, n;
|
|
@@ -3204,7 +3212,7 @@ const V = class V extends w {
|
|
|
3204
3212
|
initialOpacity: e.opacity ?? 100,
|
|
3205
3213
|
onColorChange: (s, n) => {
|
|
3206
3214
|
if (this.value) {
|
|
3207
|
-
const o =
|
|
3215
|
+
const o = O(s);
|
|
3208
3216
|
if (o && o.type !== "solid") {
|
|
3209
3217
|
this.value = o, this.switchType(o.type);
|
|
3210
3218
|
return;
|
|
@@ -3260,7 +3268,7 @@ const V = class V extends w {
|
|
|
3260
3268
|
const u = document.createElement("div");
|
|
3261
3269
|
u.className = "gradient-stops", t.appendChild(h), t.appendChild(u), this.updateStopsList(u);
|
|
3262
3270
|
const g = st((m) => {
|
|
3263
|
-
const f =
|
|
3271
|
+
const f = O(m);
|
|
3264
3272
|
f && (this.value = f, this.switchType(f.type), this.updateUI(), this.triggerChange());
|
|
3265
3273
|
}, "all");
|
|
3266
3274
|
this.recentGradientRefresh = g.refresh, t.appendChild(g.container), d.addEventListener("click", () => {
|
|
@@ -3341,10 +3349,10 @@ const V = class V extends w {
|
|
|
3341
3349
|
y.className = "gstop-opacity-group";
|
|
3342
3350
|
const E = document.createElement("input");
|
|
3343
3351
|
E.type = "range", E.className = "gstop-opacity-slider", E.min = "0", E.max = "100", E.value = String(n.opacity ?? 100);
|
|
3344
|
-
const
|
|
3352
|
+
const T = S(n.color);
|
|
3345
3353
|
E.style.setProperty(
|
|
3346
3354
|
"--slider-color",
|
|
3347
|
-
`rgb(${
|
|
3355
|
+
`rgb(${T.r}, ${T.g}, ${T.b})`
|
|
3348
3356
|
);
|
|
3349
3357
|
const k = document.createElement("span");
|
|
3350
3358
|
k.className = "gstop-opacity-value", k.textContent = `${n.opacity ?? 100}%`, y.appendChild(E), y.appendChild(k);
|
|
@@ -3434,7 +3442,7 @@ const V = class V extends w {
|
|
|
3434
3442
|
}
|
|
3435
3443
|
openPopover() {
|
|
3436
3444
|
if (this.popoverEl && (V.openInstance && V.openInstance !== this && V.openInstance.closePopover(), !this.isPopoverOpen)) {
|
|
3437
|
-
if (this.isPopoverOpen = !0, V.openInstance = this, this.popoverEl.style.display = "flex", this.refreshPopoverContent(), this.element) {
|
|
3445
|
+
if (this.isPopoverOpen = !0, V.openInstance = this, this.backdropEl && (this.backdropEl.style.display = "block", this.backdropEl.parentElement || document.body.appendChild(this.backdropEl)), this.popoverEl.style.display = "flex", this.refreshPopoverContent(), this.element) {
|
|
3438
3446
|
const t = this.element.getBoundingClientRect(), e = 306, i = window.innerWidth, s = window.innerHeight, n = 16;
|
|
3439
3447
|
this.popoverEl.style.position = "fixed", this.popoverEl.style.zIndex = "10000", this.popoverEl.style.left = "-9999px", this.popoverEl.style.top = "0px";
|
|
3440
3448
|
const o = this.popoverEl.offsetHeight;
|
|
@@ -3446,7 +3454,7 @@ const V = class V extends w {
|
|
|
3446
3454
|
}
|
|
3447
3455
|
setTimeout(
|
|
3448
3456
|
() => document.addEventListener("click", this.onBackgroundClick, !0),
|
|
3449
|
-
|
|
3457
|
+
200
|
|
3450
3458
|
), document.addEventListener("keydown", this.handlePopoverKeydown, !0);
|
|
3451
3459
|
}
|
|
3452
3460
|
}
|
|
@@ -3476,7 +3484,7 @@ const V = class V extends w {
|
|
|
3476
3484
|
}
|
|
3477
3485
|
closePopover() {
|
|
3478
3486
|
if (!(!this.popoverEl || !this.isPopoverOpen)) {
|
|
3479
|
-
if (this.isPopoverOpen = !1, this.popoverEl.style.display = "none", document.removeEventListener("click", this.onBackgroundClick, !0), document.removeEventListener("keydown", this.handlePopoverKeydown, !0), this.commitPendingSolidColor(), this.value && this.value.type !== "solid") {
|
|
3487
|
+
if (this.isPopoverOpen = !1, this.backdropEl && (this.backdropEl.style.display = "none"), this.popoverEl.style.display = "none", document.removeEventListener("click", this.onBackgroundClick, !0), document.removeEventListener("keydown", this.handlePopoverKeydown, !0), this.commitPendingSolidColor(), this.value && this.value.type !== "solid") {
|
|
3480
3488
|
const t = N(this.value);
|
|
3481
3489
|
A.addColor(t, "gradient");
|
|
3482
3490
|
}
|
|
@@ -3497,7 +3505,7 @@ const V = class V extends w {
|
|
|
3497
3505
|
this.parseAndSet(e.value);
|
|
3498
3506
|
}
|
|
3499
3507
|
parseAndSet(t) {
|
|
3500
|
-
const e =
|
|
3508
|
+
const e = O(t.trim());
|
|
3501
3509
|
e && this.setValue(e);
|
|
3502
3510
|
}
|
|
3503
3511
|
triggerChange() {
|
|
@@ -3531,7 +3539,7 @@ const Kt = `
|
|
|
3531
3539
|
<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"/>
|
|
3532
3540
|
</svg>
|
|
3533
3541
|
`;
|
|
3534
|
-
class Ee extends
|
|
3542
|
+
class Ee extends P {
|
|
3535
3543
|
constructor(t) {
|
|
3536
3544
|
super({
|
|
3537
3545
|
title: "Border",
|
|
@@ -3586,7 +3594,7 @@ const Qt = `
|
|
|
3586
3594
|
<path d="M6 5.75H12M9 5.75V13.25M5.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.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.35V12.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.25Z" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3587
3595
|
</svg>
|
|
3588
3596
|
`;
|
|
3589
|
-
class be extends
|
|
3597
|
+
class be extends P {
|
|
3590
3598
|
constructor(t = {}) {
|
|
3591
3599
|
const { showAlign: e = t.showAlign ?? !0, ...i } = t;
|
|
3592
3600
|
super({
|
|
@@ -3711,7 +3719,7 @@ class _ extends w {
|
|
|
3711
3719
|
}), i;
|
|
3712
3720
|
}
|
|
3713
3721
|
}
|
|
3714
|
-
class we extends
|
|
3722
|
+
class we extends P {
|
|
3715
3723
|
constructor(t) {
|
|
3716
3724
|
super({
|
|
3717
3725
|
title: "Margins",
|
|
@@ -3763,7 +3771,7 @@ const ie = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewB
|
|
|
3763
3771
|
</svg>`, oe = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
|
|
3764
3772
|
<path d="M5.625 2.75H5.6325M5.625 9.5H5.6325M5.625 16.25H5.6325M12.375 2.75H12.3825M12.375 9.5H12.3825M12.375 16.25H12.3825M9 2.75H9.0075M9 9.5H9.0075M9 16.25H9.0075M9 12.875H9.0075M9 6.125H9.0075M15.75 2.75H15.7575M15.75 9.5H15.7575M15.75 16.25H15.7575M15.75 12.875H15.7575M15.75 6.125H15.7575M2.25 16.25V2.75" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3765
3773
|
</svg>`;
|
|
3766
|
-
class xe extends
|
|
3774
|
+
class xe extends P {
|
|
3767
3775
|
constructor(t) {
|
|
3768
3776
|
super({
|
|
3769
3777
|
title: "Background Image",
|
|
@@ -3825,7 +3833,7 @@ export {
|
|
|
3825
3833
|
ue as SelectApiSettings,
|
|
3826
3834
|
it as SelectSetting,
|
|
3827
3835
|
w as Setting,
|
|
3828
|
-
|
|
3836
|
+
P as SettingGroup,
|
|
3829
3837
|
xt as StringSetting,
|
|
3830
3838
|
bt as TabSettingGroup,
|
|
3831
3839
|
bt as TabsSettingGroup,
|
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap";@import"https://fonts.cdnfonts.com/css/satoshi";:root{--color-text: #1d2939;--color-text-secondary: #667085;--color-text-muted: #98a2b3;--color-border: #e4e7ec;--color-border-hover: #d0d5dd;--color-bg: #fff;--color-bg-hover: #f9fafb;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--font-size-xs: 10px;--font-size-sm: 12px;--font-size-md: 14px;--font-size-lg: 16px;--transition-fast: .15s ease;--transition-normal: .3s ease}.icon-container{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs)}.input-icon{display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);flex-shrink:0;width:18px;height:18px;transition:color var(--transition-fast)}.input-label{color:var(--color-text-secondary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-sm);font-style:normal;font-weight:400;line-height:1.4;transition:color var(--transition-fast)}.input-container{display:inline-flex;align-items:center;position:relative;width:100%}.input-wrapper{position:relative;width:100%;min-width:0}.base-input{width:100%;height:36px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md);font-weight:400;line-height:1.4;transition:all var(--transition-fast);outline:none}.base-input::placeholder{color:var(--color-text-muted)}.base-input:hover{border-color:var(--color-border-hover);background:var(--color-bg-hover)}.base-input:focus{border-color:var(--color-border-focus);background:var(--color-bg-focus)}.base-input:disabled{background:#f9fafb;color:var(--color-text-muted);cursor:not-allowed;opacity:.7}.with-suffix{padding-right:44px}.input-suffix{position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none;font-size:var(--font-size-sm);font-weight:500;z-index:1}.with-prefix{padding-left:44px}.input-prefix{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none;font-size:var(--font-size-sm);font-weight:500;z-index:1}.setting-item{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);align-items:center;min-height:40px;padding:var(--space-sm) 0}.setting-item.full-width{grid-template-columns:1fr}.setting-item.stacked{grid-template-columns:1fr;gap:var(--space-xs);align-items:stretch}.setting-item-label{display:flex;align-items:center;gap:var(--space-xs);min-width:0}.setting-item-control{min-width:0;justify-self:end}.setting-item.stacked .setting-item-control{max-width:none;justify-self:stretch}.input-error{border-color:#f04438!important;background:#fff4f4!important;color:#f04438!important}.input-error:focus{border-color:#f04438!important;box-shadow:0 0 0 4px #f044381a!important}.error-message{color:#f04438;font-size:var(--font-size-xs);margin-top:var(--space-xs);display:flex;align-items:center;gap:var(--space-xs)}.input-success{border-color:#02cc59!important;background:#f0fdf4!important}.input-success:focus{border-color:#02cc59!important}.input-loading{position:relative;color:var(--color-text-muted);background:#f9fafb;pointer-events:none}.input-loading:after{content:"";position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%);width:16px;height:16px;border:2px solid #e4e7ec;border-top:2px solid var(--color-border-focus);border-radius:50%;animation:spin 1s linear infinite}.setting-group .setting-group .setting-item{min-height:36px;padding:6px 0}.setting-group .setting-group .base-input{height:32px;padding:6px 10px;font-size:13px}.setting-group .setting-group .input-label{font-size:11px}.setting-group .setting-group .setting-group .setting-item{min-height:32px;padding:4px 0}.setting-group .setting-group .setting-group .base-input{height:28px;padding:4px 8px;font-size:12px}.setting-group .setting-group .setting-group .input-label{font-size:10px}@media (max-width: 480px){.setting-item{grid-template-columns:1fr;gap:var(--space-xs)}.setting-item-control{max-width:none;justify-self:stretch}.base-input{font-size:var(--font-size-md)}}@media (prefers-color-scheme: dark){:root{--color-text: #f9fafb;--color-text-secondary: #d0d5dd;--color-text-muted: #667085;--color-border: #344054;--color-border-hover: #475467;--color-bg: #1d2939;--color-bg-hover: #344054}}.base-input:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.compact .setting-item{min-height:32px;padding:4px 0}.compact .base-input{height:32px;padding:6px 10px;font-size:13px}.compact .input-label{font-size:11px}@media (prefers-contrast: high){.base-input{border-width:2px}.base-input:focus{border-width:3px}}.string-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;min-height:40px}.string-setting-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none}.string-setting-wrapper .string-setting-wrapper{display:block;width:100%}.color-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;min-height:40px}.color-input-wrapper{position:relative;width:100%;justify-self:end}.color-text-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-left:36px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none;text-align:center}.color-text-input::placeholder{color:var(--color-text-muted, #98a2b3)}.color-text-input:hover{border-color:var(--color-border-hover, #d0d5dd);background:var(--color-bg-hover, #f9fafb)}.color-text-input:focus{background:var(--color-bg-focus, rgba(2, 204, 89, .05))}.color-text-input:disabled{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.color-picker{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;opacity:0;cursor:pointer;z-index:2}.color-preview{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border, #e4e7ec);flex-shrink:0;transition:transform var(--transition-fast, .15s ease);pointer-events:none;background-color:#fff}.color-preview:hover{transform:translateY(-50%) scale(1.05)}.setting-group .setting-group .color-setting-wrapper{min-height:36px}.setting-group .setting-group .color-input-wrapper{max-width:120px}.setting-group .setting-group .color-text-input{height:32px;padding:6px 10px 6px 32px;font-size:13px}.setting-group .setting-group .color-preview,.setting-group .setting-group .color-picker{left:6px;width:18px;height:18px}.setting-group .setting-group .setting-group .color-setting-wrapper{min-height:32px}.setting-group .setting-group .setting-group .color-input-wrapper{max-width:100px}.setting-group .setting-group .setting-group .color-text-input{height:28px;padding:4px 8px 4px 28px;font-size:12px}.setting-group .setting-group .setting-group .color-preview,.setting-group .setting-group .setting-group .color-picker{left:4px;width:16px;height:16px}.color-input-wrapper.error .color-text-input{border-color:#f04438;background:#fff4f4;color:#f04438}.color-input-wrapper.error .color-text-input:focus{border-color:#f04438;box-shadow:0 0 0 4px #f044381a}.color-input-wrapper.disabled .color-text-input{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.color-picker:focus-visible+.color-preview{outline-offset:2px}.color-with-opacity-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;min-height:40px}.color-with-opacity-controls-wrapper{display:grid;grid-template-columns:1fr;gap:var(--space-sm, 8px);justify-self:end;width:100%}.color-with-opacity-input-wrapper,.color-with-opacity-opacity-wrapper{position:relative;width:100%}.color-with-opacity-text-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-left:36px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none;text-align:center}.color-with-opacity-text-input::placeholder{color:var(--color-text-muted, #98a2b3)}.color-with-opacity-text-input:hover{border-color:var(--color-border-hover, #d0d5dd);background:var(--color-bg-hover, #f9fafb)}.color-with-opacity-text-input:disabled{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.color-with-opacity-picker{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;opacity:0;cursor:pointer;z-index:2}.color-with-opacity-preview{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border, #e4e7ec);flex-shrink:0;transition:transform var(--transition-fast, .15s ease);pointer-events:none;background-color:#fff;cursor:pointer;overflow:hidden}.color-with-opacity-preview:hover{transform:translateY(-50%) scale(1.05)}.color-with-opacity-preview:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0px;z-index:-1}.color-with-opacity-opacity-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-right:20px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none;text-align:center}.color-with-opacity-opacity-input::placeholder{color:var(--color-text-muted, #98a2b3)}.color-with-opacity-opacity-input:hover{border-color:var(--color-border-hover, #d0d5dd);background:var(--color-bg-hover, #f9fafb)}.color-with-opacity-opacity-suffix{position:absolute;right:var(--space-sm, 8px);top:50%;transform:translateY(-50%);color:var(--color-text-muted, #98a2b3);font-size:var(--font-size-sm, 12px);font-weight:500;pointer-events:none;z-index:1}.color-with-opacity-opacity-input::-webkit-inner-spin-button,.color-with-opacity-opacity-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.color-with-opacity-opacity-input[type=number]{-moz-appearance:textfield}.setting-group .setting-group .color-with-opacity-setting-wrapper{min-height:36px}.setting-group .setting-group .color-with-opacity-controls-wrapper{max-width:120px}.setting-group .setting-group .color-with-opacity-input-wrapper,.setting-group .setting-group .color-with-opacity-opacity-wrapper{width:100%}.setting-group .setting-group .color-with-opacity-text-input,.setting-group .setting-group .color-with-opacity-opacity-input{height:32px;padding:6px 10px;font-size:13px}.setting-group .setting-group .color-with-opacity-text-input{padding-left:32px}.setting-group .setting-group .color-with-opacity-preview,.setting-group .setting-group .color-with-opacity-picker{left:6px;width:18px;height:18px}.setting-group .setting-group .color-with-opacity-opacity-input{padding-right:20px}.setting-group .setting-group .color-with-opacity-opacity-suffix{right:8px;font-size:11px}.setting-group .setting-group .setting-group .color-with-opacity-setting-wrapper{min-height:32px}.setting-group .setting-group .setting-group .color-with-opacity-controls-wrapper{max-width:100px}.setting-group .setting-group .setting-group .color-with-opacity-input-wrapper,.setting-group .setting-group .setting-group .color-with-opacity-opacity-wrapper{width:100%}.setting-group .setting-group .setting-group .color-with-opacity-text-input,.setting-group .setting-group .setting-group .color-with-opacity-opacity-input{height:28px;padding:4px 8px;font-size:12px}.setting-group .setting-group .setting-group .color-with-opacity-text-input{padding-left:28px}.setting-group .setting-group .setting-group .color-with-opacity-preview,.setting-group .setting-group .setting-group .color-with-opacity-picker{left:4px;width:16px;height:16px}.setting-group .setting-group .setting-group .color-with-opacity-opacity-input{padding-right:20px}.setting-group .setting-group .setting-group .color-with-opacity-opacity-suffix{right:8px;font-size:10px}.color-with-opacity-input-wrapper.error .color-with-opacity-text-input{border-color:#f04438;background:#fff4f4;color:#f04438}.color-with-opacity-input-wrapper.disabled .color-with-opacity-text-input{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.html-setting-wrapper{display:flex;flex-direction:column;gap:8px;position:relative;width:100%}.html-setting-wrapper .icon-container{display:flex;align-items:center;gap:8px;margin-bottom:4px}.html-setting-wrapper .icon-container label{color:var(--Gray-800, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;font-weight:500;line-height:20px;margin:0}.html-setting-wrapper .icon-container img{width:20px;height:20px;object-fit:contain}.html-setting-textarea{width:100%;min-height:120px;padding:12px;font-size:13px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;line-height:1.4;border-radius:8px;color:var(--Gray-900, #101828);border:1px solid var(--Gray-300, #d0d5dd);background:var(--Base-White, #fff);resize:vertical;min-width:0;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.html-setting-textarea:focus{outline:none}.html-setting-textarea::placeholder{color:var(--Gray-500, #667085);font-style:italic}.html-setting-textarea:disabled{background-color:var(--Gray-50, #f9fafb);color:var(--Gray-500, #667085);cursor:not-allowed}@media (max-width: 768px){.html-setting-textarea{font-size:12px;padding:10px;min-height:100px}}.html-setting-textarea::-webkit-scrollbar{width:8px}.html-setting-textarea::-webkit-scrollbar-track{background:var(--Gray-100, #f2f4f7);border-radius:4px}.html-setting-textarea::-webkit-scrollbar-thumb{background-color:var(--Gray-300, #d0d5dd);border-radius:4px;border:2px solid transparent;background-clip:content-box}.html-setting-textarea::-webkit-scrollbar-thumb:hover{background-color:var(--Gray-400, #98a2b3)}.html-setting-textarea{scrollbar-width:thin;scrollbar-color:var(--Gray-300, #d0d5dd) var(--Gray-100, #f2f4f7)}.html-setting-textarea[data-syntax=html]{font-family:Monaco,Menlo,Ubuntu Mono,Courier New,monospace;-moz-tab-size:2;tab-size:2}.number-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;min-height:40px}.number-setting-input-container{position:relative;width:100%;justify-self:end}.number-setting-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-right:44px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none}.number-setting-input::placeholder{color:var(--color-text-muted, #98a2b3)}.number-setting-input:hover{border-color:var(--color-border-hover, #d0d5dd);background:var(--color-bg-hover, #f9fafb)}.number-setting-input:focus{background:var(--color-bg-focus, rgba(2, 204, 89, .05))}.number-setting-input:disabled{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.suffix-label{position:absolute;right:var(--space-md, 12px);top:50%;transform:translateY(-50%);color:var(--color-text-muted, #98a2b3);font-size:var(--font-size-sm, 12px);font-weight:500;pointer-events:none;z-index:1}.number-setting-input::-webkit-inner-spin-button,.number-setting-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-setting-input[type=number]{-moz-appearance:textfield}.setting-group .setting-group .number-setting-wrapper{min-height:36px}.setting-group .setting-group .number-setting-input-container{max-width:120px}.setting-group .setting-group .number-setting-input{height:32px;padding:6px 36px 6px 10px;font-size:13px}.setting-group .setting-group .suffix-label{right:10px;font-size:11px}.setting-group .setting-group .setting-group .number-setting-wrapper{min-height:32px}.setting-group .setting-group .setting-group .number-setting-input-container{max-width:100px}.setting-group .setting-group .setting-group .number-setting-input{height:28px;padding:4px 32px 4px 8px;font-size:12px}.setting-group .setting-group .setting-group .suffix-label{right:8px;font-size:10px}.number-setting-input.error{border-color:#f04438;background:#fff4f4;color:#f04438}.number-setting-input.error:focus{border-color:#f04438;box-shadow:0 0 0 4px #f044381a}.number-setting-input:focus-visible{outline-offset:2px}.opacity-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;min-height:40px}.icon-container{display:flex;align-items:center;gap:var(--space-sm, 8px)}.input-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--color-text-muted, #98a2b3)}.input-icon svg{width:16px;height:16px}.input-label{color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:500;line-height:1.4}.opacity-setting-input-container{position:relative;width:100%;justify-self:end}.opacity-setting-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-right:44px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none}.opacity-setting-input::placeholder{color:var(--color-text-muted, #98a2b3)}.opacity-setting-input:hover{border-color:var(--color-border-hover, #d0d5dd);background:var(--color-bg-hover, #f9fafb)}.opacity-setting-input:focus{background:var(--color-bg-focus, rgba(2, 204, 89, .05))}.opacity-setting-input:disabled{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.opacity-suffix{position:absolute;right:var(--space-md, 12px);top:50%;transform:translateY(-50%);color:var(--color-text-muted, #98a2b3);font-size:var(--font-size-sm, 12px);font-weight:500;pointer-events:none;z-index:1}.opacity-setting-input::-webkit-inner-spin-button,.opacity-setting-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.opacity-setting-input[type=number]{-moz-appearance:textfield}.setting-group .setting-group .opacity-setting-wrapper{min-height:36px}.setting-group .setting-group .opacity-setting-input-container{max-width:120px}.setting-group .setting-group .opacity-setting-input{height:32px;padding:6px 36px 6px 10px;font-size:13px}.setting-group .setting-group .opacity-suffix{right:10px;font-size:11px}.setting-group .setting-group .setting-group .opacity-setting-wrapper{min-height:32px}.setting-group .setting-group .setting-group .opacity-setting-input-container{max-width:100px}.setting-group .setting-group .setting-group .opacity-setting-input{height:28px;padding:4px 32px 4px 8px;font-size:12px}.setting-group .setting-group .setting-group .opacity-suffix{right:8px;font-size:10px}.opacity-setting-input.error{border-color:#f04438;background:#fff4f4;color:#f04438}.opacity-setting-input.error:focus{border-color:#f04438;box-shadow:0 0 0 4px #f044381a}.opacity-setting-input:focus-visible{outline-offset:2px}.select-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;position:relative;width:100%;min-height:40px;z-index:1}.select-container .select-options{position:fixed;z-index:99999;max-width:300px;min-width:200px}.setting-group .select-container,.tab-content .select-container,.tabs-settings-container .select-container{position:relative;z-index:1}.select-container .icon-container{display:flex;align-items:center;margin-bottom:0}.select-container .icon-container .input-label{color:var(--color-text-secondary, #667085);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-sm, 12px);font-style:normal;font-weight:400;line-height:1.4}.select-button{place-self:end;max-width:140px;width:100%;height:36px;min-height:36px;display:flex;align-items:center;justify-content:flex-start;padding:0 40px 0 var(--space-md, 12px);border-radius:var(--radius-lg, 8px);border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);cursor:pointer;font-size:var(--font-size-md, 14px);font-weight:400;color:var(--color-text, #1d2939);position:relative;transition:all var(--transition-fast, .15s ease);box-shadow:0 1px 2px #1018280d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.select-button:hover{border-color:var(--color-border-hover, #d0d5dd);box-shadow:0 1px 3px #1018281a}.select-button:focus{outline:none}.select-button.has-label{padding-top:0;height:36px}.select-button .select-label{position:absolute;top:8px;left:16px;color:#667085;font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80%}.select-button .select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.select-button.loading{position:relative;color:#6e7891;background-color:#f9fafb;pointer-events:none;padding-left:36px!important}.select-button.loading:before{content:"";position:absolute;left:10px;top:25%;transform:translateY(-50%);width:16px;height:16px;border:2px solid #e4e7ec;border-top:2px solid #02cc59;border-radius:50%;animation:select-spin 1s linear infinite;z-index:2}@keyframes select-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.select-button.error{border-color:#f04438;color:#f04438;background-color:#fff4f4}.select-options{display:none;position:fixed!important;z-index:99999!important;max-height:280px;overflow-y:auto;margin:0;padding:6px;list-style-type:none;flex-direction:column;color:#101828;align-items:flex-start;border:1px solid #e4e7ec;background:#fff;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;transition:opacity .2s ease,transform .2s ease;opacity:0;transform:translateY(-8px);min-width:200px;max-width:300px}.select-options.open{display:flex;opacity:1;transform:translateY(0);animation:select-fade-in .2s ease forwards}@keyframes select-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.select-option{padding:10px 12px;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:#344054;border-radius:6px;transition:background-color .15s ease;font-size:14px}.select-option:hover{background:#f9fafb}.select-option.selected{background:#b6dfc8;color:#344054;font-weight:400}.svg-container{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:20px;height:20px;pointer-events:none;z-index:1}.svg-container .svg-select{stroke:#667085;transition:transform .3s ease;width:16px;height:16px}.svg-container.open .svg-select{transform:rotate(180deg)}.select-options::-webkit-scrollbar{width:6px}.select-options::-webkit-scrollbar-track{background:transparent;border-radius:8px}.select-options::-webkit-scrollbar-thumb{background:#e4e7ec;border-radius:8px}.select-options::-webkit-scrollbar-thumb:hover{background:#d0d5dd}.select-option.empty-message{text-align:center;color:#6e7891;font-style:italic;cursor:default;justify-content:center}.setting-group .setting-group .select-container{min-height:36px}.setting-group .setting-group .select-button{height:32px;min-height:32px;max-width:120px;font-size:13px;padding:0 32px 0 10px}.setting-group .setting-group .select-container .icon-container .input-label{font-size:11px}.setting-group .setting-group .setting-group .select-container{min-height:32px}.setting-group .setting-group .setting-group .select-button{height:28px;min-height:28px;max-width:100px;font-size:12px;padding:0 28px 0 8px}.setting-group .setting-group .setting-group .select-container .icon-container .input-label{font-size:10px}.setting-group .setting-group .svg-container,.setting-group .setting-group .setting-group .svg-container{right:8px;width:16px;height:16px}.setting-group .setting-group .svg-container .svg-select,.setting-group .setting-group .setting-group .svg-container .svg-select{width:12px;height:12px}.align-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;place-content:center;align-items:center}.align-setting-label{font-size:12px;color:var(--color-text)}.align-options-container{width:120px;color:#0006;background-color:#f5f6f7;border-radius:9999px;padding:4px 13px;display:flex;gap:8px;justify-self:flex-end}.align-option-button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:none;cursor:pointer;border-radius:50%;transition:background-color .2s,color .2s}.align-option-button:hover{background-color:#fff}.align-option-button.selected{background-color:var(--color-white);color:var(--color-black)}.button-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;place-content:center;align-items:center}.button-setting{display:flex;height:30px;min-width:64px;padding:0;justify-content:center;align-items:center;gap:8px;flex:1 0 0;border:1px solid rgba(145,158,171,.32);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;line-height:20px;letter-spacing:.01em;text-align:center}.dimension-setting-container{display:flex;flex-direction:column;gap:8px;position:relative;width:100%}.dimension-bracket{width:18px;height:42px;position:absolute;top:16px;right:122px;display:flex;align-items:center;justify-content:center;z-index:1}.dimension-bracket:before{content:"";position:absolute;width:13px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M14 1H5C2.79086 1 1 2.79086 1 5V15' stroke='%23667085'/></svg>") no-repeat center center;background-size:contain;top:0;right:1px}.dimension-bracket:after{content:"";position:absolute;width:13px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M14 14H5C2.79086 14 1 12.2091 1 10V4.76837e-07' stroke='%23667085'/></svg>") no-repeat center center;background-size:contain;bottom:0;right:1px}.dimension-lock-icon{transform:translate(-.25rem);width:24px;height:24px;background:none;border:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#667085;z-index:1;border-radius:4px;transition:all .2s ease}.dimension-lock-icon:hover{background-color:#f5f5f5;transform:translate(-.25rem) scale(1.1)}.dimension-setting-container.aspect-locked .dimension-lock-icon{color:#02cc59;background-color:#02cc591a;box-shadow:0 0 0 1px #02cc5933}.dimension-setting-container.aspect-locked .dimension-bracket:before,.dimension-setting-container.aspect-locked .dimension-bracket:after{filter:hue-rotate(210deg) saturate(2)}@media (max-width: 480px){.dimension-bracket{right:100px}}.upload-setting-wrapper{display:grid;grid-template-columns:1fr;gap:8px;width:100%}.icon-title-container{display:flex;align-items:center;gap:8px;margin-bottom:4px}.icon-title-container .input-label{color:#344054;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;font-weight:500}.preview-button-container{display:flex;justify-content:space-between;align-items:center;align-self:stretch;width:100%;gap:12px;border-radius:12px}.preview-button-container.no-image{justify-content:center}.preview-button-container.no-image .preview-placeholder{display:none}.preview-button-container.no-image .upload-button{width:100%;min-width:140px;flex-grow:1;margin:0 auto}.no-image .preview-placeholder{display:none!important}.preview-wrapper{position:relative;width:91px;height:71px;border-radius:4px;overflow:hidden;background-color:#d3d3d3;flex-shrink:0;display:none}.preview-wrapper.has-image{display:block}.upload-preview{width:100%;height:100%;object-fit:cover;border-radius:4px;display:none;background-position:center;background-size:146.165% 100%;background-repeat:no-repeat}.preview-wrapper.has-image .upload-preview{display:block;object-fit:contain;padding:2px}.empty-state{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#d3d3d3}.empty-state svg{width:100%;height:100%}.preview-wrapper.has-image .empty-state{display:none}.upload-button{width:100%;height:40px;display:flex;padding:5px 4px;flex-direction:row;align-items:center;gap:4px;border-radius:12px;border:1px solid var(--Gray-200, #eaecf0);background:var(--Base-White, #fff);cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #1018280d;flex-grow:0;justify-content:center;min-width:90px}.preview-wrapper:not(.has-image)+.upload-button{flex-grow:0}.upload-button:hover{border-color:#d0d5dd;box-shadow:0 1px 3px #1018281a}.upload-icon{display:flex;align-items:center;justify-content:center}.upload-label{font-size:12px;font-weight:500;color:#344054}.delete-button{display:flex;width:24px;height:24px;padding:4px;justify-content:center;align-items:center;position:absolute;right:4px;top:4px;background:#fff;border:none;border-radius:50%;cursor:pointer;box-shadow:0 2px 4px #0000001a;transition:background-color .2s ease;z-index:2}.delete-button svg{width:14px;height:14px;flex-shrink:0}.delete-button:hover{background-color:#f3f4f6}.upload-setting-wrapper.no-label .preview-button-container{grid-row:1}.preview-placeholder{display:flex;justify-content:center;align-items:center;width:91px;height:71px;border-radius:4px;background-color:#f2f4f7;flex-shrink:0}.preview-button-container:not(:has(.preview-wrapper.has-image)) .preview-placeholder{display:flex}.upload-setting-wrapper .error-message{color:#f04438;font-size:12px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:400;line-height:1.4;margin-top:4px;margin-bottom:8px;padding:8px 12px;background-color:#fff4f4;border:1px solid #fecdca;border-radius:6px;display:none;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.upload-setting-wrapper .error-message:before{content:"⚠️";margin-right:6px}.preview-wrapper.loading{display:flex;align-items:center;justify-content:center;background-color:#f9fafb}.preview-wrapper.loading .upload-preview{display:none}.loading-spinner{width:29px;height:29px;display:flex;align-items:center;justify-content:center;animation:spin 1s linear infinite}.loading-spinner svg{width:100%;height:100%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.height-setting{display:grid;grid-template-columns:1fr 1fr;place-content:center;align-items:center}.height-setting-wrapper{display:flex;align-items:center;justify-content:space-between;gap:2px}.height-input-wrapper{position:relative;padding:8px 8px 8px 4px;width:120px;height:33px;display:flex;align-items:center;gap:4px;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg)}.height-text-input{border:none;outline:none;width:65px;color:var(--color-input-text);font-size:14px;text-align:center;background:transparent}.width-setting{display:grid;grid-template-columns:1fr 1fr;place-content:center;align-items:center}.width-setting-wrapper{display:flex;align-items:center;justify-content:space-between;gap:2px}.width-input-wrapper{position:relative;padding:8px 8px 8px 4px;width:120px;height:33px;display:flex;align-items:center;gap:4px;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg)}.width-text-input{border:none;outline:none;width:65px;color:var(--color-input-text);font-size:14px;text-align:center;background:transparent}.width-setting .number-setting{width:100%}.select-api-container{display:grid;grid-template-columns:1fr;place-content:center;align-items:center;position:relative;width:100%}.select-api-button{width:100%;height:33px;min-height:33px;display:flex;align-items:center;justify-content:flex-start;padding:0 40px 0 16px;border-radius:8px;border:1px solid var(--color-border, #e4e7ec);background:#fff;cursor:pointer;color:#344054;font-family:Satoshi;font-size:14px;font-style:normal;font-weight:500;line-height:normal;position:relative;transition:all .2s ease;box-shadow:0 1px 2px #1018280d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:40px!important}.select-api-button:hover{border-color:#d0d5dd;box-shadow:0 1px 3px #1018281a}.select-api-button:focus{outline:none;border-color:#b6dfc8;box-shadow:0 0 0 4px #7f56d91a}.select-api-button .select-label{position:absolute;top:2px;color:#667085;font-family:Satoshi;font-size:12px;font-style:normal;font-weight:400;line-height:normal;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80%}.select-api-button .select-value{margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.select-api-button.loading{position:relative;color:#6e7891;background-color:#f9fafb;pointer-events:none;padding-left:36px!important}.select-api-button.loading:before{content:"";position:absolute;left:10px;top:25%;transform:translateY(-50%);width:16px;height:16px;border:2px solid #e4e7ec;border-top:2px solid #02CC59;border-radius:50%;animation:select-api-spin 1s linear infinite;z-index:2}.select-api-button.has-label.loading{padding-left:36px!important}.select-api-button.has-label.loading .select-value{padding-left:0}.select-api-button.has-label.loading:before{top:18px;left:10px}@keyframes select-api-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.select-api-button.error{border-color:#f04438;color:#f04438;background-color:#fff4f4}.select-api-options{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:280px;overflow-y:auto;margin:0;padding:6px;list-style-type:none;z-index:100;flex-direction:column;color:#101828;align-items:flex-start;border:1px solid #e4e7ec;background:#fff;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;transition:opacity .2s ease,transform .2s ease;opacity:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transform:translateY(-8px)}.select-api-options.open{display:flex;opacity:1;transform:translateY(0)}.select-api-option{padding:10px 12px;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:#344054;border-radius:6px;transition:background-color .15s ease;font-size:14px}.select-api-option:hover{background:#f9fafb}.select-api-option.selected{background:#b6dfc8;color:#344054;font-weight:500}.select-api-option.disabled{opacity:.6;cursor:not-allowed;color:#6e7891}.select-api-radio{width:18px;height:18px;border-radius:50%;border:1.5px solid #e4e7ec;background:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;margin:0;cursor:pointer}.select-api-radio:checked{border-color:#02cc59;background:#fff;position:relative}.select-api-radio:checked:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:#02cc59;border-radius:50%}.svg-container{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;pointer-events:none}.svg-container .svg-select-api{stroke:#667085;transition:transform .3s ease;width:16px;height:16px}.svg-container.open .svg-select-api{transform:rotate(180deg)}.select-api-container .icon-container{display:none}.select-api-options::-webkit-scrollbar{width:6px}.select-api-options::-webkit-scrollbar-track{background:transparent;border-radius:8px}.select-api-options::-webkit-scrollbar-thumb{background:#e4e7ec;border-radius:8px}.select-api-options::-webkit-scrollbar-thumb:hover{background:#d0d5dd}.select-api-option.empty-message{text-align:center;color:#6e7891;font-style:italic;cursor:default;justify-content:center}.select-api-option.empty-message:hover{background:transparent}.select-api-option:focus{outline:none;box-shadow:0 0 0 2px #b6dfc8}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.select-api-options.open{display:flex;animation:fadeIn .2s ease forwards}.select-api-button.has-label{height:48px}.toggle-setting-container{display:flex;justify-content:space-between;align-items:center;padding-left:3px;padding-right:3px;flex-wrap:wrap}.toggle-label{color:#344054;font-family:Satoshi;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px;padding:2px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#e4e7ec;transition:.4s;border-radius:34px}.toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.toggle-slider{background-color:#02cc59}input:focus+.toggle-slider{box-shadow:0 0 1px #02cc59}input:checked+.toggle-slider:before{transform:translate(16px)}.toggle-with-icon .toggle-label{display:flex;align-items:center;gap:8px}.toggle-icon{display:flex;align-items:center;justify-content:center;color:#667085}.toggle-description{color:#637381;width:100%;margin:8px 0 0;font-size:11px;line-height:16px}.toggle-setting-container.toggle-has-description{border:1px dashed #919EAB66;border-radius:12px;padding:12px 8px;box-sizing:border-box}.gap-settings-container{display:flex;flex-direction:column;gap:12px;width:100%}.gap-settings-title{font-size:14px;font-weight:500;color:#344054;margin-bottom:4px}.gap-input-wrapper{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;width:100%}.gap-label-container{display:flex;flex-direction:row;align-items:center;gap:8px;flex:1}.gap-setting-icon{display:flex;align-items:center;justify-content:center;font-size:16px;color:#667085}.gap-setting-icon svg{width:16px;height:16px}.gap-input-label{font-size:13px;color:#667085}.gap-setting-inner-wrapper{position:relative;display:grid;grid-template-columns:1fr;place-content:center;align-items:center;width:120px}.gap-setting-input{width:100%;padding:8px;font-size:14px;border-radius:8px;color:#292b2e;border:1px solid var(--color-border);background:var(--color-bg);box-sizing:border-box}.suffix-wrapper{position:relative}.suffix-label{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding-left:8px;border-left:1px solid var(--color-divider);font-size:12px;color:var(--color-text)}.gap-setting-input::-webkit-outer-spin-button,.gap-setting-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.gap-setting-input[type=number]{-moz-appearance:textfield}.margin-bottom-wrapper{display:grid;grid-template-columns:1fr auto;gap:auto}.margin-bottom-wrapper .setting-icon svg{width:18px;height:19px}.margin-bottom-wrapper .number-setting-input{background:#fff;min-width:95px;width:95px;padding:8px;border-radius:8px;border:1px solid #D0D5DD;font-size:14px;color:#292b2e}.margin-bottom-wrapper .setting-title{color:#667085;font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:18px}.margin-top-wrapper{display:grid;grid-template-columns:1fr auto;gap:auto}.margin-top-wrapper .setting-icon svg{width:18px;height:19px}.margin-top-wrapper .number-setting-input{background:#fff;min-width:95px;width:95px;padding:8px;border-radius:8px;border:1px solid #D0D5DD;font-size:14px;color:#292b2e}.margin-top-wrapper .setting-title{color:#667085;font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:18px}.simple-multi-language-wrapper{display:flex;flex-direction:column;width:100%}.simple-multi-language-title{color:#000;font-weight:700;font-size:14px;margin-bottom:8px}.simple-multi-language-content{display:flex;flex-direction:column;gap:12px;width:100%}.simple-multi-language-row{display:flex;flex-direction:column;gap:6px}.simple-language-label{font-size:12px;font-weight:500;color:var(--color-input-text);text-transform:uppercase;letter-spacing:.5px}.simple-language-textarea{width:100%;min-height:0;padding:12px;font-size:14px;border-radius:8px;color:var(--color-input-text);border:1px solid var(--color-border);background:var(--color-bg);font-family:inherit;resize:none;line-height:1.4;overflow-y:hidden;box-sizing:border-box}.simple-language-textarea:focus{outline:none;border-color:var(--color-primary, #007bff);box-shadow:0 0 0 2px #007bff40}.simple-language-textarea::placeholder{color:var(--color-text-muted, #6c757d);white-space:nowrap;text-overflow:ellipsis}.simple-language-textarea:placeholder-shown{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 640px){.simple-multi-language-row{gap:4px}.simple-language-label{font-size:11px}.simple-language-textarea{min-height:0;padding:8px;font-size:13px}}.gradient-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;min-height:40px}.gradient-controls{display:flex;align-items:center;gap:10px}.gradient-type,.gradient-angle{padding:6px 8px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;font:inherit}.gradient-angle-wrap{display:inline-flex;align-items:center;gap:6px}.gradient-preview{position:relative;height:34px;border-radius:8px;border:1px solid #e5e7eb;overflow:visible;background:linear-gradient(90deg,#a84b4b,#786666);max-width:250px;margin:42px auto 0}.gradient-handles{position:absolute;top:-4px;left:0;right:0;height:calc(100% + 8px);pointer-events:none}.gstop-handle{position:absolute;border-radius:4px;background:#fff;border:1px solid white;transform:translate(-50%,-50%);cursor:grab;display:grid;place-items:center;pointer-events:auto;box-shadow:0 1px 3px #0000001a;z-index:10;transition:all .15s ease;user-select:none;-webkit-user-select:none;touch-action:none}.gstop-handle:active{cursor:grabbing}.gstop-handle:hover{transform:translate(-50%,-50%) scale(1.05);border-color:#9ca3af}.gstop-handle.selected{border:2px solid #2563eb;box-shadow:0 0 0 2px #2563eb33;transform:translate(-50%,-50%) scale(1.1);cursor:grabbing;transition:none!important}.gstop-chip{width:24px;height:24px;border-radius:2px;border:1px solid white;position:relative}.gstop-chip:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:0;height:0;z-index:-1;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid #ffffff;border-top-color:inherit}.gradient-stops-header{padding:4px;display:flex;align-items:center;justify-content:space-between;color:#1d2939;font-weight:500;font-size:14px}.gradient-add-stop{width:32px;height:32px;border-radius:8px;color:#667085;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:400}.gradient-add-stop:hover{background:#f9fafb;border-color:#9ca3af}.gradient-stops{display:flex;flex-direction:column;max-height:200px;overflow-y:auto;overflow-x:visible;padding-right:4px;scrollbar-width:thin;scrollbar-color:#cbd5e1 #f1f5f9}.gradient-stops::-webkit-scrollbar{width:6px}.gradient-stops::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.gradient-stops::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.gradient-stops::-webkit-scrollbar-thumb:hover{background:#94a3b8}.gstop-row{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:8px;background:#00a76f14;min-height:44px}.gstop-position-group{display:flex;align-items:center;min-width:51px}.gstop-position-input{width:60px;padding:8px 10px;border:1px solid #919eab33;border-radius:8px;color:#1f2937;font-size:13px;font-weight:500;text-align:center;outline:none;transition:all .2s ease;background:#f9fafb;text-align:left}.gstop-position-input:hover{border-color:#cbd5e1;background-color:#f8fafc}.gstop-position-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gstop-position-input:disabled{opacity:.4;cursor:not-allowed}.gstop-color-container{position:relative;width:100%;max-width:180px;margin-left:4px;min-height:40px;display:flex;align-items:center;padding-left:8px}.gstop-color-preview{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:4px;border:1px solid #e4e7ec;z-index:10;pointer-events:none;flex-shrink:0}.gstop-color-input{width:100%;padding:8px 40px 8px 32px;border:1px solid #919eab33;border-radius:8px;color:#1f2937;font-size:13px;font-weight:500;text-align:left;outline:none;transition:all .2s ease;cursor:pointer;background:#f9fafb}.gstop-color-input:before{content:"";position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:4px;border:1px solid #e4e7ec;background-color:var(--color, #ffffff);flex-shrink:0}.gstop-color-input:hover{border-color:#cbd5e1;background-color:#f8fafc}.gstop-color-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gstop-color-input:disabled{opacity:.4;cursor:not-allowed;background:var(--action-selected, #919eab29)!important;border-color:var(--action-selected, #919eab29)!important}.gstop-color-copy{display:none;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:none;background:transparent;cursor:pointer;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease;opacity:.7}.gstop-color-copy:hover{opacity:1;background:#919eab1a}.gstop-color-copy:active{transform:translateY(-50%) scale(.95)}.gstop-color{width:32px;height:32px;padding:0;border:2px solid #ffffff;border-radius:8px;cursor:pointer;outline:none;box-shadow:0 1px 2px #0000000d;position:relative;z-index:20;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none;border-radius:6px}.gstop-hex{flex:1;min-width:100px;padding:10px 12px;border:2px solid #e2e8f0;border-radius:10px;background:#fff;color:#1f2937;font-size:13px;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-weight:500;outline:none;transition:all .2s ease}.gstop-hex:hover{border-color:#cbd5e1;background-color:#f8fafc}.gstop-hex:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gstop-link{width:24px;height:24px;border:none;background:transparent;color:#667085;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px}.gstop-link:hover{background:#f3f4f6;color:#374151}.gstop-del{width:36px;min-width:36px;height:36px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:4px;gap:8px;opacity:1;flex-shrink:0}.gstop-del:hover{background:#f8fafc}.gstop-del:disabled{opacity:.4;cursor:not-allowed;background:var(--action-selected, #919eab29)}.gstop-opacity-label{font-size:12px;color:#64748b;font-weight:500;min-width:50px}.gstop-opacity-group{display:flex;align-items:center;gap:12px;flex:1}.gstop-opacity-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;max-width:135px;width:100%;height:16px;border-radius:999px;border:0;outline:none;cursor:pointer;background-color:#eef2f7;background-image:conic-gradient(#0000 25%,#ffffff59 0,#ffffff59 50%,#0000 0,#0000 75%,#ffffff59 0),linear-gradient(to right,transparent,var(--slider-color, #3b82f6));background-size:12px 12px,100% 100%;background-blend-mode:normal,normal;box-shadow:inset 0 0 0 1px #00000021;position:relative}.gstop-opacity-slider::-webkit-slider-track{height:16px;border:none;border-radius:999px;background:transparent}.gstop-opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid #0a0a0a;box-shadow:0 1px 2px #00000040;cursor:pointer;transition:all .15s ease;margin-top:-1px}.gstop-opacity-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 2px 4px #0000004d}.gstop-opacity-slider::-moz-range-track{height:16px;border:none;border-radius:999px;background:transparent}.gstop-opacity-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid #0a0a0a;box-shadow:0 1px 2px #00000040;cursor:pointer;transition:all .15s ease}.gstop-opacity-slider::-moz-range-thumb:hover{transform:scale(1.1);box-shadow:0 2px 4px #0000004d}.gstop-opacity-slider:focus-visible{outline:3px solid rgba(59,130,246,.45);outline-offset:4px;border-radius:12px}.gstop-opacity-value{font-size:12px;color:#475569;font-weight:600;min-width:38px;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:4px 6px}.gradient-solid-picker{display:flex;align-items:center;gap:12px;padding:8px;background:#f9fafb;border-radius:8px}.gradient-solid-color{width:257px;height:34px;padding:0;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;outline:none}.gradient-solid-hex{width:120px;padding:12px 16px;border:2px solid #e2e8f0;border-radius:12px;background:#fff;color:#1f2937;font-size:14px;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-weight:500;outline:none;transition:all .2s ease}.gradient-solid-hex:hover{border-color:#cbd5e1;background-color:#f8fafc}.gradient-solid-hex:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gradient-input-wrapper{position:relative;width:100%}.gradient-text-input{width:100%;height:44px;padding:12px 16px 12px 44px;border:2px solid #e2e8f0;border-radius:12px;background:#fff;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;font-weight:500;color:#1f2937;text-align:left;outline:none;transition:all .2s ease}.gradient-text-input:hover{border-color:#cbd5e1;background-color:#f8fafc}.gradient-text-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gradient-text-input:disabled{opacity:.4;cursor:not-allowed;background:var(--action-selected, #919eab29)!important;border-color:var(--action-selected, #919eab29)!important}.gradient-mini-preview{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:4px;border:1px solid #e4e7ec;cursor:pointer;overflow:hidden}.gradient-popover{position:absolute;z-index:10000;background:var(--primary-contrast-text, #ffffff);border-radius:8px;box-shadow:0 1px 8px #0003;overflow:visible;width:306px;height:auto;min-height:200px;max-height:80vh;opacity:1;padding:12px;display:flex;flex-direction:column;gap:16px}.gradient-popover-header{display:flex;align-items:center;justify-content:space-between;color:#1d2939;font-weight:600;font-size:16px}.gradient-popover-close{width:24px;height:24px;border-radius:4px;border:none;background:transparent;color:#667085;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px}.gradient-popover-close:hover{background:#f9fafb;color:#374151}.gradient-editor{display:flex;flex-direction:column;gap:6px;flex:1;overflow:hidden;min-height:0}.gradient-type-tabs{display:flex;background:#f9fafb;border-radius:8px;padding:2px;gap:2px;-webkit-user-select:none;user-select:none}.gradient-type-tab{flex:1;padding:8px 16px;border:none;background:transparent;color:#667085;cursor:pointer;border-radius:6px;font-size:14px;font-weight:500;transition:all .15s ease}.gradient-type-tab.active{background:#fff!important;color:#1d2939!important;box-shadow:0 1px 2px #0000000d}.gradient-type-tab:hover:not(.active){background:#f3f4f6;color:#374151}.gradient-subtype-tabs{display:flex;background:#f0f2f5;border-radius:6px;padding:2px;gap:2px;margin-bottom:12px}.gradient-subtype-inline{display:flex;align-items:center;gap:4px;margin-bottom:8px}.gradient-subtype-select{border:1px solid #b1b6bf;padding:6.5px 40px 6.5px 16px;border-radius:8px;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;color:#1f2937;font-size:14px;font-weight:500;outline:none;cursor:pointer;transition:all .2s ease;appearance:none;-webkit-appearance:none;-moz-appearance:none;min-height:38px;box-sizing:border-box;line-height:1.4;width:100%}.gradient-subtype-select:hover{border-color:#cbd5e1;background-color:#f8fafc}.gradient-subtype-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gradient-subtype-select option{padding:12px 16px;background-color:#fff;color:#1f2937;font-size:14px;font-weight:500;border:none;outline:none;min-height:44px;line-height:1.4}.gradient-subtype-select option:hover{background-color:#f8fafc!important;color:#1f2937!important}.gradient-subtype-select option:checked,.gradient-subtype-select option:selected{background-color:#3b82f6!important;color:#fff!important;font-weight:600}.gradient-subtype-select option:disabled{background-color:#f1f5f9!important;color:#94a3b8!important;cursor:not-allowed}.gradient-subtype-tab{flex:1;padding:6px 12px;border:none;background:transparent;color:#667085;cursor:pointer;border-radius:4px;font-size:12px;font-weight:500;transition:all .15s ease}.gradient-subtype-tab.active{background:#fff;color:#1d2939;box-shadow:0 1px 2px #0000000d}.gradient-subtype-tab:hover:not(.active){background:#e5e7eb;color:#374151}.gradient-angle-controls{display:flex;align-items:center;gap:12px}.gradient-angle-input{flex:1;display:flex;align-items:center;gap:8px}.gradient-angle-input select{flex:1;padding:12px 40px 12px 16px;border:2px solid #e2e8f0;border-radius:12px;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;color:#1f2937;font-size:14px;font-weight:500;outline:none;cursor:pointer;transition:all .2s ease;appearance:none;-webkit-appearance:none;-moz-appearance:none}.gradient-angle-input select:hover{border-color:#cbd5e1;background-color:#f8fafc}.gradient-angle-input select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gradient-angle-input select option{padding:12px 16px;background-color:#fff;color:#1f2937;font-size:14px;font-weight:500;border:none;outline:none}.gradient-angle-input select option:hover{background-color:#f8fafc;color:#1f2937}.gradient-angle-input select option:checked,.gradient-angle-input select option:selected{background-color:#3b82f6;color:#fff}.gradient-angle-input select option:disabled{background-color:#f1f5f9;color:#94a3b8}.gradient-degree-input{border:1px solid #919eab33;padding:6.5px 16px;border-radius:8px;max-width:75px;background:#fff;color:#1f2937;font-size:14px;font-weight:500;width:80px;text-align:center;outline:none;transition:all .2s ease;min-height:38px}.gradient-degree-input:hover{border-color:#cbd5e1;background-color:#f8fafc}.gradient-degree-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gradient-degree-input:disabled{opacity:.4;cursor:not-allowed;background:var(--action-selected, #919eab29)!important;border-color:var(--action-selected, #919eab29)!important}.gradient-flip-btn{max-width:36px;height:38px;width:100%;border-radius:6px;background:#919eab29;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;transition:all .2s ease}.gradient-flip-btn:hover{background:#e3e2e4;color:#374151}.gradient-flip-btn:active{transform:scale(.95)}.custom-color-picker{position:fixed;width:306px;background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;border:1px solid #e5e7eb;z-index:10001;overflow:hidden;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:box-shadow .2s ease}.color-picker-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000;z-index:10000}.custom-color-picker.dragging{box-shadow:0 25px 30px -5px #00000026,0 15px 15px -5px #00000014;cursor:move}.color-picker-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #f3f4f6;background:#fafafa;cursor:move}.color-picker-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #f3f4f6;background:#fafafa;cursor:move;-webkit-user-select:none;user-select:none;position:relative}.color-picker-header span{font-size:16px;font-weight:600;color:#111827}.color-picker-close{width:28px;height:28px;border:none;background:transparent;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:#6b7280;transition:all .15s ease}.color-picker-close:hover{background:#f3f4f6;color:#374151}.color-picker-area{height:268px;margin:8px;border-radius:12px;position:relative;cursor:crosshair;background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,red);overflow:hidden}.color-picker-area.embedded{width:100%;height:200px;margin:0 0 16px}.color-picker-marker{position:absolute;width:20px;height:20px;border:3px solid #ffffff;border-radius:50%;box-shadow:0 1px 3px #0000004d,inset 0 0 0 1px #0000001a;transform:translate(-50%,-50%);pointer-events:none}.color-picker-hue{width:368px;height:16px;margin:0 20px 20px;border-radius:8px;position:relative;cursor:pointer;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.color-picker-hue.embedded{width:100%;margin:0 auto 16px;max-width:260px}.color-picker-hue-container{display:flex;align-items:center;gap:4px;width:100%;margin:0 auto;max-width:260px}.custom-color-picker .color-picker-hue-container{max-width:368px;padding:4px 8px}.color-picker-eyedropper{background:none;border:none;padding:8px;border-radius:6px;cursor:pointer;transition:background-color .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.color-picker-eyedropper:hover{background-color:#0000000d}.color-picker-eyedropper:active{transform:scale(.95)}.color-picker-eyedropper svg{width:18px;height:18px}.color-picker-hue-container .color-picker-hue{flex:1;margin:0}.color-picker-hue-marker{position:absolute;width:20px;height:20px;border:3px solid #ffffff;border-radius:50%;box-shadow:0 1px 3px #0000004d;transform:translate(-50%,-50%);top:50%;pointer-events:none;background:#fff}.color-picker-opacity{max-width:368px;height:16px;margin:0 20px 20px;border-radius:8px;position:relative;cursor:pointer;background:linear-gradient(to right,transparent 0%,var(--base-color, #ff0000) 100%),repeating-conic-gradient(#cccccc 0% 25%,transparent 0% 50%) 50% / 20px 20px}.color-picker-opacity.embedded{width:100%;margin:0 auto 16px;max-width:255px}.color-picker-opacity-marker{position:absolute;width:20px;height:20px;border:3px solid #ffffff;border-radius:50%;box-shadow:0 1px 3px #0000004d;transform:translate(-50%,-50%);top:50%;pointer-events:none;background:#fff}.color-picker-format-section{display:flex;align-items:center;padding:0 20px 20px;gap:4px}.color-picker-format-section.embedded{padding:0 4px}.color-picker-format-select{padding:8px;border:1px solid #e5e7eb;border-radius:8px;font-size:12px;font-weight:500;color:#374151;background:#fff;outline:none;transition:all .15s ease;min-width:70px;cursor:pointer}.color-picker-format-select:focus{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.color-picker-format-select:hover{border-color:#cbd5e1}.color-picker-input-container{position:relative;flex:1;display:flex;align-items:center}.color-picker-color-input{flex:1;width:100%;padding:8px 55px 8px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:12px;font-weight:500;color:#111827;background:#fff;outline:none;transition:all .15s ease;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.color-picker-color-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.color-picker-copy-inside{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:45px;height:26px;border-radius:6px;border:none;gap:8px;padding:4px 8px;background:var(--action-selected, #919eab29);color:var(--text-secondary, #637381);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s ease;outline:none;opacity:1}.color-picker-copy-inside:hover{background:#919eab66}.color-picker-copy-inside:active{transform:translateY(-50%) scale(.95)}.color-picker-copy{padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;outline:none}.color-picker-copy:hover{background:#f9fafb;border-color:#d1d5db;color:#111827}.color-picker-copy:active{transform:scale(.98)}.custom-color-button{width:44px;height:44px;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;position:relative;overflow:hidden;transition:all .15s ease;background:#fff}.custom-color-button:hover{border-color:#cbd5e1;transform:scale(1.02)}.custom-color-button:active{transform:scale(.98)}.custom-color-button-color{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:8px;background:var(--color, #000000)}.embedded-color-picker{padding:0}.embedded-color-picker-content{width:100%;font-family:system-ui,-apple-system,sans-serif}.color-picker-recent-section{padding:12px 0 4px;display:flex;flex-direction:column;gap:8px}.color-picker-recent-title{font-size:12px;font-weight:600;color:#475467;text-transform:uppercase;letter-spacing:.04em}.color-picker-recent-grid{display:grid;grid-template-columns:repeat(auto-fill,24px);gap:6px;max-width:220px;justify-content:flex-start}.color-picker-recent-placeholder{font-size:12px;color:#98a2b3;text-align:center;padding:8px 0}.color-picker-recent-swatch{width:24px;height:24px;aspect-ratio:1 / 1;border:1px solid #e4e7ec;border-radius:4px;cursor:pointer;position:relative;overflow:hidden;background:transparent;transition:transform .15s ease,box-shadow .15s ease}.color-picker-recent-swatch:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:3px;background:inherit}.color-picker-recent-swatch:hover{transform:scale(1.05);box-shadow:0 2px 6px #0f172a1a}.color-picker-recent-swatch:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.bgset-or-label{margin:8px 0;text-align:center;font-weight:500;color:#667085;align-self:center}.settings-container,.main-settings-container,[data-settings-container]{height:auto;min-height:auto;overflow:visible;flex-shrink:0}.container,.wrapper,.main-wrapper{height:auto!important;min-height:auto!important;max-height:none!important;overflow:visible!important}:root{--sg-spacing-0: 16px;--sg-spacing-1: 12px;--sg-spacing-2: 8px;--sg-spacing-3: 6px;--sg-border-0: #eaecf0;--sg-border-1: #d0d5dd;--sg-border-2: #e5e7eb;--sg-border-3: #f2f4f7;--sg-bg-0: #fff;--sg-bg-1: #fff;--sg-bg-2: #fff;--sg-bg-3: #fff;--sg-shadow-0: 0px 1px 3px rgba(16, 24, 40, .1), 0px 1px 2px rgba(16, 24, 40, .06);--sg-shadow-1: 0px 1px 2px rgba(16, 24, 40, .05);--sg-shadow-2: 0px 1px 1px rgba(16, 24, 40, .04);--sg-shadow-3: none}.setting-group{display:flex;flex-direction:column;width:100%;gap:8px;border-radius:8px;margin:0 auto;-webkit-user-select:none;user-select:none;position:relative;overflow:visible;max-width:100%;box-sizing:border-box}.setting-group[data-nesting-level="0"]{padding:var(--sg-spacing-0);border:1px solid var(--sg-border-0);background:var(--sg-bg-0);box-shadow:var(--sg-shadow-0);border-radius:8px}.setting-group[data-nesting-level="1"]{padding:var(--sg-spacing-1);border:1px solid var(--sg-border-1);background:var(--sg-bg-1);box-shadow:var(--sg-shadow-1);border-radius:6px}.setting-group[data-nesting-level="2"]{padding:var(--sg-spacing-2);border:1px solid var(--sg-border-2);background:var(--sg-bg-2);box-shadow:var(--sg-shadow-2);border-radius:4px}.setting-group[data-nesting-level="3"],.setting-group[data-nesting-level="4"],.setting-group[data-nesting-level="5"]{padding:var(--sg-spacing-3);border:1px solid var(--sg-border-3);background:var(--sg-bg-3);box-shadow:var(--sg-shadow-3);border-radius:4px}.setting-group.collapsed{padding:0;border:none;background:transparent;box-shadow:none}.setting-group[data-nesting-level="0"] .setting-group-content{padding:0 8px 8px;gap:8px}.setting-group[data-nesting-level="1"] .setting-group-content{padding:0 8px 8px;gap:6px}.setting-group[data-nesting-level="2"] .setting-group-content{padding:0 8px 8px;gap:4px}.setting-group[data-nesting-level="3"] .setting-group-content,.setting-group[data-nesting-level="4"] .setting-group-content,.setting-group[data-nesting-level="5"] .setting-group-content{padding:0 6px 6px;gap:3px}.setting-group-title{display:flex;justify-content:space-between;align-items:center;padding:4px 0;cursor:pointer;border-radius:6px}.setting-group-title h3{color:var(--Gray-800, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;font-weight:500;line-height:20px;margin:0;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setting-group[data-nesting-level="1"] .setting-group-title h3{font-size:13px;font-weight:500}.setting-group[data-nesting-level="2"] .setting-group-title h3{font-size:12px;font-weight:500}.setting-group[data-nesting-level="3"] .setting-group-title h3,.setting-group[data-nesting-level="4"] .setting-group-title h3,.setting-group[data-nesting-level="5"] .setting-group-title h3{font-size:11px;font-weight:500}.setting-group-arrow{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;transform:rotate(180deg);color:var(--Gray-500, #344054)}.setting-group-arrow.rotated{transform:rotate(0)}.setting-group-content{display:flex;flex-direction:column;width:100%;opacity:1;overflow:visible;max-width:100%;box-sizing:border-box}.setting-group-content.collapsed{opacity:0;margin:0;padding:0;pointer-events:none;display:none}.setting-group.main-group{padding:16px;border:none;border-bottom:1px solid var(--Border-default, #d5dce5);box-shadow:none;margin-top:4px;background:#f8f8f8;border-radius:8px;width:100%;position:relative;margin-bottom:8px;max-height:none;overflow:visible;max-width:100%;box-sizing:border-box;height:auto;min-height:auto;flex-shrink:0}.setting-group.main-group.collapsed{padding:0;background:transparent!important;border:none;box-shadow:none;margin:0}.setting-group.main-group.collapsed .setting-group-title.collapsed-view{height:55px;background:#f8f8f8;border:none;margin-bottom:8px;border-bottom:1px solid var(--Border-default, #d5dce5)}.setting-group.main-group .setting-group-title h3{color:#344054;font-family:Satoshi;font-size:14px;font-weight:700;line-height:20px}.setting-group-content.main-content{width:100%;background:#f8f8f8;border:0;box-shadow:none;padding:0;height:auto;min-height:auto;overflow:visible;flex-shrink:0}.setting-divider{height:1px;width:100%;background-color:#f2f4f7;margin:4px 0}.setting-group-content>*:last-child{margin-bottom:0}.setting-group.active{border-color:#d6bbfb;box-shadow:0 0 0 4px #7f56d91a}.setting-group-empty{color:#667085;font-size:13px;font-style:italic;padding:12px 0;text-align:center}.setting-group-title.collapsed-view{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;height:36px;border-radius:8px;border:1px solid var(--Gray-200, #eaecf0);background:var(--Base-White, #fff);margin-bottom:0;position:relative;overflow:hidden;cursor:pointer}.setting-group.main-group .setting-group-title.collapsed-view{height:55px;background:#f8f8f8;border:none;border-bottom:1px solid var(--Border-default, #d5dce5)}.setting-group:not(.main-group) .setting-group-title.collapsed-view{height:36px;background:#fff;border:1px solid var(--Gray-200, #eaecf0);padding:14px}.setting-group-title .title-section{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.setting-group-title .group-icon{display:flex;justify-content:center;align-items:center;color:var(--Gray-500, #667085);flex-shrink:0;width:20px;height:20px}.setting-group-title.collapsed-view h3{color:#344054;font-family:Satoshi;font-size:14px;font-weight:700;line-height:20px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setting-group-title.collapsed-view .group-badge{display:flex;padding:2px 8px;justify-content:center;align-items:center;border-radius:16px;background:var(--Gray-100, #f2f4f7);color:var(--Gray-700, #344054);font-size:12px;font-weight:500;line-height:18px;margin-left:8px}.setting-group-title .actions-section{display:flex;align-items:center;gap:8px;margin-left:12px}.setting-group-title.collapsed-view .setting-group-arrow{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;color:var(--Gray-500, #667085)}.setting-group-title .setting-group-arrow{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;color:var(--Gray-500, #667085)}.setting-group-title .setting-group-arrow.rotated{transform:rotate(0)}.setting-group-title.collapsed-view .info-marker{width:16px;height:16px;color:var(--Gray-400, #98a2b3);cursor:help}.setting-group-description{color:#667085;font-size:13px;margin-bottom:8px;line-height:1.4}@media (max-width: 768px){.setting-group-title.collapsed-view{padding:10px 12px}.setting-group-title .title-section{gap:8px}.setting-group-title.collapsed-view .group-badge{display:none}}@media (max-width: 480px){.setting-group-title.collapsed-view h3{font-size:13px}.setting-group-title.collapsed-view .setting-group-arrow{width:24px;height:24px}.setting-group-title.collapsed-view{padding:0 10px}}.setting-group-title.collapsed-view.striped:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--Primary-100, #f4ebff);border-radius:4px 0 0 4px}.setting-group.custom-container{border:none;box-shadow:none;margin:4px 0;padding:0;background:transparent}.setting-group.custom-container>.setting-group-title{display:none}.sg-add-button-bottom{display:flex;height:30px;min-width:64px;padding:6px 12px;justify-content:center;align-items:center;flex:1 0 0;border:1px solid rgba(145,158,171,.32);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;line-height:20px;letter-spacing:.01em;text-align:center}.sg-add-button-bottom:hover{background:#eee}.setting-group.custom-container .setting-group-content{padding:0}.custom_class{border:0!important;box-shadow:none!important;margin:4px 0!important}.custom_class>.setting-group-title{display:none!important}.custom_class .setting-group-content{padding:0!important}.setting-group-title:focus-visible{outline:2px solid #02cc59;outline-offset:2px}.setting-group::-webkit-scrollbar,.setting-group-content::-webkit-scrollbar{width:8px;height:8px}.setting-group::-webkit-scrollbar-track,.setting-group-content::-webkit-scrollbar-track{background:#f0f2f4;border-radius:4px}.setting-group::-webkit-scrollbar-thumb,.setting-group-content::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:4px;border:2px solid transparent;background-clip:content-box}.setting-group::-webkit-scrollbar-thumb:hover,.setting-group-content::-webkit-scrollbar-thumb:hover{background-color:#98a2b3}.setting-group,.setting-group-content{scrollbar-width:thin;scrollbar-color:#c2c9d6 #f0f2f4}.tabs-settings-container{display:flex;flex-direction:column;width:100%;border-radius:8px;background:transparent;overflow:hidden;position:relative;z-index:1;max-width:100%;box-sizing:border-box}.tabs-settings-container.main-group{background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 2px #1018280d}.tabs-header{width:100%;display:flex;padding:4px;justify-content:center;align-items:center;gap:4px;align-self:stretch;flex-shrink:0;background:#f1f3f2;position:relative;z-index:1;border-radius:400px;margin-bottom:8px}.tabs-header.main-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0;padding:8px;margin-bottom:0}.tab-button{display:flex;padding:4px 12px;justify-content:center;align-items:center;background-color:transparent;gap:8px;flex:1 0 0;border-radius:400px;color:#000000b3;font-family:Satoshi,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;font-style:normal;font-weight:500;line-height:20px;border:1px solid transparent;box-shadow:0 0 #10182800;position:relative;z-index:1;cursor:pointer;transition:all .2s ease;outline:none}.tab-button:active{box-shadow:0 1px 2px -1px #10182805}.tab-button.active{color:#000;font-weight:700;border-radius:400px;background:#fff;box-shadow:0 4px 8px -2px #1018280a}.tab-button.active:active{box-shadow:0 2px 4px -1px #1018280a}.tab-button:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}.tab-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.tab-icon svg{width:100%;height:100%}.tab-content{position:relative;overflow:hidden;width:100%;z-index:1;margin-top:8px;max-width:100%;box-sizing:border-box;animation:fadeIn .2s ease-in-out}.tab-panel{display:grid;gap:8px;position:absolute;width:100%;opacity:0;pointer-events:none;overflow:hidden;z-index:1;max-width:100%;box-sizing:border-box}.tab-panel.active{opacity:1;pointer-events:auto;position:relative;overflow:hidden;z-index:1;max-width:100%;box-sizing:border-box}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.tabs-header{padding:3px}.tab-button{padding:3px 8px;font-size:11px}}@media (max-width: 480px){.tab-button{padding:2px 6px;font-size:10px}.tab-icon{width:14px;height:14px}}.tab-content>.setting-group{margin-bottom:12px}.tab-content>.setting-group:last-child{margin-bottom:0}.tabs-settings-container.main-group .setting-group-content{border-top:none;border-radius:0 0 8px 8px}.setting-group.main-group.collapsed .tabs-header,.setting-group.main-group.collapsed .setting-group,.setting-group .setting-group.collapsed .tabs-header,.tabs-settings-container.collapsed .tabs-header,.tabs-settings-container.collapsed .tab-content{display:none}:root{--color-border: #d5dce5;--color-bg: #f8f8f8;--color-border-secondary: #eaecf0;--color-text: #667085;--color-title: #344054;--color-input-text: #292b2e;--color-white: #fff;--color-black: #000;--color-divider: #dcdcdc;--color-btn-text: #4b4b4b;--color-bg-icon: #f2f4f7}*{padding:0;margin:0;border:none}*,*:before,*:after{box-sizing:border-box}a,a:link,a:visited,a:hover{text-decoration:none}body{font-family:Satoshi,sans-serif;font-weight:400;font-size:12px;line-height:18px}aside,nav,footer,header,section,main{display:block}h1,h2,h3,h4,h5,h6,p{font-size:inherit;font-weight:inherit}ul,ul li{list-style:none}img{vertical-align:top}img,svg{max-width:100%;height:auto}address{font-style:normal}input::-ms-clear{display:none}button,input[type=submit]{display:inline-block;box-shadow:none;background-color:transparent;background:none;cursor:pointer}input:focus,input:active,button:focus,button:active{outline:none}button::-moz-focus-inner{padding:0;border:0}label{cursor:pointer}legend{display:block}
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap";@import"https://fonts.cdnfonts.com/css/satoshi";:root{--color-text: #1d2939;--color-text-secondary: #667085;--color-text-muted: #98a2b3;--color-border: #e4e7ec;--color-border-hover: #d0d5dd;--color-bg: #fff;--color-bg-hover: #f9fafb;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--font-size-xs: 10px;--font-size-sm: 12px;--font-size-md: 14px;--font-size-lg: 16px;--transition-fast: .15s ease;--transition-normal: .3s ease}.icon-container{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs)}.input-icon{display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);flex-shrink:0;width:18px;height:18px;transition:color var(--transition-fast)}.input-label{color:var(--color-text-secondary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-sm);font-style:normal;font-weight:400;line-height:1.4;transition:color var(--transition-fast)}.input-container{display:inline-flex;align-items:center;position:relative;width:100%}.input-wrapper{position:relative;width:100%;min-width:0}.base-input{width:100%;height:36px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md);font-weight:400;line-height:1.4;transition:all var(--transition-fast);outline:none}.base-input::placeholder{color:var(--color-text-muted)}.base-input:hover{border-color:var(--color-border-hover);background:var(--color-bg-hover)}.base-input:focus{border-color:var(--color-border-focus);background:var(--color-bg-focus)}.base-input:disabled{background:#f9fafb;color:var(--color-text-muted);cursor:not-allowed;opacity:.7}.with-suffix{padding-right:44px}.input-suffix{position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none;font-size:var(--font-size-sm);font-weight:500;z-index:1}.with-prefix{padding-left:44px}.input-prefix{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none;font-size:var(--font-size-sm);font-weight:500;z-index:1}.setting-item{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);align-items:center;min-height:40px;padding:var(--space-sm) 0}.setting-item.full-width{grid-template-columns:1fr}.setting-item.stacked{grid-template-columns:1fr;gap:var(--space-xs);align-items:stretch}.setting-item-label{display:flex;align-items:center;gap:var(--space-xs);min-width:0}.setting-item-control{min-width:0;justify-self:end}.setting-item.stacked .setting-item-control{max-width:none;justify-self:stretch}.input-error{border-color:#f04438!important;background:#fff4f4!important;color:#f04438!important}.input-error:focus{border-color:#f04438!important;box-shadow:0 0 0 4px #f044381a!important}.error-message{color:#f04438;font-size:var(--font-size-xs);margin-top:var(--space-xs);display:flex;align-items:center;gap:var(--space-xs)}.input-success{border-color:#02cc59!important;background:#f0fdf4!important}.input-success:focus{border-color:#02cc59!important}.input-loading{position:relative;color:var(--color-text-muted);background:#f9fafb;pointer-events:none}.input-loading:after{content:"";position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%);width:16px;height:16px;border:2px solid #e4e7ec;border-top:2px solid var(--color-border-focus);border-radius:50%;animation:spin 1s linear infinite}.setting-group .setting-group .setting-item{min-height:36px;padding:6px 0}.setting-group .setting-group .base-input{height:32px;padding:6px 10px;font-size:13px}.setting-group .setting-group .input-label{font-size:11px}.setting-group .setting-group .setting-group .setting-item{min-height:32px;padding:4px 0}.setting-group .setting-group .setting-group .base-input{height:28px;padding:4px 8px;font-size:12px}.setting-group .setting-group .setting-group .input-label{font-size:10px}@media (max-width: 480px){.setting-item{grid-template-columns:1fr;gap:var(--space-xs)}.setting-item-control{max-width:none;justify-self:stretch}.base-input{font-size:var(--font-size-md)}}@media (prefers-color-scheme: dark){:root{--color-text: #f9fafb;--color-text-secondary: #d0d5dd;--color-text-muted: #667085;--color-border: #344054;--color-border-hover: #475467;--color-bg: #1d2939;--color-bg-hover: #344054}}.base-input:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.compact .setting-item{min-height:32px;padding:4px 0}.compact .base-input{height:32px;padding:6px 10px;font-size:13px}.compact .input-label{font-size:11px}@media (prefers-contrast: high){.base-input{border-width:2px}.base-input:focus{border-width:3px}}.string-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;min-height:40px}.string-setting-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none}.string-setting-wrapper .string-setting-wrapper{display:block;width:100%}.color-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;min-height:40px}.color-input-wrapper{position:relative;width:100%;justify-self:end}.color-text-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-left:36px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none;text-align:center}.color-text-input::placeholder{color:var(--color-text-muted, #98a2b3)}.color-text-input:hover{border-color:var(--color-border-hover, #d0d5dd);background:var(--color-bg-hover, #f9fafb)}.color-text-input:focus{background:var(--color-bg-focus, rgba(2, 204, 89, .05))}.color-text-input:disabled{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.color-picker{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;opacity:0;cursor:pointer;z-index:2}.color-preview{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border, #e4e7ec);flex-shrink:0;transition:transform var(--transition-fast, .15s ease);pointer-events:none;background-color:#fff}.color-preview:hover{transform:translateY(-50%) scale(1.05)}.setting-group .setting-group .color-setting-wrapper{min-height:36px}.setting-group .setting-group .color-input-wrapper{max-width:120px}.setting-group .setting-group .color-text-input{height:32px;padding:6px 10px 6px 32px;font-size:13px}.setting-group .setting-group .color-preview,.setting-group .setting-group .color-picker{left:6px;width:18px;height:18px}.setting-group .setting-group .setting-group .color-setting-wrapper{min-height:32px}.setting-group .setting-group .setting-group .color-input-wrapper{max-width:100px}.setting-group .setting-group .setting-group .color-text-input{height:28px;padding:4px 8px 4px 28px;font-size:12px}.setting-group .setting-group .setting-group .color-preview,.setting-group .setting-group .setting-group .color-picker{left:4px;width:16px;height:16px}.color-input-wrapper.error .color-text-input{border-color:#f04438;background:#fff4f4;color:#f04438}.color-input-wrapper.error .color-text-input:focus{border-color:#f04438;box-shadow:0 0 0 4px #f044381a}.color-input-wrapper.disabled .color-text-input{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.color-picker:focus-visible+.color-preview{outline-offset:2px}.color-with-opacity-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;min-height:40px}.color-with-opacity-controls-wrapper{display:grid;grid-template-columns:1fr;gap:var(--space-sm, 8px);justify-self:end;width:100%}.color-with-opacity-input-wrapper,.color-with-opacity-opacity-wrapper{position:relative;width:100%}.color-with-opacity-text-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-left:36px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none;text-align:center}.color-with-opacity-text-input::placeholder{color:var(--color-text-muted, #98a2b3)}.color-with-opacity-text-input:hover{border-color:var(--color-border-hover, #d0d5dd);background:var(--color-bg-hover, #f9fafb)}.color-with-opacity-text-input:disabled{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.color-with-opacity-picker{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;opacity:0;cursor:pointer;z-index:2}.color-with-opacity-preview{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border, #e4e7ec);flex-shrink:0;transition:transform var(--transition-fast, .15s ease);pointer-events:none;background-color:#fff;cursor:pointer;overflow:hidden}.color-with-opacity-preview:hover{transform:translateY(-50%) scale(1.05)}.color-with-opacity-preview:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0px;z-index:-1}.color-with-opacity-opacity-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-right:20px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none;text-align:center}.color-with-opacity-opacity-input::placeholder{color:var(--color-text-muted, #98a2b3)}.color-with-opacity-opacity-input:hover{border-color:var(--color-border-hover, #d0d5dd);background:var(--color-bg-hover, #f9fafb)}.color-with-opacity-opacity-suffix{position:absolute;right:var(--space-sm, 8px);top:50%;transform:translateY(-50%);color:var(--color-text-muted, #98a2b3);font-size:var(--font-size-sm, 12px);font-weight:500;pointer-events:none;z-index:1}.color-with-opacity-opacity-input::-webkit-inner-spin-button,.color-with-opacity-opacity-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.color-with-opacity-opacity-input[type=number]{-moz-appearance:textfield}.setting-group .setting-group .color-with-opacity-setting-wrapper{min-height:36px}.setting-group .setting-group .color-with-opacity-controls-wrapper{max-width:120px}.setting-group .setting-group .color-with-opacity-input-wrapper,.setting-group .setting-group .color-with-opacity-opacity-wrapper{width:100%}.setting-group .setting-group .color-with-opacity-text-input,.setting-group .setting-group .color-with-opacity-opacity-input{height:32px;padding:6px 10px;font-size:13px}.setting-group .setting-group .color-with-opacity-text-input{padding-left:32px}.setting-group .setting-group .color-with-opacity-preview,.setting-group .setting-group .color-with-opacity-picker{left:6px;width:18px;height:18px}.setting-group .setting-group .color-with-opacity-opacity-input{padding-right:20px}.setting-group .setting-group .color-with-opacity-opacity-suffix{right:8px;font-size:11px}.setting-group .setting-group .setting-group .color-with-opacity-setting-wrapper{min-height:32px}.setting-group .setting-group .setting-group .color-with-opacity-controls-wrapper{max-width:100px}.setting-group .setting-group .setting-group .color-with-opacity-input-wrapper,.setting-group .setting-group .setting-group .color-with-opacity-opacity-wrapper{width:100%}.setting-group .setting-group .setting-group .color-with-opacity-text-input,.setting-group .setting-group .setting-group .color-with-opacity-opacity-input{height:28px;padding:4px 8px;font-size:12px}.setting-group .setting-group .setting-group .color-with-opacity-text-input{padding-left:28px}.setting-group .setting-group .setting-group .color-with-opacity-preview,.setting-group .setting-group .setting-group .color-with-opacity-picker{left:4px;width:16px;height:16px}.setting-group .setting-group .setting-group .color-with-opacity-opacity-input{padding-right:20px}.setting-group .setting-group .setting-group .color-with-opacity-opacity-suffix{right:8px;font-size:10px}.color-with-opacity-input-wrapper.error .color-with-opacity-text-input{border-color:#f04438;background:#fff4f4;color:#f04438}.color-with-opacity-input-wrapper.disabled .color-with-opacity-text-input{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.html-setting-wrapper{display:flex;flex-direction:column;gap:8px;position:relative;width:100%}.html-setting-wrapper .icon-container{display:flex;align-items:center;gap:8px;margin-bottom:4px}.html-setting-wrapper .icon-container label{color:var(--Gray-800, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;font-weight:500;line-height:20px;margin:0}.html-setting-wrapper .icon-container img{width:20px;height:20px;object-fit:contain}.html-setting-textarea{width:100%;min-height:120px;padding:12px;font-size:13px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;line-height:1.4;border-radius:8px;color:var(--Gray-900, #101828);border:1px solid var(--Gray-300, #d0d5dd);background:var(--Base-White, #fff);resize:vertical;min-width:0;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.html-setting-textarea:focus{outline:none}.html-setting-textarea::placeholder{color:var(--Gray-500, #667085);font-style:italic}.html-setting-textarea:disabled{background-color:var(--Gray-50, #f9fafb);color:var(--Gray-500, #667085);cursor:not-allowed}@media (max-width: 768px){.html-setting-textarea{font-size:12px;padding:10px;min-height:100px}}.html-setting-textarea::-webkit-scrollbar{width:8px}.html-setting-textarea::-webkit-scrollbar-track{background:var(--Gray-100, #f2f4f7);border-radius:4px}.html-setting-textarea::-webkit-scrollbar-thumb{background-color:var(--Gray-300, #d0d5dd);border-radius:4px;border:2px solid transparent;background-clip:content-box}.html-setting-textarea::-webkit-scrollbar-thumb:hover{background-color:var(--Gray-400, #98a2b3)}.html-setting-textarea{scrollbar-width:thin;scrollbar-color:var(--Gray-300, #d0d5dd) var(--Gray-100, #f2f4f7)}.html-setting-textarea[data-syntax=html]{font-family:Monaco,Menlo,Ubuntu Mono,Courier New,monospace;-moz-tab-size:2;tab-size:2}.number-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;min-height:40px}.number-setting-input-container{position:relative;width:100%;justify-self:end}.number-setting-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-right:44px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none}.number-setting-input::placeholder{color:var(--color-text-muted, #98a2b3)}.number-setting-input:hover{border-color:var(--color-border-hover, #d0d5dd);background:var(--color-bg-hover, #f9fafb)}.number-setting-input:focus{background:var(--color-bg-focus, rgba(2, 204, 89, .05))}.number-setting-input:disabled{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.suffix-label{position:absolute;right:var(--space-md, 12px);top:50%;transform:translateY(-50%);color:var(--color-text-muted, #98a2b3);font-size:var(--font-size-sm, 12px);font-weight:500;pointer-events:none;z-index:1}.number-setting-input::-webkit-inner-spin-button,.number-setting-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-setting-input[type=number]{-moz-appearance:textfield}.setting-group .setting-group .number-setting-wrapper{min-height:36px}.setting-group .setting-group .number-setting-input-container{max-width:120px}.setting-group .setting-group .number-setting-input{height:32px;padding:6px 36px 6px 10px;font-size:13px}.setting-group .setting-group .suffix-label{right:10px;font-size:11px}.setting-group .setting-group .setting-group .number-setting-wrapper{min-height:32px}.setting-group .setting-group .setting-group .number-setting-input-container{max-width:100px}.setting-group .setting-group .setting-group .number-setting-input{height:28px;padding:4px 32px 4px 8px;font-size:12px}.setting-group .setting-group .setting-group .suffix-label{right:8px;font-size:10px}.number-setting-input.error{border-color:#f04438;background:#fff4f4;color:#f04438}.number-setting-input.error:focus{border-color:#f04438;box-shadow:0 0 0 4px #f044381a}.number-setting-input:focus-visible{outline-offset:2px}.opacity-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;min-height:40px}.icon-container{display:flex;align-items:center;gap:var(--space-sm, 8px)}.input-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--color-text-muted, #98a2b3)}.input-icon svg{width:16px;height:16px}.input-label{color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:500;line-height:1.4}.opacity-setting-input-container{position:relative;width:100%;justify-self:end}.opacity-setting-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-right:44px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none}.opacity-setting-input::placeholder{color:var(--color-text-muted, #98a2b3)}.opacity-setting-input:hover{border-color:var(--color-border-hover, #d0d5dd);background:var(--color-bg-hover, #f9fafb)}.opacity-setting-input:focus{background:var(--color-bg-focus, rgba(2, 204, 89, .05))}.opacity-setting-input:disabled{background:#f9fafb;color:var(--color-text-muted, #98a2b3);cursor:not-allowed;opacity:.7}.opacity-suffix{position:absolute;right:var(--space-md, 12px);top:50%;transform:translateY(-50%);color:var(--color-text-muted, #98a2b3);font-size:var(--font-size-sm, 12px);font-weight:500;pointer-events:none;z-index:1}.opacity-setting-input::-webkit-inner-spin-button,.opacity-setting-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.opacity-setting-input[type=number]{-moz-appearance:textfield}.setting-group .setting-group .opacity-setting-wrapper{min-height:36px}.setting-group .setting-group .opacity-setting-input-container{max-width:120px}.setting-group .setting-group .opacity-setting-input{height:32px;padding:6px 36px 6px 10px;font-size:13px}.setting-group .setting-group .opacity-suffix{right:10px;font-size:11px}.setting-group .setting-group .setting-group .opacity-setting-wrapper{min-height:32px}.setting-group .setting-group .setting-group .opacity-setting-input-container{max-width:100px}.setting-group .setting-group .setting-group .opacity-setting-input{height:28px;padding:4px 32px 4px 8px;font-size:12px}.setting-group .setting-group .setting-group .opacity-suffix{right:8px;font-size:10px}.opacity-setting-input.error{border-color:#f04438;background:#fff4f4;color:#f04438}.opacity-setting-input.error:focus{border-color:#f04438;box-shadow:0 0 0 4px #f044381a}.opacity-setting-input:focus-visible{outline-offset:2px}.select-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 12px);align-items:center;position:relative;width:100%;min-height:40px;z-index:1}.select-container .select-options{position:fixed;z-index:99999;max-width:300px;min-width:200px}.setting-group .select-container,.tab-content .select-container,.tabs-settings-container .select-container{position:relative;z-index:1}.select-container .icon-container{display:flex;align-items:center;margin-bottom:0}.select-container .icon-container .input-label{color:var(--color-text-secondary, #667085);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-sm, 12px);font-style:normal;font-weight:400;line-height:1.4}.select-button{place-self:end;max-width:140px;width:100%;height:36px;min-height:36px;display:flex;align-items:center;justify-content:flex-start;padding:0 40px 0 var(--space-md, 12px);border-radius:var(--radius-lg, 8px);border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);cursor:pointer;font-size:var(--font-size-md, 14px);font-weight:400;color:var(--color-text, #1d2939);position:relative;transition:all var(--transition-fast, .15s ease);box-shadow:0 1px 2px #1018280d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.select-button:hover{border-color:var(--color-border-hover, #d0d5dd);box-shadow:0 1px 3px #1018281a}.select-button:focus{outline:none}.select-button.has-label{padding-top:0;height:36px}.select-button .select-label{position:absolute;top:8px;left:16px;color:#667085;font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80%}.select-button .select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.select-button.loading{position:relative;color:#6e7891;background-color:#f9fafb;pointer-events:none;padding-left:36px!important}.select-button.loading:before{content:"";position:absolute;left:10px;top:25%;transform:translateY(-50%);width:16px;height:16px;border:2px solid #e4e7ec;border-top:2px solid #02cc59;border-radius:50%;animation:select-spin 1s linear infinite;z-index:2}@keyframes select-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.select-button.error{border-color:#f04438;color:#f04438;background-color:#fff4f4}.select-options{display:none;position:fixed!important;z-index:99999!important;max-height:280px;overflow-y:auto;margin:0;padding:6px;list-style-type:none;flex-direction:column;color:#101828;align-items:flex-start;border:1px solid #e4e7ec;background:#fff;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;transition:opacity .2s ease,transform .2s ease;opacity:0;transform:translateY(-8px);min-width:200px;max-width:300px}.select-options.open{display:flex;opacity:1;transform:translateY(0);animation:select-fade-in .2s ease forwards}@keyframes select-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.select-option{padding:10px 12px;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:#344054;border-radius:6px;transition:background-color .15s ease;font-size:14px}.select-option:hover{background:#f9fafb}.select-option.selected{background:#b6dfc8;color:#344054;font-weight:400}.svg-container{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:20px;height:20px;pointer-events:none;z-index:1}.svg-container .svg-select{stroke:#667085;transition:transform .3s ease;width:16px;height:16px}.svg-container.open .svg-select{transform:rotate(180deg)}.select-options::-webkit-scrollbar{width:6px}.select-options::-webkit-scrollbar-track{background:transparent;border-radius:8px}.select-options::-webkit-scrollbar-thumb{background:#e4e7ec;border-radius:8px}.select-options::-webkit-scrollbar-thumb:hover{background:#d0d5dd}.select-option.empty-message{text-align:center;color:#6e7891;font-style:italic;cursor:default;justify-content:center}.setting-group .setting-group .select-container{min-height:36px}.setting-group .setting-group .select-button{height:32px;min-height:32px;max-width:120px;font-size:13px;padding:0 32px 0 10px}.setting-group .setting-group .select-container .icon-container .input-label{font-size:11px}.setting-group .setting-group .setting-group .select-container{min-height:32px}.setting-group .setting-group .setting-group .select-button{height:28px;min-height:28px;max-width:100px;font-size:12px;padding:0 28px 0 8px}.setting-group .setting-group .setting-group .select-container .icon-container .input-label{font-size:10px}.setting-group .setting-group .svg-container,.setting-group .setting-group .setting-group .svg-container{right:8px;width:16px;height:16px}.setting-group .setting-group .svg-container .svg-select,.setting-group .setting-group .setting-group .svg-container .svg-select{width:12px;height:12px}.align-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;place-content:center;align-items:center}.align-setting-label{font-size:12px;color:var(--color-text)}.align-options-container{width:120px;color:#0006;background-color:#f5f6f7;border-radius:9999px;padding:4px 13px;display:flex;gap:8px;justify-self:flex-end}.align-option-button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:none;cursor:pointer;border-radius:50%;transition:background-color .2s,color .2s}.align-option-button:hover{background-color:#fff}.align-option-button.selected{background-color:var(--color-white);color:var(--color-black)}.button-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;place-content:center;align-items:center}.button-setting{display:flex;height:30px;min-width:64px;padding:0;justify-content:center;align-items:center;gap:8px;flex:1 0 0;border:1px solid rgba(145,158,171,.32);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;line-height:20px;letter-spacing:.01em;text-align:center}.dimension-setting-container{display:flex;flex-direction:column;gap:8px;position:relative;width:100%}.dimension-bracket{width:18px;height:42px;position:absolute;top:16px;right:122px;display:flex;align-items:center;justify-content:center;z-index:1}.dimension-bracket:before{content:"";position:absolute;width:13px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M14 1H5C2.79086 1 1 2.79086 1 5V15' stroke='%23667085'/></svg>") no-repeat center center;background-size:contain;top:0;right:1px}.dimension-bracket:after{content:"";position:absolute;width:13px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M14 14H5C2.79086 14 1 12.2091 1 10V4.76837e-07' stroke='%23667085'/></svg>") no-repeat center center;background-size:contain;bottom:0;right:1px}.dimension-lock-icon{transform:translate(-.25rem);width:24px;height:24px;background:none;border:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#667085;z-index:1;border-radius:4px;transition:all .2s ease}.dimension-lock-icon:hover{background-color:#f5f5f5;transform:translate(-.25rem) scale(1.1)}.dimension-setting-container.aspect-locked .dimension-lock-icon{color:#02cc59;background-color:#02cc591a;box-shadow:0 0 0 1px #02cc5933}.dimension-setting-container.aspect-locked .dimension-bracket:before,.dimension-setting-container.aspect-locked .dimension-bracket:after{filter:hue-rotate(210deg) saturate(2)}@media (max-width: 480px){.dimension-bracket{right:100px}}.upload-setting-wrapper{display:grid;grid-template-columns:1fr;gap:8px;width:100%}.icon-title-container{display:flex;align-items:center;gap:8px;margin-bottom:4px}.icon-title-container .input-label{color:#344054;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;font-weight:500}.preview-button-container{display:flex;justify-content:space-between;align-items:center;align-self:stretch;width:100%;gap:12px;border-radius:12px}.preview-button-container.no-image{justify-content:center}.preview-button-container.no-image .preview-placeholder{display:none}.preview-button-container.no-image .upload-button{width:100%;min-width:140px;flex-grow:1;margin:0 auto}.no-image .preview-placeholder{display:none!important}.preview-wrapper{position:relative;width:91px;height:71px;border-radius:4px;overflow:hidden;background-color:#d3d3d3;flex-shrink:0;display:none}.preview-wrapper.has-image{display:block}.upload-preview{width:100%;height:100%;object-fit:cover;border-radius:4px;display:none;background-position:center;background-size:146.165% 100%;background-repeat:no-repeat}.preview-wrapper.has-image .upload-preview{display:block;object-fit:contain;padding:2px}.empty-state{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#d3d3d3}.empty-state svg{width:100%;height:100%}.preview-wrapper.has-image .empty-state{display:none}.upload-button{width:100%;height:40px;display:flex;padding:5px 4px;flex-direction:row;align-items:center;gap:4px;border-radius:12px;border:1px solid var(--Gray-200, #eaecf0);background:var(--Base-White, #fff);cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #1018280d;flex-grow:0;justify-content:center;min-width:90px}.preview-wrapper:not(.has-image)+.upload-button{flex-grow:0}.upload-button:hover{border-color:#d0d5dd;box-shadow:0 1px 3px #1018281a}.upload-icon{display:flex;align-items:center;justify-content:center}.upload-label{font-size:12px;font-weight:500;color:#344054}.delete-button{display:flex;width:24px;height:24px;padding:4px;justify-content:center;align-items:center;position:absolute;right:4px;top:4px;background:#fff;border:none;border-radius:50%;cursor:pointer;box-shadow:0 2px 4px #0000001a;transition:background-color .2s ease;z-index:2}.delete-button svg{width:14px;height:14px;flex-shrink:0}.delete-button:hover{background-color:#f3f4f6}.upload-setting-wrapper.no-label .preview-button-container{grid-row:1}.preview-placeholder{display:flex;justify-content:center;align-items:center;width:91px;height:71px;border-radius:4px;background-color:#f2f4f7;flex-shrink:0}.preview-button-container:not(:has(.preview-wrapper.has-image)) .preview-placeholder{display:flex}.upload-setting-wrapper .error-message{color:#f04438;font-size:12px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:400;line-height:1.4;margin-top:4px;margin-bottom:8px;padding:8px 12px;background-color:#fff4f4;border:1px solid #fecdca;border-radius:6px;display:none;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.upload-setting-wrapper .error-message:before{content:"⚠️";margin-right:6px}.preview-wrapper.loading{display:flex;align-items:center;justify-content:center;background-color:#f9fafb}.preview-wrapper.loading .upload-preview{display:none}.loading-spinner{width:29px;height:29px;display:flex;align-items:center;justify-content:center;animation:spin 1s linear infinite}.loading-spinner svg{width:100%;height:100%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.height-setting{display:grid;grid-template-columns:1fr 1fr;place-content:center;align-items:center}.height-setting-wrapper{display:flex;align-items:center;justify-content:space-between;gap:2px}.height-input-wrapper{position:relative;padding:8px 8px 8px 4px;width:120px;height:33px;display:flex;align-items:center;gap:4px;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg)}.height-text-input{border:none;outline:none;width:65px;color:var(--color-input-text);font-size:14px;text-align:center;background:transparent}.width-setting{display:grid;grid-template-columns:1fr 1fr;place-content:center;align-items:center}.width-setting-wrapper{display:flex;align-items:center;justify-content:space-between;gap:2px}.width-input-wrapper{position:relative;padding:8px 8px 8px 4px;width:120px;height:33px;display:flex;align-items:center;gap:4px;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg)}.width-text-input{border:none;outline:none;width:65px;color:var(--color-input-text);font-size:14px;text-align:center;background:transparent}.width-setting .number-setting{width:100%}.select-api-container{display:grid;grid-template-columns:1fr;place-content:center;align-items:center;position:relative;width:100%}.select-api-button{width:100%;height:33px;min-height:33px;display:flex;align-items:center;justify-content:flex-start;padding:0 40px 0 16px;border-radius:8px;border:1px solid var(--color-border, #e4e7ec);background:#fff;cursor:pointer;color:#344054;font-family:Satoshi;font-size:14px;font-style:normal;font-weight:500;line-height:normal;position:relative;transition:all .2s ease;box-shadow:0 1px 2px #1018280d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:40px!important}.select-api-button:hover{border-color:#d0d5dd;box-shadow:0 1px 3px #1018281a}.select-api-button:focus{outline:none;border-color:#b6dfc8;box-shadow:0 0 0 4px #7f56d91a}.select-api-button .select-label{position:absolute;top:2px;color:#667085;font-family:Satoshi;font-size:12px;font-style:normal;font-weight:400;line-height:normal;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80%}.select-api-button .select-value{margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.select-api-button.loading{position:relative;color:#6e7891;background-color:#f9fafb;pointer-events:none;padding-left:36px!important}.select-api-button.loading:before{content:"";position:absolute;left:10px;top:25%;transform:translateY(-50%);width:16px;height:16px;border:2px solid #e4e7ec;border-top:2px solid #02CC59;border-radius:50%;animation:select-api-spin 1s linear infinite;z-index:2}.select-api-button.has-label.loading{padding-left:36px!important}.select-api-button.has-label.loading .select-value{padding-left:0}.select-api-button.has-label.loading:before{top:18px;left:10px}@keyframes select-api-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.select-api-button.error{border-color:#f04438;color:#f04438;background-color:#fff4f4}.select-api-options{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:280px;overflow-y:auto;margin:0;padding:6px;list-style-type:none;z-index:100;flex-direction:column;color:#101828;align-items:flex-start;border:1px solid #e4e7ec;background:#fff;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;transition:opacity .2s ease,transform .2s ease;opacity:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transform:translateY(-8px)}.select-api-options.open{display:flex;opacity:1;transform:translateY(0)}.select-api-option{padding:10px 12px;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:#344054;border-radius:6px;transition:background-color .15s ease;font-size:14px}.select-api-option:hover{background:#f9fafb}.select-api-option.selected{background:#b6dfc8;color:#344054;font-weight:500}.select-api-option.disabled{opacity:.6;cursor:not-allowed;color:#6e7891}.select-api-radio{width:18px;height:18px;border-radius:50%;border:1.5px solid #e4e7ec;background:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;margin:0;cursor:pointer}.select-api-radio:checked{border-color:#02cc59;background:#fff;position:relative}.select-api-radio:checked:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:#02cc59;border-radius:50%}.svg-container{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;pointer-events:none}.svg-container .svg-select-api{stroke:#667085;transition:transform .3s ease;width:16px;height:16px}.svg-container.open .svg-select-api{transform:rotate(180deg)}.select-api-container .icon-container{display:none}.select-api-options::-webkit-scrollbar{width:6px}.select-api-options::-webkit-scrollbar-track{background:transparent;border-radius:8px}.select-api-options::-webkit-scrollbar-thumb{background:#e4e7ec;border-radius:8px}.select-api-options::-webkit-scrollbar-thumb:hover{background:#d0d5dd}.select-api-option.empty-message{text-align:center;color:#6e7891;font-style:italic;cursor:default;justify-content:center}.select-api-option.empty-message:hover{background:transparent}.select-api-option:focus{outline:none;box-shadow:0 0 0 2px #b6dfc8}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.select-api-options.open{display:flex;animation:fadeIn .2s ease forwards}.select-api-button.has-label{height:48px}.toggle-setting-container{display:flex;justify-content:space-between;align-items:center;padding-left:3px;padding-right:3px;flex-wrap:wrap}.toggle-label{color:#344054;font-family:Satoshi;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px;padding:2px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#e4e7ec;transition:.4s;border-radius:34px}.toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.toggle-slider{background-color:#02cc59}input:focus+.toggle-slider{box-shadow:0 0 1px #02cc59}input:checked+.toggle-slider:before{transform:translate(16px)}.toggle-with-icon .toggle-label{display:flex;align-items:center;gap:8px}.toggle-icon{display:flex;align-items:center;justify-content:center;color:#667085}.toggle-description{color:#637381;width:100%;margin:8px 0 0;font-size:11px;line-height:16px}.toggle-setting-container.toggle-has-description{border:1px dashed #919EAB66;border-radius:12px;padding:12px 8px;box-sizing:border-box}.gap-settings-container{display:flex;flex-direction:column;gap:12px;width:100%}.gap-settings-title{font-size:14px;font-weight:500;color:#344054;margin-bottom:4px}.gap-input-wrapper{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;width:100%}.gap-label-container{display:flex;flex-direction:row;align-items:center;gap:8px;flex:1}.gap-setting-icon{display:flex;align-items:center;justify-content:center;font-size:16px;color:#667085}.gap-setting-icon svg{width:16px;height:16px}.gap-input-label{font-size:13px;color:#667085}.gap-setting-inner-wrapper{position:relative;display:grid;grid-template-columns:1fr;place-content:center;align-items:center;width:120px}.gap-setting-input{width:100%;padding:8px;font-size:14px;border-radius:8px;color:#292b2e;border:1px solid var(--color-border);background:var(--color-bg);box-sizing:border-box}.suffix-wrapper{position:relative}.suffix-label{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding-left:8px;border-left:1px solid var(--color-divider);font-size:12px;color:var(--color-text)}.gap-setting-input::-webkit-outer-spin-button,.gap-setting-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.gap-setting-input[type=number]{-moz-appearance:textfield}.margin-bottom-wrapper{display:grid;grid-template-columns:1fr auto;gap:auto}.margin-bottom-wrapper .setting-icon svg{width:18px;height:19px}.margin-bottom-wrapper .number-setting-input{background:#fff;min-width:95px;width:95px;padding:8px;border-radius:8px;border:1px solid #D0D5DD;font-size:14px;color:#292b2e}.margin-bottom-wrapper .setting-title{color:#667085;font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:18px}.margin-top-wrapper{display:grid;grid-template-columns:1fr auto;gap:auto}.margin-top-wrapper .setting-icon svg{width:18px;height:19px}.margin-top-wrapper .number-setting-input{background:#fff;min-width:95px;width:95px;padding:8px;border-radius:8px;border:1px solid #D0D5DD;font-size:14px;color:#292b2e}.margin-top-wrapper .setting-title{color:#667085;font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:18px}.simple-multi-language-wrapper{display:flex;flex-direction:column;width:100%}.simple-multi-language-title{color:#000;font-weight:700;font-size:14px;margin-bottom:8px}.simple-multi-language-content{display:flex;flex-direction:column;gap:12px;width:100%}.simple-multi-language-row{display:flex;flex-direction:column;gap:6px}.simple-language-label{font-size:12px;font-weight:500;color:var(--color-input-text);text-transform:uppercase;letter-spacing:.5px}.simple-language-textarea{width:100%;min-height:0;padding:12px;font-size:14px;border-radius:8px;color:var(--color-input-text);border:1px solid var(--color-border);background:var(--color-bg);font-family:inherit;resize:none;line-height:1.4;overflow-y:hidden;box-sizing:border-box}.simple-language-textarea:focus{outline:none;border-color:var(--color-primary, #007bff);box-shadow:0 0 0 2px #007bff40}.simple-language-textarea::placeholder{color:var(--color-text-muted, #6c757d);white-space:nowrap;text-overflow:ellipsis}.simple-language-textarea:placeholder-shown{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 640px){.simple-multi-language-row{gap:4px}.simple-language-label{font-size:11px}.simple-language-textarea{min-height:0;padding:8px;font-size:13px}}.gradient-setting-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;min-height:40px}.gradient-controls{display:flex;align-items:center;gap:10px}.gradient-type,.gradient-angle{padding:6px 8px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;font:inherit}.gradient-angle-wrap{display:inline-flex;align-items:center;gap:6px}.gradient-preview{position:relative;height:34px;border-radius:8px;border:1px solid #e5e7eb;overflow:visible;background:linear-gradient(90deg,#a84b4b,#786666);max-width:250px;margin:42px auto 0}.gradient-handles{position:absolute;top:-4px;left:0;right:0;height:calc(100% + 8px);pointer-events:none}.gstop-handle{position:absolute;border-radius:4px;background:#fff;border:1px solid white;transform:translate(-50%,-50%);cursor:grab;display:grid;place-items:center;pointer-events:auto;box-shadow:0 1px 3px #0000001a;z-index:10;transition:all .15s ease;user-select:none;-webkit-user-select:none;touch-action:none}.gstop-handle:active{cursor:grabbing}.gstop-handle:hover{transform:translate(-50%,-50%) scale(1.05);border-color:#9ca3af}.gstop-handle.selected{border:2px solid #2563eb;box-shadow:0 0 0 2px #2563eb33;transform:translate(-50%,-50%) scale(1.1);cursor:grabbing;transition:none!important}.gstop-chip{width:24px;height:24px;border-radius:2px;border:1px solid white;position:relative}.gstop-chip:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:0;height:0;z-index:-1;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid #ffffff;border-top-color:inherit}.gradient-stops-header{padding:4px;display:flex;align-items:center;justify-content:space-between;color:#1d2939;font-weight:500;font-size:14px}.gradient-add-stop{width:32px;height:32px;border-radius:8px;color:#667085;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:400}.gradient-add-stop:hover{background:#f9fafb;border-color:#9ca3af}.gradient-stops{display:flex;flex-direction:column;max-height:200px;overflow-y:auto;overflow-x:visible;padding-right:4px;scrollbar-width:thin;scrollbar-color:#cbd5e1 #f1f5f9}.gradient-stops::-webkit-scrollbar{width:6px}.gradient-stops::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.gradient-stops::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.gradient-stops::-webkit-scrollbar-thumb:hover{background:#94a3b8}.gstop-row{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:8px;background:#00a76f14;min-height:44px}.gstop-position-group{display:flex;align-items:center;min-width:51px}.gstop-position-input{width:60px;padding:8px 10px;border:1px solid #919eab33;border-radius:8px;color:#1f2937;font-size:13px;font-weight:500;text-align:center;outline:none;transition:all .2s ease;background:#f9fafb;text-align:left}.gstop-position-input:hover{border-color:#cbd5e1;background-color:#f8fafc}.gstop-position-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gstop-position-input:disabled{opacity:.4;cursor:not-allowed}.gstop-color-container{position:relative;width:100%;max-width:180px;margin-left:4px;min-height:40px;display:flex;align-items:center;padding-left:8px}.gstop-color-preview{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:4px;border:1px solid #e4e7ec;z-index:10;pointer-events:none;flex-shrink:0}.gstop-color-input{width:100%;padding:8px 40px 8px 32px;border:1px solid #919eab33;border-radius:8px;color:#1f2937;font-size:13px;font-weight:500;text-align:left;outline:none;transition:all .2s ease;cursor:pointer;background:#f9fafb}.gstop-color-input:before{content:"";position:absolute;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:4px;border:1px solid #e4e7ec;background-color:var(--color, #ffffff);flex-shrink:0}.gstop-color-input:hover{border-color:#cbd5e1;background-color:#f8fafc}.gstop-color-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gstop-color-input:disabled{opacity:.4;cursor:not-allowed;background:var(--action-selected, #919eab29)!important;border-color:var(--action-selected, #919eab29)!important}.gstop-color-copy{display:none;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:none;background:transparent;cursor:pointer;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease;opacity:.7}.gstop-color-copy:hover{opacity:1;background:#919eab1a}.gstop-color-copy:active{transform:translateY(-50%) scale(.95)}.gstop-color{width:32px;height:32px;padding:0;border:2px solid #ffffff;border-radius:8px;cursor:pointer;outline:none;box-shadow:0 1px 2px #0000000d;position:relative;z-index:20;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none;border-radius:6px}.gstop-hex{flex:1;min-width:100px;padding:10px 12px;border:2px solid #e2e8f0;border-radius:10px;background:#fff;color:#1f2937;font-size:13px;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-weight:500;outline:none;transition:all .2s ease}.gstop-hex:hover{border-color:#cbd5e1;background-color:#f8fafc}.gstop-hex:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gstop-link{width:24px;height:24px;border:none;background:transparent;color:#667085;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px}.gstop-link:hover{background:#f3f4f6;color:#374151}.gstop-del{width:36px;min-width:36px;height:36px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:4px;gap:8px;opacity:1;flex-shrink:0}.gstop-del:hover{background:#f8fafc}.gstop-del:disabled{opacity:.4;cursor:not-allowed;background:var(--action-selected, #919eab29)}.gstop-opacity-label{font-size:12px;color:#64748b;font-weight:500;min-width:50px}.gstop-opacity-group{display:flex;align-items:center;gap:12px;flex:1}.gstop-opacity-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;max-width:135px;width:100%;height:16px;border-radius:999px;border:0;outline:none;cursor:pointer;background-color:#eef2f7;background-image:conic-gradient(#0000 25%,#ffffff59 0,#ffffff59 50%,#0000 0,#0000 75%,#ffffff59 0),linear-gradient(to right,transparent,var(--slider-color, #3b82f6));background-size:12px 12px,100% 100%;background-blend-mode:normal,normal;box-shadow:inset 0 0 0 1px #00000021;position:relative}.gstop-opacity-slider::-webkit-slider-track{height:16px;border:none;border-radius:999px;background:transparent}.gstop-opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid #0a0a0a;box-shadow:0 1px 2px #00000040;cursor:pointer;transition:all .15s ease;margin-top:-1px}.gstop-opacity-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 2px 4px #0000004d}.gstop-opacity-slider::-moz-range-track{height:16px;border:none;border-radius:999px;background:transparent}.gstop-opacity-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid #0a0a0a;box-shadow:0 1px 2px #00000040;cursor:pointer;transition:all .15s ease}.gstop-opacity-slider::-moz-range-thumb:hover{transform:scale(1.1);box-shadow:0 2px 4px #0000004d}.gstop-opacity-slider:focus-visible{outline:3px solid rgba(59,130,246,.45);outline-offset:4px;border-radius:12px}.gstop-opacity-value{font-size:12px;color:#475569;font-weight:600;min-width:38px;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:4px 6px}.gradient-solid-picker{display:flex;align-items:center;gap:12px;padding:8px;background:#f9fafb;border-radius:8px}.gradient-solid-color{width:257px;height:34px;padding:0;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;outline:none}.gradient-solid-hex{width:120px;padding:12px 16px;border:2px solid #e2e8f0;border-radius:12px;background:#fff;color:#1f2937;font-size:14px;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-weight:500;outline:none;transition:all .2s ease}.gradient-solid-hex:hover{border-color:#cbd5e1;background-color:#f8fafc}.gradient-solid-hex:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gradient-input-wrapper{position:relative;width:100%}.gradient-text-input{width:100%;height:36px;padding:var(--space-sm, 8px) var(--space-md, 12px);padding-left:36px;color:var(--color-text, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--font-size-md, 14px);font-weight:400;line-height:1.4;border:1px solid var(--color-border, #e4e7ec);background:var(--color-bg, #fff);box-sizing:border-box;border-radius:var(--radius-lg, 8px);transition:all var(--transition-fast, .15s ease);outline:none;text-align:center}.gradient-text-input:hover{border-color:#cbd5e1;background-color:#f8fafc}.gradient-text-input:focus{border-color:#cbd5e1;background-color:#f0efef}.gradient-text-input:disabled{opacity:.4;cursor:not-allowed;background:var(--action-selected, #919eab29)!important;border-color:var(--action-selected, #919eab29)!important}.gradient-mini-preview{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:4px;border:1px solid #e4e7ec;cursor:pointer;overflow:hidden}.gradient-popover-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000;z-index:9999}.gradient-popover{position:fixed;z-index:10000;background:var(--primary-contrast-text, #ffffff);border-radius:8px;box-shadow:0 1px 8px #0003;overflow:visible;width:306px;height:auto;min-height:200px;max-height:80vh;opacity:1;padding:12px;display:flex;flex-direction:column;gap:16px}.gradient-popover-header{display:flex;align-items:center;justify-content:space-between;color:#1d2939;font-weight:600;font-size:16px}.gradient-popover-close{width:24px;height:24px;border-radius:4px;border:none;background:transparent;color:#667085;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px}.gradient-popover-close:hover{background:#f9fafb;color:#374151}.gradient-editor{display:flex;flex-direction:column;gap:6px;flex:1;overflow:hidden;min-height:0}.gradient-type-tabs{display:flex;background:#f9fafb;border-radius:8px;padding:2px;gap:2px;-webkit-user-select:none;user-select:none}.gradient-type-tab{flex:1;padding:8px 16px;border:none;background:transparent;color:#667085;cursor:pointer;border-radius:6px;font-size:14px;font-weight:500;transition:all .15s ease}.gradient-type-tab.active{background:#fff!important;color:#1d2939!important;box-shadow:0 1px 2px #0000000d}.gradient-type-tab:hover:not(.active){background:#f3f4f6;color:#374151}.gradient-subtype-tabs{display:flex;background:#f0f2f5;border-radius:6px;padding:2px;gap:2px;margin-bottom:12px}.gradient-subtype-inline{display:flex;align-items:center;gap:4px;margin-bottom:8px}.gradient-subtype-select{border:1px solid #b1b6bf;padding:6.5px 40px 6.5px 16px;border-radius:8px;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;color:#1f2937;font-size:14px;font-weight:500;outline:none;cursor:pointer;transition:all .2s ease;appearance:none;-webkit-appearance:none;-moz-appearance:none;min-height:38px;box-sizing:border-box;line-height:1.4;width:100%}.gradient-subtype-select:hover{border-color:#cbd5e1;background-color:#f8fafc}.gradient-subtype-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gradient-subtype-select option{padding:12px 16px;background-color:#fff;color:#1f2937;font-size:14px;font-weight:500;border:none;outline:none;min-height:44px;line-height:1.4}.gradient-subtype-select option:hover{background-color:#f8fafc!important;color:#1f2937!important}.gradient-subtype-select option:checked,.gradient-subtype-select option:selected{background-color:#3b82f6!important;color:#fff!important;font-weight:600}.gradient-subtype-select option:disabled{background-color:#f1f5f9!important;color:#94a3b8!important;cursor:not-allowed}.gradient-subtype-tab{flex:1;padding:6px 12px;border:none;background:transparent;color:#667085;cursor:pointer;border-radius:4px;font-size:12px;font-weight:500;transition:all .15s ease}.gradient-subtype-tab.active{background:#fff;color:#1d2939;box-shadow:0 1px 2px #0000000d}.gradient-subtype-tab:hover:not(.active){background:#e5e7eb;color:#374151}.gradient-angle-controls{display:flex;align-items:center;gap:12px}.gradient-angle-input{flex:1;display:flex;align-items:center;gap:8px}.gradient-angle-input select{flex:1;padding:12px 40px 12px 16px;border:2px solid #e2e8f0;border-radius:12px;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;color:#1f2937;font-size:14px;font-weight:500;outline:none;cursor:pointer;transition:all .2s ease;appearance:none;-webkit-appearance:none;-moz-appearance:none}.gradient-angle-input select:hover{border-color:#cbd5e1;background-color:#f8fafc}.gradient-angle-input select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gradient-angle-input select option{padding:12px 16px;background-color:#fff;color:#1f2937;font-size:14px;font-weight:500;border:none;outline:none}.gradient-angle-input select option:hover{background-color:#f8fafc;color:#1f2937}.gradient-angle-input select option:checked,.gradient-angle-input select option:selected{background-color:#3b82f6;color:#fff}.gradient-angle-input select option:disabled{background-color:#f1f5f9;color:#94a3b8}.gradient-degree-input{border:1px solid #919eab33;padding:6.5px 16px;border-radius:8px;max-width:75px;background:#fff;color:#1f2937;font-size:14px;font-weight:500;width:80px;text-align:center;outline:none;transition:all .2s ease;min-height:38px}.gradient-degree-input:hover{border-color:#cbd5e1;background-color:#f8fafc}.gradient-degree-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.gradient-degree-input:disabled{opacity:.4;cursor:not-allowed;background:var(--action-selected, #919eab29)!important;border-color:var(--action-selected, #919eab29)!important}.gradient-flip-btn{max-width:36px;height:38px;width:100%;border-radius:6px;background:#919eab29;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;transition:all .2s ease}.gradient-flip-btn:hover{background:#e3e2e4;color:#374151}.gradient-flip-btn:active{transform:scale(.95)}.custom-color-picker{position:fixed;width:306px;background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;border:1px solid #e5e7eb;z-index:10001;overflow:hidden;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:box-shadow .2s ease}.color-picker-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000;z-index:10000}.custom-color-picker.dragging{box-shadow:0 25px 30px -5px #00000026,0 15px 15px -5px #00000014;cursor:move}.color-picker-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #f3f4f6;background:#fafafa;cursor:move}.color-picker-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #f3f4f6;background:#fafafa;cursor:move;-webkit-user-select:none;user-select:none;position:relative}.color-picker-header span{font-size:16px;font-weight:600;color:#111827}.color-picker-close{width:28px;height:28px;border:none;background:transparent;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:#6b7280;transition:all .15s ease}.color-picker-close:hover{background:#f3f4f6;color:#374151}.color-picker-area{height:268px;margin:8px;border-radius:12px;position:relative;cursor:crosshair;background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,red);overflow:hidden}.color-picker-area.embedded{width:100%;height:200px;margin:0 0 16px}.color-picker-marker{position:absolute;width:20px;height:20px;border:3px solid #ffffff;border-radius:50%;box-shadow:0 1px 3px #0000004d,inset 0 0 0 1px #0000001a;transform:translate(-50%,-50%);pointer-events:none}.color-picker-hue{width:368px;height:16px;margin:0 20px 20px;border-radius:8px;position:relative;cursor:pointer;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.color-picker-hue.embedded{width:100%;margin:0 auto 16px;max-width:260px}.color-picker-hue-container{display:flex;align-items:center;gap:4px;width:100%;margin:0 auto;max-width:260px}.custom-color-picker .color-picker-hue-container{max-width:368px;padding:4px 8px}.color-picker-eyedropper{background:none;border:none;padding:8px;border-radius:6px;cursor:pointer;transition:background-color .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.color-picker-eyedropper:hover{background-color:#0000000d}.color-picker-eyedropper:active{transform:scale(.95)}.color-picker-eyedropper svg{width:18px;height:18px}.color-picker-hue-container .color-picker-hue{flex:1;margin:0}.color-picker-hue-marker{position:absolute;width:20px;height:20px;border:3px solid #ffffff;border-radius:50%;box-shadow:0 1px 3px #0000004d;transform:translate(-50%,-50%);top:50%;pointer-events:none;background:#fff}.color-picker-opacity{max-width:368px;height:16px;margin:0 20px 20px;border-radius:8px;position:relative;cursor:pointer;background:linear-gradient(to right,transparent 0%,var(--base-color, #ff0000) 100%),repeating-conic-gradient(#cccccc 0% 25%,transparent 0% 50%) 50% / 20px 20px}.color-picker-opacity.embedded{width:100%;margin:0 auto 16px;max-width:255px}.color-picker-opacity-marker{position:absolute;width:20px;height:20px;border:3px solid #ffffff;border-radius:50%;box-shadow:0 1px 3px #0000004d;transform:translate(-50%,-50%);top:50%;pointer-events:none;background:#fff}.color-picker-format-section{display:flex;align-items:center;padding:0 20px 20px;gap:4px}.color-picker-format-section.embedded{padding:0 4px}.color-picker-format-select{padding:8px;border:1px solid #e5e7eb;border-radius:8px;font-size:12px;font-weight:500;color:#374151;background:#fff;outline:none;transition:all .15s ease;min-width:70px;cursor:pointer}.color-picker-format-select:focus{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.color-picker-format-select:hover{border-color:#cbd5e1}.color-picker-input-container{position:relative;flex:1;display:flex;align-items:center}.color-picker-color-input{flex:1;width:100%;padding:8px 55px 8px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:12px;font-weight:500;color:#111827;background:#fff;outline:none;transition:all .15s ease;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.color-picker-color-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.color-picker-copy-inside{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:45px;height:26px;border-radius:6px;border:none;gap:8px;padding:4px 8px;background:var(--action-selected, #919eab29);color:var(--text-secondary, #637381);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s ease;outline:none;opacity:1}.color-picker-copy-inside:hover{background:#919eab66}.color-picker-copy-inside:active{transform:translateY(-50%) scale(.95)}.color-picker-copy{padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;outline:none}.color-picker-copy:hover{background:#f9fafb;border-color:#d1d5db;color:#111827}.color-picker-copy:active{transform:scale(.98)}.custom-color-button{width:44px;height:44px;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;position:relative;overflow:hidden;transition:all .15s ease;background:#fff}.custom-color-button:hover{border-color:#cbd5e1;transform:scale(1.02)}.custom-color-button:active{transform:scale(.98)}.custom-color-button-color{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:8px;background:var(--color, #000000)}.embedded-color-picker{padding:0}.embedded-color-picker-content{width:100%;font-family:system-ui,-apple-system,sans-serif}.color-picker-recent-section{padding:12px 0 4px;display:flex;flex-direction:column;gap:8px}.color-picker-recent-title{font-size:12px;font-weight:600;color:#475467;text-transform:uppercase;letter-spacing:.04em}.color-picker-recent-grid{display:grid;grid-template-columns:repeat(auto-fill,24px);gap:6px;max-width:220px;justify-content:flex-start}.color-picker-recent-placeholder{font-size:12px;color:#98a2b3;text-align:center;padding:8px 0}.color-picker-recent-swatch{width:24px;height:24px;aspect-ratio:1 / 1;border:1px solid #e4e7ec;border-radius:4px;cursor:pointer;position:relative;overflow:hidden;background:transparent;transition:transform .15s ease,box-shadow .15s ease}.color-picker-recent-swatch:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:3px;background:inherit}.color-picker-recent-swatch:hover{transform:scale(1.05);box-shadow:0 2px 6px #0f172a1a}.color-picker-recent-swatch:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.bgset-or-label{margin:8px 0;text-align:center;font-weight:500;color:#667085;align-self:center}.settings-container,.main-settings-container,[data-settings-container]{height:auto;min-height:auto;overflow:visible;flex-shrink:0}.container,.wrapper,.main-wrapper{height:auto!important;min-height:auto!important;max-height:none!important;overflow:visible!important}:root{--sg-spacing-0: 16px;--sg-spacing-1: 12px;--sg-spacing-2: 8px;--sg-spacing-3: 6px;--sg-border-0: #eaecf0;--sg-border-1: #d0d5dd;--sg-border-2: #e5e7eb;--sg-border-3: #f2f4f7;--sg-bg-0: #fff;--sg-bg-1: #fff;--sg-bg-2: #fff;--sg-bg-3: #fff;--sg-shadow-0: 0px 1px 3px rgba(16, 24, 40, .1), 0px 1px 2px rgba(16, 24, 40, .06);--sg-shadow-1: 0px 1px 2px rgba(16, 24, 40, .05);--sg-shadow-2: 0px 1px 1px rgba(16, 24, 40, .04);--sg-shadow-3: none}.setting-group{display:flex;flex-direction:column;width:100%;gap:8px;border-radius:8px;margin:0 auto;-webkit-user-select:none;user-select:none;position:relative;overflow:visible;max-width:100%;box-sizing:border-box}.setting-group[data-nesting-level="0"]{padding:var(--sg-spacing-0);border:1px solid var(--sg-border-0);background:var(--sg-bg-0);box-shadow:var(--sg-shadow-0);border-radius:8px}.setting-group[data-nesting-level="1"]{padding:var(--sg-spacing-1);border:1px solid var(--sg-border-1);background:var(--sg-bg-1);box-shadow:var(--sg-shadow-1);border-radius:6px}.setting-group[data-nesting-level="2"]{padding:var(--sg-spacing-2);border:1px solid var(--sg-border-2);background:var(--sg-bg-2);box-shadow:var(--sg-shadow-2);border-radius:4px}.setting-group[data-nesting-level="3"],.setting-group[data-nesting-level="4"],.setting-group[data-nesting-level="5"]{padding:var(--sg-spacing-3);border:1px solid var(--sg-border-3);background:var(--sg-bg-3);box-shadow:var(--sg-shadow-3);border-radius:4px}.setting-group.collapsed{padding:0;border:none;background:transparent;box-shadow:none}.setting-group[data-nesting-level="0"] .setting-group-content{padding:0 8px 8px;gap:8px}.setting-group[data-nesting-level="1"] .setting-group-content{padding:0 8px 8px;gap:6px}.setting-group[data-nesting-level="2"] .setting-group-content{padding:0 8px 8px;gap:4px}.setting-group[data-nesting-level="3"] .setting-group-content,.setting-group[data-nesting-level="4"] .setting-group-content,.setting-group[data-nesting-level="5"] .setting-group-content{padding:0 6px 6px;gap:3px}.setting-group-title{display:flex;justify-content:space-between;align-items:center;padding:4px 0;cursor:pointer;border-radius:6px}.setting-group-title h3{color:var(--Gray-800, #1d2939);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;font-weight:500;line-height:20px;margin:0;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setting-group[data-nesting-level="1"] .setting-group-title h3{font-size:13px;font-weight:500}.setting-group[data-nesting-level="2"] .setting-group-title h3{font-size:12px;font-weight:500}.setting-group[data-nesting-level="3"] .setting-group-title h3,.setting-group[data-nesting-level="4"] .setting-group-title h3,.setting-group[data-nesting-level="5"] .setting-group-title h3{font-size:11px;font-weight:500}.setting-group-arrow{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;transform:rotate(180deg);color:var(--Gray-500, #344054)}.setting-group-arrow.rotated{transform:rotate(0)}.setting-group-content{display:flex;flex-direction:column;width:100%;opacity:1;overflow:visible;max-width:100%;box-sizing:border-box}.setting-group-content.collapsed{opacity:0;margin:0;padding:0;pointer-events:none;display:none}.setting-group.main-group{padding:16px;border:none;border-bottom:1px solid var(--Border-default, #d5dce5);box-shadow:none;margin-top:4px;background:#f8f8f8;border-radius:8px;width:100%;position:relative;margin-bottom:8px;max-height:none;overflow:visible;max-width:100%;box-sizing:border-box;height:auto;min-height:auto;flex-shrink:0}.setting-group.main-group.collapsed{padding:0;background:transparent!important;border:none;box-shadow:none;margin:0}.setting-group.main-group.collapsed .setting-group-title.collapsed-view{height:55px;background:#f8f8f8;border:none;margin-bottom:8px;border-bottom:1px solid var(--Border-default, #d5dce5)}.setting-group.main-group .setting-group-title h3{color:#344054;font-family:Satoshi;font-size:14px;font-weight:700;line-height:20px}.setting-group-content.main-content{width:100%;background:#f8f8f8;border:0;box-shadow:none;padding:0;height:auto;min-height:auto;overflow:visible;flex-shrink:0}.setting-divider{height:1px;width:100%;background-color:#f2f4f7;margin:4px 0}.setting-group-content>*:last-child{margin-bottom:0}.setting-group.active{border-color:#d6bbfb;box-shadow:0 0 0 4px #7f56d91a}.setting-group-empty{color:#667085;font-size:13px;font-style:italic;padding:12px 0;text-align:center}.setting-group-title.collapsed-view{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;height:36px;border-radius:8px;border:1px solid var(--Gray-200, #eaecf0);background:var(--Base-White, #fff);margin-bottom:0;position:relative;overflow:hidden;cursor:pointer}.setting-group.main-group .setting-group-title.collapsed-view{height:55px;background:#f8f8f8;border:none;border-bottom:1px solid var(--Border-default, #d5dce5)}.setting-group:not(.main-group) .setting-group-title.collapsed-view{height:36px;background:#fff;border:1px solid var(--Gray-200, #eaecf0);padding:14px}.setting-group-title .title-section{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.setting-group-title .group-icon{display:flex;justify-content:center;align-items:center;color:var(--Gray-500, #667085);flex-shrink:0;width:20px;height:20px}.setting-group-title.collapsed-view h3{color:#344054;font-family:Satoshi;font-size:14px;font-weight:700;line-height:20px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setting-group-title.collapsed-view .group-badge{display:flex;padding:2px 8px;justify-content:center;align-items:center;border-radius:16px;background:var(--Gray-100, #f2f4f7);color:var(--Gray-700, #344054);font-size:12px;font-weight:500;line-height:18px;margin-left:8px}.setting-group-title .actions-section{display:flex;align-items:center;gap:8px;margin-left:12px}.setting-group-title.collapsed-view .setting-group-arrow{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;color:var(--Gray-500, #667085)}.setting-group-title .setting-group-arrow{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;color:var(--Gray-500, #667085)}.setting-group-title .setting-group-arrow.rotated{transform:rotate(0)}.setting-group-title.collapsed-view .info-marker{width:16px;height:16px;color:var(--Gray-400, #98a2b3);cursor:help}.setting-group-description{color:#667085;font-size:13px;margin-bottom:8px;line-height:1.4}@media (max-width: 768px){.setting-group-title.collapsed-view{padding:10px 12px}.setting-group-title .title-section{gap:8px}.setting-group-title.collapsed-view .group-badge{display:none}}@media (max-width: 480px){.setting-group-title.collapsed-view h3{font-size:13px}.setting-group-title.collapsed-view .setting-group-arrow{width:24px;height:24px}.setting-group-title.collapsed-view{padding:0 10px}}.setting-group-title.collapsed-view.striped:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--Primary-100, #f4ebff);border-radius:4px 0 0 4px}.setting-group.custom-container{border:none;box-shadow:none;margin:4px 0;padding:0;background:transparent}.setting-group.custom-container>.setting-group-title{display:none}.sg-add-button-bottom{display:flex;height:30px;min-width:64px;padding:6px 12px;justify-content:center;align-items:center;flex:1 0 0;border:1px solid rgba(145,158,171,.32);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;line-height:20px;letter-spacing:.01em;text-align:center}.sg-add-button-bottom:hover{background:#eee}.setting-group.custom-container .setting-group-content{padding:0}.custom_class{border:0!important;box-shadow:none!important;margin:4px 0!important}.custom_class>.setting-group-title{display:none!important}.custom_class .setting-group-content{padding:0!important}.setting-group-title:focus-visible{outline:2px solid #02cc59;outline-offset:2px}.setting-group::-webkit-scrollbar,.setting-group-content::-webkit-scrollbar{width:8px;height:8px}.setting-group::-webkit-scrollbar-track,.setting-group-content::-webkit-scrollbar-track{background:#f0f2f4;border-radius:4px}.setting-group::-webkit-scrollbar-thumb,.setting-group-content::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:4px;border:2px solid transparent;background-clip:content-box}.setting-group::-webkit-scrollbar-thumb:hover,.setting-group-content::-webkit-scrollbar-thumb:hover{background-color:#98a2b3}.setting-group,.setting-group-content{scrollbar-width:thin;scrollbar-color:#c2c9d6 #f0f2f4}.tabs-settings-container{display:flex;flex-direction:column;width:100%;border-radius:8px;background:transparent;overflow:hidden;position:relative;z-index:1;max-width:100%;box-sizing:border-box}.tabs-settings-container.main-group{background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 2px #1018280d}.tabs-header{width:100%;display:flex;padding:4px;justify-content:center;align-items:center;gap:4px;align-self:stretch;flex-shrink:0;background:#f1f3f2;position:relative;z-index:1;border-radius:400px;margin-bottom:8px}.tabs-header.main-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0;padding:8px;margin-bottom:0}.tab-button{display:flex;padding:4px 12px;justify-content:center;align-items:center;background-color:transparent;gap:8px;flex:1 0 0;border-radius:400px;color:#000000b3;font-family:Satoshi,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;font-style:normal;font-weight:500;line-height:20px;border:1px solid transparent;box-shadow:0 0 #10182800;position:relative;z-index:1;cursor:pointer;transition:all .2s ease;outline:none}.tab-button:active{box-shadow:0 1px 2px -1px #10182805}.tab-button.active{color:#000;font-weight:700;border-radius:400px;background:#fff;box-shadow:0 4px 8px -2px #1018280a}.tab-button.active:active{box-shadow:0 2px 4px -1px #1018280a}.tab-button:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}.tab-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.tab-icon svg{width:100%;height:100%}.tab-content{position:relative;overflow:hidden;width:100%;z-index:1;margin-top:8px;max-width:100%;box-sizing:border-box;animation:fadeIn .2s ease-in-out}.tab-panel{display:grid;gap:8px;position:absolute;width:100%;opacity:0;pointer-events:none;overflow:hidden;z-index:1;max-width:100%;box-sizing:border-box}.tab-panel.active{opacity:1;pointer-events:auto;position:relative;overflow:hidden;z-index:1;max-width:100%;box-sizing:border-box}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.tabs-header{padding:3px}.tab-button{padding:3px 8px;font-size:11px}}@media (max-width: 480px){.tab-button{padding:2px 6px;font-size:10px}.tab-icon{width:14px;height:14px}}.tab-content>.setting-group{margin-bottom:12px}.tab-content>.setting-group:last-child{margin-bottom:0}.tabs-settings-container.main-group .setting-group-content{border-top:none;border-radius:0 0 8px 8px}.setting-group.main-group.collapsed .tabs-header,.setting-group.main-group.collapsed .setting-group,.setting-group .setting-group.collapsed .tabs-header,.tabs-settings-container.collapsed .tabs-header,.tabs-settings-container.collapsed .tab-content{display:none}:root{--color-border: #d5dce5;--color-bg: #f8f8f8;--color-border-secondary: #eaecf0;--color-text: #667085;--color-title: #344054;--color-input-text: #292b2e;--color-white: #fff;--color-black: #000;--color-divider: #dcdcdc;--color-btn-text: #4b4b4b;--color-bg-icon: #f2f4f7}*{padding:0;margin:0;border:none}*,*:before,*:after{box-sizing:border-box}a,a:link,a:visited,a:hover{text-decoration:none}body{font-family:Satoshi,sans-serif;font-weight:400;font-size:12px;line-height:18px}aside,nav,footer,header,section,main{display:block}h1,h2,h3,h4,h5,h6,p{font-size:inherit;font-weight:inherit}ul,ul li{list-style:none}img{vertical-align:top}img,svg{max-width:100%;height:auto}address{font-style:normal}input::-ms-clear{display:none}button,input[type=submit]{display:inline-block;box-shadow:none;background-color:transparent;background:none;cursor:pointer}input:focus,input:active,button:focus,button:active{outline:none}button::-moz-focus-inner{padding:0;border:0}label{cursor:pointer}legend{display:block}
|
|
@@ -11,6 +11,7 @@ export declare class GradientSetting extends Setting<GradientValue, SettingProps
|
|
|
11
11
|
private previewEl;
|
|
12
12
|
inputEl: HTMLInputElement | undefined;
|
|
13
13
|
private popoverEl;
|
|
14
|
+
private backdropEl;
|
|
14
15
|
private isPopoverOpen;
|
|
15
16
|
private isEditing;
|
|
16
17
|
detectChange?: (value: GradientValue | undefined) => void;
|
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.
|
|
4
|
+
"version": "0.0.281",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/builder-settings-types.cjs.js",
|
|
7
7
|
"module": "dist/builder-settings-types.es.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"author": "onAim",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"builder-settings-types": "^0.0.
|
|
34
|
+
"builder-settings-types": "^0.0.280",
|
|
35
35
|
"nanoid": "^5.1.0",
|
|
36
36
|
"vite-plugin-dts": "^4.5.0"
|
|
37
37
|
}
|