builder-settings-types 0.0.277 → 0.0.279

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,11 +1,11 @@
1
- const mt = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
2
- let ct = (c = 21) => {
1
+ const ft = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
2
+ let ht = (c = 21) => {
3
3
  let t = "", e = crypto.getRandomValues(new Uint8Array(c |= 0));
4
4
  for (; c--; )
5
- t += mt[e[c] & 63];
5
+ t += ft[e[c] & 63];
6
6
  return t;
7
7
  };
8
- function ft(c) {
8
+ function vt(c) {
9
9
  let t = 0, e = c.parentElement;
10
10
  for (; e; )
11
11
  e.classList.contains("setting-group") && e !== c && t++, e = e.parentElement;
@@ -15,21 +15,21 @@ function J(c, t) {
15
15
  const e = Math.min(Math.max(t, 0), 5);
16
16
  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 = "");
17
17
  }
18
- function et(c, t = 0) {
18
+ function tt(c, t = 0) {
19
19
  c.querySelectorAll(":scope > .setting-group-content > .setting-group").forEach((i) => {
20
20
  const s = i, n = t + 1;
21
- J(s, n), et(s, n);
21
+ J(s, n), tt(s, n);
22
22
  });
23
23
  }
24
- const vt = {
24
+ const Ct = {
25
25
  maxLevel: 5,
26
26
  spacingMultiplier: 1,
27
27
  visualIndentMultiplier: 2,
28
28
  enableAutoDetection: !0
29
29
  };
30
- class Ct {
30
+ class yt {
31
31
  constructor(t = {}) {
32
- this.observedElements = /* @__PURE__ */ new Set(), this.config = { ...vt, ...t }, this.config.enableAutoDetection && this.setupAutoDetection();
32
+ this.observedElements = /* @__PURE__ */ new Set(), this.config = { ...Ct, ...t }, this.config.enableAutoDetection && this.setupAutoDetection();
33
33
  }
34
34
  /**
35
35
  * Setup automatic detection using MutationObserver
@@ -63,7 +63,7 @@ class Ct {
63
63
  * Update nesting for a specific element
64
64
  */
65
65
  updateElementNesting(t) {
66
- const e = ft(t);
66
+ const e = vt(t);
67
67
  this.applyNestingWithConfig(t, e);
68
68
  }
69
69
  /**
@@ -111,20 +111,20 @@ class Ct {
111
111
  this.observer && (this.observer.disconnect(), this.observer = void 0), this.observedElements.clear();
112
112
  }
113
113
  }
114
- const st = new Ct();
115
- function Z(c) {
114
+ const nt = new yt();
115
+ function X(c) {
116
116
  if (c === null || typeof c != "object") return c;
117
117
  if (c instanceof Date) return new Date(c.getTime());
118
- if (c instanceof Array) return c.map((t) => Z(t));
118
+ if (c instanceof Array) return c.map((t) => X(t));
119
119
  if (typeof c == "object") {
120
120
  const t = {};
121
121
  for (const e in c)
122
- Object.prototype.hasOwnProperty.call(c, e) && (t[e] = Z(c[e]));
122
+ Object.prototype.hasOwnProperty.call(c, e) && (t[e] = X(c[e]));
123
123
  return t;
124
124
  }
125
125
  return c;
126
126
  }
127
- function yt(c) {
127
+ function Et(c) {
128
128
  switch (c) {
129
129
  case "number":
130
130
  return 0;
@@ -142,15 +142,15 @@ function yt(c) {
142
142
  return "";
143
143
  }
144
144
  }
145
- class b {
145
+ class w {
146
146
  constructor(t = {}) {
147
- this.props = t, this.dataPropsPath = "", this.id = t.id || ct(), this.value = this.props.default, this.desktop = this.props.default, this.title = t.title || "", this.includeGetJson = t.includeGetJson !== void 0 ? t.includeGetJson : !0;
147
+ this.props = t, this.dataPropsPath = "", this.id = t.id || ht(), this.value = this.props.default, this.desktop = this.props.default, this.title = t.title || "", this.includeGetJson = t.includeGetJson !== void 0 ? t.includeGetJson : !0;
148
148
  }
149
149
  static SetUploadUrl(t) {
150
- globalThis.DefaultUploadUrl = t, b.DefaultUploadUrl = t;
150
+ globalThis.DefaultUploadUrl = t, w.DefaultUploadUrl = t;
151
151
  }
152
152
  static SetDefaultLanguage(t) {
153
- globalThis.DefaultLanguage = t, b.DefaultLanguage = t;
153
+ globalThis.DefaultLanguage = t, w.DefaultLanguage = t;
154
154
  }
155
155
  destroy() {
156
156
  throw new Error("Method not implemented.");
@@ -171,8 +171,8 @@ class b {
171
171
  this.value = t, this.inputEl && (this.inputEl.value = String(t)), this.onChange && this.onChange(t), this.props.detectChange && this.props.detectChange(t);
172
172
  }
173
173
  clone() {
174
- const t = this.constructor, e = Z(this.props), i = new t(e);
175
- return i.value = Z(this.value), i;
174
+ const t = this.constructor, e = X(this.props), i = new t(e);
175
+ return i.value = X(this.value), i;
176
176
  }
177
177
  createInput(t) {
178
178
  t = { ...this.props.inputProps, ...t };
@@ -192,7 +192,7 @@ class b {
192
192
  const i = document.createElement("div");
193
193
  i.className = t.wrapperClassName || "";
194
194
  const s = document.createElement("input");
195
- this.inputEl = s, s.value = String(t.value || yt(t.inputType)), s.type = t.inputType, s.placeholder = t.placeholder || "", s.className = t.inputClassName || "", this.dataPropsPath && s.setAttribute("data-test-id", this.dataPropsPath);
195
+ this.inputEl = s, s.value = String(t.value || Et(t.inputType)), s.type = t.inputType, s.placeholder = t.placeholder || "", s.className = t.inputClassName || "", this.dataPropsPath && s.setAttribute("data-test-id", this.dataPropsPath);
196
196
  const n = (a) => {
197
197
  const l = a.target;
198
198
  let r = l.value;
@@ -233,14 +233,14 @@ class b {
233
233
  return i.className = "input-icon " + (e || ""), i.innerHTML = t, i;
234
234
  }
235
235
  }
236
- function D(c) {
237
- return c instanceof b;
236
+ function R(c) {
237
+ return c instanceof w;
238
238
  }
239
239
  function L(c) {
240
240
  return c instanceof T;
241
241
  }
242
- function nt(c) {
243
- return D(c) || L(c);
242
+ function ot(c) {
243
+ return R(c) || L(c);
244
244
  }
245
245
  function j(c, t) {
246
246
  for (const e in c)
@@ -249,10 +249,10 @@ function j(c, t) {
249
249
  t(e, i);
250
250
  }
251
251
  }
252
- const Y = class Y {
252
+ const K = class K {
253
253
  constructor(t) {
254
254
  this.elementRef = null, this.isHidden = !1, this.custom = !1, this.initialValues = {}, this.changeTimeout = null, this.isHandlingChange = !1, this.changeHandlers = /* @__PURE__ */ new Set(), this.blurTimeout = null, this.lastChangeTime = 0, this.handleBlur = () => {
255
- }, this.pendingBlurHandler = null, this.originalDefaultValues = {}, this.nestingLevel = 0, this.dataPropsPath = "", this.hide = !1, this.id = t.id || ct(), 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();
255
+ }, this.pendingBlurHandler = null, this.originalDefaultValues = {}, this.nestingLevel = 0, this.dataPropsPath = "", this.hide = !1, this.id = t.id || ht(), 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();
256
256
  }
257
257
  propagateNestingLevel() {
258
258
  const t = this.nestingLevel + 1;
@@ -275,11 +275,11 @@ const Y = class Y {
275
275
  propagateDataPropsPath() {
276
276
  j(this.settings, (t, e) => {
277
277
  const i = String(t), s = this.dataPropsPath ? `${this.dataPropsPath}_${i}` : i;
278
- (L(e) || D(e) && typeof e.setDataPropsPath == "function") && e.setDataPropsPath(s);
278
+ (L(e) || R(e) && typeof e.setDataPropsPath == "function") && e.setDataPropsPath(s);
279
279
  });
280
280
  }
281
281
  updateNestingStyles() {
282
- this.elementRef && (J(this.elementRef, this.nestingLevel), et(this.elementRef, this.nestingLevel));
282
+ this.elementRef && (J(this.elementRef, this.nestingLevel), tt(this.elementRef, this.nestingLevel));
283
283
  }
284
284
  forceChildUIRefresh() {
285
285
  Object.entries(this.settings).forEach(([t, e]) => {
@@ -345,7 +345,7 @@ const Y = class Y {
345
345
  deleteItem: this.deleteItemCfg,
346
346
  dataProps: this.dataProps,
347
347
  hide: this.hide
348
- }, i = bt(e);
348
+ }, i = wt(e);
349
349
  return i.initialValues = this.getValues(), i;
350
350
  }
351
351
  resetDefault() {
@@ -355,7 +355,7 @@ const Y = class Y {
355
355
  setMobileValues(t) {
356
356
  !t || typeof t != "object" || (Object.entries(t).forEach(([e, i]) => {
357
357
  const s = this.settings[e];
358
- s && (L(s) || D(s)) && typeof s.setMobileValue == "function" && s.setMobileValue(i);
358
+ s && (L(s) || R(s)) && typeof s.setMobileValue == "function" && s.setMobileValue(i);
359
359
  }), this.setValue(t), this.onChange && this.onChange(this.getValues()));
360
360
  }
361
361
  getMobileValues(t) {
@@ -398,7 +398,7 @@ const Y = class Y {
398
398
  const o = this.getValues();
399
399
  this.initialValues = o, t(o);
400
400
  }), this.changeHandlers.add(() => t(this.getValues()));
401
- else if (D(s)) {
401
+ else if (R(s)) {
402
402
  const o = () => e();
403
403
  this.changeHandlers.add(o), s.setOnChange(o);
404
404
  } else {
@@ -421,10 +421,10 @@ const Y = class Y {
421
421
  const o = i.slice(this.addItemCfg.keyPrefix.length), a = Number(o);
422
422
  if (Number.isFinite(a)) {
423
423
  const l = this.addItemCfg.createItem(a);
424
- nt(l) && (this.addSetting(i, l), n = l);
424
+ ot(l) && (this.addSetting(i, l), n = l);
425
425
  }
426
426
  }
427
- n && (L(n) || D(n)) && typeof n.setValue == "function" && n.setValue(s);
427
+ n && (L(n) || R(n)) && typeof n.setValue == "function" && n.setValue(s);
428
428
  }), setTimeout(() => {
429
429
  this.forceChildUIRefresh();
430
430
  }, 0);
@@ -438,7 +438,7 @@ const Y = class Y {
438
438
  const s = this.getValues();
439
439
  this.initialValues = s, (n = this.onChange) == null || n.call(this, s), this.updateVisibility();
440
440
  };
441
- L(t) ? t.setOnChange(() => e()) : D(t) ? t.setOnChange(() => e()) : (i = t.setOnChange) == null || i.call(t, () => e());
441
+ L(t) ? t.setOnChange(() => e()) : R(t) ? t.setOnChange(() => e()) : (i = t.setOnChange) == null || i.call(t, () => e());
442
442
  }
443
443
  addSetting(t, e) {
444
444
  var s, n;
@@ -454,7 +454,7 @@ const Y = class Y {
454
454
  p && t.startsWith(p) && this.addDeleteButtonToElement(a, t);
455
455
  }
456
456
  const r = o.querySelector(".sg-add-button-bottom");
457
- r ? o.insertBefore(a, r) : o.appendChild(a), st.trackElement(a), J(a, this.nestingLevel + 1), et(a, this.nestingLevel + 1);
457
+ r ? o.insertBefore(a, r) : o.appendChild(a), nt.trackElement(a), J(a, this.nestingLevel + 1), tt(a, this.nestingLevel + 1);
458
458
  const h = a.style.display;
459
459
  a.style.display = "none", a.offsetHeight, a.style.display = h, this.updateNestingStyles();
460
460
  }
@@ -705,7 +705,7 @@ const Y = class Y {
705
705
  }
706
706
  draw() {
707
707
  const t = document.createElement("div");
708
- t.className = "setting-group", t.id = `setting-group-${this.id}`, Y.hiddenElements.add(t), this.hide && (t.style.display = "none"), this.isMain && t.classList.add("main-group"), this.custom && t.classList.add("custom_class"), J(t, this.nestingLevel);
708
+ t.className = "setting-group", t.id = `setting-group-${this.id}`, K.hiddenElements.add(t), this.hide && (t.style.display = "none"), this.isMain && t.classList.add("main-group"), this.custom && t.classList.add("custom_class"), J(t, this.nestingLevel);
709
709
  const e = document.createElement("div");
710
710
  e.className = "setting-group-title", this.isCollapsed && e.classList.add("collapsed-view"), e.setAttribute("role", "button"), e.setAttribute(
711
711
  "aria-expanded",
@@ -760,14 +760,14 @@ const Y = class Y {
760
760
  </svg>`;
761
761
  h.innerHTML = `${p}<span style="margin-left:4px;">${this.addItemCfg.buttonLabel ?? "Add"}</span>`, h.addEventListener("click", (d) => {
762
762
  d.stopPropagation(), d.preventDefault();
763
- const g = this.getNextIndexFromPrefix(this.addItemCfg.keyPrefix), u = this.addItemCfg.createItem(g);
764
- if (nt(u)) {
765
- const m = `${this.addItemCfg.keyPrefix}${g}`;
766
- this.addSetting(m, u);
763
+ const u = this.getNextIndexFromPrefix(this.addItemCfg.keyPrefix), g = this.addItemCfg.createItem(u);
764
+ if (ot(g)) {
765
+ const m = `${this.addItemCfg.keyPrefix}${u}`;
766
+ this.addSetting(m, g);
767
767
  }
768
768
  }), a.appendChild(h);
769
769
  }
770
- return e.appendChild(i), e.appendChild(n), t.appendChild(e), t.appendChild(a), this.elementRef = t, st.trackElement(t), setTimeout(() => {
770
+ return e.appendChild(i), e.appendChild(n), t.appendChild(e), t.appendChild(a), this.elementRef = t, nt.trackElement(t), setTimeout(() => {
771
771
  this.updateNestingStyles();
772
772
  }, 0), this.pendingBlurHandler && (this.pendingBlurHandler = null), t;
773
773
  }
@@ -809,12 +809,12 @@ const Y = class Y {
809
809
  }
810
810
  }
811
811
  };
812
- Y.hiddenElements = /* @__PURE__ */ new Set();
813
- let T = Y;
812
+ K.hiddenElements = /* @__PURE__ */ new Set();
813
+ let T = K;
814
814
  function ae(c) {
815
- return new Et(c);
815
+ return new bt(c);
816
816
  }
817
- class Et extends T {
817
+ class bt extends T {
818
818
  constructor(t) {
819
819
  super(t);
820
820
  const e = Object.keys(this.settings)[0];
@@ -865,13 +865,13 @@ class Et extends T {
865
865
  return this.updateTabUI(), t;
866
866
  }
867
867
  }
868
- function bt(c) {
868
+ function wt(c) {
869
869
  return new T(c);
870
870
  }
871
871
  function le(c) {
872
872
  return c;
873
873
  }
874
- class wt extends b {
874
+ class xt extends w {
875
875
  constructor(t = {}) {
876
876
  super(t), this.inputType = "text", t.onChange && this.setOnChange(t.onChange);
877
877
  }
@@ -891,12 +891,12 @@ class wt extends b {
891
891
  });
892
892
  }
893
893
  }
894
- const xt = "<svg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19' fill='none'><path d='M8.99999 15.8542C9.79613 16.5667 10.8475 17 12 17C14.4853 17 16.5 14.9853 16.5 12.5C16.5 10.4248 15.0953 8.67769 13.1849 8.15763M4.81513 8.15762C2.9047 8.67768 1.5 10.4248 1.5 12.5C1.5 14.9853 3.51472 17 6 17C8.48528 17 10.5 14.9853 10.5 12.5C10.5 11.9146 10.3882 11.3554 10.1849 10.8424M13.5 6.5C13.5 8.98528 11.4853 11 9 11C6.51472 11 4.5 8.98528 4.5 6.5C4.5 4.01472 6.51472 2 9 2C11.4853 2 13.5 4.01472 13.5 6.5Z' stroke='#667085' stroke-linecap='round' stroke-linejoin='round'/></svg>";
895
- class M extends wt {
894
+ const Lt = "<svg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19' fill='none'><path d='M8.99999 15.8542C9.79613 16.5667 10.8475 17 12 17C14.4853 17 16.5 14.9853 16.5 12.5C16.5 10.4248 15.0953 8.67769 13.1849 8.15763M4.81513 8.15762C2.9047 8.67768 1.5 10.4248 1.5 12.5C1.5 14.9853 3.51472 17 6 17C8.48528 17 10.5 14.9853 10.5 12.5C10.5 11.9146 10.3882 11.3554 10.1849 10.8424M13.5 6.5C13.5 8.98528 11.4853 11 9 11C6.51472 11 4.5 8.98528 4.5 6.5C4.5 4.01472 6.51472 2 9 2C11.4853 2 13.5 4.01472 13.5 6.5Z' stroke='#667085' stroke-linecap='round' stroke-linejoin='round'/></svg>";
895
+ class M extends xt {
896
896
  constructor(t) {
897
897
  super({
898
898
  ...t,
899
- icon: t.icon || xt,
899
+ icon: t.icon || Lt,
900
900
  title: t.title || "Color",
901
901
  default: t.default ? M.normalizeColorValue(t.default) : "#000000"
902
902
  }), this.inputType = "color", this.element = null, this.colorInputEl = null, this.textInputEl = null, this.detectChange = t.detectChange;
@@ -995,20 +995,20 @@ class M extends wt {
995
995
  return this.isValidHex() ? this.hexToRgb(this.value) : "0, 0, 0";
996
996
  }
997
997
  }
998
- const Lt = `
998
+ const kt = `
999
999
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1000
1000
  <path d="M8.99999 15.8542C9.79613 16.5667 10.8475 17 12 17C14.4853 17 16.5 14.9853 16.5 12.5C16.5 10.4248 15.0953 8.67769 13.1849 8.15763M4.81513 8.15762C2.9047 8.67768 1.5 10.4248 1.5 12.5C1.5 14.9853 3.51472 17 6 17C8.48528 17 10.5 14.9853 10.5 12.5C10.5 11.9146 10.3882 11.3554 10.1849 10.8424M13.5 6.5C13.5 8.98528 11.4853 11 9 11C6.51472 11 4.5 8.98528 4.5 6.5C4.5 4.01472 6.51472 2 9 2C11.4853 2 13.5 4.01472 13.5 6.5Z" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
1001
1001
  <path d="M9 17C13.4183 17 17 13.4183 17 9C17 4.58172 13.4183 1 9 1C4.58172 1 1 4.58172 1 9C1 13.4183 4.58172 17 9 17Z" stroke="#667085" stroke-width="0.5" stroke-linecap="round" stroke-linejoin="round" opacity="0.5"/>
1002
1002
  <path d="M9 1V17C4.58172 17 1 13.4183 1 9C1 4.58172 4.58172 1 9 1Z" fill="#667085" stroke="#667085" stroke-width="0.5" stroke-linecap="round" stroke-linejoin="round" opacity="0.5"/>
1003
1003
  </svg>`;
1004
- class H extends b {
1004
+ class P extends w {
1005
1005
  constructor(t = {}) {
1006
1006
  super({
1007
1007
  ...t,
1008
- icon: t.icon || Lt,
1008
+ icon: t.icon || kt,
1009
1009
  title: t.title || "Color & Opacity",
1010
1010
  default: t.default || "#000000FF"
1011
- }), this.inputType = "color", this.element = null, this.colorInputEl = null, this.textInputEl = null, this.opacityInputEl = null, this.colorPreviewEl = null, this.detectChange = t.detectChange, this.value && (this.value = H.normalizeHexWithOpacity(this.value));
1011
+ }), this.inputType = "color", this.element = null, this.colorInputEl = null, this.textInputEl = null, this.opacityInputEl = null, this.colorPreviewEl = null, this.detectChange = t.detectChange, this.value && (this.value = P.normalizeHexWithOpacity(this.value));
1012
1012
  }
1013
1013
  static normalizeHexWithOpacity(t) {
1014
1014
  return t = t.replace("#", ""), t.length === 3 && (t = t.split("").map((e) => e + e).join("")), t.length === 6 && (t = t + "FF"), t.length === 8 && /^[0-9A-Fa-f]{8}$/.test(t) ? `#${t.toUpperCase()}` : (console.warn(`Invalid hex value "${t}", using default "#000000FF"`), "#000000FF");
@@ -1026,7 +1026,7 @@ class H extends b {
1026
1026
  return `#${i}${n}`;
1027
1027
  }
1028
1028
  setValue(t) {
1029
- t === void 0 || t === "" ? this.value = "#000000FF" : this.value = H.normalizeHexWithOpacity(t), this.updateInputElements(), this.updateColorPreview(), this.onChange && this.onChange(this.value), this.detectChange && this.detectChange(this.value);
1029
+ t === void 0 || t === "" ? this.value = "#000000FF" : this.value = P.normalizeHexWithOpacity(t), this.updateInputElements(), this.updateColorPreview(), this.onChange && this.onChange(this.value), this.detectChange && this.detectChange(this.value);
1030
1030
  }
1031
1031
  updateInputElements() {
1032
1032
  this.value && (this.colorInputEl && (this.colorInputEl.value = this.getRgbColor()), this.textInputEl && (this.textInputEl.value = this.value), this.opacityInputEl && (this.opacityInputEl.value = this.getOpacityPercent().toString()));
@@ -1037,7 +1037,7 @@ class H extends b {
1037
1037
  this.colorPreviewEl.style.backgroundColor = `rgba(${s}, ${n}, ${o}, ${e})`;
1038
1038
  }
1039
1039
  handleColorChange(t) {
1040
- const e = this.getOpacityPercent(), i = H.combineColorOpacity(
1040
+ const e = this.getOpacityPercent(), i = P.combineColorOpacity(
1041
1041
  t,
1042
1042
  e
1043
1043
  );
@@ -1048,7 +1048,7 @@ class H extends b {
1048
1048
  return e || i ? (this.setValue(t), !0) : !1;
1049
1049
  }
1050
1050
  handleOpacityChange(t) {
1051
- const e = this.getRgbColor(), i = Math.max(0, Math.min(100, t)), s = H.combineColorOpacity(
1051
+ const e = this.getRgbColor(), i = Math.max(0, Math.min(100, t)), s = P.combineColorOpacity(
1052
1052
  e,
1053
1053
  i
1054
1054
  );
@@ -1123,7 +1123,7 @@ class H extends b {
1123
1123
  };
1124
1124
  }
1125
1125
  }
1126
- class re extends b {
1126
+ class re extends w {
1127
1127
  constructor(t = {}) {
1128
1128
  super(t), this.inputType = "text", t.onChange && this.setOnChange(t.onChange);
1129
1129
  }
@@ -1155,7 +1155,7 @@ class re extends b {
1155
1155
  return e.addEventListener("input", i), e.addEventListener("change", i), e.addEventListener("blur", s), t.appendChild(e), t;
1156
1156
  }
1157
1157
  }
1158
- class I extends b {
1158
+ class I extends w {
1159
1159
  constructor(t) {
1160
1160
  super(t), this.inputType = "number", this.inputElement = null, this.mobileValue = t.mobile, this.validateProps(), this.value = this.validateValue(this.value);
1161
1161
  }
@@ -1214,12 +1214,12 @@ class I extends b {
1214
1214
  );
1215
1215
  }
1216
1216
  }
1217
- const kt = `
1217
+ const Mt = `
1218
1218
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1219
1219
  <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"/>
1220
1220
  <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"/>
1221
1221
  </svg>`;
1222
- class Mt extends I {
1222
+ class St extends I {
1223
1223
  constructor(t = {}) {
1224
1224
  const e = {
1225
1225
  title: "Opacity",
@@ -1228,7 +1228,7 @@ class Mt extends I {
1228
1228
  maxValue: 100,
1229
1229
  step: 1,
1230
1230
  default: t.default ?? 100,
1231
- icon: kt,
1231
+ icon: Mt,
1232
1232
  ...t
1233
1233
  };
1234
1234
  super(e), this.inputType = "number", this.mobileValue = t.mobile;
@@ -1240,12 +1240,12 @@ class Mt extends I {
1240
1240
  this.mobileValue = t, t !== void 0 && this.setValue(t);
1241
1241
  }
1242
1242
  }
1243
- const St = `
1243
+ const It = `
1244
1244
  <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">
1245
1245
  <polyline points="6 9 12 15 18 9"></polyline>
1246
1246
  </svg>
1247
1247
  `;
1248
- class it extends b {
1248
+ class et extends w {
1249
1249
  constructor(t = {}) {
1250
1250
  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) {
1251
1251
  const e = this._options.findIndex((i) => i.value === this.value);
@@ -1289,7 +1289,7 @@ class it extends b {
1289
1289
  a.onclick = (l) => this.selectOption(l, o, e), i.appendChild(a);
1290
1290
  }), document.body.appendChild(i);
1291
1291
  const s = document.createElement("div");
1292
- return s.classList.add("svg-container"), s.innerHTML = St, t.appendChild(s), this.optionsListEl = i, this.svgContainer = s, this.props.getOptionsAsync && (this.isLoading = !0, this.updateButtonText(), this.props.getOptionsAsync().then((n) => {
1292
+ return s.classList.add("svg-container"), s.innerHTML = It, t.appendChild(s), this.optionsListEl = i, this.svgContainer = s, this.props.getOptionsAsync && (this.isLoading = !0, this.updateButtonText(), this.props.getOptionsAsync().then((n) => {
1293
1293
  this._options.push(...n), this.isLoading = !1, this.updateOptionsList(), this.updateButtonText();
1294
1294
  }).catch((n) => {
1295
1295
  console.error("Failed to fetch async options:", n), this.isLoading = !1, this.updateButtonText("Failed to load options");
@@ -1358,7 +1358,7 @@ class it extends b {
1358
1358
  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();
1359
1359
  }
1360
1360
  }
1361
- class It extends b {
1361
+ class Nt extends w {
1362
1362
  constructor(t = {}) {
1363
1363
  super(t), this.inputType = "button", this.value || (this.value = "center");
1364
1364
  }
@@ -1414,7 +1414,7 @@ class It extends b {
1414
1414
  }), t.appendChild(i), t;
1415
1415
  }
1416
1416
  }
1417
- class ce extends b {
1417
+ class ce extends w {
1418
1418
  constructor(t) {
1419
1419
  super(t), this.inputType = "button", this.bgWithAlpha = "rgba(145, 158, 171, 0.08)";
1420
1420
  }
@@ -1443,7 +1443,7 @@ class ce extends b {
1443
1443
  return o.className = "button-setting-wrapper " + (this.props.wrapperClassName || ""), o.appendChild(t), o;
1444
1444
  }
1445
1445
  }
1446
- class he extends b {
1446
+ class he extends w {
1447
1447
  constructor(t = {}) {
1448
1448
  super(t), this.inputType = { width: "number", height: "number" }, this.aspectRatio = 1, this.isUpdating = !1;
1449
1449
  const e = t.width || 0, i = t.height || 0;
@@ -1456,14 +1456,14 @@ class he extends b {
1456
1456
  suffix: "px",
1457
1457
  minValue: this.minWidth,
1458
1458
  maxValue: this.maxWidth,
1459
- icon: Nt
1459
+ icon: Vt
1460
1460
  }), this.heightSetting = new I({
1461
1461
  title: "Height",
1462
1462
  default: this.value.height,
1463
1463
  suffix: "px",
1464
1464
  minValue: this.minHeight,
1465
1465
  maxValue: this.maxHeight,
1466
- icon: Vt
1466
+ icon: Tt
1467
1467
  }), this.widthSetting.setOnChange(this.handleWidthChange.bind(this)), this.heightSetting.setOnChange(this.handleHeightChange.bind(this));
1468
1468
  }
1469
1469
  handleWidthChange(t) {
@@ -1557,24 +1557,24 @@ class he extends b {
1557
1557
  }
1558
1558
  }
1559
1559
  }
1560
- const Nt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1560
+ const Vt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1561
1561
  <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"/>
1562
- </svg>`, Vt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1562
+ </svg>`, Tt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1563
1563
  <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"/>
1564
- </svg>`, K = `
1564
+ </svg>`, Y = `
1565
1565
  <svg xmlns="http://www.w3.org/2000/svg" width="15" height="16" viewBox="0 0 15 16" fill="none">
1566
1566
  <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"/>
1567
1567
  </svg>
1568
- `, Tt = `
1568
+ `, Ot = `
1569
1569
  <svg width="91" height="71" viewBox="0 0 91 71" fill="none" xmlns="http://www.w3.org/2000/svg">
1570
1570
  <rect width="91" height="71" rx="4" fill="#F2F4F7"/>
1571
1571
  <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"/>
1572
1572
  </svg>
1573
- `, Ot = `
1573
+ `, Pt = `
1574
1574
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 12 12" fill="none">
1575
1575
  <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"/>
1576
1576
  </svg>
1577
- `, Pt = `
1577
+ `, Ht = `
1578
1578
  <svg xmlns="http://www.w3.org/2000/svg" width="29" height="29" viewBox="0 0 29 29" fill="none">
1579
1579
  <!-- Top dot -->
1580
1580
  <circle cx="14.5" cy="3" r="1.5" fill="#02CC59" opacity="1"/>
@@ -1594,7 +1594,7 @@ const Nt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewB
1594
1594
  <circle cx="6.7" cy="6.7" r="1.5" fill="#02CC59" opacity="0.3"/>
1595
1595
  </svg>
1596
1596
  `;
1597
- class ht extends b {
1597
+ class pt extends w {
1598
1598
  constructor(t = {}) {
1599
1599
  super(t), this.inputType = "button", this.previewWrapper = null, this.previewEl = null, this.emptyStateEl = null, this.errorContainer = null, this.messageListener = null, this.loadingSpinner = null, this.props.delete === void 0 && (this.props.delete = !0), this.props.maxFileSizeMB === void 0 && (this.props.maxFileSizeMB = 5), !this.value && t.defaultUrl && t.defaultUrl !== "" && (this.value = t.defaultUrl), this.setupMessageListener();
1600
1600
  }
@@ -1647,7 +1647,7 @@ class ht extends b {
1647
1647
  );
1648
1648
  if (t && t !== "") {
1649
1649
  this.showLoading(), s && s instanceof HTMLElement && (s.style.display = "none"), e && e.classList.remove("no-image"), i && (i.innerHTML = `
1650
- <span class="upload-icon">${K}</span>
1650
+ <span class="upload-icon">${Y}</span>
1651
1651
  <span class="upload-label">Replace</span>
1652
1652
  `);
1653
1653
  const n = () => {
@@ -1658,7 +1658,7 @@ class ht extends b {
1658
1658
  this.previewEl.addEventListener("load", n), this.previewEl.addEventListener("error", o), this.previewEl.src = t;
1659
1659
  } else
1660
1660
  this.hideLoading(), this.previewWrapper.classList.remove("has-image"), this.previewEl.src = "", this.previewEl.style.display = "none", this.previewWrapper.style.display = "none", s && s instanceof HTMLElement && (s.style.display = "block"), e && e.classList.add("no-image"), i && (i.innerHTML = `
1661
- <span class="upload-icon">${K}</span>
1661
+ <span class="upload-icon">${Y}</span>
1662
1662
  <span class="upload-label">Upload</span>
1663
1663
  `);
1664
1664
  }
@@ -1691,9 +1691,9 @@ class ht extends b {
1691
1691
  const s = this.value && this.value !== "";
1692
1692
  s || i.classList.add("no-image");
1693
1693
  const n = document.createElement("div");
1694
- 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 = Pt, this.loadingSpinner.style.display = "none", this.previewWrapper.appendChild(this.loadingSpinner), this.previewEl = document.createElement("img"), this.previewEl.className = "upload-preview", this.props.delete) {
1694
+ if (n.className = "preview-placeholder", n.innerHTML = Ot, 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) {
1695
1695
  const a = document.createElement("button");
1696
- a.className = "delete-button", a.type = "button", a.title = "Delete image", a.innerHTML = Ot, this.previewWrapper.appendChild(a), a.onclick = (l) => {
1696
+ a.className = "delete-button", a.type = "button", a.title = "Delete image", a.innerHTML = Pt, this.previewWrapper.appendChild(a), a.onclick = (l) => {
1697
1697
  var r;
1698
1698
  l.stopPropagation(), this.value = "", this.updatePreviewState(null), (r = this.onChange) == null || r.call(this, ""), this.hideError();
1699
1699
  };
@@ -1701,7 +1701,7 @@ class ht extends b {
1701
1701
  this.previewWrapper.appendChild(this.previewEl);
1702
1702
  const o = document.createElement("button");
1703
1703
  return o.className = "upload-button", this.getDataPropsPath() && o.setAttribute("data-test-id", this.getDataPropsPath()), o.innerHTML = `
1704
- <span class="upload-icon">${K}</span>
1704
+ <span class="upload-icon">${Y}</span>
1705
1705
  <span class="upload-label">Upload</span>
1706
1706
  `, i.appendChild(n), i.appendChild(this.previewWrapper), i.appendChild(o), t.appendChild(i), s ? this.updatePreviewState(this.value) : this.updatePreviewState(null), o.onclick = () => {
1707
1707
  window.postMessage(
@@ -1721,7 +1721,7 @@ class pe extends I {
1721
1721
  title: t.title || "Height",
1722
1722
  suffix: t.suffix || "px",
1723
1723
  minValue: t.minValue ?? 0,
1724
- icon: t.icon || Ht,
1724
+ icon: t.icon || $t,
1725
1725
  default: t.default ?? 100
1726
1726
  }), this.inputType = "number", this.mobileValue = t.mobile;
1727
1727
  }
@@ -1732,7 +1732,7 @@ class pe extends I {
1732
1732
  this.mobileValue = t, t !== void 0 && this.setValue(t);
1733
1733
  }
1734
1734
  }
1735
- const Ht = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1735
+ const $t = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1736
1736
  <path d="M9 14L9 5M9 14L6.75 12.5M9 14L11.25 12.5M9 5L6.75 6.5M9 5L11.25 6.5M15.75 2.75H2.25M15.75 16.25H2.25" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
1737
1737
  </svg>`;
1738
1738
  class de extends I {
@@ -1742,7 +1742,7 @@ class de extends I {
1742
1742
  title: t.title || "Width",
1743
1743
  suffix: t.suffix || "px",
1744
1744
  minValue: t.minValue ?? 0,
1745
- icon: t.icon || $t,
1745
+ icon: t.icon || At,
1746
1746
  default: t.default ?? 100
1747
1747
  }), this.inputType = "number", this.mobileValue = t.mobile;
1748
1748
  }
@@ -1753,14 +1753,14 @@ class de extends I {
1753
1753
  this.mobileValue = t, t !== void 0 && this.setValue(t);
1754
1754
  }
1755
1755
  }
1756
- const $t = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1756
+ const At = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1757
1757
  <path d="M4.5 9.5H13.5M4.5 9.5L6 7.25M4.5 9.5L6 11.75M13.5 9.5L12 7.25M13.5 9.5L12 11.75M15.75 16.25V2.75M2.25 16.25V2.75" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
1758
- </svg>`, At = `
1758
+ </svg>`, Bt = `
1759
1759
  <svg xmlns="http://www.w3.org/2000/svg" class="svg-select-api" 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">
1760
1760
  <polyline points="6 9 12 15 18 9"></polyline>
1761
1761
  </svg>
1762
1762
  `;
1763
- class ue extends b {
1763
+ class ue extends w {
1764
1764
  constructor(t = {}) {
1765
1765
  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.hasInitializedOptions = !1, this.selectedOptionIndex = null, t.default !== void 0 && (this.value = t.default), this.initializeOptions(t), !t.getOptionsAsync && this.value !== void 0) {
1766
1766
  const e = this._options.findIndex(
@@ -1815,7 +1815,7 @@ class ue extends b {
1815
1815
  a.onclick = (l) => this.selectApiOption(l, o, e), i.appendChild(a);
1816
1816
  }), t.appendChild(i);
1817
1817
  const s = document.createElement("div");
1818
- return s.classList.add("svg-container"), s.innerHTML = At, t.appendChild(s), s.onclick = () => {
1818
+ return s.classList.add("svg-container"), s.innerHTML = Bt, t.appendChild(s), s.onclick = () => {
1819
1819
  var n, o;
1820
1820
  this.isLoading || (this.isOpen = !this.isOpen, (n = this.optionsListEl) == null || n.classList.toggle("open", this.isOpen), (o = this.svgContainer) == null || o.classList.toggle("open", this.isOpen));
1821
1821
  }, this.optionsListEl = i, this.svgContainer = s, this.props.getOptionsAsync && !this.hasInitializedOptions ? (this.isLoading = !0, this.updateButtonText(), this.props.getOptionsAsync().then((n) => {
@@ -1907,7 +1907,7 @@ class ue extends b {
1907
1907
  ), this.updateButtonText();
1908
1908
  }
1909
1909
  }
1910
- class ge extends b {
1910
+ class ge extends w {
1911
1911
  constructor(t) {
1912
1912
  var e, i;
1913
1913
  super(t), this.inputType = "text", this.value = t.default ?? ((i = (e = t.options) == null ? void 0 : e[0]) == null ? void 0 : i.value) ?? "", this.detectChangeCallback = t.detectChange;
@@ -1957,13 +1957,13 @@ class ge extends b {
1957
1957
  this.detectChangeCallback = t;
1958
1958
  }
1959
1959
  }
1960
- const Bt = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
1960
+ const Dt = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
1961
1961
  <path d="M13.3334 5.99996H2.66675M13.3334 9.99996H2.66675M5.33341 12.6666V3.33329M10.6667 12.6666V3.33329" stroke="#667085" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
1962
1962
  </svg>`;
1963
- class me extends b {
1963
+ class me extends w {
1964
1964
  // Store mobile value
1965
1965
  constructor(t = {}) {
1966
- t.rowGap = t.rowGap ?? !0, t.columnGap = t.columnGap ?? !0, t.title = t.title ?? "Gap", t.icon = t.icon ?? Bt, t.suffix = t.suffix ?? "px", t.minValue = t.minValue ?? 0, super(t), this.inputType = "number", this.inputValues = {}, this.mobileValue = t.mobile, this.value = this.validateValue(t.default ?? 0), t.rowGap && (this.inputValues.row = this.value), t.columnGap && (this.inputValues.column = this.value);
1966
+ t.rowGap = t.rowGap ?? !0, t.columnGap = t.columnGap ?? !0, t.title = t.title ?? "Gap", t.icon = t.icon ?? Dt, t.suffix = t.suffix ?? "px", t.minValue = t.minValue ?? 0, super(t), this.inputType = "number", this.inputValues = {}, this.mobileValue = t.mobile, this.value = this.validateValue(t.default ?? 0), t.rowGap && (this.inputValues.row = this.value), t.columnGap && (this.inputValues.column = this.value);
1967
1967
  }
1968
1968
  draw() {
1969
1969
  const t = document.createElement("div");
@@ -2014,7 +2014,7 @@ class me extends b {
2014
2014
  this.mobileValue = t, t !== void 0 && this.setValue(t);
2015
2015
  }
2016
2016
  }
2017
- const Dt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
2017
+ const Rt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
2018
2018
  <path d="M2.25 11.75H15.75M5.85 2.75H12.15C13.4101 2.75 14.0402 2.75 14.5215 2.99524C14.9448 3.21095 15.289 3.55516 15.5048 3.97852C15.75 4.45982 15.75 5.08988 15.75 6.35V12.65C15.75 13.9101 15.75 14.5402 15.5048 15.0215C15.289 15.4448 14.9448 15.789 14.5215 16.0048C14.0402 16.25 13.4101 16.25 12.15 16.25H5.85C4.58988 16.25 3.95982 16.25 3.47852 16.0048C3.05516 15.789 2.71095 15.4448 2.49524 15.0215C2.25 14.5402 2.25 13.9101 2.25 12.65V6.35C2.25 5.08988 2.25 4.45982 2.49524 3.97852C2.71095 3.55516 3.05516 3.21095 3.47852 2.99524C3.95982 2.75 4.58988 2.75 5.85 2.75Z" stroke="#667085" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2019
2019
  </svg>`;
2020
2020
  class fe extends I {
@@ -2023,14 +2023,14 @@ class fe extends I {
2023
2023
  ...t,
2024
2024
  minValue: t.minValue ?? 0,
2025
2025
  maxValue: t.maxValue ?? 1e3,
2026
- icon: t.icon || Dt,
2026
+ icon: t.icon || Rt,
2027
2027
  title: t.title || "Margin Bottom",
2028
2028
  default: t.default ?? 20,
2029
2029
  wrapperClassName: "margin-bottom-wrapper " + (t.wrapperClassName || "")
2030
2030
  }), this.inputType = "number";
2031
2031
  }
2032
2032
  }
2033
- const Rt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
2033
+ const Ft = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
2034
2034
  <path d="M15.75 7.25H2.25m9.9 9h-6.3c-1.26 0-1.89 0-2.371-.245a2.25 2.25 0 0 1-.984-.983c-.245-.482-.245-1.112-.245-2.372v-6.3c0-1.26 0-1.89.245-2.371a2.25 2.25 0 0 1 .984-.984c.48-.245 1.11-.245 2.371-.245h6.3c1.26 0 1.89 0 2.371.245.424.216.768.56.984.984.245.48.245 1.11.245 2.371v6.3c0 1.26 0 1.89-.245 2.371-.216.424-.56.768-.984.984-.48.245-1.11.245-2.371.245"
2035
2035
  stroke="#667085" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2036
2036
  </svg>`;
@@ -2040,16 +2040,16 @@ class ve extends I {
2040
2040
  ...t,
2041
2041
  minValue: t.minValue ?? 0,
2042
2042
  maxValue: t.maxValue ?? 1e3,
2043
- icon: t.icon || Rt,
2043
+ icon: t.icon || Ft,
2044
2044
  title: t.title || "Margin Top",
2045
2045
  default: t.default ?? 20,
2046
2046
  wrapperClassName: "margin-top-wrapper " + (t.wrapperClassName || "")
2047
2047
  }), this.inputType = "number";
2048
2048
  }
2049
2049
  }
2050
- class Ce extends b {
2050
+ class Ce extends w {
2051
2051
  constructor(t) {
2052
- super(t), this.inputType = {}, this.container = null, this.defaultLanguage = "", this.uploadSettings = /* @__PURE__ */ new Map(), t.default ? this.value = { ...t.default } : this.value || (this.value = {}), this.defaultLanguage = t.languages.includes(b.DefaultLanguage) ? b.DefaultLanguage : t.languages[0];
2052
+ super(t), this.inputType = {}, this.container = null, this.defaultLanguage = "", this.uploadSettings = /* @__PURE__ */ new Map(), t.default ? this.value = { ...t.default } : this.value || (this.value = {}), this.defaultLanguage = t.languages.includes(w.DefaultLanguage) ? w.DefaultLanguage : t.languages[0];
2053
2053
  const e = t.defaultValue || `Enter text in ${this.capitalizeFirstLetter(this.defaultLanguage)}`;
2054
2054
  t.languages.forEach((i) => {
2055
2055
  var s, n;
@@ -2080,13 +2080,13 @@ class Ce extends b {
2080
2080
  return;
2081
2081
  }
2082
2082
  const h = "...";
2083
- let p = 0, d = e.length, g = 0;
2083
+ let p = 0, d = e.length, u = 0;
2084
2084
  for (; p <= d; ) {
2085
2085
  const m = Math.floor((p + d) / 2), f = e.slice(0, m).trimEnd() + h;
2086
- this.measureTextWidth(f, i) <= l ? (g = m, p = m + 1) : d = m - 1;
2086
+ this.measureTextWidth(f, i) <= l ? (u = m, p = m + 1) : d = m - 1;
2087
2087
  }
2088
- const u = e.slice(0, g).trimEnd() + h;
2089
- t.placeholder = u;
2088
+ const g = e.slice(0, u).trimEnd() + h;
2089
+ t.placeholder = g;
2090
2090
  }
2091
2091
  autosizeTextarea(t, e = 3) {
2092
2092
  t.style.height = "auto";
@@ -2098,7 +2098,7 @@ class Ce extends b {
2098
2098
  i.classList.add("simple-multi-language-row");
2099
2099
  const s = document.createElement("label");
2100
2100
  if (s.classList.add("simple-language-label"), s.textContent = t.toUpperCase(), s.setAttribute("for", `textarea-${t}`), i.appendChild(s), this.props.multiImg) {
2101
- const n = new ht({
2101
+ const n = new pt({
2102
2102
  defaultUrl: e || "",
2103
2103
  title: "",
2104
2104
  id: `${this.id}_upload_${t}`
@@ -2194,7 +2194,7 @@ class Ce extends b {
2194
2194
  });
2195
2195
  }
2196
2196
  }
2197
- class ye extends b {
2197
+ class ye extends w {
2198
2198
  constructor(t = {}) {
2199
2199
  super(t), this.inputType = "select";
2200
2200
  const e = [
@@ -2205,7 +2205,7 @@ class ye extends b {
2205
2205
  { name: "Bounce", value: "bounce 1.5s ease-in-out infinite" },
2206
2206
  { name: "Pulse", value: "pulse 1.5s ease-in-out infinite" }
2207
2207
  ];
2208
- this.selectSetting = new it({
2208
+ this.selectSetting = new et({
2209
2209
  title: this.title || "Animation",
2210
2210
  options: e,
2211
2211
  default: this.props.default || "none"
@@ -2221,7 +2221,7 @@ class ye extends b {
2221
2221
  this.selectSetting.destroy(), super.destroy();
2222
2222
  }
2223
2223
  }
2224
- const Ft = (c, t) => {
2224
+ const Ut = (c, t) => {
2225
2225
  let e = !1, i = 0, s = 0, n = 0, o = 0;
2226
2226
  const a = (h) => {
2227
2227
  if (h.target.closest("button")) return;
@@ -2230,42 +2230,42 @@ const Ft = (c, t) => {
2230
2230
  n = p.left, o = p.top, document.addEventListener("mousemove", l), document.addEventListener("mouseup", r), document.body.style.userSelect = "none";
2231
2231
  }, l = (h) => {
2232
2232
  if (!e) return;
2233
- const p = h.clientX - i, d = h.clientY - s, g = window.innerWidth, u = window.innerHeight, m = t.offsetWidth, f = t.offsetHeight;
2234
- let C = n + p, x = o + d;
2235
- C = Math.max(8, Math.min(g - m - 8, C)), x = Math.max(8, Math.min(u - f - 8, x)), t.style.left = `${C}px`, t.style.top = `${x}px`;
2233
+ const p = h.clientX - i, d = h.clientY - s, u = window.innerWidth, g = window.innerHeight, m = t.offsetWidth, f = t.offsetHeight;
2234
+ let C = n + p, y = o + d;
2235
+ C = Math.max(8, Math.min(u - m - 8, C)), y = Math.max(8, Math.min(g - f - 8, y)), t.style.left = `${C}px`, t.style.top = `${y}px`;
2236
2236
  }, r = () => {
2237
2237
  e = !1, document.removeEventListener("mousemove", l), document.removeEventListener("mouseup", r), document.body.style.userSelect = "";
2238
2238
  };
2239
2239
  c.addEventListener("mousedown", a);
2240
- }, F = (c) => {
2240
+ }, U = (c) => {
2241
2241
  if (!c) return null;
2242
2242
  let t = c.trim();
2243
2243
  return !t.startsWith("#") || (t = t.slice(1), t.length === 3 && (t = t.split("").map((e) => e + e).join("")), !/^[0-9a-fA-F]{6}$/.test(t)) ? null : `#${t.toUpperCase()}`;
2244
- }, R = (c, t, e) => `#${[c, t, e].map((i) => Math.max(0, Math.min(255, i)).toString(16).padStart(2, "0")).join("")}`, S = (c) => {
2244
+ }, F = (c, t, e) => `#${[c, t, e].map((i) => Math.max(0, Math.min(255, i)).toString(16).padStart(2, "0")).join("")}`, S = (c) => {
2245
2245
  const t = c.replace("#", ""), e = t.length === 3 ? t.split("").map((i) => i + i).join("") : t;
2246
2246
  return {
2247
2247
  r: parseInt(e.slice(0, 2), 16),
2248
2248
  g: parseInt(e.slice(2, 4), 16),
2249
2249
  b: parseInt(e.slice(4, 6), 16)
2250
2250
  };
2251
- }, A = (c) => {
2251
+ }, $ = (c) => {
2252
2252
  const { r: t, g: e, b: i } = S(c), s = t / 255, n = e / 255, o = i / 255, a = Math.max(s, n, o), l = Math.min(s, n, o), r = a - l;
2253
2253
  let h = 0;
2254
2254
  r !== 0 && (a === s ? h = (n - o) / r % 6 : a === n ? h = (o - s) / r + 2 : h = (s - n) / r + 4), h < 0 && (h += 6);
2255
2255
  const p = a === 0 ? 0 : r / a, d = a;
2256
2256
  return { h: h * 60, s: p, v: d };
2257
- }, z = (c, t, e) => {
2257
+ }, W = (c, t, e) => {
2258
2258
  const i = (c % 360 + 360) % 360, s = e * t, n = s * (1 - Math.abs(i / 60 % 2 - 1)), o = e - s;
2259
2259
  let a = 0, l = 0, r = 0;
2260
- return i < 60 ? (a = s, l = n, r = 0) : i < 120 ? (a = n, l = s, r = 0) : i < 180 ? (a = 0, l = s, r = n) : i < 240 ? (a = 0, l = n, r = s) : i < 300 ? (a = n, l = 0, r = s) : (a = s, l = 0, r = n), R(
2260
+ return i < 60 ? (a = s, l = n, r = 0) : i < 120 ? (a = n, l = s, r = 0) : i < 180 ? (a = 0, l = s, r = n) : i < 240 ? (a = 0, l = n, r = s) : i < 300 ? (a = n, l = 0, r = s) : (a = s, l = 0, r = n), F(
2261
2261
  Math.round((a + o) * 255),
2262
2262
  Math.round((l + o) * 255),
2263
2263
  Math.round((r + o) * 255)
2264
2264
  );
2265
- }, Ut = (c, t, e) => {
2265
+ }, Gt = (c, t, e) => {
2266
2266
  const i = e * (1 - t / 2), s = i === 0 || i === 1 ? 0 : (e - i) / Math.min(i, 1 - i);
2267
2267
  return { hue: c, sat: s, lightness: i };
2268
- }, X = (c, t, e) => {
2268
+ }, Z = (c, t, e) => {
2269
2269
  const i = (1 - Math.abs(2 * e - 1)) * t, s = i * (1 - Math.abs(c / 60 % 2 - 1)), n = e - i / 2;
2270
2270
  let o = 0, a = 0, l = 0;
2271
2271
  return c < 60 ? (o = i, a = s, l = 0) : c < 120 ? (o = s, a = i, l = 0) : c < 180 ? (o = 0, a = i, l = s) : c < 240 ? (o = 0, a = s, l = i) : c < 300 ? (o = s, a = 0, l = i) : (o = i, a = 0, l = s), {
@@ -2273,7 +2273,7 @@ const Ft = (c, t) => {
2273
2273
  g: Math.round((a + n) * 255),
2274
2274
  b: Math.round((l + n) * 255)
2275
2275
  };
2276
- }, pt = (c, t) => {
2276
+ }, dt = (c, t) => {
2277
2277
  const e = Math.max(0, Math.min(100, t)) / 100;
2278
2278
  if (c.startsWith("#")) {
2279
2279
  const { r: s, g: n, b: o } = S(c);
@@ -2286,7 +2286,7 @@ const Ft = (c, t) => {
2286
2286
  if (c.startsWith("hsl(")) {
2287
2287
  const s = c.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);
2288
2288
  if (s) {
2289
- const { r: n, g: o, b: a } = X(
2289
+ const { r: n, g: o, b: a } = Z(
2290
2290
  parseInt(s[1]),
2291
2291
  parseInt(s[2]) / 100,
2292
2292
  parseInt(s[3]) / 100
@@ -2297,7 +2297,7 @@ const Ft = (c, t) => {
2297
2297
  if (c.startsWith("hsla(")) {
2298
2298
  const s = c.match(/hsla\((\d+),\s*(\d+)%,\s*(\d+)%,\s*[\d.]+\)/);
2299
2299
  if (s) {
2300
- const { r: n, g: o, b: a } = X(
2300
+ const { r: n, g: o, b: a } = Z(
2301
2301
  parseInt(s[1]),
2302
2302
  parseInt(s[2]) / 100,
2303
2303
  parseInt(s[3]) / 100
@@ -2305,13 +2305,13 @@ const Ft = (c, t) => {
2305
2305
  return `rgba(${n}, ${o}, ${a}, ${e})`;
2306
2306
  }
2307
2307
  }
2308
- const i = F(c);
2308
+ const i = U(c);
2309
2309
  if (i) {
2310
2310
  const { r: s, g: n, b: o } = S(i);
2311
2311
  return `rgba(${s}, ${n}, ${o}, ${e})`;
2312
2312
  }
2313
2313
  return c;
2314
- }, Gt = (c) => [
2314
+ }, zt = (c) => [
2315
2315
  "red",
2316
2316
  "green",
2317
2317
  "blue",
@@ -2335,22 +2335,22 @@ const Ft = (c, t) => {
2335
2335
  "teal",
2336
2336
  "fuchsia",
2337
2337
  "transparent"
2338
- ].includes(c.toLowerCase()), dt = (c) => [
2338
+ ].includes(c.toLowerCase()), ut = (c) => [
2339
2339
  /^#[0-9a-fA-F]{3,8}$/,
2340
2340
  /^rgba?\s*\([^)]+\)$/,
2341
2341
  /^hsla?\s*\([^)]+\)$/,
2342
2342
  /^[a-zA-Z]+$/
2343
2343
  ].some((e) => e.test(c.trim())), Wt = (c) => {
2344
2344
  if (typeof document > "u")
2345
- return dt(c) || !!F(c);
2345
+ return ut(c) || !!U(c);
2346
2346
  const t = document.createElement("div");
2347
2347
  return t.style.color = c, t.style.color !== "";
2348
- }, ut = (c) => {
2348
+ }, gt = (c) => {
2349
2349
  const t = c.trim();
2350
2350
  if (/^#[0-9A-Fa-f]{8}$/.test(t)) {
2351
2351
  const n = t.slice(1), o = parseInt(n.slice(0, 2), 16), a = parseInt(n.slice(2, 4), 16), l = parseInt(n.slice(4, 6), 16), r = parseInt(n.slice(6, 8), 16);
2352
2352
  return {
2353
- color: R(o, a, l),
2353
+ color: F(o, a, l),
2354
2354
  position: 0,
2355
2355
  opacity: Math.round(r / 255 * 100)
2356
2356
  };
@@ -2361,7 +2361,7 @@ const Ft = (c, t) => {
2361
2361
  if (e) {
2362
2362
  const n = parseInt(e[1]), o = parseInt(e[2]), a = parseInt(e[3]), l = e[4] ? parseFloat(e[4]) : 1;
2363
2363
  return {
2364
- color: R(n, o, a),
2364
+ color: F(n, o, a),
2365
2365
  position: 0,
2366
2366
  opacity: Math.round(l * 100)
2367
2367
  };
@@ -2370,21 +2370,136 @@ const Ft = (c, t) => {
2370
2370
  /hsla?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)/
2371
2371
  );
2372
2372
  if (i) {
2373
- const { r: n, g: o, b: a } = X(
2373
+ const { r: n, g: o, b: a } = Z(
2374
2374
  parseFloat(i[1]),
2375
2375
  parseFloat(i[2]) / 100,
2376
2376
  parseFloat(i[3]) / 100
2377
2377
  ), l = i[4] ? parseFloat(i[4]) : 1;
2378
2378
  return {
2379
- color: R(n, o, a),
2379
+ color: F(n, o, a),
2380
2380
  position: 0,
2381
2381
  opacity: Math.round(l * 100)
2382
2382
  };
2383
2383
  }
2384
- return { color: F(t) || t, position: 0, opacity: 100 };
2384
+ return { color: U(t) || t, position: 0, opacity: 100 };
2385
+ }, at = (c) => {
2386
+ const t = [];
2387
+ let e = "", i = 0;
2388
+ for (let s = 0; s < c.length; s++) {
2389
+ const n = c[s];
2390
+ if (n === "(") i++;
2391
+ else if (n === ")") i--;
2392
+ else if (n === "," && i === 0) {
2393
+ t.push(e.trim()), e = "";
2394
+ continue;
2395
+ }
2396
+ e += n;
2397
+ }
2398
+ return e.trim() && t.push(e.trim()), t;
2399
+ }, lt = (c, t) => {
2400
+ const e = new RegExp(`${t}\\s*\\(`, "i"), i = c.match(e);
2401
+ if (!i) return null;
2402
+ const s = i.index + i[0].length;
2403
+ let n = 1, o = s;
2404
+ for (let a = s; a < c.length && n > 0; a++)
2405
+ c[a] === "(" ? n++ : c[a] === ")" && n--, o = a;
2406
+ return n === 0 ? c.substring(s, o) : null;
2407
+ }, qt = (c) => {
2408
+ const t = c.split(" ")[0].toLowerCase();
2409
+ return [
2410
+ "circle",
2411
+ "ellipse",
2412
+ "closest-side",
2413
+ "closest-corner",
2414
+ "farthest-side",
2415
+ "farthest-corner",
2416
+ "at",
2417
+ "contain",
2418
+ "cover"
2419
+ ].includes(t) ? !1 : /^#[0-9a-f]{3,8}$/i.test(t) || /^rgb/i.test(c) || /^hsl/i.test(c) || zt(t);
2420
+ }, rt = (c) => {
2421
+ const t = [];
2422
+ return c.forEach((e, i) => {
2423
+ const s = e.trim();
2424
+ if (!s) return;
2425
+ let n = "", o = 0;
2426
+ const a = s.match(/^(.+?)\s+(\d+(?:\.\d+)?)%?\s*$/);
2427
+ a && ut(a[1].trim()) ? (n = a[1].trim(), o = parseFloat(a[2])) : (n = s, o = c.length === 1 ? 0 : i / (c.length - 1) * 100);
2428
+ const l = gt(n);
2429
+ l.position = Math.max(0, Math.min(100, Math.round(o))), t.push(l);
2430
+ }), t;
2431
+ }, A = (c) => {
2432
+ const t = c.stops && c.stops.length ? c.stops : [{ color: "#000000", position: 0, opacity: 100 }];
2433
+ return {
2434
+ type: c.type && ["linear", "radial", "solid"].includes(c.type) ? c.type : "linear",
2435
+ angle: typeof c.angle == "number" ? c.angle : 90,
2436
+ stops: t.map((e, i) => ({
2437
+ color: e.color || "#000000",
2438
+ position: typeof e.position == "number" ? e.position : t.length === 1 ? 0 : Math.round(i / (t.length - 1) * 100),
2439
+ opacity: e.opacity === void 0 || Number.isNaN(e.opacity) ? 100 : e.opacity
2440
+ }))
2441
+ };
2442
+ }, H = (c) => {
2443
+ const t = c.replace(/;$/, "").trim();
2444
+ if (Wt(t)) {
2445
+ const s = gt(t);
2446
+ return A({ type: "solid", angle: 0, stops: [s] });
2447
+ }
2448
+ const e = lt(t, "linear-gradient");
2449
+ if (e) {
2450
+ const s = at(e);
2451
+ let n = 90, o = s;
2452
+ const a = s[0];
2453
+ if (a.includes("deg")) {
2454
+ const r = a.match(/(-?\d+(?:\.\d+)?)deg/);
2455
+ r && (n = parseFloat(r[1]), o = s.slice(1));
2456
+ } else a.includes("to ") && (n = {
2457
+ "to right": 90,
2458
+ "to left": 270,
2459
+ "to bottom": 180,
2460
+ "to top": 0,
2461
+ "to bottom right": 135,
2462
+ "to bottom left": 225,
2463
+ "to top right": 45,
2464
+ "to top left": 315
2465
+ }[a] ?? 90, o = s.slice(1));
2466
+ const l = rt(o);
2467
+ return l.length ? A({ type: "linear", angle: n, stops: l }) : null;
2468
+ }
2469
+ const i = lt(t, "radial-gradient");
2470
+ if (i) {
2471
+ const s = at(i), n = s[0] && !qt(s[0]) ? s.slice(1) : s, o = rt(n);
2472
+ return o.length ? A({ type: "radial", angle: 0, stops: o }) : null;
2473
+ }
2474
+ return null;
2475
+ }, N = (c) => {
2476
+ if (c.type === "solid") {
2477
+ const e = c.stops[0], i = e.opacity ?? 100, s = e.color.replace("#", ""), n = Math.round(i / 100 * 255).toString(16).toUpperCase().padStart(2, "0");
2478
+ return `#${s}${n}`;
2479
+ }
2480
+ const t = c.stops.map(
2481
+ (e) => `${dt(e.color, e.opacity ?? 100)} ${e.position}%`
2482
+ ).join(", ");
2483
+ return c.type === "radial" ? `radial-gradient(circle, ${t})` : `linear-gradient(${c.angle}deg, ${t})`;
2484
+ }, Q = (c) => {
2485
+ if (c.type === "solid") {
2486
+ const t = c.stops[0];
2487
+ return t ? t.color.replace("#", "").toUpperCase() : "Color";
2488
+ }
2489
+ return c.type === "linear" ? `Linear ${c.angle}°` : "Radial Gradient";
2385
2490
  }, q = class q {
2386
2491
  static defaults() {
2387
- return { solid: [], gradient: [] };
2492
+ return {
2493
+ solid: [],
2494
+ gradient: []
2495
+ };
2496
+ }
2497
+ static normalizeList(t) {
2498
+ const e = /* @__PURE__ */ new Set(), i = [];
2499
+ return t.forEach((s) => {
2500
+ let n = U(s);
2501
+ n || H(s) && (n = s), n && (e.has(n) || (e.add(n), i.push(n)));
2502
+ }), i.slice(0, this.MAX_COLORS);
2388
2503
  }
2389
2504
  static ensureLoaded() {
2390
2505
  var t;
@@ -2393,10 +2508,12 @@ const Ft = (c, t) => {
2393
2508
  const e = (t = window.sessionStorage) == null ? void 0 : t.getItem(this.STORAGE_KEY);
2394
2509
  if (!e) return;
2395
2510
  const i = JSON.parse(e);
2396
- ["solid", "gradient"].forEach((s) => {
2397
- const n = Array.isArray(i == null ? void 0 : i[s]) ? i[s] : [];
2398
- this.colors[s] = n.map((o) => F(o)).filter((o) => !!o);
2399
- });
2511
+ if (Array.isArray(i))
2512
+ this.colors.solid = this.normalizeList(i);
2513
+ else if (i && typeof i == "object") {
2514
+ const s = i;
2515
+ s.solid && (this.colors.solid = this.normalizeList(s.solid)), s.gradient && (this.colors.gradient = this.normalizeList(s.gradient));
2516
+ }
2400
2517
  } catch {
2401
2518
  this.colors = this.defaults();
2402
2519
  }
@@ -2416,18 +2533,29 @@ const Ft = (c, t) => {
2416
2533
  return this.ensureLoaded(), this.colors || (this.colors = this.defaults()), this.colors[t];
2417
2534
  }
2418
2535
  static getColors(t) {
2536
+ if (t === "all") {
2537
+ const e = this.list("solid"), i = this.list("gradient"), s = [...e, ...i];
2538
+ return this.normalizeList(s);
2539
+ }
2419
2540
  return [...this.list(t)];
2420
2541
  }
2421
2542
  static addColor(t, e) {
2422
- const i = F(t);
2543
+ if (!t) return;
2544
+ let i = U(t), s = "solid";
2545
+ if (i)
2546
+ s = "solid";
2547
+ else {
2548
+ const l = H(t);
2549
+ l && (i = t, s = l.type === "solid" ? "solid" : "gradient");
2550
+ }
2423
2551
  if (!i) return;
2424
- const s = this.list(e), n = s.indexOf(i);
2425
- n !== -1 && s.splice(n, 1), s.unshift(i), s.length > this.MAX_COLORS && (s.length = this.MAX_COLORS), this.persist();
2552
+ const n = e === "all" ? s : e, o = this.list(n), a = o.indexOf(i);
2553
+ a !== -1 && o.splice(a, 1), o.unshift(i), o.length > this.MAX_COLORS && (o.length = this.MAX_COLORS), this.persist();
2426
2554
  }
2427
2555
  };
2428
2556
  q.STORAGE_KEY = "settingsLib_recentColors", q.MAX_COLORS = 12, q.colors = null;
2429
- let V = q;
2430
- const zt = (c, t) => {
2557
+ let B = q;
2558
+ const it = (c, t) => {
2431
2559
  const e = document.createElement("div");
2432
2560
  e.className = "color-picker-recent-section";
2433
2561
  const i = document.createElement("div");
@@ -2438,7 +2566,7 @@ const zt = (c, t) => {
2438
2566
  n.className = "color-picker-recent-placeholder", n.textContent = "No recent colors yet", e.appendChild(i), e.appendChild(s), e.appendChild(n);
2439
2567
  const o = () => {
2440
2568
  s.innerHTML = "";
2441
- const a = V.getColors(t);
2569
+ const a = B.getColors(t);
2442
2570
  if (a.length === 0) {
2443
2571
  s.style.display = "none", n.style.display = "block";
2444
2572
  return;
@@ -2449,20 +2577,20 @@ const zt = (c, t) => {
2449
2577
  });
2450
2578
  };
2451
2579
  return o(), { container: e, refresh: o };
2452
- }, gt = `<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
2580
+ }, mt = `<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
2453
2581
  <path fill-rule="evenodd" clip-rule="evenodd"
2454
2582
  d="M6.12347 4.96653L1.41158 0.254304C1.25449 0.102568 1.04409 0.0186071 0.825694 0.0205049C0.607302 0.0224037 0.398393 0.110007 0.24396 0.26445C0.0895282 0.418893 0.0019303 0.627818 3.24698e-05 0.846225C-0.00186536 1.06463 0.0820894 1.27505 0.233815 1.43215L4.9457 6.14438L0.233814 10.8566C0.0820886 11.0137 -0.00186625 11.2241 3.15434e-05 11.4425C0.00192934 11.6609 0.0895272 11.8699 0.243959 12.0243C0.398392 12.1787 0.607301 12.2663 0.825693 12.2682C1.04408 12.2701 1.25449 12.1862 1.41158 12.0344L6.12347 7.32222L10.8354 12.0344C10.9932 12.1824 11.2023 12.2632 11.4186 12.2597C11.6349 12.2562 11.8414 12.1687 11.9943 12.0156C12.1472 11.8626 12.2346 11.6561 12.2379 11.4398C12.2413 11.2234 12.1604 11.0143 12.0123 10.8566L7.30123 6.14438L12.0131 1.43215C12.0927 1.35531 12.1561 1.2634 12.1998 1.16177C12.2434 1.06014 12.2664 0.950833 12.2674 0.84023C12.2683 0.729626 12.2473 0.61994 12.2054 0.517568C12.1635 0.415196 12.1017 0.322191 12.0234 0.243979C11.9452 0.165768 11.8522 0.103916 11.7499 0.0620327C11.6475 0.0201492 11.5378 -0.000927989 11.4272 3.33052e-05C11.3166 0.000993646 11.2073 0.0239743 11.1057 0.0676297C11.0041 0.111286 10.9122 0.174745 10.8354 0.254305L6.12347 4.96653Z"
2455
2583
  fill="#919EAB"/>
2456
- </svg>`, qt = `<svg width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
2584
+ </svg>`, jt = `<svg width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
2457
2585
  <path fill-rule="evenodd" clip-rule="evenodd"
2458
2586
  d="M19.1972 3.29156C18.936 3.03034 18.6259 2.82313 18.2847 2.68176C17.9434 2.54039 17.5777 2.46763 17.2083 2.46763C16.8389 2.46763 16.4731 2.54039 16.1319 2.68176C15.7906 2.82313 15.4805 3.03034 15.2194 3.29156L13.7822 4.72875C13.2585 4.4772 12.6697 4.39449 12.097 4.49207C11.5243 4.58964 10.9961 4.86267 10.5853 5.27343L9.91687 5.94281C9.74268 6.11693 9.6045 6.32366 9.51023 6.5512C9.41595 6.77873 9.36743 7.02261 9.36743 7.2689C9.36743 7.5152 9.41595 7.75907 9.51023 7.98661C9.6045 8.21414 9.74268 8.42088 9.91687 8.595L3.83625 14.6747C3.57512 14.936 3.36803 15.2462 3.2268 15.5875C3.08556 15.9288 3.01296 16.2947 3.01312 16.6641V18.3516C3.01312 18.6499 3.13165 18.9361 3.34263 19.1471C3.55361 19.358 3.83975 19.4766 4.13812 19.4766H5.82562C6.57129 19.4759 7.28618 19.1792 7.81312 18.6516L13.8937 12.5728C14.0679 12.747 14.2746 12.8852 14.5021 12.9795C14.7297 13.0737 14.9735 13.1223 15.2198 13.1223C15.4661 13.1223 15.71 13.0737 15.9375 12.9795C16.1651 12.8852 16.3718 12.747 16.5459 12.5728L17.2153 11.9025C17.6261 11.4917 17.8991 10.9635 17.9967 10.3908C18.0942 9.81811 18.0115 9.22926 17.76 8.70562L19.1972 7.26937C19.4584 7.0082 19.6656 6.69813 19.807 6.35687C19.9484 6.01561 20.0211 5.64985 20.0211 5.28047C20.0211 4.91108 19.9484 4.54532 19.807 4.20406C19.6656 3.8628 19.4584 3.55273 19.1972 3.29156Z"
2459
2587
  fill="#353C47"/>
2460
- </svg>`, jt = `<svg width="15" height="17" viewBox="0 0 15 17" fill="none" xmlns="http://www.w3.org/2000/svg">
2588
+ </svg>`, _t = `<svg width="15" height="17" viewBox="0 0 15 17" fill="none" xmlns="http://www.w3.org/2000/svg">
2461
2589
  <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"/>
2462
- </svg>`, _t = `<svg width="14" height="2" viewBox="0 0 14 2" fill="none" xmlns="http://www.w3.org/2000/svg">
2590
+ </svg>`, Jt = `<svg width="14" height="2" viewBox="0 0 14 2" fill="none" xmlns="http://www.w3.org/2000/svg">
2463
2591
  <path d="M0.8 0.800003H12.4667" stroke="#919EAB" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
2464
2592
  </svg>`;
2465
- class Jt {
2593
+ class Xt {
2466
2594
  constructor(t, e = "gradient") {
2467
2595
  this.isOpen = !1, this.currentColor = "#FF0000", this.currentOpacity = 100, this.outsideClick = (i) => {
2468
2596
  if (!this.isOpen) return;
@@ -2471,7 +2599,7 @@ class Jt {
2471
2599
  const n = document.querySelectorAll(".gstop-color-input");
2472
2600
  Array.from(n).some(
2473
2601
  (a) => a.contains(s)
2474
- ) || (i.preventDefault(), i.stopPropagation(), this.close(!1));
2602
+ ) || (i.preventDefault(), i.stopPropagation(), this.close(!0));
2475
2603
  }, this.keyDown = (i) => {
2476
2604
  if (this.isOpen) {
2477
2605
  if (i.key === "Escape")
@@ -2496,7 +2624,7 @@ class Jt {
2496
2624
  const i = document.createElement("span");
2497
2625
  i.textContent = "Color";
2498
2626
  const s = document.createElement("button");
2499
- s.className = "color-picker-close", s.innerHTML = gt, s.addEventListener("click", () => this.close(!0)), e.appendChild(i), e.appendChild(s), Ft(e, t);
2627
+ s.className = "color-picker-close", s.innerHTML = mt, s.addEventListener("click", () => this.close(!0)), e.appendChild(i), e.appendChild(s), Ut(e, t);
2500
2628
  const n = document.createElement("div");
2501
2629
  n.className = "color-picker-area", this.colorArea = n;
2502
2630
  const o = document.createElement("div");
@@ -2504,7 +2632,7 @@ class Jt {
2504
2632
  const a = document.createElement("div");
2505
2633
  a.className = "color-picker-hue-container";
2506
2634
  const l = document.createElement("button");
2507
- l.className = "color-picker-eyedropper", l.type = "button", l.innerHTML = qt;
2635
+ l.className = "color-picker-eyedropper", l.type = "button", l.innerHTML = jt;
2508
2636
  const r = document.createElement("div");
2509
2637
  r.className = "color-picker-hue", this.hueSlider = r;
2510
2638
  const h = document.createElement("div");
@@ -2513,74 +2641,71 @@ class Jt {
2513
2641
  p.className = "color-picker-opacity", this.opacitySlider = p;
2514
2642
  const d = document.createElement("div");
2515
2643
  d.className = "color-picker-opacity-marker", this.opacityMarker = d, p.appendChild(d);
2516
- const g = zt(($) => {
2517
- var U, G;
2518
- this.setColor($), (U = this.onChange) == null || U.call(this, $, this.currentOpacity), V.addColor($, this.recentScope), (G = this.recentSectionRefresh) == null || G.call(this);
2644
+ const u = it((D) => {
2645
+ var G;
2646
+ this.setColor(D), (G = this.onChange) == null || G.call(this, D, this.currentOpacity);
2519
2647
  }, this.recentScope);
2520
- this.recentSectionRefresh = g.refresh;
2521
- const u = document.createElement("div");
2522
- u.className = "color-picker-format-section";
2648
+ this.recentSectionRefresh = u.refresh;
2649
+ const g = document.createElement("div");
2650
+ g.className = "color-picker-format-section";
2523
2651
  const m = document.createElement("select");
2524
2652
  m.className = "color-picker-format-select", this.select = m;
2525
2653
  const f = document.createElement("option");
2526
2654
  f.value = "hex", f.textContent = "HEX";
2527
2655
  const C = document.createElement("option");
2528
2656
  C.value = "rgb", C.textContent = "RGB";
2529
- const x = document.createElement("option");
2530
- x.value = "hsl", x.textContent = "HSL", m.appendChild(f), m.appendChild(C), m.appendChild(x);
2531
- const y = document.createElement("input");
2532
- y.type = "text", y.className = "color-picker-color-input", y.value = this.currentColor, this.input = y;
2657
+ const y = document.createElement("option");
2658
+ y.value = "hsl", y.textContent = "HSL", m.appendChild(f), m.appendChild(C), m.appendChild(y);
2659
+ const E = document.createElement("input");
2660
+ E.type = "text", E.className = "color-picker-color-input", E.value = this.currentColor, this.input = E;
2533
2661
  const O = document.createElement("div");
2534
2662
  O.className = "color-picker-input-container";
2535
2663
  const k = document.createElement("button");
2536
- return k.className = "color-picker-copy-inside", k.textContent = "Copy", O.appendChild(y), O.appendChild(k), u.appendChild(m), u.appendChild(O), t.appendChild(e), t.appendChild(n), t.appendChild(a), t.appendChild(p), t.appendChild(g.container), t.appendChild(u), t.addEventListener("click", ($) => $.stopPropagation()), this.bind(n, r, p, y, m, k, l), t;
2664
+ return k.className = "color-picker-copy-inside", k.textContent = "Copy", O.appendChild(E), O.appendChild(k), g.appendChild(m), g.appendChild(O), t.appendChild(e), t.appendChild(n), t.appendChild(a), t.appendChild(p), t.appendChild(u.container), t.appendChild(g), t.addEventListener("click", (D) => D.stopPropagation()), this.bind(n, r, p, E, m, k, l), t;
2537
2665
  }
2538
2666
  createBackdrop() {
2539
2667
  const t = document.createElement("div");
2540
2668
  return t.className = "color-picker-backdrop", t.style.display = "none", t.addEventListener("click", (e) => {
2541
- e.preventDefault(), e.stopPropagation(), this.close(!1);
2669
+ e.preventDefault(), e.stopPropagation(), this.close(!0);
2542
2670
  }), t;
2543
2671
  }
2544
2672
  bind(t, e, i, s, n, o, a) {
2545
2673
  const l = (p) => {
2546
- var x;
2547
- const d = t.getBoundingClientRect(), g = Math.max(0, Math.min(1, (p.clientX - d.left) / d.width)), u = Math.max(0, Math.min(1, (p.clientY - d.top) / d.height));
2548
- this.colorMarker.style.left = `${g * 100}%`, this.colorMarker.style.top = `${u * 100}%`;
2549
- const f = this.parsePercentage(this.hueMarker.style.left || "0%") * 360, C = z(f, g, 1 - u);
2550
- this.currentColor = C, this.syncInput(), this.updateOpacityBg(), (x = this.onChange) == null || x.call(this, C, this.currentOpacity);
2674
+ var y;
2675
+ 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));
2676
+ this.colorMarker.style.left = `${u * 100}%`, this.colorMarker.style.top = `${g * 100}%`;
2677
+ const f = this.parsePercentage(this.hueMarker.style.left || "0%") * 360, C = W(f, u, 1 - g);
2678
+ this.currentColor = C, this.syncInput(), this.updateOpacityBg(), (y = this.onChange) == null || y.call(this, C, this.currentOpacity);
2551
2679
  }, r = (p) => {
2552
- var x;
2680
+ var y;
2553
2681
  const d = e.getBoundingClientRect();
2554
- let g = Math.max(0, Math.min(1, (p.clientX - d.left) / d.width));
2555
- this.hueMarker.style.left = `${g * 100}%`;
2556
- const u = g * 360, m = this.parsePercentage(this.colorMarker.style.left || "0%"), f = this.parsePercentage(this.colorMarker.style.top || "0%"), C = z(u, m, 1 - f);
2557
- this.currentColor = C, this.colorArea.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${u}, 100%, 50%))`, this.syncInput(), this.updateOpacityBg(), (x = this.onChange) == null || x.call(this, C, this.currentOpacity);
2682
+ let u = Math.max(0, Math.min(1, (p.clientX - d.left) / d.width));
2683
+ this.hueMarker.style.left = `${u * 100}%`;
2684
+ const g = u * 360, m = this.parsePercentage(this.colorMarker.style.left || "0%"), f = this.parsePercentage(this.colorMarker.style.top || "0%"), C = W(g, m, 1 - f);
2685
+ 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);
2558
2686
  }, h = (p) => {
2559
- var u;
2560
- const d = i.getBoundingClientRect(), g = Math.max(0, Math.min(1, (p.clientX - d.left) / d.width));
2561
- this.opacityMarker.style.left = `${g * 100}%`, this.currentOpacity = Math.round(g * 100), (u = this.onChange) == null || u.call(this, this.currentColor, this.currentOpacity);
2687
+ var g;
2688
+ const d = i.getBoundingClientRect(), u = Math.max(0, Math.min(1, (p.clientX - d.left) / d.width));
2689
+ this.opacityMarker.style.left = `${u * 100}%`, this.currentOpacity = Math.round(u * 100), (g = this.onChange) == null || g.call(this, this.currentColor, this.currentOpacity);
2562
2690
  };
2563
2691
  t.addEventListener("mousedown", (p) => {
2564
2692
  p.preventDefault(), l(p);
2565
- const d = (u) => l(u), g = () => {
2566
- var u;
2567
- document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", g), V.addColor(this.currentColor, this.recentScope), (u = this.recentSectionRefresh) == null || u.call(this);
2693
+ const d = (g) => l(g), u = () => {
2694
+ document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", u);
2568
2695
  };
2569
- document.addEventListener("mousemove", d), document.addEventListener("mouseup", g);
2696
+ document.addEventListener("mousemove", d), document.addEventListener("mouseup", u);
2570
2697
  }), e.addEventListener("mousedown", (p) => {
2571
2698
  p.preventDefault(), r(p);
2572
- const d = (u) => r(u), g = () => {
2573
- var u;
2574
- document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", g), V.addColor(this.currentColor, this.recentScope), (u = this.recentSectionRefresh) == null || u.call(this);
2699
+ const d = (g) => r(g), u = () => {
2700
+ document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", u);
2575
2701
  };
2576
- document.addEventListener("mousemove", d), document.addEventListener("mouseup", g);
2702
+ document.addEventListener("mousemove", d), document.addEventListener("mouseup", u);
2577
2703
  }), i.addEventListener("mousedown", (p) => {
2578
2704
  p.preventDefault(), h(p);
2579
- const d = (u) => h(u), g = () => {
2580
- var u;
2581
- document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", g), V.addColor(this.currentColor, this.recentScope), (u = this.recentSectionRefresh) == null || u.call(this);
2705
+ const d = (g) => h(g), u = () => {
2706
+ document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", u);
2582
2707
  };
2583
- document.addEventListener("mousemove", d), document.addEventListener("mouseup", g);
2708
+ document.addEventListener("mousemove", d), document.addEventListener("mouseup", u);
2584
2709
  }), n.addEventListener("change", () => this.syncInput()), s.addEventListener("input", () => this.applyFromInput()), s.addEventListener("blur", () => this.syncInput()), s.addEventListener("keydown", (p) => {
2585
2710
  p.key === "Enter" && (p.preventDefault(), this.syncInput(), s.blur());
2586
2711
  }), o.addEventListener("click", async () => {
@@ -2590,14 +2715,14 @@ class Jt {
2590
2715
  s.select(), document.execCommand("copy");
2591
2716
  }
2592
2717
  }), a.addEventListener("click", async () => {
2593
- var p, d;
2718
+ var p;
2594
2719
  if (!("EyeDropper" in window)) {
2595
2720
  alert("EyeDropper API is not supported in this browser.");
2596
2721
  return;
2597
2722
  }
2598
2723
  try {
2599
- const g = new window.EyeDropper(), { sRGBHex: u } = await g.open();
2600
- this.setColor(u), (p = this.onChange) == null || p.call(this, u, this.currentOpacity), V.addColor(u, this.recentScope), (d = this.recentSectionRefresh) == null || d.call(this);
2724
+ const d = new window.EyeDropper(), { sRGBHex: u } = await d.open();
2725
+ this.setColor(u), (p = this.onChange) == null || p.call(this, u, this.currentOpacity);
2601
2726
  } catch {
2602
2727
  }
2603
2728
  }), document.addEventListener("keydown", this.keyDown, !0), setTimeout(
@@ -2608,17 +2733,17 @@ class Jt {
2608
2733
  setColor(t) {
2609
2734
  var o;
2610
2735
  this.currentColor = t;
2611
- const { h: e, s: i, v: s } = A(t), n = e >= 360 ? e % 360 : e;
2736
+ const { h: e, s: i, v: s } = $(t), n = e >= 360 ? e % 360 : e;
2612
2737
  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);
2613
2738
  }
2614
2739
  syncInput() {
2615
- const t = this.select.value, { h: e, s: i, v: s } = A(this.currentColor);
2740
+ const t = this.select.value, { h: e, s: i, v: s } = $(this.currentColor);
2616
2741
  if (t === "hex") this.input.value = this.currentColor;
2617
2742
  else if (t === "rgb") {
2618
2743
  const { r: n, g: o, b: a } = S(this.currentColor);
2619
2744
  this.input.value = `rgb(${n}, ${o}, ${a})`;
2620
2745
  } else {
2621
- const { hue: n, sat: o, lightness: a } = Ut(e, i, s);
2746
+ const { hue: n, sat: o, lightness: a } = Gt(e, i, s);
2622
2747
  this.input.value = `hsl(${Math.round(n)}, ${Math.round(
2623
2748
  o * 100
2624
2749
  )}%, ${Math.round(a * 100)}%)`;
@@ -2637,7 +2762,7 @@ class Jt {
2637
2762
  const s = t.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);
2638
2763
  if (s) {
2639
2764
  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);
2640
- e = z(n, r, l);
2765
+ e = W(n, r, l);
2641
2766
  }
2642
2767
  }
2643
2768
  }
@@ -2651,20 +2776,20 @@ class Jt {
2651
2776
  );
2652
2777
  }
2653
2778
  open(t, e, i) {
2654
- var y;
2779
+ var E;
2655
2780
  this.currentColor = t, this.currentOpacity = i ?? 100, this.syncInput();
2656
- const { h: s, s: n, v: o } = A(t);
2657
- 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}%`, (y = this.recentSectionRefresh) == null || y.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);
2781
+ const { h: s, s: n, v: o } = $(t);
2782
+ 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);
2658
2783
  const a = this.element.offsetWidth, l = this.element.offsetHeight, r = e.getBoundingClientRect(), h = window.innerWidth, p = window.innerHeight, d = 16;
2659
- let g = r.right + 8, u = r.top;
2784
+ let u = r.right + 8, g = r.top;
2660
2785
  const m = h - r.right, f = r.left;
2661
- m >= a + d ? g = r.right + 8 : f >= a + d ? g = r.left - a - 8 : g = Math.max(d, (h - a) / 2);
2662
- const C = p - r.bottom, x = r.top;
2663
- C >= l + d ? u = r.bottom + 8 : x >= l + d ? u = r.top - l - 8 : C > x ? (u = r.bottom + 8, u + l > p - d && (u = p - l - d)) : (u = r.top - l - 8, u < d && (u = d)), this.element.style.left = `${g}px`, this.element.style.top = `${u}px`;
2786
+ m >= a + d ? u = r.right + 8 : f >= a + d ? u = r.left - a - 8 : u = Math.max(d, (h - a) / 2);
2787
+ const C = p - r.bottom, y = r.top;
2788
+ 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`;
2664
2789
  }
2665
2790
  close(t) {
2666
2791
  var e;
2667
- 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 && (V.addColor(this.currentColor, this.recentScope), (e = this.recentSectionRefresh) == null || e.call(this)));
2792
+ 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" && (B.addColor(this.currentColor, this.recentScope), (e = this.recentSectionRefresh) == null || e.call(this)));
2668
2793
  }
2669
2794
  getElement() {
2670
2795
  return this.element;
@@ -2672,11 +2797,11 @@ class Jt {
2672
2797
  }
2673
2798
  class Zt {
2674
2799
  constructor(t) {
2675
- this.currentColor = t.initialColor, this.currentOpacity = t.initialOpacity, this.onColorChange = t.onColorChange, this.container = this.createContainer(), this.initializePicker();
2800
+ 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();
2676
2801
  }
2677
2802
  createContainer() {
2678
2803
  const t = document.createElement("div");
2679
- return t.className = "embedded-color-picker-content", t.innerHTML = `
2804
+ t.className = "embedded-color-picker-content", t.innerHTML = `
2680
2805
  <div class="color-picker-area embedded">
2681
2806
  <div class="color-picker-marker"></div>
2682
2807
  </div>
@@ -2704,7 +2829,11 @@ class Zt {
2704
2829
  <button class="color-picker-copy-inside">Copy</button>
2705
2830
  </div>
2706
2831
  </div>
2707
- `, t;
2832
+ `;
2833
+ const e = it((i) => {
2834
+ this.applyRecentColor(i);
2835
+ }, this.recentScope);
2836
+ return this.recentSectionRefresh = e.refresh, t.appendChild(e.container), t;
2708
2837
  }
2709
2838
  initializePicker() {
2710
2839
  const t = this.container.querySelector(
@@ -2725,7 +2854,7 @@ class Zt {
2725
2854
  ".color-picker-color-input"
2726
2855
  ), r = this.container.querySelector(
2727
2856
  ".color-picker-copy-inside"
2728
- ), { h, s: p, v: d } = A(this.currentColor);
2857
+ ), { h, s: p, v: d } = $(this.currentColor);
2729
2858
  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(
2730
2859
  i,
2731
2860
  s,
@@ -2753,27 +2882,43 @@ class Zt {
2753
2882
  e.value = `rgb(${s.r}, ${s.g}, ${s.b})`;
2754
2883
  break;
2755
2884
  case "hsl":
2756
- 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);
2885
+ const { h: n, s: o, v: a } = $(this.currentColor), l = a * (1 - o / 2), r = l === 0 || l === 1 ? 0 : (a - l) / Math.min(l, 1 - l);
2757
2886
  e.value = `hsl(${Math.round(n)}, ${Math.round(
2758
2887
  r * 100
2759
2888
  )}%, ${Math.round(l * 100)}%)`;
2760
2889
  break;
2761
2890
  }
2762
2891
  }
2892
+ applyRecentColor(t) {
2893
+ if (this.currentColor = t, !(t.includes("gradient") || t.includes("radial"))) {
2894
+ this.updatePickerVisualState();
2895
+ const i = this.container.querySelector(
2896
+ ".color-picker-format-select"
2897
+ ), s = this.container.querySelector(
2898
+ ".color-picker-color-input"
2899
+ );
2900
+ this.updateColorInput(i, s);
2901
+ }
2902
+ this.triggerChange();
2903
+ }
2904
+ commitRecentColor() {
2905
+ var t;
2906
+ B.addColor(this.currentColor, this.recentScope), (t = this.recentSectionRefresh) == null || t.call(this);
2907
+ }
2763
2908
  setupColorAreaEvents(t, e, i) {
2764
2909
  const s = (n) => {
2765
2910
  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));
2766
2911
  e.style.left = `${a * 100}%`, e.style.top = `${l * 100}%`;
2767
- const r = parseFloat(i.style.left || "0%") / 100 * 360, h = z(r, a, 1 - l);
2912
+ const r = parseFloat(i.style.left || "0%") / 100 * 360, h = W(r, a, 1 - l);
2768
2913
  this.currentColor = h;
2769
2914
  const p = this.container.querySelector(
2770
2915
  ".color-picker-format-select"
2771
2916
  ), d = this.container.querySelector(
2772
2917
  ".color-picker-color-input"
2773
- ), g = this.container.querySelector(
2918
+ ), u = this.container.querySelector(
2774
2919
  ".color-picker-opacity"
2775
2920
  );
2776
- this.updateColorInput(p, d), this.updateOpacityBackground(g), this.triggerChange();
2921
+ this.updateColorInput(p, d), this.updateOpacityBackground(u), this.triggerChange();
2777
2922
  };
2778
2923
  t.addEventListener("mousedown", (n) => {
2779
2924
  n.preventDefault(), s(n);
@@ -2788,9 +2933,9 @@ class Zt {
2788
2933
  const h = t.getBoundingClientRect();
2789
2934
  let p = (r.clientX - h.left) / h.width;
2790
2935
  p = Math.max(0, Math.min(1, p)), e.style.left = `${p * 100}%`;
2791
- const d = p * 360, g = parseFloat(s.style.left || "50%") / 100, u = parseFloat(s.style.top || "50%") / 100;
2936
+ const d = p * 360, u = parseFloat(s.style.left || "50%") / 100, g = parseFloat(s.style.top || "50%") / 100;
2792
2937
  i.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${d}, 100%, 50%))`;
2793
- const m = z(d, g, 1 - u);
2938
+ const m = W(d, u, 1 - g);
2794
2939
  this.currentColor = m, this.updateColorInput(n, o), this.updateOpacityBackground(a), this.triggerChange();
2795
2940
  };
2796
2941
  t.addEventListener("mousedown", (r) => {
@@ -2845,7 +2990,7 @@ class Zt {
2845
2990
  }
2846
2991
  parseHexInput(t) {
2847
2992
  const e = t.startsWith("#") ? t : `#${t}`;
2848
- return F(e);
2993
+ return U(e);
2849
2994
  }
2850
2995
  parseRgbInput(t) {
2851
2996
  const e = t.match(
@@ -2854,7 +2999,7 @@ class Zt {
2854
2999
  if (e) {
2855
3000
  const i = parseInt(e[1]), s = parseInt(e[2]), n = parseInt(e[3]);
2856
3001
  if (i <= 255 && s <= 255 && n <= 255)
2857
- return R(i, s, n);
3002
+ return F(i, s, n);
2858
3003
  }
2859
3004
  return null;
2860
3005
  }
@@ -2865,8 +3010,8 @@ class Zt {
2865
3010
  if (e) {
2866
3011
  const i = parseFloat(e[1]), s = parseFloat(e[2]) / 100, n = parseFloat(e[3]) / 100;
2867
3012
  if (i >= 0 && i <= 360 && s >= 0 && s <= 1 && n >= 0 && n <= 1) {
2868
- const o = X(i, s, n);
2869
- return R(o.r, o.g, o.b);
3013
+ const o = Z(i, s, n);
3014
+ return F(o.r, o.g, o.b);
2870
3015
  }
2871
3016
  }
2872
3017
  return null;
@@ -2888,7 +3033,7 @@ class Zt {
2888
3033
  ".color-picker-hue-marker"
2889
3034
  ), s = this.container.querySelector(
2890
3035
  ".color-picker-opacity"
2891
- ), { h: n, s: o, v: a } = A(this.currentColor);
3036
+ ), { h: n, s: o, v: a } = $(this.currentColor);
2892
3037
  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);
2893
3038
  }
2894
3039
  triggerChange() {
@@ -2913,116 +3058,11 @@ class Zt {
2913
3058
  ".color-picker-format-select"
2914
3059
  ), r = this.container.querySelector(
2915
3060
  ".color-picker-color-input"
2916
- ), { h, s: p, v: d } = A(t), g = h >= 360 ? h % 360 : h;
2917
- n.style.left = `${g / 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(${g}, 100%, 50%))`, o.style.left = `${e}%`, this.updateOpacityBackground(a), this.updateColorInput(l, r);
3061
+ ), { h, s: p, v: d } = $(t), u = h >= 360 ? h % 360 : h;
3062
+ 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);
2918
3063
  }
2919
3064
  }
2920
- const ot = (c) => {
2921
- const t = [];
2922
- let e = "", i = 0;
2923
- for (let s = 0; s < c.length; s++) {
2924
- const n = c[s];
2925
- if (n === "(") i++;
2926
- else if (n === ")") i--;
2927
- else if (n === "," && i === 0) {
2928
- t.push(e.trim()), e = "";
2929
- continue;
2930
- }
2931
- e += n;
2932
- }
2933
- return e.trim() && t.push(e.trim()), t;
2934
- }, at = (c, t) => {
2935
- const e = new RegExp(`${t}\\s*\\(`, "i"), i = c.match(e);
2936
- if (!i) return null;
2937
- const s = i.index + i[0].length;
2938
- let n = 1, o = s;
2939
- for (let a = s; a < c.length && n > 0; a++)
2940
- c[a] === "(" ? n++ : c[a] === ")" && n--, o = a;
2941
- return n === 0 ? c.substring(s, o) : null;
2942
- }, Xt = (c) => {
2943
- const t = c.split(" ")[0].toLowerCase();
2944
- return [
2945
- "circle",
2946
- "ellipse",
2947
- "closest-side",
2948
- "closest-corner",
2949
- "farthest-side",
2950
- "farthest-corner",
2951
- "at",
2952
- "contain",
2953
- "cover"
2954
- ].includes(t) ? !1 : /^#[0-9a-f]{3,8}$/i.test(t) || /^rgb/i.test(c) || /^hsl/i.test(c) || Gt(t);
2955
- }, lt = (c) => {
2956
- const t = [];
2957
- return c.forEach((e, i) => {
2958
- const s = e.trim();
2959
- if (!s) return;
2960
- let n = "", o = 0;
2961
- const a = s.match(/^(.+?)\s+(\d+(?:\.\d+)?)%?\s*$/);
2962
- a && dt(a[1].trim()) ? (n = a[1].trim(), o = parseFloat(a[2])) : (n = s, o = c.length === 1 ? 0 : i / (c.length - 1) * 100);
2963
- const l = ut(n);
2964
- l.position = Math.max(0, Math.min(100, Math.round(o))), t.push(l);
2965
- }), t;
2966
- }, B = (c) => {
2967
- const t = c.stops && c.stops.length ? c.stops : [{ color: "#000000", position: 0, opacity: 100 }];
2968
- return {
2969
- type: c.type && ["linear", "radial", "solid"].includes(c.type) ? c.type : "linear",
2970
- angle: typeof c.angle == "number" ? c.angle : 90,
2971
- stops: t.map((e, i) => ({
2972
- color: e.color || "#000000",
2973
- position: typeof e.position == "number" ? e.position : t.length === 1 ? 0 : Math.round(i / (t.length - 1) * 100),
2974
- opacity: e.opacity === void 0 || Number.isNaN(e.opacity) ? 100 : e.opacity
2975
- }))
2976
- };
2977
- }, Q = (c) => {
2978
- const t = c.replace(/;$/, "").trim();
2979
- if (Wt(t)) {
2980
- const s = ut(t);
2981
- return B({ type: "solid", angle: 0, stops: [s] });
2982
- }
2983
- const e = at(t, "linear-gradient");
2984
- if (e) {
2985
- const s = ot(e);
2986
- let n = 90, o = s;
2987
- const a = s[0];
2988
- if (a.includes("deg")) {
2989
- const r = a.match(/(-?\d+(?:\.\d+)?)deg/);
2990
- r && (n = parseFloat(r[1]), o = s.slice(1));
2991
- } else a.includes("to ") && (n = {
2992
- "to right": 90,
2993
- "to left": 270,
2994
- "to bottom": 180,
2995
- "to top": 0,
2996
- "to bottom right": 135,
2997
- "to bottom left": 225,
2998
- "to top right": 45,
2999
- "to top left": 315
3000
- }[a] ?? 90, o = s.slice(1));
3001
- const l = lt(o);
3002
- return l.length ? B({ type: "linear", angle: n, stops: l }) : null;
3003
- }
3004
- const i = at(t, "radial-gradient");
3005
- if (i) {
3006
- const s = ot(i), n = s[0] && !Xt(s[0]) ? s.slice(1) : s, o = lt(n);
3007
- return o.length ? B({ type: "radial", angle: 0, stops: o }) : null;
3008
- }
3009
- return null;
3010
- }, P = (c) => {
3011
- if (c.type === "solid") {
3012
- const e = c.stops[0], i = e.opacity ?? 100, s = e.color.replace("#", ""), n = Math.round(i / 100 * 255).toString(16).toUpperCase().padStart(2, "0");
3013
- return `#${s}${n}`;
3014
- }
3015
- const t = c.stops.map(
3016
- (e) => `${pt(e.color, e.opacity ?? 100)} ${e.position}%`
3017
- ).join(", ");
3018
- return c.type === "radial" ? `radial-gradient(circle, ${t})` : `linear-gradient(${c.angle}deg, ${t})`;
3019
- }, tt = (c) => {
3020
- if (c.type === "solid") {
3021
- const t = c.stops[0];
3022
- return t ? t.color.replace("#", "").toUpperCase() : "Color";
3023
- }
3024
- return c.type === "linear" ? `Linear ${c.angle}°` : "Radial Gradient";
3025
- }, N = class N extends b {
3065
+ const V = class V extends w {
3026
3066
  constructor(t = {}) {
3027
3067
  const e = typeof t.default == "string" ? void 0 : t.default;
3028
3068
  super({
@@ -3033,23 +3073,36 @@ const ot = (c) => {
3033
3073
  type: "text",
3034
3074
  angle: "number",
3035
3075
  stops: "text"
3036
- }, this.element = null, this.previewEl = null, this.inputEl = void 0, this.popoverEl = null, this.isPopoverOpen = !1, this.isEditing = !1, this.previewUpdateTimeout = null, this.onBackgroundClick = (i) => {
3076
+ }, 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) => {
3037
3077
  var p;
3038
3078
  if (!this.popoverEl || !this.isPopoverOpen) return;
3039
3079
  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(
3040
3080
  ".gstop-color-input, .gradient-mini-preview, .gstop-color-preview"
3041
3081
  ), h = s.classList.contains("color-picker-backdrop");
3042
3082
  !n && !o && !l && !r && !h && this.closePopover();
3043
- }, this.detectChange = t.detectChange, this.forText = t.forText || !1, this.originalDefault = t.default, this.value = this.defaultValue();
3083
+ }, this.handlePopoverKeydown = (i) => {
3084
+ if (this.isPopoverOpen) {
3085
+ if (i.key === "Escape") {
3086
+ i.preventDefault(), this.closePopover();
3087
+ return;
3088
+ }
3089
+ if (i.key === "Enter") {
3090
+ const s = i.target;
3091
+ if (s && (s.tagName === "INPUT" || s.tagName === "TEXTAREA"))
3092
+ return;
3093
+ i.preventDefault(), this.closePopover();
3094
+ }
3095
+ }
3096
+ }, this.detectChange = t.detectChange, this.originalDefault = t.default, this.value = this.defaultValue();
3044
3097
  }
3045
3098
  defaultValue() {
3046
3099
  const t = this.originalDefault;
3047
3100
  if (typeof t == "string") {
3048
- const i = Q(t);
3101
+ const i = H(t);
3049
3102
  if (i)
3050
- return B(i);
3103
+ return A(i);
3051
3104
  }
3052
- return B(t && typeof t == "object" ? t : {
3105
+ return A(t && typeof t == "object" ? t : {
3053
3106
  type: "linear",
3054
3107
  angle: 90,
3055
3108
  stops: [
@@ -3061,20 +3114,20 @@ const ot = (c) => {
3061
3114
  setValue(t) {
3062
3115
  var i, s;
3063
3116
  let e = null;
3064
- typeof t == "string" ? e = Q(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);
3117
+ typeof t == "string" ? e = H(t) : t && typeof t == "object" && (e = A(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;
3065
3118
  }
3066
3119
  updateUI() {
3067
3120
  if (this.previewEl && this.value)
3068
3121
  if (this.value.type === "solid") {
3069
3122
  const t = this.value.stops[0], e = t.opacity ?? 100;
3070
- this.previewEl.style.background = pt(t.color, e);
3123
+ this.previewEl.style.background = dt(t.color, e);
3071
3124
  } else
3072
- this.previewEl.style.background = P(this.value);
3073
- this.inputEl && this.value && !this.isEditing && (this.inputEl.value = tt(this.value));
3125
+ this.previewEl.style.background = N(this.value);
3126
+ this.inputEl && this.value && !this.isEditing && (this.inputEl.value = Q(this.value));
3074
3127
  }
3075
3128
  cssForTextValue() {
3076
3129
  return this.value ? {
3077
- background: P(this.value),
3130
+ background: N(this.value),
3078
3131
  "-webkit-background-clip": "text",
3079
3132
  "background-clip": "text",
3080
3133
  color: "transparent",
@@ -3090,17 +3143,17 @@ const ot = (c) => {
3090
3143
  s.className = "input-label", s.textContent = this.props.title, i.appendChild(s), t.appendChild(i);
3091
3144
  }
3092
3145
  const e = document.createElement("div");
3093
- return e.className = "gradient-input-wrapper", this.previewEl = document.createElement("div"), this.previewEl.className = "gradient-mini-preview", this.previewEl.style.background = this.value ? P(this.value) : "linear-gradient(90deg, #a84b4b 0%, #786666 100%)", this.previewEl.addEventListener("mousedown", (i) => {
3146
+ 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("mousedown", (i) => {
3094
3147
  i.preventDefault(), i.stopPropagation(), this.openPopover();
3095
- }), 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", () => {
3096
- this.isEditing = !0, this.value && (this.inputEl.value = P(this.value));
3148
+ }), 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 ? Q(this.value) : "", this.inputEl.readOnly = !1, this.inputEl.addEventListener("focus", () => {
3149
+ this.isEditing = !0, this.value && (this.inputEl.value = N(this.value));
3097
3150
  }), this.inputEl.addEventListener("blur", () => {
3098
- this.isEditing = !1, this.value && (this.inputEl.value = tt(this.value));
3151
+ this.isEditing = !1, this.value && (this.inputEl.value = Q(this.value));
3099
3152
  }), this.inputEl.addEventListener(
3100
3153
  "paste",
3101
3154
  (i) => this.handlePaste(i)
3102
3155
  ), this.inputEl.addEventListener("input", (i) => this.handleTextInput(i)), this.inputEl.addEventListener("keydown", (i) => {
3103
- i.key === "Enter" && (this.handleTextInput(i), this.inputEl.blur()), i.key === "Escape" && (this.value && (this.inputEl.value = P(this.value)), this.inputEl.blur());
3156
+ i.key === "Enter" && (this.handleTextInput(i), this.inputEl.blur()), i.key === "Escape" && (this.value && (this.inputEl.value = N(this.value)), this.inputEl.blur());
3104
3157
  }), e.appendChild(this.previewEl), e.appendChild(this.inputEl), t.appendChild(e), this.createPopover(), this.element = t, t;
3105
3158
  }
3106
3159
  createPopover() {
@@ -3111,7 +3164,7 @@ const ot = (c) => {
3111
3164
  const e = document.createElement("span");
3112
3165
  e.textContent = "Fill";
3113
3166
  const i = document.createElement("button");
3114
- i.type = "button", i.className = "gradient-popover-close", i.innerHTML = gt, i.addEventListener("click", () => this.closePopover()), t.appendChild(e), t.appendChild(i);
3167
+ i.type = "button", i.className = "gradient-popover-close", i.innerHTML = mt, i.addEventListener("click", () => this.closePopover()), t.appendChild(e), t.appendChild(i);
3115
3168
  const s = document.createElement("div");
3116
3169
  s.className = "gradient-editor";
3117
3170
  const n = this.createTypeTabs();
@@ -3156,12 +3209,20 @@ const ot = (c) => {
3156
3209
  initialColor: e.color,
3157
3210
  initialOpacity: e.opacity ?? 100,
3158
3211
  onColorChange: (s, n) => {
3159
- this.value && (this.value.stops[0].color = s, this.value.stops[0].opacity = n, this.updateUI(), this.triggerChange());
3212
+ if (this.value) {
3213
+ const o = H(s);
3214
+ if (o && o.type !== "solid") {
3215
+ this.value = o, this.switchType(o.type);
3216
+ return;
3217
+ }
3218
+ this.value.stops[0].color = s, this.value.stops[0].opacity = n, this.updateUI(), this.triggerChange(), this.pendingSolidColor = s;
3219
+ }
3160
3220
  }
3161
3221
  });
3162
- t.appendChild(i.getElement());
3222
+ this.solidPicker = i, t.appendChild(i.getElement());
3163
3223
  }
3164
3224
  renderGradient(t) {
3225
+ this.solidPicker = null;
3165
3226
  const e = document.createElement("div");
3166
3227
  e.className = "gradient-subtype-inline";
3167
3228
  const i = document.createElement("select");
@@ -3173,24 +3234,24 @@ const ot = (c) => {
3173
3234
  const o = document.createElement("input");
3174
3235
  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";
3175
3236
  const a = document.createElement("button");
3176
- a.type = "button", a.className = "gradient-flip-btn", a.innerHTML = jt, i.addEventListener("change", () => {
3237
+ a.type = "button", a.className = "gradient-flip-btn", a.innerHTML = _t, i.addEventListener("change", () => {
3177
3238
  this.switchType(i.value === "radial" ? "radial" : "linear"), this.updateDegreeVisibility(o);
3178
- }), o.addEventListener("focus", (u) => {
3179
- const m = u.target;
3180
- m.value = m.value.replace(/[^0-9-]/g, ""), setTimeout(() => m.select(), 0);
3181
- }), o.addEventListener("input", (u) => {
3182
- const m = parseInt(u.target.value);
3183
- !Number.isNaN(m) && this.value && (this.value.angle = Math.max(0, Math.min(360, m)), this.debouncedPreviewUpdate());
3184
- }), o.addEventListener("blur", (u) => {
3185
- var C;
3239
+ }), o.addEventListener("focus", (m) => {
3240
+ const f = m.target;
3241
+ f.value = f.value.replace(/[^0-9-]/g, ""), setTimeout(() => f.select(), 0);
3242
+ }), o.addEventListener("input", (m) => {
3243
+ const f = parseInt(m.target.value);
3244
+ !Number.isNaN(f) && this.value && (this.value.angle = Math.max(0, Math.min(360, f)), this.debouncedPreviewUpdate());
3245
+ }), o.addEventListener("blur", (m) => {
3246
+ var y;
3186
3247
  this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null);
3187
- const m = u.target;
3188
- let f = parseInt(m.value);
3189
- Number.isNaN(f) && (f = ((C = this.value) == null ? void 0 : C.angle) ?? 0), f = Math.max(0, Math.min(360, f)), this.value && (this.value.angle = f), m.value = `${f}°`, this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3248
+ const f = m.target;
3249
+ let C = parseInt(f.value);
3250
+ 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();
3190
3251
  }), a.addEventListener("click", () => {
3191
- !this.value || !this.value.stops || (this.value.stops.forEach((u) => {
3192
- u.position = 100 - u.position;
3193
- }), this.value.stops.sort((u, m) => u.position - m.position), this.updateGradientPreview(l), this.createHandles(r, l), this.updateStopsList(g), this.updateUI(), this.triggerChange());
3252
+ !this.value || !this.value.stops || (this.value.stops.forEach((m) => {
3253
+ m.position = 100 - m.position;
3254
+ }), this.value.stops.sort((m, f) => m.position - f.position), this.updateGradientPreview(l), this.createHandles(r, l), this.updateStopsList(u), this.updateUI(), this.triggerChange());
3194
3255
  }), e.appendChild(i), e.appendChild(o), e.appendChild(a), t.appendChild(e), this.updateDegreeVisibility(o);
3195
3256
  const l = document.createElement("div");
3196
3257
  l.className = "gradient-preview", this.updateGradientPreview(l);
@@ -3202,10 +3263,15 @@ const ot = (c) => {
3202
3263
  p.textContent = "Stops";
3203
3264
  const d = document.createElement("button");
3204
3265
  d.type = "button", d.className = "gradient-add-stop", d.textContent = "+", h.appendChild(p), h.appendChild(d);
3205
- const g = document.createElement("div");
3206
- g.className = "gradient-stops", t.appendChild(h), t.appendChild(g), this.updateStopsList(g), d.addEventListener("click", () => {
3207
- var u;
3208
- this.addStop(), this.updateStopsList(g), this.updateGradientPreview(l), this.createHandles(r, l), this.updateUI(), ((u = document.activeElement) == null ? void 0 : u.tagName) !== "INPUT" && this.repositionPopover(), this.triggerChange();
3266
+ const u = document.createElement("div");
3267
+ u.className = "gradient-stops", t.appendChild(h), t.appendChild(u), this.updateStopsList(u);
3268
+ const g = it((m) => {
3269
+ const f = H(m);
3270
+ f && (this.value = f, this.switchType(f.type), this.updateUI(), this.triggerChange());
3271
+ }, "all");
3272
+ this.recentGradientRefresh = g.refresh, t.appendChild(g.container), d.addEventListener("click", () => {
3273
+ var m;
3274
+ 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();
3209
3275
  });
3210
3276
  }
3211
3277
  updateDegreeVisibility(t) {
@@ -3215,7 +3281,7 @@ const ot = (c) => {
3215
3281
  updateGradientPreview(t) {
3216
3282
  var i;
3217
3283
  const e = t || ((i = this.popoverEl) == null ? void 0 : i.querySelector(".gradient-preview"));
3218
- e && this.value && (e.style.background = P(this.value));
3284
+ e && this.value && (e.style.background = N(this.value));
3219
3285
  }
3220
3286
  debouncedPreviewUpdate(t) {
3221
3287
  this.previewUpdateTimeout && clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = window.setTimeout(() => {
@@ -3229,15 +3295,15 @@ const ot = (c) => {
3229
3295
  const o = document.createElement("div");
3230
3296
  o.className = "gstop-chip", o.style.backgroundColor = i.color, n.appendChild(o);
3231
3297
  let a = !1, l = 0, r = 0;
3232
- const h = (g) => {
3233
- a = !0, l = g.clientX, r = this.value.stops[s].position, n.classList.add("selected"), document.addEventListener("mousemove", p), document.addEventListener("mouseup", d), g.preventDefault(), g.stopPropagation();
3234
- }, p = (g) => {
3298
+ const h = (u) => {
3299
+ 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();
3300
+ }, p = (u) => {
3235
3301
  if (!a || !this.value) return;
3236
- const u = e.getBoundingClientRect(), m = g.clientX - l;
3237
- let f = r + m / u.width * 100;
3302
+ const g = e.getBoundingClientRect(), m = u.clientX - l;
3303
+ let f = r + m / g.width * 100;
3238
3304
  f = Math.max(0, Math.min(100, f)), this.value.stops[s].position = Math.round(f), n.style.left = `${f}%`, this.updateGradientPreview(), this.updateUI();
3239
3305
  }, d = () => {
3240
- a && (a = !1, n.classList.remove("selected"), document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", d), this.value && (this.value.stops.sort((g, u) => g.position - u.position), this.createHandles(t, e)), this.updateStopsList(), this.updateUI(), this.triggerChange());
3306
+ 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());
3241
3307
  };
3242
3308
  n.addEventListener("mousedown", h), t.appendChild(n);
3243
3309
  });
@@ -3252,12 +3318,12 @@ const ot = (c) => {
3252
3318
  (n, o) => n.position - o.position
3253
3319
  );
3254
3320
  i.forEach((n, o) => {
3255
- var U, G;
3321
+ var G, st;
3256
3322
  const a = this.value.stops.findIndex(
3257
- (v, E) => v.position === n.position && v.color === n.color && v.opacity === n.opacity && this.value.stops.slice(0, E).filter(
3258
- (w) => w.position === n.position && w.color === n.color && w.opacity === n.opacity
3323
+ (v, b) => v.position === n.position && v.color === n.color && v.opacity === n.opacity && this.value.stops.slice(0, b).filter(
3324
+ (x) => x.position === n.position && x.color === n.color && x.opacity === n.opacity
3259
3325
  ).length === i.slice(0, o).filter(
3260
- (w) => w.position === n.position && w.color === n.color && w.opacity === n.opacity
3326
+ (x) => x.position === n.position && x.color === n.color && x.opacity === n.opacity
3261
3327
  ).length
3262
3328
  ), l = a !== -1 ? a : o, r = document.createElement("div");
3263
3329
  r.className = "gstop-row";
@@ -3267,75 +3333,75 @@ const ot = (c) => {
3267
3333
  p.type = "text", p.className = "gstop-position-input", p.value = `${n.position}%`, p.style.width = "60px", h.appendChild(p);
3268
3334
  const d = document.createElement("div");
3269
3335
  d.className = "gstop-color-container";
3270
- const g = document.createElement("div");
3271
- g.className = "gstop-color-preview", g.style.backgroundColor = n.color;
3272
- const u = document.createElement("input");
3273
- u.type = "text", u.className = "gstop-color-input", u.value = n.color.replace("#", "").toUpperCase();
3336
+ const u = document.createElement("div");
3337
+ u.className = "gstop-color-preview", u.style.backgroundColor = n.color;
3338
+ const g = document.createElement("input");
3339
+ g.type = "text", g.className = "gstop-color-input", g.value = n.color.replace("#", "").toUpperCase();
3274
3340
  const m = document.createElement("button");
3275
- m.type = "button", m.className = "gstop-color-copy", m.textContent = "Copy", d.appendChild(g), d.appendChild(u), d.appendChild(m);
3341
+ m.type = "button", m.className = "gstop-color-copy", m.textContent = "Copy", d.appendChild(u), d.appendChild(g), d.appendChild(m);
3276
3342
  const f = document.createElement("button");
3277
- f.type = "button", f.className = "gstop-del", f.innerHTML = _t, f.disabled = (((G = (U = this.value) == null ? void 0 : U.stops) == null ? void 0 : G.length) || 0) <= 2, r.appendChild(h), r.appendChild(d), r.appendChild(f), e.appendChild(r);
3343
+ f.type = "button", f.className = "gstop-del", f.innerHTML = Jt, f.disabled = (((st = (G = this.value) == null ? void 0 : G.stops) == null ? void 0 : st.length) || 0) <= 2, r.appendChild(h), r.appendChild(d), r.appendChild(f), e.appendChild(r);
3278
3344
  const C = document.createElement("span");
3279
3345
  C.className = "gstop-opacity-label", C.textContent = "Opacity";
3280
- const x = document.createElement("div");
3281
- x.className = "gstop-opacity-group";
3282
- const y = document.createElement("input");
3283
- y.type = "range", y.className = "gstop-opacity-slider", y.min = "0", y.max = "100", y.value = String(n.opacity ?? 100);
3346
+ const y = document.createElement("div");
3347
+ y.className = "gstop-opacity-group";
3348
+ const E = document.createElement("input");
3349
+ E.type = "range", E.className = "gstop-opacity-slider", E.min = "0", E.max = "100", E.value = String(n.opacity ?? 100);
3284
3350
  const O = S(n.color);
3285
- y.style.setProperty(
3351
+ E.style.setProperty(
3286
3352
  "--slider-color",
3287
3353
  `rgb(${O.r}, ${O.g}, ${O.b})`
3288
3354
  );
3289
3355
  const k = document.createElement("span");
3290
- k.className = "gstop-opacity-value", k.textContent = `${n.opacity ?? 100}%`, x.appendChild(y), x.appendChild(k);
3291
- const $ = new Jt((v, E) => {
3292
- u.value = v.replace("#", "").toUpperCase(), g.style.backgroundColor = v, this.value.stops[l].color = v, E !== void 0 && (this.value.stops[l].opacity = E, y.value = String(E), k.textContent = `${E}%`);
3293
- const w = S(v);
3294
- y.style.setProperty(
3356
+ k.className = "gstop-opacity-value", k.textContent = `${n.opacity ?? 100}%`, y.appendChild(E), y.appendChild(k);
3357
+ const D = new Xt((v, b) => {
3358
+ g.value = v.replace("#", "").toUpperCase(), u.style.backgroundColor = v, this.value.stops[l].color = v, b !== void 0 && (this.value.stops[l].opacity = b, E.value = String(b), k.textContent = `${b}%`);
3359
+ const x = S(v);
3360
+ E.style.setProperty(
3295
3361
  "--slider-color",
3296
- `rgb(${w.r}, ${w.g}, ${w.b})`
3362
+ `rgb(${x.r}, ${x.g}, ${x.b})`
3297
3363
  ), this.updateGradientPreview(), this.createHandles(
3298
3364
  this.popoverEl.querySelector(".gradient-handles"),
3299
3365
  this.popoverEl.querySelector(".gradient-preview")
3300
3366
  ), this.updateUI(), this.triggerChange();
3301
- }, "gradient");
3302
- u.addEventListener("click", (v) => {
3303
- v.preventDefault(), v.stopPropagation(), $.open(n.color, u, n.opacity ?? 100);
3304
- }), u.addEventListener("input", () => {
3305
- const v = u.value.trim(), E = v.startsWith("#") ? v : `#${v}`;
3306
- if (/^#[0-9A-Fa-f]{6}$/.test(E)) {
3307
- this.value.stops[l].color = E, g.style.backgroundColor = E;
3308
- const w = S(E);
3309
- y.style.setProperty(
3367
+ }, "solid");
3368
+ g.addEventListener("click", (v) => {
3369
+ v.preventDefault(), v.stopPropagation(), D.open(n.color, g, n.opacity ?? 100);
3370
+ }), g.addEventListener("input", () => {
3371
+ const v = g.value.trim(), b = v.startsWith("#") ? v : `#${v}`;
3372
+ if (/^#[0-9A-Fa-f]{6}$/.test(b)) {
3373
+ this.value.stops[l].color = b, u.style.backgroundColor = b;
3374
+ const x = S(b);
3375
+ E.style.setProperty(
3310
3376
  "--slider-color",
3311
- `rgb(${w.r}, ${w.g}, ${w.b})`
3377
+ `rgb(${x.r}, ${x.g}, ${x.b})`
3312
3378
  ), this.debouncedPreviewUpdate();
3313
3379
  }
3314
- }), u.addEventListener("blur", () => {
3380
+ }), g.addEventListener("blur", () => {
3315
3381
  this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3316
3382
  }), m.addEventListener("click", async (v) => {
3317
3383
  v.stopPropagation();
3318
3384
  try {
3319
- await navigator.clipboard.writeText(`#${u.value}`);
3385
+ await navigator.clipboard.writeText(`#${g.value}`);
3320
3386
  } catch {
3321
3387
  }
3322
3388
  }), p.addEventListener("focus", (v) => {
3323
- const E = v.target;
3324
- E.value = E.value.replace("%", ""), E.select();
3389
+ const b = v.target;
3390
+ b.value = b.value.replace("%", ""), b.select();
3325
3391
  }), p.addEventListener("input", (v) => {
3326
- const E = v.target, w = parseInt(E.value.replace(/[^\d]/g, ""), 10);
3327
- if (!Number.isNaN(w)) {
3328
- const W = Math.max(0, Math.min(100, w));
3329
- this.value.stops[l].position = W, E.value = `${W}%`, this.debouncedPreviewUpdate();
3392
+ const b = v.target, x = parseInt(b.value.replace(/[^\d]/g, ""), 10);
3393
+ if (!Number.isNaN(x)) {
3394
+ const z = Math.max(0, Math.min(100, x));
3395
+ this.value.stops[l].position = z, b.value = `${z}%`, this.debouncedPreviewUpdate();
3330
3396
  }
3331
3397
  }), p.addEventListener("blur", (v) => {
3332
3398
  this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null);
3333
- const E = v.target, w = parseInt(E.value.replace(/[^\d]/g, ""), 10);
3334
- if (Number.isNaN(w))
3335
- E.value = `${this.value.stops[l].position}%`;
3399
+ const b = v.target, x = parseInt(b.value.replace(/[^\d]/g, ""), 10);
3400
+ if (Number.isNaN(x))
3401
+ b.value = `${this.value.stops[l].position}%`;
3336
3402
  else {
3337
- const W = Math.max(0, Math.min(100, w));
3338
- this.value.stops[l].position = W, E.value = `${W}%`;
3403
+ const z = Math.max(0, Math.min(100, x));
3404
+ this.value.stops[l].position = z, b.value = `${z}%`;
3339
3405
  }
3340
3406
  this.updateGradientPreview(), this.createHandles(
3341
3407
  this.popoverEl.querySelector(".gradient-handles"),
@@ -3347,10 +3413,10 @@ const ot = (c) => {
3347
3413
  this.popoverEl.querySelector(".gradient-handles"),
3348
3414
  this.popoverEl.querySelector(".gradient-preview")
3349
3415
  ), this.updateStopsList(), this.updateGradientPreview(), this.updateUI(), ((v = document.activeElement) == null ? void 0 : v.tagName) !== "INPUT" && this.repositionPopover(), this.triggerChange());
3350
- }), y.addEventListener("input", () => {
3351
- const v = parseInt(y.value, 10);
3416
+ }), E.addEventListener("input", () => {
3417
+ const v = parseInt(E.value, 10);
3352
3418
  this.value.stops[l].opacity = Math.max(0, Math.min(100, v)), k.textContent = `${this.value.stops[l].opacity}%`, this.debouncedPreviewUpdate();
3353
- }), y.addEventListener("change", () => {
3419
+ }), E.addEventListener("change", () => {
3354
3420
  this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3355
3421
  });
3356
3422
  });
@@ -3373,21 +3439,21 @@ const ot = (c) => {
3373
3439
  this.value.stops.push(n), this.value.stops.sort((o, a) => o.position - a.position);
3374
3440
  }
3375
3441
  openPopover() {
3376
- if (this.popoverEl && (N.openInstance && N.openInstance !== this && N.openInstance.closePopover(), !this.isPopoverOpen)) {
3377
- if (this.isPopoverOpen = !0, N.openInstance = this, this.popoverEl.style.display = "flex", this.refreshPopoverContent(), this.element) {
3442
+ if (this.popoverEl && (V.openInstance && V.openInstance !== this && V.openInstance.closePopover(), !this.isPopoverOpen)) {
3443
+ if (this.isPopoverOpen = !0, V.openInstance = this, this.popoverEl.style.display = "flex", this.refreshPopoverContent(), this.element) {
3378
3444
  const t = this.element.getBoundingClientRect(), e = 306, i = window.innerWidth, s = window.innerHeight, n = 16;
3379
3445
  this.popoverEl.style.position = "fixed", this.popoverEl.style.zIndex = "10000", this.popoverEl.style.left = "-9999px", this.popoverEl.style.top = "0px";
3380
3446
  const o = this.popoverEl.offsetHeight;
3381
3447
  let a = t.right + 8, l = t.top;
3382
3448
  const r = i - t.right, h = t.left, p = e + n;
3383
3449
  r < p && h > r + 100 && (a = t.left - e - 8);
3384
- const d = s - t.bottom, g = t.top;
3385
- g >= o + n ? l = t.top - o - 8 : d >= o + n ? l = t.bottom + 8 : g > 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`;
3450
+ const d = s - t.bottom, u = t.top;
3451
+ 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`;
3386
3452
  }
3387
3453
  setTimeout(
3388
3454
  () => document.addEventListener("click", this.onBackgroundClick, !0),
3389
3455
  0
3390
- );
3456
+ ), document.addEventListener("keydown", this.handlePopoverKeydown, !0);
3391
3457
  }
3392
3458
  }
3393
3459
  repositionPopover() {
@@ -3400,22 +3466,31 @@ const ot = (c) => {
3400
3466
  let l = e.right + 8, r = e.top;
3401
3467
  const h = s - e.right, p = e.left, d = i + o;
3402
3468
  h < d && p > h + 100 && (l = e.left - i - 8);
3403
- const g = n - e.bottom, u = e.top;
3404
- u >= a + o ? r = e.top - a - 8 : g >= a + o ? r = e.bottom + 8 : u > g ? (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`;
3469
+ const u = n - e.bottom, g = e.top;
3470
+ 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`;
3405
3471
  });
3406
3472
  }
3407
3473
  refreshPopoverContent() {
3408
- var n;
3474
+ var n, o;
3409
3475
  if (!this.popoverEl) return;
3410
3476
  const t = this.popoverEl.querySelectorAll(".gradient-type-tab");
3411
- t.forEach((o) => o.classList.remove("active"));
3477
+ t.forEach((a) => a.classList.remove("active"));
3412
3478
  const e = t[0], i = t[1];
3413
- ((n = this.value) == null ? void 0 : n.type) === "solid" ? e.classList.add("active") : i.classList.add("active"), this.popoverEl.offsetHeight;
3479
+ ((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;
3414
3480
  const s = this.popoverEl.querySelector(".gradient-editor-content");
3415
3481
  s && this.updatePopoverContent(s);
3416
3482
  }
3417
3483
  closePopover() {
3418
- !this.popoverEl || !this.isPopoverOpen || (this.isPopoverOpen = !1, this.popoverEl.style.display = "none", document.removeEventListener("click", this.onBackgroundClick, !0), this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null), N.openInstance === this && (N.openInstance = null));
3484
+ if (!(!this.popoverEl || !this.isPopoverOpen)) {
3485
+ 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") {
3486
+ const t = N(this.value);
3487
+ B.addColor(t, "gradient");
3488
+ }
3489
+ this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null), V.openInstance === this && (V.openInstance = null);
3490
+ }
3491
+ }
3492
+ commitPendingSolidColor() {
3493
+ this.pendingSolidColor && (this.solidPicker ? this.solidPicker.commitRecentColor() : B.addColor(this.pendingSolidColor, "solid"), this.pendingSolidColor = null);
3419
3494
  }
3420
3495
  handlePaste(t) {
3421
3496
  var i;
@@ -3428,7 +3503,7 @@ const ot = (c) => {
3428
3503
  this.parseAndSet(e.value);
3429
3504
  }
3430
3505
  parseAndSet(t) {
3431
- const e = Q(t.trim());
3506
+ const e = H(t.trim());
3432
3507
  e && this.setValue(e);
3433
3508
  }
3434
3509
  triggerChange() {
@@ -3439,22 +3514,25 @@ const ot = (c) => {
3439
3514
  return this.element;
3440
3515
  }
3441
3516
  getValue() {
3442
- return this.value ? this.forText ? this.cssForTextValue() : P(this.value) : this.forText ? {} : "";
3517
+ return this.value ? N(this.value) : "";
3443
3518
  }
3444
3519
  getCSSValue() {
3445
- return this.value ? P(this.value) : "";
3520
+ return this.value ? N(this.value) : "";
3521
+ }
3522
+ getCSSForText() {
3523
+ return this.value ? this.cssForTextValue() : {};
3446
3524
  }
3447
3525
  getRawValue() {
3448
3526
  return this.value;
3449
3527
  }
3450
3528
  };
3451
- N.openInstance = null;
3452
- let rt = N;
3453
- const Yt = `
3529
+ V.openInstance = null;
3530
+ let ct = V;
3531
+ const Kt = `
3454
3532
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3455
3533
  <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"/>
3456
3534
  </svg>
3457
- `, Kt = `
3535
+ `, Yt = `
3458
3536
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3459
3537
  <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"/>
3460
3538
  </svg>
@@ -3467,16 +3545,16 @@ class Ee extends T {
3467
3545
  settings: {
3468
3546
  size: new I({
3469
3547
  title: "Size",
3470
- icon: Kt,
3548
+ icon: Yt,
3471
3549
  default: (t == null ? void 0 : t.size) ?? 0,
3472
3550
  suffix: "px"
3473
3551
  }),
3474
- color: new H({
3552
+ color: new P({
3475
3553
  default: (t == null ? void 0 : t.color) ?? "0, 0, 30"
3476
3554
  }),
3477
3555
  radius: new I({
3478
3556
  title: "Radius",
3479
- icon: Yt,
3557
+ icon: Kt,
3480
3558
  default: (t == null ? void 0 : t.radius) ?? 12,
3481
3559
  suffix: "px"
3482
3560
  })
@@ -3516,10 +3594,10 @@ class be extends T {
3516
3594
  collapsed: i.collapsed,
3517
3595
  settings: (() => {
3518
3596
  const s = {
3519
- color: new H({
3597
+ color: new P({
3520
3598
  default: i.colorDefault ?? "0, 0, 30"
3521
3599
  }),
3522
- fontFamily: new it({
3600
+ fontFamily: new et({
3523
3601
  title: "Font",
3524
3602
  icon: Qt,
3525
3603
  default: i.fontFamilyDefault ?? "Satoshi",
@@ -3532,7 +3610,7 @@ class be extends T {
3532
3610
  getOptions: i.fontFamilyGetOptions,
3533
3611
  getOptionsAsync: i.fontFamilyGetOptionsAsync
3534
3612
  }),
3535
- fontWeight: new it({
3613
+ fontWeight: new et({
3536
3614
  title: "Weight",
3537
3615
  icon: te,
3538
3616
  default: i.fontWeightDefault ?? "400",
@@ -3554,7 +3632,7 @@ class be extends T {
3554
3632
  };
3555
3633
  return e ? {
3556
3634
  ...s,
3557
- align: new It({
3635
+ align: new Nt({
3558
3636
  title: "Align",
3559
3637
  default: i.alignDefault ?? "center"
3560
3638
  })
@@ -3574,7 +3652,7 @@ class be extends T {
3574
3652
  `;
3575
3653
  }
3576
3654
  }
3577
- class _ extends b {
3655
+ class _ extends w {
3578
3656
  constructor(t) {
3579
3657
  super({
3580
3658
  ...t,
@@ -3678,14 +3756,14 @@ class xe extends T {
3678
3756
  title: "Background Image",
3679
3757
  collapsed: t == null ? void 0 : t.collapsed,
3680
3758
  settings: {
3681
- backgroundImage: new ht({
3759
+ backgroundImage: new pt({
3682
3760
  ...t == null ? void 0 : t.uploadProps,
3683
3761
  default: (t == null ? void 0 : t.backgroundImage) ?? ""
3684
3762
  }),
3685
- opacity: new Mt({
3763
+ opacity: new St({
3686
3764
  default: (t == null ? void 0 : t.opacity) ?? 100
3687
3765
  }),
3688
- backgroundColor: new H({
3766
+ backgroundColor: new P({
3689
3767
  default: (t == null ? void 0 : t.backgroundColor) ?? "0, 0, 30"
3690
3768
  })
3691
3769
  }
@@ -3712,16 +3790,16 @@ class xe extends T {
3712
3790
  }
3713
3791
  }
3714
3792
  export {
3715
- It as AlignSetting,
3793
+ Nt as AlignSetting,
3716
3794
  ye as AnimationSetting,
3717
3795
  xe as BackgroundSettingSet,
3718
3796
  Ee as BorderSettingSet,
3719
3797
  ce as ButtonSetting,
3720
3798
  M as ColorSetting,
3721
- H as ColorWithOpacitySetting,
3799
+ P as ColorWithOpacitySetting,
3722
3800
  he as DimensionSetting,
3723
3801
  me as GapSetting,
3724
- rt as GradientSetting,
3802
+ ct as GradientSetting,
3725
3803
  be as HeaderTypographySettingSet,
3726
3804
  pe as HeightSetting,
3727
3805
  re as HtmlSetting,
@@ -3730,22 +3808,22 @@ export {
3730
3808
  ve as MarginTopSetting,
3731
3809
  Ce as MultiLanguageSetting,
3732
3810
  I as NumberSetting,
3733
- Mt as OpacitySetting,
3811
+ St as OpacitySetting,
3734
3812
  ue as SelectApiSettings,
3735
- it as SelectSetting,
3736
- b as Setting,
3813
+ et as SelectSetting,
3814
+ w as Setting,
3737
3815
  T as SettingGroup,
3738
- wt as StringSetting,
3739
- Et as TabSettingGroup,
3740
- Et as TabsSettingGroup,
3816
+ xt as StringSetting,
3817
+ bt as TabSettingGroup,
3818
+ bt as TabsSettingGroup,
3741
3819
  ge as Toggle,
3742
- ht as UploadSetting,
3820
+ pt as UploadSetting,
3743
3821
  de as WidthSetting,
3744
3822
  le as asSettingGroupWithSettings,
3745
- bt as createSettingGroup,
3823
+ wt as createSettingGroup,
3746
3824
  ae as createTabSettingGroup,
3747
- D as isSetting,
3748
- nt as isSettingChild,
3825
+ R as isSetting,
3826
+ ot as isSettingChild,
3749
3827
  L as isSettingGroup,
3750
3828
  j as iterateSettings
3751
3829
  };