builder-settings-types 0.0.289 → 0.0.290
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.
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
<button class="color-picker-copy-inside">Copy</button>
|
|
227
227
|
</div>
|
|
228
228
|
</div>
|
|
229
|
-
`;const e=nt(i=>{this.applyRecentColor(i)},this.recentScope);return this.recentSectionRefresh=e.refresh,t.appendChild(e.container),t}initializePicker(){this.colorArea=this.container.querySelector(".color-picker-area"),this.colorMarker=this.container.querySelector(".color-picker-marker"),this.hueSlider=this.container.querySelector(".color-picker-hue"),this.hueMarker=this.container.querySelector(".color-picker-hue-marker"),this.opacitySlider=this.container.querySelector(".color-picker-opacity"),this.opacityMarker=this.container.querySelector(".color-picker-opacity-marker"),this.formatSelect=this.container.querySelector(".color-picker-format-select"),this.colorInput=this.container.querySelector(".color-picker-color-input");const t=this.container.querySelector(".color-picker-copy-inside"),{h:e,s:i,v:s}=A(this.currentColor);this.hueMarker.style.left=`${e/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(${e}, 100%, 50%))`,this.opacityMarker.style.left=`${this.currentOpacity}%`,this.updateOpacityBackground(this.opacitySlider),this.updateColorInput(this.formatSelect,this.colorInput),this.setupColorAreaEvents(),this.setupHueSliderEvents(),this.setupOpacitySliderEvents(),this.setupFormatEvents(t)}scheduleInputUpdate(){this.inputUpdateTimeout&&clearTimeout(this.inputUpdateTimeout),this.inputUpdateTimeout=window.setTimeout(()=>{this.updateColorInput(this.formatSelect,this.colorInput)},16)}updateOpacityBackground(t){const e=M(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=M(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){this.currentColor=t,t.includes("gradient")||t.includes("radial")||(this.updatePickerVisualState(),this.updateColorInput(this.formatSelect,this.colorInput)),this.triggerChange()}commitRecentColor(){var t;R.addColor(this.currentColor,this.recentScope),(t=this.recentSectionRefresh)==null||t.call(this)}setupColorAreaEvents(){const t=e=>{const i=this.colorArea.getBoundingClientRect(),s=Math.max(0,Math.min(1,(e.clientX-i.left)/i.width)),n=Math.max(0,Math.min(1,(e.clientY-i.top)/i.height));this.colorMarker.style.left=`${s*100}%`,this.colorMarker.style.top=`${n*100}%`;const o=parseFloat(this.hueMarker.style.left||"0%"),a=Math.max(0,Math.min(360,o/100*360)),l=Math.max(0,Math.min(1,s)),r=Math.max(0,Math.min(1,1-n)),h=z(a,l,r);this.currentColor=h,this.updateOpacityBackground(this.opacitySlider),this.triggerChange()};this.colorArea.addEventListener("mousedown",e=>{e.preventDefault(),t(e);const i=n=>t(n),s=()=>{document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",s),this.updateColorInput(this.formatSelect,this.colorInput),this.updateOpacityBackground(this.opacitySlider)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",s)})}setupHueSliderEvents(){const t=e=>{const i=this.hueSlider.getBoundingClientRect();let s=(e.clientX-i.left)/i.width;s=Math.max(0,Math.min(1,s)),this.hueMarker.style.left=`${s*100}%`;const n=Math.max(0,Math.min(360,s*360)),o=parseFloat(this.colorMarker.style.left||"50%"),a=parseFloat(this.colorMarker.style.top||"50%"),l=Math.max(0,Math.min(1,(isNaN(o)?50:o)/100)),r=Math.max(0,Math.min(1,(isNaN(a)?50:a)/100));this.colorArea.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${n}, 100%, 50%))`;const h=z(n,l,1-r);this.currentColor=h,this.updateOpacityBackground(this.opacitySlider),this.triggerChange()};this.hueSlider.addEventListener("mousedown",e=>{e.preventDefault(),t(e);const i=n=>t(n),s=()=>{document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",s),this.inputUpdateTimeout&&clearTimeout(this.inputUpdateTimeout),this.updateColorInput(this.formatSelect,this.colorInput)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",s)})}setupOpacitySliderEvents(){const t=e=>{const i=this.opacitySlider.getBoundingClientRect(),s=Math.max(0,Math.min(1,(e.clientX-i.left)/i.width));this.opacityMarker.style.left=`${s*100}%`,this.currentOpacity=Math.round(s*100),this.triggerChange()};this.opacitySlider.addEventListener("mousedown",e=>{e.preventDefault(),t(e);const i=n=>t(n),s=()=>{document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",s)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",s)})}setupFormatEvents(t){this.formatSelect.addEventListener("change",()=>{this.updateColorInput(this.formatSelect,this.colorInput)}),t.addEventListener("click",()=>{navigator.clipboard.writeText(this.colorInput.value).catch(()=>{this.colorInput.select(),document.execCommand("copy")})}),this.colorInput.addEventListener("input",()=>{this.handleManualColorInput(this.colorInput.value,this.formatSelect)}),this.colorInput.addEventListener("blur",()=>{this.updateColorInput(this.formatSelect,this.colorInput)})}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 D(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=K(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{h:t,s:e,v:i}=A(this.currentColor);this.hueMarker.style.left=`${t/360*100}%`,this.colorMarker.style.left=`${e*100}%`,this.colorMarker.style.top=`${(1-i)*100}%`,this.colorArea.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${t}, 100%, 50%))`,this.updateOpacityBackground(this.opacitySlider)}triggerChange(){this.onColorChange(this.currentColor,this.currentOpacity)}getElement(){return this.container}updateColor(t,e){this.currentColor=t,this.currentOpacity=e;const{h:i,s,v:n}=A(t),o=i>=360?i%360:i;this.hueMarker.style.left=`${o/360*100}%`,this.colorMarker.style.left=`${s*100}%`,this.colorMarker.style.top=`${(1-n)*100}%`,this.colorArea.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${o}, 100%, 50%))`,this.opacityMarker.style.left=`${e}%`,this.updateOpacityBackground(this.opacitySlider),this.updateColorInput(this.formatSelect,this.colorInput)}}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.popoverPosition=null,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=P(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=P(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=mt(t.color,e)}else this.previewEl.style.background=V(this.value);this.inputEl&&this.value&&!this.isEditing&&(this.inputEl.value=J(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?J(this.value):"",this.inputEl.readOnly=!1,this.inputEl.addEventListener("focus",()=>{if(this.isEditing=!0,this.value)if(this.value.type==="solid"){const i=this.value.stops[0];if(i){const s=i.color.toUpperCase(),n=i.opacity??100;if(n===100)this.inputEl.value=s;else{const a=Math.round(n/100*255).toString(16).toUpperCase().padStart(2,"0");this.inputEl.value=`${s}${a}`}}}else this.inputEl.value=V(this.value)}),this.inputEl.addEventListener("blur",()=>{this.isEditing=!1,this.value&&(this.inputEl.value=J(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",t.style.cursor="move";const e=document.createElement("span");e.textContent="Fill";const i=document.createElement("button");i.type="button",i.className="gradient-popover-close",i.innerHTML=Ct,i.addEventListener("click",()=>this.closePopover()),t.appendChild(e),t.appendChild(i),gt(t,this.popoverEl,(a,l)=>{this.popoverPosition={left:a,top:l}});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;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}]),t!=="solid"&&this.value.stops.length<2&&(this.value.angle=90),this.popoverEl){const s=this.popoverEl.querySelectorAll(".gradient-type-tab");s.forEach(a=>a.classList.remove("active"));const n=s[0],o=s[1];t==="solid"?n==null||n.classList.add("active"):o==null||o.classList.add("active")}const e=(i=this.popoverEl)==null?void 0:i.querySelector(".gradient-editor-content");e&&this.updatePopoverContent(e),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 ce({initialColor:e.color,initialOpacity:e.opacity??100,onColorChange:(s,n)=>{if(this.value){const o=P(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??90}°`,o.style.width="75px",o.style.textAlign="center",(!this.value.angle||this.value.stops.length<2)&&(this.value.angle=90,o.value="90°");const a=document.createElement("button");a.type="button",a.className="gradient-flip-btn",a.innerHTML=ae,i.addEventListener("change",()=>{this.switchType(i.value==="radial"?"radial":"linear"),this.updateDegreeVisibility(o)}),o.addEventListener("focus",f=>{const g=f.target;g.value=g.value.replace(/[^0-9-]/g,""),setTimeout(()=>g.select(),0)}),o.addEventListener("input",f=>{const g=parseInt(f.target.value);!Number.isNaN(g)&&this.value&&(this.value.angle=Math.max(0,Math.min(360,g)),this.debouncedPreviewUpdate())}),o.addEventListener("blur",f=>{var y;this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null);const g=f.target;let C=parseInt(g.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),g.value=`${C}°`,this.updateGradientPreview(),this.updateUI(),this.triggerChange()}),a.addEventListener("click",()=>{!this.value||!this.value.stops||(this.value.stops.forEach(f=>{f.position=100-f.position}),this.value.stops.sort((f,g)=>f.position-g.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 m=nt(f=>{const g=P(f);g&&(this.value=g,this.switchType(g.type),this.updateUI(),this.triggerChange())},"all");this.recentGradientRefresh=m.refresh,t.appendChild(m.container),d.addEventListener("click",()=>{var f;this.addStop(),this.updateStopsList(u),this.updateGradientPreview(l),this.createHandles(r,l),this.updateUI(),((f=document.activeElement)==null?void 0:f.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 m=e.getBoundingClientRect(),f=u.clientX-l;let g=r+f/m.width*100;g=Math.max(0,Math.min(100,g)),this.value.stops[s].position=Math.round(g),n.style.left=`${g}%`,this.updateGradientPreview()},d=()=>{a&&(a=!1,n.classList.remove("selected"),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",d),this.value&&(this.value.stops.sort((u,m)=>u.position-m.position),this.createHandles(t,e),this.updateStopsList()),this.updateUI(),this.triggerChange())};n.addEventListener("mousedown",h),t.appendChild(n)})}updateStopsList(t){var i;const e=t||((i=this.popoverEl)==null?void 0:i.querySelector(".gradient-stops"));!e||!this.value||this.value.type==="solid"||!this.value.stops||(e.innerHTML="",this.value.stops.forEach((s,n)=>{var N,O;const o=document.createElement("div");o.className="gstop-row";const a=document.createElement("div");a.className="gstop-position-group";const l=document.createElement("input");l.type="text",l.className="gstop-position-input",l.value=`${s.position}%`,l.style.width="60px",a.appendChild(l);const r=document.createElement("div");r.className="gstop-color-container";const h=document.createElement("div");h.className="gstop-color-preview",h.style.backgroundColor=s.color;const p=document.createElement("input");p.type="text",p.className="gstop-color-input",p.value=s.color.replace("#","").toUpperCase();const d=document.createElement("button");d.type="button",d.className="gstop-color-copy",d.textContent="Copy",r.appendChild(h),r.appendChild(p),r.appendChild(d);const u=document.createElement("button");u.type="button",u.className="gstop-del",u.innerHTML=le,u.disabled=(((O=(N=this.value)==null?void 0:N.stops)==null?void 0:O.length)||0)<=2,o.appendChild(a),o.appendChild(r),o.appendChild(u),e.appendChild(o);const m=document.createElement("span");m.className="gstop-opacity-label",m.textContent="Opacity";const f=document.createElement("div");f.className="gstop-opacity-group";const g=document.createElement("input");g.type="range",g.className="gstop-opacity-slider",g.min="0",g.max="100",g.value=String(s.opacity??100);const C=M(s.color);g.style.setProperty("--slider-color",`rgb(${C.r}, ${C.g}, ${C.b})`);const y=document.createElement("span");y.className="gstop-opacity-value",y.textContent=`${s.opacity??100}%`,f.appendChild(g),f.appendChild(y);const L=new re((v,E)=>{p.value=v.replace("#","").toUpperCase(),h.style.backgroundColor=v,this.value.stops[n].color=v,E!==void 0&&(this.value.stops[n].opacity=E,g.value=String(E),y.textContent=`${E}%`);const x=M(v);g.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");p.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation(),L.open(s.color,p,s.opacity??100)}),p.addEventListener("input",()=>{const v=p.value.trim(),E=v.startsWith("#")?v:`#${v}`;if(/^#[0-9A-Fa-f]{6}$/.test(E)){this.value.stops[n].color=E,h.style.backgroundColor=E;const x=M(E);g.style.setProperty("--slider-color",`rgb(${x.r}, ${x.g}, ${x.b})`),this.debouncedPreviewUpdate()}}),p.addEventListener("blur",()=>{this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null),this.updateGradientPreview(),this.updateUI(),this.triggerChange()}),d.addEventListener("click",async v=>{v.stopPropagation();try{await navigator.clipboard.writeText(`#${p.value}`)}catch{}}),l.addEventListener("focus",v=>{const E=v.target;E.value=E.value.replace("%",""),E.select()}),l.addEventListener("input",v=>{const E=v.target,x=parseInt(E.value.replace(/[^\d]/g,""),10);if(!Number.isNaN(x)){const G=Math.max(0,Math.min(100,x));this.value.stops[n].position=G,E.value=`${G}%`,this.debouncedPreviewUpdate()}}),l.addEventListener("blur",v=>{this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null);const E=v.target,x=parseInt(E.value.replace(/[^\d]/g,""),10);if(Number.isNaN(x))E.value=`${this.value.stops[n].position}%`;else{const G=Math.max(0,Math.min(100,x));this.value.stops[n].position=G,E.value=`${G}%`}this.updateGradientPreview(),this.createHandles(this.popoverEl.querySelector(".gradient-handles"),this.popoverEl.querySelector(".gradient-preview")),this.updateStopsList(),this.updateUI(),this.triggerChange()}),u.addEventListener("click",()=>{var v;(this.value.stops.length||0)<=2||(this.value.stops.splice(n,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())}),g.addEventListener("input",()=>{const v=parseInt(g.value,10);this.value.stops[n].opacity=Math.max(0,Math.min(100,v)),y.textContent=`${this.value.stops[n].opacity}%`,this.debouncedPreviewUpdate()}),g.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`,this.popoverPosition={left:a,top:l}}setTimeout(()=>document.addEventListener("click",this.onBackgroundClick,!0),200),document.addEventListener("keydown",this.handlePopoverKeydown,!0)}}repositionPopover(){var t;if(!(!this.popoverEl||!this.isPopoverOpen||!this.element)&&((t=document.activeElement)==null?void 0:t.tagName)!=="INPUT"){if(this.popoverPosition){this.popoverEl.style.left=`${this.popoverPosition.left}px`,this.popoverEl.style.top=`${this.popoverPosition.top}px`;return}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,m=e.top;m>=a+o?r=e.top-a-8:u>=a+o?r=e.bottom+8:m>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(){var t;if(!(!this.popoverEl||!this.isPopoverOpen)){if(this.isPopoverOpen=!1,this.popoverPosition=null,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 e=V(this.value);R.addColor(e,"gradient"),(t=this.recentGradientRefresh)==null||t.call(this)}this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null),T.openInstance===this&&(T.openInstance=null)}}commitPendingSolidColor(){this.pendingSolidColor&&(this.solidPicker?this.solidPicker.commitRecentColor():R.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=P(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 j=T;const he=`
|
|
229
|
+
`;const e=nt(i=>{this.applyRecentColor(i)},this.recentScope);return this.recentSectionRefresh=e.refresh,t.appendChild(e.container),t}initializePicker(){this.colorArea=this.container.querySelector(".color-picker-area"),this.colorMarker=this.container.querySelector(".color-picker-marker"),this.hueSlider=this.container.querySelector(".color-picker-hue"),this.hueMarker=this.container.querySelector(".color-picker-hue-marker"),this.opacitySlider=this.container.querySelector(".color-picker-opacity"),this.opacityMarker=this.container.querySelector(".color-picker-opacity-marker"),this.formatSelect=this.container.querySelector(".color-picker-format-select"),this.colorInput=this.container.querySelector(".color-picker-color-input");const t=this.container.querySelector(".color-picker-copy-inside"),{h:e,s:i,v:s}=A(this.currentColor);this.hueMarker.style.left=`${e/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(${e}, 100%, 50%))`,this.opacityMarker.style.left=`${this.currentOpacity}%`,this.updateOpacityBackground(this.opacitySlider),this.updateColorInput(this.formatSelect,this.colorInput),this.setupColorAreaEvents(),this.setupHueSliderEvents(),this.setupOpacitySliderEvents(),this.setupFormatEvents(t)}scheduleInputUpdate(){this.inputUpdateTimeout&&clearTimeout(this.inputUpdateTimeout),this.inputUpdateTimeout=window.setTimeout(()=>{this.updateColorInput(this.formatSelect,this.colorInput)},16)}addPointerDrag(t,e,i){t.addEventListener("pointerdown",s=>{if(s.preventDefault(),t.setPointerCapture)try{t.setPointerCapture(s.pointerId)}catch{}e(s);const n=r=>e(r),o=()=>{if(t.releasePointerCapture)try{t.releasePointerCapture(s.pointerId)}catch{}t.removeEventListener("pointermove",n),t.removeEventListener("pointerup",a),t.removeEventListener("pointercancel",l),window.removeEventListener("blur",l)},a=()=>{o(),i==null||i()},l=()=>o();t.addEventListener("pointermove",n),t.addEventListener("pointerup",a),t.addEventListener("pointercancel",l),window.addEventListener("blur",l)})}updateOpacityBackground(t){const e=M(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=M(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){this.currentColor=t,t.includes("gradient")||t.includes("radial")||(this.updatePickerVisualState(),this.updateColorInput(this.formatSelect,this.colorInput)),this.triggerChange()}commitRecentColor(){var t;R.addColor(this.currentColor,this.recentScope),(t=this.recentSectionRefresh)==null||t.call(this)}setupColorAreaEvents(){const t=e=>{const i=this.colorArea.getBoundingClientRect(),s=Math.max(0,Math.min(1,(e.clientX-i.left)/i.width)),n=Math.max(0,Math.min(1,(e.clientY-i.top)/i.height));this.colorMarker.style.left=`${s*100}%`,this.colorMarker.style.top=`${n*100}%`;const o=parseFloat(this.hueMarker.style.left||"0%"),a=Math.max(0,Math.min(360,o/100*360)),l=Math.max(0,Math.min(1,s)),r=Math.max(0,Math.min(1,1-n)),h=z(a,l,r);this.currentColor=h,this.updateOpacityBackground(this.opacitySlider),this.scheduleInputUpdate(),this.triggerChange()};this.addPointerDrag(this.colorArea,t,()=>{this.updateColorInput(this.formatSelect,this.colorInput),this.updateOpacityBackground(this.opacitySlider)})}setupHueSliderEvents(){const t=e=>{const i=this.hueSlider.getBoundingClientRect();let s=(e.clientX-i.left)/i.width;s=Math.max(0,Math.min(1,s)),this.hueMarker.style.left=`${s*100}%`;const n=Math.max(0,Math.min(360,s*360)),o=parseFloat(this.colorMarker.style.left||"50%"),a=parseFloat(this.colorMarker.style.top||"50%"),l=Math.max(0,Math.min(1,(isNaN(o)?50:o)/100)),r=Math.max(0,Math.min(1,(isNaN(a)?50:a)/100));this.colorArea.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${n}, 100%, 50%))`;const h=z(n,l,1-r);this.currentColor=h,this.updateOpacityBackground(this.opacitySlider),this.scheduleInputUpdate(),this.triggerChange()};this.addPointerDrag(this.hueSlider,t,()=>{this.inputUpdateTimeout&&clearTimeout(this.inputUpdateTimeout),this.updateColorInput(this.formatSelect,this.colorInput)})}setupOpacitySliderEvents(){const t=e=>{const i=this.opacitySlider.getBoundingClientRect(),s=Math.max(0,Math.min(1,(e.clientX-i.left)/i.width));this.opacityMarker.style.left=`${s*100}%`,this.currentOpacity=Math.round(s*100),this.triggerChange()};this.addPointerDrag(this.opacitySlider,t)}setupFormatEvents(t){this.formatSelect.addEventListener("change",()=>{this.updateColorInput(this.formatSelect,this.colorInput)}),t.addEventListener("click",()=>{navigator.clipboard.writeText(this.colorInput.value).catch(()=>{this.colorInput.select(),document.execCommand("copy")})}),this.colorInput.addEventListener("input",()=>{this.handleManualColorInput(this.colorInput.value,this.formatSelect)}),this.colorInput.addEventListener("blur",()=>{this.updateColorInput(this.formatSelect,this.colorInput)})}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 D(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=K(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{h:t,s:e,v:i}=A(this.currentColor);this.hueMarker.style.left=`${t/360*100}%`,this.colorMarker.style.left=`${e*100}%`,this.colorMarker.style.top=`${(1-i)*100}%`,this.colorArea.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${t}, 100%, 50%))`,this.updateOpacityBackground(this.opacitySlider)}triggerChange(){this.onColorChange(this.currentColor,this.currentOpacity)}getElement(){return this.container}updateColor(t,e){this.currentColor=t,this.currentOpacity=e;const{h:i,s,v:n}=A(t),o=i>=360?i%360:i;this.hueMarker.style.left=`${o/360*100}%`,this.colorMarker.style.left=`${s*100}%`,this.colorMarker.style.top=`${(1-n)*100}%`,this.colorArea.style.background=`linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${o}, 100%, 50%))`,this.opacityMarker.style.left=`${e}%`,this.updateOpacityBackground(this.opacitySlider),this.updateColorInput(this.formatSelect,this.colorInput)}}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.popoverPosition=null,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=P(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=P(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=mt(t.color,e)}else this.previewEl.style.background=V(this.value);this.inputEl&&this.value&&!this.isEditing&&(this.inputEl.value=J(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?J(this.value):"",this.inputEl.readOnly=!1,this.inputEl.addEventListener("focus",()=>{if(this.isEditing=!0,this.value)if(this.value.type==="solid"){const i=this.value.stops[0];if(i){const s=i.color.toUpperCase(),n=i.opacity??100;if(n===100)this.inputEl.value=s;else{const a=Math.round(n/100*255).toString(16).toUpperCase().padStart(2,"0");this.inputEl.value=`${s}${a}`}}}else this.inputEl.value=V(this.value)}),this.inputEl.addEventListener("blur",()=>{this.isEditing=!1,this.value&&(this.inputEl.value=J(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",t.style.cursor="move";const e=document.createElement("span");e.textContent="Fill";const i=document.createElement("button");i.type="button",i.className="gradient-popover-close",i.innerHTML=Ct,i.addEventListener("click",()=>this.closePopover()),t.appendChild(e),t.appendChild(i),gt(t,this.popoverEl,(a,l)=>{this.popoverPosition={left:a,top:l}});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;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}]),t!=="solid"&&this.value.stops.length<2&&(this.value.angle=90),this.popoverEl){const s=this.popoverEl.querySelectorAll(".gradient-type-tab");s.forEach(a=>a.classList.remove("active"));const n=s[0],o=s[1];t==="solid"?n==null||n.classList.add("active"):o==null||o.classList.add("active")}const e=(i=this.popoverEl)==null?void 0:i.querySelector(".gradient-editor-content");e&&this.updatePopoverContent(e),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 ce({initialColor:e.color,initialOpacity:e.opacity??100,onColorChange:(s,n)=>{if(this.value){const o=P(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??90}°`,o.style.width="75px",o.style.textAlign="center",(!this.value.angle||this.value.stops.length<2)&&(this.value.angle=90,o.value="90°");const a=document.createElement("button");a.type="button",a.className="gradient-flip-btn",a.innerHTML=ae,i.addEventListener("change",()=>{this.switchType(i.value==="radial"?"radial":"linear"),this.updateDegreeVisibility(o)}),o.addEventListener("focus",f=>{const g=f.target;g.value=g.value.replace(/[^0-9-]/g,""),setTimeout(()=>g.select(),0)}),o.addEventListener("input",f=>{const g=parseInt(f.target.value);!Number.isNaN(g)&&this.value&&(this.value.angle=Math.max(0,Math.min(360,g)),this.debouncedPreviewUpdate())}),o.addEventListener("blur",f=>{var y;this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null);const g=f.target;let C=parseInt(g.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),g.value=`${C}°`,this.updateGradientPreview(),this.updateUI(),this.triggerChange()}),a.addEventListener("click",()=>{!this.value||!this.value.stops||(this.value.stops.forEach(f=>{f.position=100-f.position}),this.value.stops.sort((f,g)=>f.position-g.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 m=nt(f=>{const g=P(f);g&&(this.value=g,this.switchType(g.type),this.updateUI(),this.triggerChange())},"all");this.recentGradientRefresh=m.refresh,t.appendChild(m.container),d.addEventListener("click",()=>{var f;this.addStop(),this.updateStopsList(u),this.updateGradientPreview(l),this.createHandles(r,l),this.updateUI(),((f=document.activeElement)==null?void 0:f.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 m=e.getBoundingClientRect(),f=u.clientX-l;let g=r+f/m.width*100;g=Math.max(0,Math.min(100,g)),this.value.stops[s].position=Math.round(g),n.style.left=`${g}%`,this.updateGradientPreview()},d=()=>{a&&(a=!1,n.classList.remove("selected"),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",d),this.value&&(this.value.stops.sort((u,m)=>u.position-m.position),this.createHandles(t,e),this.updateStopsList()),this.updateUI(),this.triggerChange())};n.addEventListener("mousedown",h),t.appendChild(n)})}updateStopsList(t){var i;const e=t||((i=this.popoverEl)==null?void 0:i.querySelector(".gradient-stops"));!e||!this.value||this.value.type==="solid"||!this.value.stops||(e.innerHTML="",this.value.stops.forEach((s,n)=>{var N,O;const o=document.createElement("div");o.className="gstop-row";const a=document.createElement("div");a.className="gstop-position-group";const l=document.createElement("input");l.type="text",l.className="gstop-position-input",l.value=`${s.position}%`,l.style.width="60px",a.appendChild(l);const r=document.createElement("div");r.className="gstop-color-container";const h=document.createElement("div");h.className="gstop-color-preview",h.style.backgroundColor=s.color;const p=document.createElement("input");p.type="text",p.className="gstop-color-input",p.value=s.color.replace("#","").toUpperCase();const d=document.createElement("button");d.type="button",d.className="gstop-color-copy",d.textContent="Copy",r.appendChild(h),r.appendChild(p),r.appendChild(d);const u=document.createElement("button");u.type="button",u.className="gstop-del",u.innerHTML=le,u.disabled=(((O=(N=this.value)==null?void 0:N.stops)==null?void 0:O.length)||0)<=2,o.appendChild(a),o.appendChild(r),o.appendChild(u),e.appendChild(o);const m=document.createElement("span");m.className="gstop-opacity-label",m.textContent="Opacity";const f=document.createElement("div");f.className="gstop-opacity-group";const g=document.createElement("input");g.type="range",g.className="gstop-opacity-slider",g.min="0",g.max="100",g.value=String(s.opacity??100);const C=M(s.color);g.style.setProperty("--slider-color",`rgb(${C.r}, ${C.g}, ${C.b})`);const y=document.createElement("span");y.className="gstop-opacity-value",y.textContent=`${s.opacity??100}%`,f.appendChild(g),f.appendChild(y);const L=new re((v,E)=>{p.value=v.replace("#","").toUpperCase(),h.style.backgroundColor=v,this.value.stops[n].color=v,E!==void 0&&(this.value.stops[n].opacity=E,g.value=String(E),y.textContent=`${E}%`);const x=M(v);g.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");p.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation(),L.open(s.color,p,s.opacity??100)}),p.addEventListener("input",()=>{const v=p.value.trim(),E=v.startsWith("#")?v:`#${v}`;if(/^#[0-9A-Fa-f]{6}$/.test(E)){this.value.stops[n].color=E,h.style.backgroundColor=E;const x=M(E);g.style.setProperty("--slider-color",`rgb(${x.r}, ${x.g}, ${x.b})`),this.debouncedPreviewUpdate()}}),p.addEventListener("blur",()=>{this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null),this.updateGradientPreview(),this.updateUI(),this.triggerChange()}),d.addEventListener("click",async v=>{v.stopPropagation();try{await navigator.clipboard.writeText(`#${p.value}`)}catch{}}),l.addEventListener("focus",v=>{const E=v.target;E.value=E.value.replace("%",""),E.select()}),l.addEventListener("input",v=>{const E=v.target,x=parseInt(E.value.replace(/[^\d]/g,""),10);if(!Number.isNaN(x)){const G=Math.max(0,Math.min(100,x));this.value.stops[n].position=G,E.value=`${G}%`,this.debouncedPreviewUpdate()}}),l.addEventListener("blur",v=>{this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null);const E=v.target,x=parseInt(E.value.replace(/[^\d]/g,""),10);if(Number.isNaN(x))E.value=`${this.value.stops[n].position}%`;else{const G=Math.max(0,Math.min(100,x));this.value.stops[n].position=G,E.value=`${G}%`}this.updateGradientPreview(),this.createHandles(this.popoverEl.querySelector(".gradient-handles"),this.popoverEl.querySelector(".gradient-preview")),this.updateStopsList(),this.updateUI(),this.triggerChange()}),u.addEventListener("click",()=>{var v;(this.value.stops.length||0)<=2||(this.value.stops.splice(n,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())}),g.addEventListener("input",()=>{const v=parseInt(g.value,10);this.value.stops[n].opacity=Math.max(0,Math.min(100,v)),y.textContent=`${this.value.stops[n].opacity}%`,this.debouncedPreviewUpdate()}),g.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`,this.popoverPosition={left:a,top:l}}setTimeout(()=>document.addEventListener("click",this.onBackgroundClick,!0),200),document.addEventListener("keydown",this.handlePopoverKeydown,!0)}}repositionPopover(){var t;if(!(!this.popoverEl||!this.isPopoverOpen||!this.element)&&((t=document.activeElement)==null?void 0:t.tagName)!=="INPUT"){if(this.popoverPosition){this.popoverEl.style.left=`${this.popoverPosition.left}px`,this.popoverEl.style.top=`${this.popoverPosition.top}px`;return}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,m=e.top;m>=a+o?r=e.top-a-8:u>=a+o?r=e.bottom+8:m>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(){var t;if(!(!this.popoverEl||!this.isPopoverOpen)){if(this.isPopoverOpen=!1,this.popoverPosition=null,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 e=V(this.value);R.addColor(e,"gradient"),(t=this.recentGradientRefresh)==null||t.call(this)}this.previewUpdateTimeout&&(clearTimeout(this.previewUpdateTimeout),this.previewUpdateTimeout=null),T.openInstance===this&&(T.openInstance=null)}}commitPendingSolidColor(){this.pendingSolidColor&&(this.solidPicker?this.solidPicker.commitRecentColor():R.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=P(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 j=T;const he=`
|
|
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>
|
|
@@ -237,7 +237,7 @@ function D(c) {
|
|
|
237
237
|
return c instanceof b;
|
|
238
238
|
}
|
|
239
239
|
function w(c) {
|
|
240
|
-
return c instanceof
|
|
240
|
+
return c instanceof P;
|
|
241
241
|
}
|
|
242
242
|
function st(c) {
|
|
243
243
|
return D(c) || w(c);
|
|
@@ -810,11 +810,11 @@ const K = class K {
|
|
|
810
810
|
}
|
|
811
811
|
};
|
|
812
812
|
K.hiddenElements = /* @__PURE__ */ new Set();
|
|
813
|
-
let
|
|
813
|
+
let P = K;
|
|
814
814
|
function oe(c) {
|
|
815
815
|
return new yt(c);
|
|
816
816
|
}
|
|
817
|
-
class yt extends
|
|
817
|
+
class yt extends P {
|
|
818
818
|
constructor(t) {
|
|
819
819
|
super(t);
|
|
820
820
|
const e = Object.keys(this.settings)[0];
|
|
@@ -866,7 +866,7 @@ class yt extends T {
|
|
|
866
866
|
}
|
|
867
867
|
}
|
|
868
868
|
function Et(c) {
|
|
869
|
-
return new
|
|
869
|
+
return new P(c);
|
|
870
870
|
}
|
|
871
871
|
function ae(c) {
|
|
872
872
|
return c;
|
|
@@ -1564,11 +1564,11 @@ const It = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewB
|
|
|
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
|
+
`, Pt = `
|
|
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>
|
|
1571
|
-
`,
|
|
1571
|
+
`, Tt = `
|
|
1572
1572
|
<svg xmlns="http://www.w3.org/2000/svg" width="29" height="29" viewBox="0 0 29 29" fill="none">
|
|
1573
1573
|
<!-- Top dot -->
|
|
1574
1574
|
<circle cx="14.5" cy="3" r="1.5" fill="#02CC59" opacity="1"/>
|
|
@@ -1685,9 +1685,9 @@ class rt extends b {
|
|
|
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 = Vt, this.previewWrapper = document.createElement("div"), this.previewWrapper.className = "preview-wrapper", this.loadingSpinner = document.createElement("div"), this.loadingSpinner.className = "loading-spinner", this.loadingSpinner.innerHTML =
|
|
1688
|
+
if (n.className = "preview-placeholder", n.innerHTML = Vt, this.previewWrapper = document.createElement("div"), this.previewWrapper.className = "preview-wrapper", this.loadingSpinner = document.createElement("div"), this.loadingSpinner.className = "loading-spinner", this.loadingSpinner.innerHTML = Tt, 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 = Pt, 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 ct = (c, t, e) => {
|
|
|
2433
2433
|
opacity: e.opacity === void 0 || Number.isNaN(e.opacity) ? 100 : e.opacity
|
|
2434
2434
|
}))
|
|
2435
2435
|
};
|
|
2436
|
-
},
|
|
2436
|
+
}, T = (c) => {
|
|
2437
2437
|
const t = c.replace(/;$/, "").trim();
|
|
2438
2438
|
if (Ut(t)) {
|
|
2439
2439
|
const s = dt(t);
|
|
@@ -2501,7 +2501,7 @@ const ct = (c, t, e) => {
|
|
|
2501
2501
|
const e = /* @__PURE__ */ new Set(), i = [];
|
|
2502
2502
|
return t.forEach((s) => {
|
|
2503
2503
|
let n = A(s);
|
|
2504
|
-
n ||
|
|
2504
|
+
n || T(s) && (n = s), n && (e.has(n) || (e.add(n), i.push(n)));
|
|
2505
2505
|
}), i.slice(0, this.MAX_COLORS);
|
|
2506
2506
|
}
|
|
2507
2507
|
static ensureLoaded() {
|
|
@@ -2548,7 +2548,7 @@ const ct = (c, t, e) => {
|
|
|
2548
2548
|
if (i)
|
|
2549
2549
|
s = "solid";
|
|
2550
2550
|
else {
|
|
2551
|
-
const l =
|
|
2551
|
+
const l = T(t);
|
|
2552
2552
|
l && (i = t, s = l.type === "solid" ? "solid" : "gradient");
|
|
2553
2553
|
}
|
|
2554
2554
|
if (!i) return;
|
|
@@ -2598,7 +2598,7 @@ const et = (c, t) => {
|
|
|
2598
2598
|
};
|
|
2599
2599
|
return o(), { container: e, refresh: o };
|
|
2600
2600
|
}, Wt = (c) => {
|
|
2601
|
-
const t =
|
|
2601
|
+
const t = T(c);
|
|
2602
2602
|
if (t)
|
|
2603
2603
|
return _(t);
|
|
2604
2604
|
const e = A(c);
|
|
@@ -2895,6 +2895,27 @@ class Xt {
|
|
|
2895
2895
|
this.updateColorInput(this.formatSelect, this.colorInput);
|
|
2896
2896
|
}, 16);
|
|
2897
2897
|
}
|
|
2898
|
+
addPointerDrag(t, e, i) {
|
|
2899
|
+
t.addEventListener("pointerdown", (s) => {
|
|
2900
|
+
if (s.preventDefault(), t.setPointerCapture)
|
|
2901
|
+
try {
|
|
2902
|
+
t.setPointerCapture(s.pointerId);
|
|
2903
|
+
} catch {
|
|
2904
|
+
}
|
|
2905
|
+
e(s);
|
|
2906
|
+
const n = (r) => e(r), o = () => {
|
|
2907
|
+
if (t.releasePointerCapture)
|
|
2908
|
+
try {
|
|
2909
|
+
t.releasePointerCapture(s.pointerId);
|
|
2910
|
+
} catch {
|
|
2911
|
+
}
|
|
2912
|
+
t.removeEventListener("pointermove", n), t.removeEventListener("pointerup", a), t.removeEventListener("pointercancel", l), window.removeEventListener("blur", l);
|
|
2913
|
+
}, a = () => {
|
|
2914
|
+
o(), i == null || i();
|
|
2915
|
+
}, l = () => o();
|
|
2916
|
+
t.addEventListener("pointermove", n), t.addEventListener("pointerup", a), t.addEventListener("pointercancel", l), window.addEventListener("blur", l);
|
|
2917
|
+
});
|
|
2918
|
+
}
|
|
2898
2919
|
updateOpacityBackground(t) {
|
|
2899
2920
|
const e = k(this.currentColor);
|
|
2900
2921
|
t.style.setProperty(
|
|
@@ -2931,14 +2952,10 @@ class Xt {
|
|
|
2931
2952
|
const i = this.colorArea.getBoundingClientRect(), s = Math.max(0, Math.min(1, (e.clientX - i.left) / i.width)), n = Math.max(0, Math.min(1, (e.clientY - i.top) / i.height));
|
|
2932
2953
|
this.colorMarker.style.left = `${s * 100}%`, this.colorMarker.style.top = `${n * 100}%`;
|
|
2933
2954
|
const o = parseFloat(this.hueMarker.style.left || "0%"), a = Math.max(0, Math.min(360, o / 100 * 360)), l = Math.max(0, Math.min(1, s)), r = Math.max(0, Math.min(1, 1 - n)), h = G(a, l, r);
|
|
2934
|
-
this.currentColor = h, this.updateOpacityBackground(this.opacitySlider), this.triggerChange();
|
|
2955
|
+
this.currentColor = h, this.updateOpacityBackground(this.opacitySlider), this.scheduleInputUpdate(), this.triggerChange();
|
|
2935
2956
|
};
|
|
2936
|
-
this.colorArea
|
|
2937
|
-
|
|
2938
|
-
const i = (n) => t(n), s = () => {
|
|
2939
|
-
document.removeEventListener("mousemove", i), document.removeEventListener("mouseup", s), this.updateColorInput(this.formatSelect, this.colorInput), this.updateOpacityBackground(this.opacitySlider);
|
|
2940
|
-
};
|
|
2941
|
-
document.addEventListener("mousemove", i), document.addEventListener("mouseup", s);
|
|
2957
|
+
this.addPointerDrag(this.colorArea, t, () => {
|
|
2958
|
+
this.updateColorInput(this.formatSelect, this.colorInput), this.updateOpacityBackground(this.opacitySlider);
|
|
2942
2959
|
});
|
|
2943
2960
|
}
|
|
2944
2961
|
setupHueSliderEvents() {
|
|
@@ -2957,14 +2974,10 @@ class Xt {
|
|
|
2957
2974
|
);
|
|
2958
2975
|
this.colorArea.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${n}, 100%, 50%))`;
|
|
2959
2976
|
const h = G(n, l, 1 - r);
|
|
2960
|
-
this.currentColor = h, this.updateOpacityBackground(this.opacitySlider), this.triggerChange();
|
|
2977
|
+
this.currentColor = h, this.updateOpacityBackground(this.opacitySlider), this.scheduleInputUpdate(), this.triggerChange();
|
|
2961
2978
|
};
|
|
2962
|
-
this.hueSlider
|
|
2963
|
-
|
|
2964
|
-
const i = (n) => t(n), s = () => {
|
|
2965
|
-
document.removeEventListener("mousemove", i), document.removeEventListener("mouseup", s), this.inputUpdateTimeout && clearTimeout(this.inputUpdateTimeout), this.updateColorInput(this.formatSelect, this.colorInput);
|
|
2966
|
-
};
|
|
2967
|
-
document.addEventListener("mousemove", i), document.addEventListener("mouseup", s);
|
|
2979
|
+
this.addPointerDrag(this.hueSlider, t, () => {
|
|
2980
|
+
this.inputUpdateTimeout && clearTimeout(this.inputUpdateTimeout), this.updateColorInput(this.formatSelect, this.colorInput);
|
|
2968
2981
|
});
|
|
2969
2982
|
}
|
|
2970
2983
|
setupOpacitySliderEvents() {
|
|
@@ -2972,13 +2985,7 @@ class Xt {
|
|
|
2972
2985
|
const i = this.opacitySlider.getBoundingClientRect(), s = Math.max(0, Math.min(1, (e.clientX - i.left) / i.width));
|
|
2973
2986
|
this.opacityMarker.style.left = `${s * 100}%`, this.currentOpacity = Math.round(s * 100), this.triggerChange();
|
|
2974
2987
|
};
|
|
2975
|
-
this.opacitySlider
|
|
2976
|
-
e.preventDefault(), t(e);
|
|
2977
|
-
const i = (n) => t(n), s = () => {
|
|
2978
|
-
document.removeEventListener("mousemove", i), document.removeEventListener("mouseup", s);
|
|
2979
|
-
};
|
|
2980
|
-
document.addEventListener("mousemove", i), document.addEventListener("mouseup", s);
|
|
2981
|
-
});
|
|
2988
|
+
this.addPointerDrag(this.opacitySlider, t);
|
|
2982
2989
|
}
|
|
2983
2990
|
setupFormatEvents(t) {
|
|
2984
2991
|
this.formatSelect.addEventListener("change", () => {
|
|
@@ -3101,7 +3108,7 @@ const V = class V extends b {
|
|
|
3101
3108
|
defaultValue() {
|
|
3102
3109
|
const t = this.originalDefault;
|
|
3103
3110
|
if (typeof t == "string") {
|
|
3104
|
-
const i =
|
|
3111
|
+
const i = T(t);
|
|
3105
3112
|
if (i)
|
|
3106
3113
|
return $(i);
|
|
3107
3114
|
}
|
|
@@ -3117,7 +3124,7 @@ const V = class V extends b {
|
|
|
3117
3124
|
setValue(t) {
|
|
3118
3125
|
var i, s;
|
|
3119
3126
|
let e = null;
|
|
3120
|
-
typeof t == "string" ? e =
|
|
3127
|
+
typeof t == "string" ? e = T(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;
|
|
3121
3128
|
}
|
|
3122
3129
|
updateUI() {
|
|
3123
3130
|
if (this.previewEl && this.value)
|
|
@@ -3232,7 +3239,7 @@ const V = class V extends b {
|
|
|
3232
3239
|
initialOpacity: e.opacity ?? 100,
|
|
3233
3240
|
onColorChange: (s, n) => {
|
|
3234
3241
|
if (this.value) {
|
|
3235
|
-
const o =
|
|
3242
|
+
const o = T(s);
|
|
3236
3243
|
if (o && o.type !== "solid") {
|
|
3237
3244
|
this.value = o, this.switchType(o.type);
|
|
3238
3245
|
return;
|
|
@@ -3288,7 +3295,7 @@ const V = class V extends b {
|
|
|
3288
3295
|
const u = document.createElement("div");
|
|
3289
3296
|
u.className = "gradient-stops", t.appendChild(h), t.appendChild(u), this.updateStopsList(u);
|
|
3290
3297
|
const m = et((f) => {
|
|
3291
|
-
const g =
|
|
3298
|
+
const g = T(f);
|
|
3292
3299
|
g && (this.value = g, this.switchType(g.type), this.updateUI(), this.triggerChange());
|
|
3293
3300
|
}, "all");
|
|
3294
3301
|
this.recentGradientRefresh = m.refresh, t.appendChild(m.container), d.addEventListener("click", () => {
|
|
@@ -3520,7 +3527,7 @@ const V = class V extends b {
|
|
|
3520
3527
|
this.parseAndSet(e.value);
|
|
3521
3528
|
}
|
|
3522
3529
|
parseAndSet(t) {
|
|
3523
|
-
const e =
|
|
3530
|
+
const e = T(t.trim());
|
|
3524
3531
|
e && this.setValue(e);
|
|
3525
3532
|
}
|
|
3526
3533
|
triggerChange() {
|
|
@@ -3554,7 +3561,7 @@ const Zt = `
|
|
|
3554
3561
|
<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"/>
|
|
3555
3562
|
</svg>
|
|
3556
3563
|
`;
|
|
3557
|
-
class ye extends
|
|
3564
|
+
class ye extends P {
|
|
3558
3565
|
constructor(t) {
|
|
3559
3566
|
super({
|
|
3560
3567
|
title: "Border",
|
|
@@ -3609,7 +3616,7 @@ const Yt = `
|
|
|
3609
3616
|
<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"/>
|
|
3610
3617
|
</svg>
|
|
3611
3618
|
`;
|
|
3612
|
-
class Ee extends
|
|
3619
|
+
class Ee extends P {
|
|
3613
3620
|
constructor(t = {}) {
|
|
3614
3621
|
const { showAlign: e = t.showAlign ?? !0, ...i } = t;
|
|
3615
3622
|
super({
|
|
@@ -3734,7 +3741,7 @@ class j extends b {
|
|
|
3734
3741
|
}), i;
|
|
3735
3742
|
}
|
|
3736
3743
|
}
|
|
3737
|
-
class be extends
|
|
3744
|
+
class be extends P {
|
|
3738
3745
|
constructor(t) {
|
|
3739
3746
|
super({
|
|
3740
3747
|
title: "Margins",
|
|
@@ -3786,7 +3793,7 @@ const ee = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewB
|
|
|
3786
3793
|
</svg>`, ne = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
|
|
3787
3794
|
<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"/>
|
|
3788
3795
|
</svg>`;
|
|
3789
|
-
class we extends
|
|
3796
|
+
class we extends P {
|
|
3790
3797
|
constructor(t) {
|
|
3791
3798
|
super({
|
|
3792
3799
|
title: "Background Image",
|
|
@@ -3848,7 +3855,7 @@ export {
|
|
|
3848
3855
|
de as SelectApiSettings,
|
|
3849
3856
|
tt as SelectSetting,
|
|
3850
3857
|
b as Setting,
|
|
3851
|
-
|
|
3858
|
+
P as SettingGroup,
|
|
3852
3859
|
bt as StringSetting,
|
|
3853
3860
|
yt as TabSettingGroup,
|
|
3854
3861
|
yt as TabsSettingGroup,
|
package/package.json
CHANGED