builder-settings-types 0.0.267 → 0.0.269

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,35 +1,35 @@
1
- const rt = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
2
- let ot = (p = 21) => {
1
+ const ft = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
2
+ let dt = (p = 21) => {
3
3
  let t = "", e = crypto.getRandomValues(new Uint8Array(p |= 0));
4
4
  for (; p--; )
5
- t += rt[e[p] & 63];
5
+ t += ft[e[p] & 63];
6
6
  return t;
7
7
  };
8
- function ct(p) {
8
+ function vt(p) {
9
9
  let t = 0, e = p.parentElement;
10
10
  for (; e; )
11
11
  e.classList.contains("setting-group") && e !== p && t++, e = e.parentElement;
12
12
  return t;
13
13
  }
14
- function Z(p, t) {
14
+ function tt(p, t) {
15
15
  const e = Math.min(Math.max(t, 0), 5);
16
16
  p.setAttribute("data-nesting-level", e.toString()), e > 0 ? p.style.setProperty("--visual-indent", `${e * 2}px`) : (p.style.removeProperty("--visual-indent"), p.style.marginLeft = "");
17
17
  }
18
- function tt(p, t = 0) {
18
+ function ot(p, t = 0) {
19
19
  p.querySelectorAll(":scope > .setting-group-content > .setting-group").forEach((i) => {
20
20
  const s = i, n = t + 1;
21
- Z(s, n), tt(s, n);
21
+ tt(s, n), ot(s, n);
22
22
  });
23
23
  }
24
- const ht = {
24
+ const Ct = {
25
25
  maxLevel: 5,
26
26
  spacingMultiplier: 1,
27
27
  visualIndentMultiplier: 2,
28
28
  enableAutoDetection: !0
29
29
  };
30
- class dt {
30
+ class yt {
31
31
  constructor(t = {}) {
32
- this.observedElements = /* @__PURE__ */ new Set(), this.config = { ...ht, ...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 dt {
63
63
  * Update nesting for a specific element
64
64
  */
65
65
  updateElementNesting(t) {
66
- const e = ct(t);
66
+ const e = vt(t);
67
67
  this.applyNestingWithConfig(t, e);
68
68
  }
69
69
  /**
@@ -111,20 +111,20 @@ class dt {
111
111
  this.observer && (this.observer.disconnect(), this.observer = void 0), this.observedElements.clear();
112
112
  }
113
113
  }
114
- const it = new dt();
115
- function X(p) {
114
+ const rt = new yt();
115
+ function et(p) {
116
116
  if (p === null || typeof p != "object") return p;
117
117
  if (p instanceof Date) return new Date(p.getTime());
118
- if (p instanceof Array) return p.map((t) => X(t));
118
+ if (p instanceof Array) return p.map((t) => et(t));
119
119
  if (typeof p == "object") {
120
120
  const t = {};
121
121
  for (const e in p)
122
- Object.prototype.hasOwnProperty.call(p, e) && (t[e] = X(p[e]));
122
+ Object.prototype.hasOwnProperty.call(p, e) && (t[e] = et(p[e]));
123
123
  return t;
124
124
  }
125
125
  return p;
126
126
  }
127
- function pt(p) {
127
+ function Et(p) {
128
128
  switch (p) {
129
129
  case "number":
130
130
  return 0;
@@ -142,15 +142,15 @@ function pt(p) {
142
142
  return "";
143
143
  }
144
144
  }
145
- class I {
145
+ class T {
146
146
  constructor(t = {}) {
147
- this.props = t, this.dataPropsPath = "", this.id = t.id || ot(), 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 || dt(), 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, I.DefaultUploadUrl = t;
150
+ globalThis.DefaultUploadUrl = t, T.DefaultUploadUrl = t;
151
151
  }
152
152
  static SetDefaultLanguage(t) {
153
- globalThis.DefaultLanguage = t, I.DefaultLanguage = t;
153
+ globalThis.DefaultLanguage = t, T.DefaultLanguage = t;
154
154
  }
155
155
  destroy() {
156
156
  throw new Error("Method not implemented.");
@@ -171,8 +171,8 @@ class I {
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 = X(this.props), i = new t(e);
175
- return i.value = X(this.value), i;
174
+ const t = this.constructor, e = et(this.props), i = new t(e);
175
+ return i.value = et(this.value), i;
176
176
  }
177
177
  createInput(t) {
178
178
  t = { ...this.props.inputProps, ...t };
@@ -192,7 +192,7 @@ class I {
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 || pt(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,31 +233,31 @@ class I {
233
233
  return i.className = "input-icon " + (e || ""), i.innerHTML = t, i;
234
234
  }
235
235
  }
236
- function j(p) {
237
- return p instanceof I;
236
+ function X(p) {
237
+ return p instanceof T;
238
238
  }
239
- function N(p) {
239
+ function H(p) {
240
240
  return p instanceof z;
241
241
  }
242
- function st(p) {
243
- return j(p) || N(p);
242
+ function ct(p) {
243
+ return X(p) || H(p);
244
244
  }
245
- function q(p, t) {
245
+ function K(p, t) {
246
246
  for (const e in p)
247
247
  if (Object.prototype.hasOwnProperty.call(p, e)) {
248
248
  const i = p[e];
249
249
  t(e, i);
250
250
  }
251
251
  }
252
- const Y = class Y {
252
+ const it = class it {
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 || ot(), 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 || dt(), this.title = t.title, this.settings = t.settings, this.isCollapsed = t.collapsed ?? !1, this.isMain = t.main ?? !1, this.custom = t.custom ?? !1, this.nestingLevel = 0, this.includeGetJson = t.includeGetJson ?? !0, this.addItemCfg = t.addItem, this.deleteItemCfg = t.deleteItem, this.dataProps = t.dataProps, this.dataPropsPath = t.dataProps || "", this.hide = t.hide ?? !1, Object.assign(this, t.settings), this.initialValues = this.getValues(), this.originalDefaultValues = this.getDefaultValues(), this.propagateNestingLevel(), this.propagateDataPropsPath();
256
256
  }
257
257
  propagateNestingLevel() {
258
258
  const t = this.nestingLevel + 1;
259
- q(this.settings, (e, i) => {
260
- N(i) && (i.nestingLevel = t, i.propagateNestingLevel());
259
+ K(this.settings, (e, i) => {
260
+ H(i) && (i.nestingLevel = t, i.propagateNestingLevel());
261
261
  });
262
262
  }
263
263
  getNestingLevel() {
@@ -273,18 +273,18 @@ const Y = class Y {
273
273
  this.dataPropsPath = t, this.propagateDataPropsPath();
274
274
  }
275
275
  propagateDataPropsPath() {
276
- q(this.settings, (t, e) => {
276
+ K(this.settings, (t, e) => {
277
277
  const i = String(t), s = this.dataPropsPath ? `${this.dataPropsPath}_${i}` : i;
278
- (N(e) || j(e) && typeof e.setDataPropsPath == "function") && e.setDataPropsPath(s);
278
+ (H(e) || X(e) && typeof e.setDataPropsPath == "function") && e.setDataPropsPath(s);
279
279
  });
280
280
  }
281
281
  updateNestingStyles() {
282
- this.elementRef && (Z(this.elementRef, this.nestingLevel), tt(this.elementRef, this.nestingLevel));
282
+ this.elementRef && (tt(this.elementRef, this.nestingLevel), ot(this.elementRef, this.nestingLevel));
283
283
  }
284
284
  forceChildUIRefresh() {
285
285
  Object.entries(this.settings).forEach(([t, e]) => {
286
286
  try {
287
- if (N(e)) {
287
+ if (H(e)) {
288
288
  const i = e.getValues();
289
289
  e.setValue(i);
290
290
  } else if (typeof e.setValue == "function") {
@@ -328,7 +328,7 @@ const Y = class Y {
328
328
  }
329
329
  clone() {
330
330
  const t = {};
331
- q(this.settings, (s, n) => {
331
+ K(this.settings, (s, n) => {
332
332
  const o = String(s);
333
333
  typeof n.clone == "function" ? t[o] = n.clone() : (console.warn(
334
334
  `Setting with key '${o}' does not have a clone method. Copying reference.`
@@ -343,8 +343,9 @@ const Y = class Y {
343
343
  includeGetJson: this.includeGetJson,
344
344
  addItem: this.addItemCfg,
345
345
  deleteItem: this.deleteItemCfg,
346
- dataProps: this.dataProps
347
- }, i = gt(e);
346
+ dataProps: this.dataProps,
347
+ hide: this.hide
348
+ }, i = wt(e);
348
349
  return i.initialValues = this.getValues(), i;
349
350
  }
350
351
  resetDefault() {
@@ -354,7 +355,7 @@ const Y = class Y {
354
355
  setMobileValues(t) {
355
356
  !t || typeof t != "object" || (Object.entries(t).forEach(([e, i]) => {
356
357
  const s = this.settings[e];
357
- s && (N(s) || j(s)) && typeof s.setMobileValue == "function" && s.setMobileValue(i);
358
+ s && (H(s) || X(s)) && typeof s.setMobileValue == "function" && s.setMobileValue(i);
358
359
  }), this.setValue(t), this.onChange && this.onChange(this.getValues()));
359
360
  }
360
361
  getMobileValues(t) {
@@ -363,7 +364,7 @@ const Y = class Y {
363
364
  for (const i in this.settings)
364
365
  if (Object.prototype.hasOwnProperty.call(this.settings, i)) {
365
366
  const s = this.settings[i];
366
- if (N(s))
367
+ if (H(s))
367
368
  e[i] = s.getMobileValues();
368
369
  else {
369
370
  const n = s;
@@ -374,7 +375,7 @@ const Y = class Y {
374
375
  } else {
375
376
  const e = this.settings[t];
376
377
  if (!e) return;
377
- if (N(e)) return e.getMobileValues();
378
+ if (H(e)) return e.getMobileValues();
378
379
  const i = e;
379
380
  return i.mobileValue !== void 0 ? i.mobileValue : i.value;
380
381
  }
@@ -390,14 +391,14 @@ const Y = class Y {
390
391
  Object.keys(s).length > 0 && (this.lastChangeTime = Date.now(), this.initialValues = i, t(i), this.updateVisibility()), this.isHandlingChange = !1;
391
392
  }, 50));
392
393
  };
393
- return this.changeHandlers.clear(), q(this.settings, (i, s) => {
394
+ return this.changeHandlers.clear(), K(this.settings, (i, s) => {
394
395
  var n;
395
- if (N(s))
396
+ if (H(s))
396
397
  s.setOnChange(() => {
397
398
  const o = this.getValues();
398
399
  this.initialValues = o, t(o);
399
400
  }), this.changeHandlers.add(() => t(this.getValues()));
400
- else if (j(s)) {
401
+ else if (X(s)) {
401
402
  const o = () => e();
402
403
  this.changeHandlers.add(o), s.setOnChange(o);
403
404
  } else {
@@ -420,10 +421,10 @@ const Y = class Y {
420
421
  const o = i.slice(this.addItemCfg.keyPrefix.length), a = Number(o);
421
422
  if (Number.isFinite(a)) {
422
423
  const l = this.addItemCfg.createItem(a);
423
- st(l) && (this.addSetting(i, l), n = l);
424
+ ct(l) && (this.addSetting(i, l), n = l);
424
425
  }
425
426
  }
426
- n && (N(n) || j(n)) && typeof n.setValue == "function" && n.setValue(s);
427
+ n && (H(n) || X(n)) && typeof n.setValue == "function" && n.setValue(s);
427
428
  }), setTimeout(() => {
428
429
  this.forceChildUIRefresh();
429
430
  }, 0);
@@ -437,7 +438,7 @@ const Y = class Y {
437
438
  const s = this.getValues();
438
439
  this.initialValues = s, (n = this.onChange) == null || n.call(this, s), this.updateVisibility();
439
440
  };
440
- N(t) ? t.setOnChange(() => e()) : j(t) ? t.setOnChange(() => e()) : (i = t.setOnChange) == null || i.call(t, () => e());
441
+ H(t) ? t.setOnChange(() => e()) : X(t) ? t.setOnChange(() => e()) : (i = t.setOnChange) == null || i.call(t, () => e());
441
442
  }
442
443
  addSetting(t, e) {
443
444
  var s, n;
@@ -446,14 +447,14 @@ const Y = class Y {
446
447
  ".setting-group-content"
447
448
  );
448
449
  if (o) {
449
- N(e) && typeof e.setNestingLevel == "function" && e.setNestingLevel(this.nestingLevel + 1);
450
+ H(e) && typeof e.setNestingLevel == "function" && e.setNestingLevel(this.nestingLevel + 1);
450
451
  const a = e.draw(), l = this.deleteItemCfg ?? this.addItemCfg;
451
452
  if (l) {
452
453
  const h = l.keyPrefix ?? ((s = this.addItemCfg) == null ? void 0 : s.keyPrefix);
453
454
  h && t.startsWith(h) && this.addDeleteButtonToElement(a, t);
454
455
  }
455
456
  const r = o.querySelector(".sg-add-button-bottom");
456
- r ? o.insertBefore(a, r) : o.appendChild(a), it.trackElement(a), Z(a, this.nestingLevel + 1), tt(a, this.nestingLevel + 1);
457
+ r ? o.insertBefore(a, r) : o.appendChild(a), rt.trackElement(a), tt(a, this.nestingLevel + 1), ot(a, this.nestingLevel + 1);
457
458
  const c = a.style.display;
458
459
  a.style.display = "none", a.offsetHeight, a.style.display = c, this.updateNestingStyles();
459
460
  }
@@ -636,7 +637,7 @@ const Y = class Y {
636
637
  for (const i in this.settings)
637
638
  if (Object.prototype.hasOwnProperty.call(this.settings, i)) {
638
639
  const s = this.settings[i];
639
- if (N(s))
640
+ if (H(s))
640
641
  e[i] = s.getValues();
641
642
  else {
642
643
  const n = s;
@@ -647,35 +648,36 @@ const Y = class Y {
647
648
  } else {
648
649
  const e = this.settings[t];
649
650
  if (!e) return;
650
- if (N(e)) return e.getValues();
651
+ if (H(e)) return e.getValues();
651
652
  const i = e;
652
653
  return i.getValue ? i.getValue() : i.value;
653
654
  }
654
655
  }
655
656
  getValuesForJson(t) {
657
+ var e;
656
658
  if (t === void 0) {
657
659
  if (this.includeGetJson === !1) return null;
658
- const e = {};
659
- for (const i in this.settings)
660
- if (Object.prototype.hasOwnProperty.call(this.settings, i)) {
661
- const s = this.settings[i];
662
- if (N(s)) {
663
- const n = s.getValuesForJson();
664
- n !== null && (e[i] = n);
660
+ const i = {};
661
+ for (const s in this.settings)
662
+ if (Object.prototype.hasOwnProperty.call(this.settings, s)) {
663
+ const n = this.settings[s];
664
+ if (H(n)) {
665
+ const o = n.getValuesForJson();
666
+ o !== null && (i[s] = o);
665
667
  } else {
666
- const n = s;
667
- n.includeGetJson !== !1 && (e[i] = n.value);
668
+ const o = n;
669
+ o.includeGetJson !== !1 && (i[s] = o.value);
668
670
  }
669
671
  }
670
- return this.hide && (e.hide = !0), e;
672
+ return (this.hide === !0 || ((e = this == null ? void 0 : this.groupProps) == null ? void 0 : e.hide) === !0) && (i.hide = !0), i;
671
673
  } else {
672
- const e = this.settings[t];
673
- if (!e) return;
674
- if (N(e))
675
- return e.includeGetJson === !1 ? null : e.getValuesForJson();
674
+ const i = this.settings[t];
675
+ if (!i) return;
676
+ if (H(i))
677
+ return i.includeGetJson === !1 ? null : i.getValuesForJson();
676
678
  {
677
- const i = e;
678
- return i.includeGetJson === !1 ? null : i.value;
679
+ const s = i;
680
+ return s.includeGetJson === !1 ? null : s.value;
679
681
  }
680
682
  }
681
683
  }
@@ -685,7 +687,7 @@ const Y = class Y {
685
687
  for (const i in this.settings)
686
688
  if (Object.prototype.hasOwnProperty.call(this.settings, i)) {
687
689
  const s = this.settings[i];
688
- if (N(s))
690
+ if (H(s))
689
691
  e[i] = s.getDefaultValues();
690
692
  else {
691
693
  const n = s;
@@ -696,14 +698,14 @@ const Y = class Y {
696
698
  } else {
697
699
  const e = this.settings[t];
698
700
  if (!e) return;
699
- if (N(e)) return e.getDefaultValues();
701
+ if (H(e)) return e.getDefaultValues();
700
702
  const i = e;
701
703
  return i.default !== void 0 ? i.default : i.value;
702
704
  }
703
705
  }
704
706
  draw() {
705
707
  const t = document.createElement("div");
706
- 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"), Z(t, this.nestingLevel);
708
+ t.className = "setting-group", t.id = `setting-group-${this.id}`, it.hiddenElements.add(t), this.hide && (t.style.display = "none"), this.isMain && t.classList.add("main-group"), this.custom && t.classList.add("custom_class"), tt(t, this.nestingLevel);
707
709
  const e = document.createElement("div");
708
710
  e.className = "setting-group-title", this.isCollapsed && e.classList.add("collapsed-view"), e.setAttribute("role", "button"), e.setAttribute(
709
711
  "aria-expanded",
@@ -735,9 +737,9 @@ const Y = class Y {
735
737
  for (const c in this.settings)
736
738
  if (Object.prototype.hasOwnProperty.call(this.settings, c)) {
737
739
  const h = this.settings[c];
738
- N(h) && typeof h.setNestingLevel == "function" && h.setNestingLevel(this.nestingLevel + 1);
740
+ H(h) && typeof h.setNestingLevel == "function" && h.setNestingLevel(this.nestingLevel + 1);
739
741
  const d = h.draw();
740
- N(h) && h.deleteItemCfg && this.addDeleteButtonToElement(
742
+ H(h) && h.deleteItemCfg && this.addDeleteButtonToElement(
741
743
  d,
742
744
  c,
743
745
  h
@@ -758,14 +760,14 @@ const Y = class Y {
758
760
  </svg>`;
759
761
  c.innerHTML = `${h}<span style="margin-left:4px;">${this.addItemCfg.buttonLabel ?? "Add"}</span>`, c.addEventListener("click", (d) => {
760
762
  d.stopPropagation(), d.preventDefault();
761
- const u = this.getNextIndexFromPrefix(this.addItemCfg.keyPrefix), g = this.addItemCfg.createItem(u);
762
- if (st(g)) {
763
- const C = `${this.addItemCfg.keyPrefix}${u}`;
764
- this.addSetting(C, g);
763
+ const C = this.getNextIndexFromPrefix(this.addItemCfg.keyPrefix), u = this.addItemCfg.createItem(C);
764
+ if (ct(u)) {
765
+ const f = `${this.addItemCfg.keyPrefix}${C}`;
766
+ this.addSetting(f, u);
765
767
  }
766
768
  }), a.appendChild(c);
767
769
  }
768
- return e.appendChild(i), e.appendChild(n), t.appendChild(e), t.appendChild(a), this.elementRef = t, it.trackElement(t), setTimeout(() => {
770
+ return e.appendChild(i), e.appendChild(n), t.appendChild(e), t.appendChild(a), this.elementRef = t, rt.trackElement(t), setTimeout(() => {
769
771
  this.updateNestingStyles();
770
772
  }, 0), this.pendingBlurHandler && (this.pendingBlurHandler = null), t;
771
773
  }
@@ -807,12 +809,12 @@ const Y = class Y {
807
809
  }
808
810
  }
809
811
  };
810
- Y.hiddenElements = /* @__PURE__ */ new Set();
811
- let z = Y;
812
- function zt(p) {
813
- return new ut(p);
812
+ it.hiddenElements = /* @__PURE__ */ new Set();
813
+ let z = it;
814
+ function Zt(p) {
815
+ return new bt(p);
814
816
  }
815
- class ut extends z {
817
+ class bt extends z {
816
818
  constructor(t) {
817
819
  super(t);
818
820
  const e = Object.keys(this.settings)[0];
@@ -853,7 +855,7 @@ class ut extends z {
853
855
  const c = document.createElement("div");
854
856
  c.className = "tab-panel", this.contentContainers[a] = c;
855
857
  const h = this.settings[a];
856
- h && (N(h) && typeof h.setNestingLevel == "function" && h.setNestingLevel(this.getNestingLevel() + 1), c.appendChild(
858
+ h && (H(h) && typeof h.setNestingLevel == "function" && h.setNestingLevel(this.getNestingLevel() + 1), c.appendChild(
857
859
  h.draw()
858
860
  )), o.appendChild(c), l === 0 && !this.activeTabId && (this.activeTabId = a);
859
861
  }), e.appendChild(i), e.appendChild(n), e.appendChild(o), !this.activeTabId) {
@@ -863,13 +865,13 @@ class ut extends z {
863
865
  return this.updateTabUI(), t;
864
866
  }
865
867
  }
866
- function gt(p) {
868
+ function wt(p) {
867
869
  return new z(p);
868
870
  }
869
- function Ut(p) {
871
+ function Yt(p) {
870
872
  return p;
871
873
  }
872
- class mt extends I {
874
+ class xt extends T {
873
875
  constructor(t = {}) {
874
876
  super(t), this.inputType = "text", t.onChange && this.setOnChange(t.onChange);
875
877
  }
@@ -889,18 +891,18 @@ class mt extends I {
889
891
  });
890
892
  }
891
893
  }
892
- const ft = "<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>";
893
- class R extends mt {
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 W extends xt {
894
896
  constructor(t) {
895
897
  super({
896
898
  ...t,
897
- icon: t.icon || ft,
899
+ icon: t.icon || Lt,
898
900
  title: t.title || "Color",
899
- default: t.default ? R.normalizeColorValue(t.default) : "#000000"
901
+ default: t.default ? W.normalizeColorValue(t.default) : "#000000"
900
902
  }), this.inputType = "color", this.element = null, this.colorInputEl = null, this.textInputEl = null, this.detectChange = t.detectChange;
901
903
  }
902
904
  static normalizeColorValue(t) {
903
- return t.startsWith("#") ? R.normalizeHexValue(t) : t.includes(",") ? R.rgbToHexStatic(t) : R.normalizeHexValue(t);
905
+ return t.startsWith("#") ? W.normalizeHexValue(t) : t.includes(",") ? W.rgbToHexStatic(t) : W.normalizeHexValue(t);
904
906
  }
905
907
  static normalizeHexValue(t) {
906
908
  return t = t.replace("#", ""), t.length === 3 && (t = t.split("").map((e) => e + e).join("")), t.length !== 6 ? (console.warn(`Invalid hex value "${t}", using default "#000000"`), "#000000") : /^[0-9A-Fa-f]{6}$/.test(t) ? `#${t.toLowerCase()}` : (console.warn(`Invalid hex value "${t}", using default "#000000"`), "#000000");
@@ -921,7 +923,7 @@ class R extends mt {
921
923
  return;
922
924
  }
923
925
  if (typeof t == "string") {
924
- const e = R.normalizeColorValue(t);
926
+ const e = W.normalizeColorValue(t);
925
927
  this.value = e, this.colorInputEl && (this.colorInputEl.value = e), this.textInputEl && (this.textInputEl.value = e), this.onChange && this.onChange(e), this.props.detectChange && this.props.detectChange(e);
926
928
  } else
927
929
  this.value = "#000000", this.colorInputEl && (this.colorInputEl.value = "#000000"), this.textInputEl && (this.textInputEl.value = "#000000"), this.onChange && this.onChange("#000000"), this.props.detectChange && this.props.detectChange("#000000");
@@ -964,16 +966,16 @@ class R extends mt {
964
966
  var c, h;
965
967
  let r = l.target.value.trim();
966
968
  if (this.textInputEl && i(this.textInputEl)) {
967
- const d = R.normalizeColorValue(r);
969
+ const d = W.normalizeColorValue(r);
968
970
  this.value = d, (c = this.onChange) == null || c.call(this, d), (h = this.detectChange) == null || h.call(this, d), this.colorInputEl && (this.colorInputEl.value = d), n.style.backgroundColor = d;
969
971
  }
970
972
  }), this.colorInputEl.addEventListener("input", (l) => {
971
973
  var h, d;
972
- const r = l.target.value, c = R.normalizeColorValue(r);
974
+ const r = l.target.value, c = W.normalizeColorValue(r);
973
975
  this.value = c, (h = this.onChange) == null || h.call(this, c), (d = this.detectChange) == null || d.call(this, c), this.textInputEl && (this.textInputEl.value = c), n.style.backgroundColor = c, e.classList.remove("error");
974
976
  }), this.colorInputEl.addEventListener("change", (l) => {
975
977
  var h, d;
976
- const r = l.target.value, c = R.normalizeColorValue(r);
978
+ const r = l.target.value, c = W.normalizeColorValue(r);
977
979
  this.value = c, (h = this.onChange) == null || h.call(this, c), (d = this.detectChange) == null || d.call(this, c), this.textInputEl && (this.textInputEl.value = c), n.style.backgroundColor = c;
978
980
  }), e.appendChild(s), e.appendChild(n), e.appendChild(a), t.appendChild(e), this.element = t, t;
979
981
  }
@@ -982,7 +984,7 @@ class R extends mt {
982
984
  }
983
985
  // Helper method to get normalized hex value
984
986
  getNormalizedValue() {
985
- return this.value ? R.normalizeColorValue(this.value) : "#000000";
987
+ return this.value ? W.normalizeColorValue(this.value) : "#000000";
986
988
  }
987
989
  // Helper method to check if current value is valid hex
988
990
  isValidHex() {
@@ -993,20 +995,20 @@ class R extends mt {
993
995
  return this.isValidHex() ? this.hexToRgb(this.value) : "0, 0, 0";
994
996
  }
995
997
  }
996
- const vt = `
998
+ const kt = `
997
999
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
998
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"/>
999
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"/>
1000
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"/>
1001
1003
  </svg>`;
1002
- class U extends I {
1004
+ class j extends T {
1003
1005
  constructor(t = {}) {
1004
1006
  super({
1005
1007
  ...t,
1006
- icon: t.icon || vt,
1008
+ icon: t.icon || kt,
1007
1009
  title: t.title || "Color & Opacity",
1008
1010
  default: t.default || "#000000FF"
1009
- }), 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 = U.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 = j.normalizeHexWithOpacity(this.value));
1010
1012
  }
1011
1013
  static normalizeHexWithOpacity(t) {
1012
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");
@@ -1024,7 +1026,7 @@ class U extends I {
1024
1026
  return `#${i}${n}`;
1025
1027
  }
1026
1028
  setValue(t) {
1027
- t === void 0 || t === "" ? this.value = "#000000FF" : this.value = U.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 = j.normalizeHexWithOpacity(t), this.updateInputElements(), this.updateColorPreview(), this.onChange && this.onChange(this.value), this.detectChange && this.detectChange(this.value);
1028
1030
  }
1029
1031
  updateInputElements() {
1030
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()));
@@ -1035,7 +1037,7 @@ class U extends I {
1035
1037
  this.colorPreviewEl.style.backgroundColor = `rgba(${s}, ${n}, ${o}, ${e})`;
1036
1038
  }
1037
1039
  handleColorChange(t) {
1038
- const e = this.getOpacityPercent(), i = U.combineColorOpacity(
1040
+ const e = this.getOpacityPercent(), i = j.combineColorOpacity(
1039
1041
  t,
1040
1042
  e
1041
1043
  );
@@ -1046,7 +1048,7 @@ class U extends I {
1046
1048
  return e || i ? (this.setValue(t), !0) : !1;
1047
1049
  }
1048
1050
  handleOpacityChange(t) {
1049
- const e = this.getRgbColor(), i = Math.max(0, Math.min(100, t)), s = U.combineColorOpacity(
1051
+ const e = this.getRgbColor(), i = Math.max(0, Math.min(100, t)), s = j.combineColorOpacity(
1050
1052
  e,
1051
1053
  i
1052
1054
  );
@@ -1121,7 +1123,7 @@ class U extends I {
1121
1123
  };
1122
1124
  }
1123
1125
  }
1124
- class jt extends I {
1126
+ class Kt extends T {
1125
1127
  constructor(t = {}) {
1126
1128
  super(t), this.inputType = "text", t.onChange && this.setOnChange(t.onChange);
1127
1129
  }
@@ -1153,7 +1155,7 @@ class jt extends I {
1153
1155
  return e.addEventListener("input", i), e.addEventListener("change", i), e.addEventListener("blur", s), t.appendChild(e), t;
1154
1156
  }
1155
1157
  }
1156
- class G extends I {
1158
+ class U extends T {
1157
1159
  constructor(t) {
1158
1160
  super(t), this.inputType = "number", this.inputElement = null, this.mobileValue = t.mobile, this.validateProps(), this.value = this.validateValue(this.value);
1159
1161
  }
@@ -1212,12 +1214,12 @@ class G extends I {
1212
1214
  );
1213
1215
  }
1214
1216
  }
1215
- const Ct = `
1217
+ const Mt = `
1216
1218
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
1217
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"/>
1218
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"/>
1219
1221
  </svg>`;
1220
- class yt extends G {
1222
+ class St extends U {
1221
1223
  constructor(t = {}) {
1222
1224
  const e = {
1223
1225
  title: "Opacity",
@@ -1226,7 +1228,7 @@ class yt extends G {
1226
1228
  maxValue: 100,
1227
1229
  step: 1,
1228
1230
  default: t.default ?? 100,
1229
- icon: Ct,
1231
+ icon: Mt,
1230
1232
  ...t
1231
1233
  };
1232
1234
  super(e), this.inputType = "number", this.mobileValue = t.mobile;
@@ -1238,12 +1240,12 @@ class yt extends G {
1238
1240
  this.mobileValue = t, t !== void 0 && this.setValue(t);
1239
1241
  }
1240
1242
  }
1241
- const Et = `
1243
+ const It = `
1242
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">
1243
1245
  <polyline points="6 9 12 15 18 9"></polyline>
1244
1246
  </svg>
1245
1247
  `;
1246
- class et extends I {
1248
+ class at extends T {
1247
1249
  constructor(t = {}) {
1248
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) {
1249
1251
  const e = this._options.findIndex((i) => i.value === this.value);
@@ -1287,7 +1289,7 @@ class et extends I {
1287
1289
  a.onclick = (l) => this.selectOption(l, o, e), i.appendChild(a);
1288
1290
  }), document.body.appendChild(i);
1289
1291
  const s = document.createElement("div");
1290
- return s.classList.add("svg-container"), s.innerHTML = Et, 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) => {
1291
1293
  this._options.push(...n), this.isLoading = !1, this.updateOptionsList(), this.updateButtonText();
1292
1294
  }).catch((n) => {
1293
1295
  console.error("Failed to fetch async options:", n), this.isLoading = !1, this.updateButtonText("Failed to load options");
@@ -1356,7 +1358,7 @@ class et extends I {
1356
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();
1357
1359
  }
1358
1360
  }
1359
- class bt extends I {
1361
+ class Nt extends T {
1360
1362
  constructor(t = {}) {
1361
1363
  super(t), this.inputType = "button", this.value || (this.value = "center");
1362
1364
  }
@@ -1412,7 +1414,7 @@ class bt extends I {
1412
1414
  }), t.appendChild(i), t;
1413
1415
  }
1414
1416
  }
1415
- class _t extends I {
1417
+ class Qt extends T {
1416
1418
  constructor(t) {
1417
1419
  super(t), this.inputType = "button", this.bgWithAlpha = "rgba(145, 158, 171, 0.08)";
1418
1420
  }
@@ -1441,27 +1443,27 @@ class _t extends I {
1441
1443
  return o.className = "button-setting-wrapper " + (this.props.wrapperClassName || ""), o.appendChild(t), o;
1442
1444
  }
1443
1445
  }
1444
- class qt extends I {
1446
+ class te extends T {
1445
1447
  constructor(t = {}) {
1446
1448
  super(t), this.inputType = { width: "number", height: "number" }, this.aspectRatio = 1, this.isUpdating = !1;
1447
1449
  const e = t.width || 0, i = t.height || 0;
1448
1450
  this.value || (this.value = {
1449
1451
  width: e,
1450
1452
  height: i
1451
- }), this.minWidth = t.minWidth ?? 0, this.maxWidth = t.maxWidth, this.minHeight = t.minHeight ?? 0, this.maxHeight = t.maxHeight, this.locked = t.locked ?? !1, this.value.height > 0 && (this.aspectRatio = this.value.width / this.value.height), this.widthSetting = new G({
1453
+ }), this.minWidth = t.minWidth ?? 0, this.maxWidth = t.maxWidth, this.minHeight = t.minHeight ?? 0, this.maxHeight = t.maxHeight, this.locked = t.locked ?? !1, this.value.height > 0 && (this.aspectRatio = this.value.width / this.value.height), this.widthSetting = new U({
1452
1454
  title: "Width",
1453
1455
  default: this.value.width,
1454
1456
  suffix: "px",
1455
1457
  minValue: this.minWidth,
1456
1458
  maxValue: this.maxWidth,
1457
- icon: wt
1458
- }), this.heightSetting = new G({
1459
+ icon: Vt
1460
+ }), this.heightSetting = new U({
1459
1461
  title: "Height",
1460
1462
  default: this.value.height,
1461
1463
  suffix: "px",
1462
1464
  minValue: this.minHeight,
1463
1465
  maxValue: this.maxHeight,
1464
- icon: xt
1466
+ icon: Tt
1465
1467
  }), this.widthSetting.setOnChange(this.handleWidthChange.bind(this)), this.heightSetting.setOnChange(this.handleHeightChange.bind(this));
1466
1468
  }
1467
1469
  handleWidthChange(t) {
@@ -1555,24 +1557,24 @@ class qt extends I {
1555
1557
  }
1556
1558
  }
1557
1559
  }
1558
- const wt = `<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">
1559
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"/>
1560
- </svg>`, xt = `<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">
1561
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"/>
1562
- </svg>`, Q = `
1564
+ </svg>`, nt = `
1563
1565
  <svg xmlns="http://www.w3.org/2000/svg" width="15" height="16" viewBox="0 0 15 16" fill="none">
1564
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"/>
1565
1567
  </svg>
1566
- `, Lt = `
1568
+ `, Ht = `
1567
1569
  <svg width="91" height="71" viewBox="0 0 91 71" fill="none" xmlns="http://www.w3.org/2000/svg">
1568
1570
  <rect width="91" height="71" rx="4" fill="#F2F4F7"/>
1569
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"/>
1570
1572
  </svg>
1571
- `, kt = `
1573
+ `, Ot = `
1572
1574
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 12 12" fill="none">
1573
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"/>
1574
1576
  </svg>
1575
- `, Mt = `
1577
+ `, Pt = `
1576
1578
  <svg xmlns="http://www.w3.org/2000/svg" width="29" height="29" viewBox="0 0 29 29" fill="none">
1577
1579
  <!-- Top dot -->
1578
1580
  <circle cx="14.5" cy="3" r="1.5" fill="#02CC59" opacity="1"/>
@@ -1592,7 +1594,7 @@ const wt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewB
1592
1594
  <circle cx="6.7" cy="6.7" r="1.5" fill="#02CC59" opacity="0.3"/>
1593
1595
  </svg>
1594
1596
  `;
1595
- class at extends I {
1597
+ class pt extends T {
1596
1598
  constructor(t = {}) {
1597
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();
1598
1600
  }
@@ -1645,7 +1647,7 @@ class at extends I {
1645
1647
  );
1646
1648
  if (t && t !== "") {
1647
1649
  this.showLoading(), s && s instanceof HTMLElement && (s.style.display = "none"), e && e.classList.remove("no-image"), i && (i.innerHTML = `
1648
- <span class="upload-icon">${Q}</span>
1650
+ <span class="upload-icon">${nt}</span>
1649
1651
  <span class="upload-label">Replace</span>
1650
1652
  `);
1651
1653
  const n = () => {
@@ -1656,7 +1658,7 @@ class at extends I {
1656
1658
  this.previewEl.addEventListener("load", n), this.previewEl.addEventListener("error", o), this.previewEl.src = t;
1657
1659
  } else
1658
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 = `
1659
- <span class="upload-icon">${Q}</span>
1661
+ <span class="upload-icon">${nt}</span>
1660
1662
  <span class="upload-label">Upload</span>
1661
1663
  `);
1662
1664
  }
@@ -1689,9 +1691,9 @@ class at extends I {
1689
1691
  const s = this.value && this.value !== "";
1690
1692
  s || i.classList.add("no-image");
1691
1693
  const n = document.createElement("div");
1692
- if (n.className = "preview-placeholder", n.innerHTML = Lt, this.previewWrapper = document.createElement("div"), this.previewWrapper.className = "preview-wrapper", this.loadingSpinner = document.createElement("div"), this.loadingSpinner.className = "loading-spinner", this.loadingSpinner.innerHTML = Mt, 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 = Ht, 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) {
1693
1695
  const a = document.createElement("button");
1694
- a.className = "delete-button", a.type = "button", a.title = "Delete image", a.innerHTML = kt, this.previewWrapper.appendChild(a), a.onclick = (l) => {
1696
+ a.className = "delete-button", a.type = "button", a.title = "Delete image", a.innerHTML = Ot, this.previewWrapper.appendChild(a), a.onclick = (l) => {
1695
1697
  var r;
1696
1698
  l.stopPropagation(), this.value = "", this.updatePreviewState(null), (r = this.onChange) == null || r.call(this, ""), this.hideError();
1697
1699
  };
@@ -1699,7 +1701,7 @@ class at extends I {
1699
1701
  this.previewWrapper.appendChild(this.previewEl);
1700
1702
  const o = document.createElement("button");
1701
1703
  return o.className = "upload-button", this.getDataPropsPath() && o.setAttribute("data-test-id", this.getDataPropsPath()), o.innerHTML = `
1702
- <span class="upload-icon">${Q}</span>
1704
+ <span class="upload-icon">${nt}</span>
1703
1705
  <span class="upload-label">Upload</span>
1704
1706
  `, i.appendChild(n), i.appendChild(this.previewWrapper), i.appendChild(o), t.appendChild(i), s ? this.updatePreviewState(this.value) : this.updatePreviewState(null), o.onclick = () => {
1705
1707
  window.postMessage(
@@ -1712,14 +1714,14 @@ class at extends I {
1712
1714
  }, t;
1713
1715
  }
1714
1716
  }
1715
- class Jt extends G {
1717
+ class ee extends U {
1716
1718
  constructor(t = {}) {
1717
1719
  super({
1718
1720
  ...t,
1719
1721
  title: t.title || "Height",
1720
1722
  suffix: t.suffix || "px",
1721
1723
  minValue: t.minValue ?? 0,
1722
- icon: t.icon || St,
1724
+ icon: t.icon || $t,
1723
1725
  default: t.default ?? 100
1724
1726
  }), this.inputType = "number", this.mobileValue = t.mobile;
1725
1727
  }
@@ -1730,17 +1732,17 @@ class Jt extends G {
1730
1732
  this.mobileValue = t, t !== void 0 && this.setValue(t);
1731
1733
  }
1732
1734
  }
1733
- const St = `<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">
1734
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"/>
1735
1737
  </svg>`;
1736
- class Zt extends G {
1738
+ class ie extends U {
1737
1739
  constructor(t = {}) {
1738
1740
  super({
1739
1741
  ...t,
1740
1742
  title: t.title || "Width",
1741
1743
  suffix: t.suffix || "px",
1742
1744
  minValue: t.minValue ?? 0,
1743
- icon: t.icon || It,
1745
+ icon: t.icon || At,
1744
1746
  default: t.default ?? 100
1745
1747
  }), this.inputType = "number", this.mobileValue = t.mobile;
1746
1748
  }
@@ -1751,14 +1753,14 @@ class Zt extends G {
1751
1753
  this.mobileValue = t, t !== void 0 && this.setValue(t);
1752
1754
  }
1753
1755
  }
1754
- const It = `<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">
1755
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"/>
1756
- </svg>`, Nt = `
1758
+ </svg>`, Dt = `
1757
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">
1758
1760
  <polyline points="6 9 12 15 18 9"></polyline>
1759
1761
  </svg>
1760
1762
  `;
1761
- class Xt extends I {
1763
+ class se extends T {
1762
1764
  constructor(t = {}) {
1763
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) {
1764
1766
  const e = this._options.findIndex(
@@ -1813,7 +1815,7 @@ class Xt extends I {
1813
1815
  a.onclick = (l) => this.selectApiOption(l, o, e), i.appendChild(a);
1814
1816
  }), t.appendChild(i);
1815
1817
  const s = document.createElement("div");
1816
- return s.classList.add("svg-container"), s.innerHTML = Nt, t.appendChild(s), s.onclick = () => {
1818
+ return s.classList.add("svg-container"), s.innerHTML = Dt, t.appendChild(s), s.onclick = () => {
1817
1819
  var n, o;
1818
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));
1819
1821
  }, this.optionsListEl = i, this.svgContainer = s, this.props.getOptionsAsync && !this.hasInitializedOptions ? (this.isLoading = !0, this.updateButtonText(), this.props.getOptionsAsync().then((n) => {
@@ -1905,7 +1907,7 @@ class Xt extends I {
1905
1907
  ), this.updateButtonText();
1906
1908
  }
1907
1909
  }
1908
- class Yt extends I {
1910
+ class ne extends T {
1909
1911
  constructor(t) {
1910
1912
  var e, i;
1911
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;
@@ -1955,13 +1957,13 @@ class Yt extends I {
1955
1957
  this.detectChangeCallback = t;
1956
1958
  }
1957
1959
  }
1958
- const Vt = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
1960
+ const Bt = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
1959
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"/>
1960
1962
  </svg>`;
1961
- class Kt extends I {
1963
+ class oe extends T {
1962
1964
  // Store mobile value
1963
1965
  constructor(t = {}) {
1964
- t.rowGap = t.rowGap ?? !0, t.columnGap = t.columnGap ?? !0, t.title = t.title ?? "Gap", t.icon = t.icon ?? Vt, 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 ?? 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);
1965
1967
  }
1966
1968
  draw() {
1967
1969
  const t = document.createElement("div");
@@ -2012,42 +2014,42 @@ class Kt extends I {
2012
2014
  this.mobileValue = t, t !== void 0 && this.setValue(t);
2013
2015
  }
2014
2016
  }
2015
- const Tt = `<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">
2016
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"/>
2017
2019
  </svg>`;
2018
- class Qt extends G {
2020
+ class ae extends U {
2019
2021
  constructor(t = {}) {
2020
2022
  super({
2021
2023
  ...t,
2022
2024
  minValue: t.minValue ?? 0,
2023
2025
  maxValue: t.maxValue ?? 1e3,
2024
- icon: t.icon || Tt,
2026
+ icon: t.icon || Rt,
2025
2027
  title: t.title || "Margin Bottom",
2026
2028
  default: t.default ?? 20,
2027
2029
  wrapperClassName: "margin-bottom-wrapper " + (t.wrapperClassName || "")
2028
2030
  }), this.inputType = "number";
2029
2031
  }
2030
2032
  }
2031
- const Ht = `<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">
2032
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"
2033
2035
  stroke="#667085" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2034
2036
  </svg>`;
2035
- class te extends G {
2037
+ class le extends U {
2036
2038
  constructor(t = {}) {
2037
2039
  super({
2038
2040
  ...t,
2039
2041
  minValue: t.minValue ?? 0,
2040
2042
  maxValue: t.maxValue ?? 1e3,
2041
- icon: t.icon || Ht,
2043
+ icon: t.icon || Ft,
2042
2044
  title: t.title || "Margin Top",
2043
2045
  default: t.default ?? 20,
2044
2046
  wrapperClassName: "margin-top-wrapper " + (t.wrapperClassName || "")
2045
2047
  }), this.inputType = "number";
2046
2048
  }
2047
2049
  }
2048
- class ee extends I {
2050
+ class re extends T {
2049
2051
  constructor(t) {
2050
- 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(I.DefaultLanguage) ? I.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(T.DefaultLanguage) ? T.DefaultLanguage : t.languages[0];
2051
2053
  const e = t.defaultValue || `Enter text in ${this.capitalizeFirstLetter(this.defaultLanguage)}`;
2052
2054
  t.languages.forEach((i) => {
2053
2055
  var s, n;
@@ -2078,13 +2080,13 @@ class ee extends I {
2078
2080
  return;
2079
2081
  }
2080
2082
  const c = "...";
2081
- let h = 0, d = e.length, u = 0;
2083
+ let h = 0, d = e.length, C = 0;
2082
2084
  for (; h <= d; ) {
2083
- const C = Math.floor((h + d) / 2), m = e.slice(0, C).trimEnd() + c;
2084
- this.measureTextWidth(m, i) <= l ? (u = C, h = C + 1) : d = C - 1;
2085
+ const f = Math.floor((h + d) / 2), v = e.slice(0, f).trimEnd() + c;
2086
+ this.measureTextWidth(v, i) <= l ? (C = f, h = f + 1) : d = f - 1;
2085
2087
  }
2086
- const g = e.slice(0, u).trimEnd() + c;
2087
- t.placeholder = g;
2088
+ const u = e.slice(0, C).trimEnd() + c;
2089
+ t.placeholder = u;
2088
2090
  }
2089
2091
  autosizeTextarea(t, e = 3) {
2090
2092
  t.style.height = "auto";
@@ -2096,7 +2098,7 @@ class ee extends I {
2096
2098
  i.classList.add("simple-multi-language-row");
2097
2099
  const s = document.createElement("label");
2098
2100
  if (s.classList.add("simple-language-label"), s.textContent = t.toUpperCase(), s.setAttribute("for", `textarea-${t}`), i.appendChild(s), this.props.multiImg) {
2099
- const n = new at({
2101
+ const n = new pt({
2100
2102
  defaultUrl: e || "",
2101
2103
  title: "",
2102
2104
  id: `${this.id}_upload_${t}`
@@ -2192,7 +2194,7 @@ class ee extends I {
2192
2194
  });
2193
2195
  }
2194
2196
  }
2195
- class ie extends I {
2197
+ class ce extends T {
2196
2198
  constructor(t = {}) {
2197
2199
  super(t), this.inputType = "select";
2198
2200
  const e = [
@@ -2203,7 +2205,7 @@ class ie extends I {
2203
2205
  { name: "Bounce", value: "bounce 1.5s ease-in-out infinite" },
2204
2206
  { name: "Pulse", value: "pulse 1.5s ease-in-out infinite" }
2205
2207
  ];
2206
- this.selectSetting = new et({
2208
+ this.selectSetting = new at({
2207
2209
  title: this.title || "Animation",
2208
2210
  options: e,
2209
2211
  default: this.props.default || "none"
@@ -2219,7 +2221,90 @@ class ie extends I {
2219
2221
  this.selectSetting.destroy(), super.destroy();
2220
2222
  }
2221
2223
  }
2222
- const lt = `<svg
2224
+ const Y = class Y {
2225
+ static getDefaultState() {
2226
+ return {
2227
+ solid: [],
2228
+ gradient: []
2229
+ };
2230
+ }
2231
+ static ensureLoaded() {
2232
+ var t;
2233
+ if (this.colors === null && (this.colors = this.getDefaultState(), !(typeof window > "u")))
2234
+ try {
2235
+ const e = (t = window.sessionStorage) == null ? void 0 : t.getItem(this.STORAGE_KEY);
2236
+ if (e) {
2237
+ const i = JSON.parse(e);
2238
+ ["solid", "gradient"].forEach((s) => {
2239
+ const n = Array.isArray(i == null ? void 0 : i[s]) ? i[s] : [];
2240
+ this.colors[s] = n.map((o) => this.normalize(o)).filter((o) => !!o);
2241
+ });
2242
+ }
2243
+ } catch (e) {
2244
+ console.warn("Unable to load recent colors:", e), this.colors = this.getDefaultState();
2245
+ }
2246
+ }
2247
+ static persist() {
2248
+ var t;
2249
+ if (!(typeof window > "u"))
2250
+ try {
2251
+ (t = window.sessionStorage) == null || t.setItem(
2252
+ this.STORAGE_KEY,
2253
+ JSON.stringify(this.colors || this.getDefaultState())
2254
+ );
2255
+ } catch (e) {
2256
+ console.warn("Unable to persist recent colors:", e);
2257
+ }
2258
+ }
2259
+ static normalize(t) {
2260
+ if (!t) return null;
2261
+ const e = t.trim();
2262
+ if (!e.startsWith("#")) return null;
2263
+ let i = e.slice(1);
2264
+ return i.length === 3 && (i = i.split("").map((s) => s + s).join("")), i.length !== 6 || !/^[0-9a-fA-F]{6}$/.test(i) ? null : `#${i.toUpperCase()}`;
2265
+ }
2266
+ static getScopeList(t) {
2267
+ return this.ensureLoaded(), this.colors || (this.colors = this.getDefaultState()), this.colors[t];
2268
+ }
2269
+ static getColors(t) {
2270
+ return [...this.getScopeList(t)];
2271
+ }
2272
+ static addColor(t, e) {
2273
+ const i = this.normalize(t);
2274
+ if (!i) return;
2275
+ const s = this.getScopeList(e), n = s.indexOf(i);
2276
+ n !== -1 && s.splice(n, 1), s.unshift(i), s.length > this.MAX_COLORS && (s.length = this.MAX_COLORS), this.persist();
2277
+ }
2278
+ };
2279
+ Y.STORAGE_KEY = "settingsLib_recentColors", Y.MAX_COLORS = 12, Y.colors = null;
2280
+ let J = Y;
2281
+ function lt(p, t) {
2282
+ const e = document.createElement("div");
2283
+ e.className = "color-picker-recent-section";
2284
+ const i = document.createElement("div");
2285
+ i.className = "color-picker-recent-title", i.textContent = "Recently Used Colors";
2286
+ const s = document.createElement("div");
2287
+ s.className = "color-picker-recent-grid";
2288
+ const n = document.createElement("div");
2289
+ n.className = "color-picker-recent-placeholder", n.textContent = "No recent colors yet", e.appendChild(i), e.appendChild(s), e.appendChild(n);
2290
+ const o = () => {
2291
+ s.innerHTML = "";
2292
+ const a = J.getColors(t);
2293
+ if (a.length === 0) {
2294
+ s.style.display = "none", n.style.display = "block";
2295
+ return;
2296
+ }
2297
+ s.style.display = "grid", n.style.display = "none", a.forEach((l) => {
2298
+ const r = document.createElement("button");
2299
+ r.type = "button", r.className = "color-picker-recent-swatch", r.title = l, r.setAttribute("aria-label", `Use color ${l}`), r.style.setProperty("--recent-color", l), r.addEventListener("click", () => p(l)), s.appendChild(r);
2300
+ });
2301
+ };
2302
+ return o(), {
2303
+ container: e,
2304
+ refresh: o
2305
+ };
2306
+ }
2307
+ const ut = `<svg
2223
2308
  width="13"
2224
2309
  height="13"
2225
2310
  viewBox="0 0 13 13"
@@ -2233,96 +2318,23 @@ const lt = `<svg
2233
2318
  fill="#919EAB"
2234
2319
  />
2235
2320
  </svg>`;
2236
- function nt(p) {
2237
- try {
2238
- const t = p.match(/linear-gradient\s*\(/);
2239
- if (t) {
2240
- const e = t.index + t[0].length;
2241
- let i = 1, s = e;
2242
- for (let n = e; n < p.length && i > 0; n++)
2243
- p[n] === "(" ? i++ : p[n] === ")" && i--, s = n;
2244
- if (i === 0) {
2245
- const n = p.substring(e, s).trim();
2246
- let o = 90;
2247
- const a = n.match(/(\d+)deg/);
2248
- a ? o = parseInt(a[1]) : n.includes("to right") ? o = 90 : n.includes("to left") ? o = 270 : n.includes("to top") ? o = 0 : n.includes("to bottom") ? o = 180 : n.includes("to top right") ? o = 45 : n.includes("to top left") ? o = 315 : n.includes("to bottom right") ? o = 135 : n.includes("to bottom left") && (o = 225);
2249
- const l = [];
2250
- let r = "", c = 0;
2251
- for (let u = 0; u < n.length; u++) {
2252
- const g = n[u];
2253
- g === "(" && c++, g === ")" && c--, g === "," && c === 0 ? (l.push(r.trim()), r = "") : r += g;
2254
- }
2255
- r.trim() && l.push(r.trim());
2256
- const h = [];
2257
- let d = [];
2258
- for (let u = 0; u < l.length; u++) {
2259
- const g = l[u];
2260
- g.includes("deg") || g.includes("to ") || d.push(g);
2321
+ class ht {
2322
+ constructor(t, e = "gradient") {
2323
+ this.isOpen = !1, this.isColorDragging = !1, this.isHueDragging = !1, this.isOpacityDragging = !1, this.pendingRecentColor = null, this.currentColor = "#ff0000", this.currentOpacity = 100, this.isUpdatingHue = !1, this.handleOutsideClick = (i) => {
2324
+ const s = document.querySelector(".gradient-popover");
2325
+ s && s.contains(i.target) || this.element.contains(i.target) || (i.stopPropagation(), this.close(!1));
2326
+ }, this.handleKeydown = (i) => {
2327
+ if (this.isOpen) {
2328
+ if (i.key === "Escape")
2329
+ i.preventDefault(), this.close(!0);
2330
+ else if (i.key === "Enter") {
2331
+ const s = i.target;
2332
+ if (s && (s.tagName === "TEXTAREA" || s.tagName === "INPUT"))
2333
+ return;
2334
+ i.preventDefault(), this.close(!0);
2261
2335
  }
2262
- for (let u = 0; u < d.length; u++) {
2263
- const g = d[u];
2264
- let C = "", m = 0, y = 100;
2265
- const f = g.match(
2266
- /rgba?\(([^)]+)\)(?:\s*(\d+(?:\.\d+)?)%)?/
2267
- );
2268
- if (f) {
2269
- const E = f[1].split(",").map((b) => b.trim()), V = parseInt(E[0]), A = parseInt(E[1]), B = parseInt(E[2]), L = E[3] ? parseFloat(E[3]) : 1;
2270
- C = `#${V.toString(16).padStart(2, "0")}${A.toString(16).padStart(2, "0")}${B.toString(16).padStart(2, "0")}`, y = Math.round(L * 100), f[2] ? m = parseFloat(f[2]) : m = d.length === 1 ? 0 : Math.round(u / (d.length - 1) * 100);
2271
- } else {
2272
- const E = g.match(
2273
- /#([a-fA-F0-9]{3,8})(?:\s*(\d+(?:\.\d+)?)%)?/
2274
- );
2275
- E && (C = `#${E[1]}`, E[2] ? m = parseFloat(E[2]) : m = d.length === 1 ? 0 : Math.round(u / (d.length - 1) * 100));
2276
- }
2277
- C && h.push({
2278
- color: C,
2279
- position: m,
2280
- opacity: y
2281
- });
2282
- }
2283
- if (h.length === 0) {
2284
- const u = n.match(
2285
- /(#[a-fA-F0-9]{3,8}|rgba?\([^)]+\))/g
2286
- );
2287
- u && u.forEach((g, C) => {
2288
- let m = "", y = 100;
2289
- if (g.startsWith("#"))
2290
- m = g;
2291
- else {
2292
- const f = g.match(/rgba?\(([^)]+)\)/);
2293
- if (f) {
2294
- const E = f[1].split(",").map((b) => b.trim()), V = parseInt(E[0]), A = parseInt(E[1]), B = parseInt(E[2]), L = E[3] ? parseFloat(E[3]) : 1;
2295
- m = `#${V.toString(16).padStart(2, "0")}${A.toString(16).padStart(2, "0")}${B.toString(16).padStart(2, "0")}`, y = Math.round(L * 100);
2296
- }
2297
- }
2298
- if (m) {
2299
- const f = u.length === 1 ? 0 : Math.round(C / (u.length - 1) * 100);
2300
- h.push({
2301
- color: m,
2302
- position: f,
2303
- opacity: y
2304
- });
2305
- }
2306
- });
2307
- }
2308
- return console.log("Color stops found:", h), {
2309
- type: "linear",
2310
- angle: o,
2311
- stops: h
2312
- };
2313
2336
  }
2314
- }
2315
- return null;
2316
- } catch (t) {
2317
- return console.warn("Failed to parse CSS gradient:", p, t), null;
2318
- }
2319
- }
2320
- class Pt {
2321
- constructor(t) {
2322
- this.isOpen = !1, this.currentColor = "#ff0000", this.currentOpacity = 100, this.isUpdatingHue = !1, this.handleOutsideClick = (e) => {
2323
- const i = document.querySelector(".gradient-popover");
2324
- i && i.contains(e.target) || this.element.contains(e.target) || (e.stopPropagation(), this.close());
2325
- }, this.onColorChange = t, this.element = this.createColorPicker();
2337
+ }, this.onColorChange = t, this.recentScope = e, this.element = this.createColorPicker();
2326
2338
  }
2327
2339
  createColorPicker() {
2328
2340
  const t = document.createElement("div");
@@ -2332,7 +2344,7 @@ class Pt {
2332
2344
  const i = document.createElement("span");
2333
2345
  i.textContent = "Color";
2334
2346
  const s = document.createElement("button");
2335
- s.className = "color-picker-close", s.innerHTML = lt, s.addEventListener("click", () => this.close()), e.appendChild(i), e.appendChild(s), this.makeDraggable(e, t);
2347
+ s.className = "color-picker-close", s.innerHTML = ut, s.addEventListener("click", () => this.close(!0)), e.appendChild(i), e.appendChild(s), this.makeDraggable(e, t);
2336
2348
  const n = document.createElement("div");
2337
2349
  n.className = "color-picker-area", this.colorArea = n;
2338
2350
  const o = document.createElement("div");
@@ -2351,51 +2363,75 @@ class Pt {
2351
2363
  h.className = "color-picker-opacity", this.opacitySlider = h;
2352
2364
  const d = document.createElement("div");
2353
2365
  d.className = "color-picker-opacity-marker", this.opacityMarker = d, h.appendChild(d);
2366
+ const C = lt(
2367
+ (E) => {
2368
+ this.setColor(E), this.queueRecentColor(E);
2369
+ },
2370
+ this.recentScope
2371
+ );
2372
+ this.recentColorsSection = C;
2354
2373
  const u = document.createElement("div");
2355
2374
  u.className = "color-picker-format-section";
2356
- const g = document.createElement("select");
2357
- g.className = "color-picker-format-select", this.formatSelect = g;
2358
- const C = document.createElement("option");
2359
- C.value = "hex", C.textContent = "HEX";
2375
+ const f = document.createElement("select");
2376
+ f.className = "color-picker-format-select", this.formatSelect = f;
2377
+ const v = document.createElement("option");
2378
+ v.value = "hex", v.textContent = "HEX";
2379
+ const b = document.createElement("option");
2380
+ b.value = "rgb", b.textContent = "RGB";
2360
2381
  const m = document.createElement("option");
2361
- m.value = "rgb", m.textContent = "RGB";
2362
- const y = document.createElement("option");
2363
- y.value = "hsl", y.textContent = "HSL", g.appendChild(C), g.appendChild(m), g.appendChild(y);
2364
- const f = document.createElement("input");
2365
- f.type = "text", f.className = "color-picker-color-input", f.value = this.currentColor, this.hexInput = f;
2366
- const E = document.createElement("div");
2367
- E.className = "color-picker-input-container";
2368
- const V = document.createElement("button");
2369
- return V.className = "color-picker-copy-inside", V.textContent = "Copy", V.addEventListener("click", () => this.copyToClipboard()), E.appendChild(f), E.appendChild(V), u.appendChild(g), u.appendChild(E), t.appendChild(e), t.appendChild(n), t.appendChild(a), t.appendChild(h), t.appendChild(u), this.setupEyedropper(l), this.setupEventListeners(), t.addEventListener("click", (A) => {
2370
- A.stopPropagation();
2382
+ m.value = "hsl", m.textContent = "HSL", f.appendChild(v), f.appendChild(b), f.appendChild(m);
2383
+ const L = document.createElement("input");
2384
+ L.type = "text", L.className = "color-picker-color-input", L.value = this.currentColor, this.hexInput = L;
2385
+ const M = document.createElement("div");
2386
+ M.className = "color-picker-input-container";
2387
+ const y = document.createElement("button");
2388
+ return y.className = "color-picker-copy-inside", y.textContent = "Copy", y.addEventListener("click", () => this.copyToClipboard()), M.appendChild(L), M.appendChild(y), u.appendChild(f), u.appendChild(M), t.appendChild(e), t.appendChild(n), t.appendChild(a), t.appendChild(h), t.appendChild(C.container), t.appendChild(u), this.setupEyedropper(l), this.setupEventListeners(), t.addEventListener("click", (E) => {
2389
+ E.stopPropagation();
2371
2390
  }), t;
2372
2391
  }
2392
+ refreshRecentColors() {
2393
+ var t;
2394
+ (t = this.recentColorsSection) == null || t.refresh();
2395
+ }
2396
+ queueRecentColor(t) {
2397
+ this.pendingRecentColor = t;
2398
+ }
2399
+ flushRecentColor() {
2400
+ this.pendingRecentColor && (J.addColor(this.pendingRecentColor, this.recentScope), this.pendingRecentColor = null, this.refreshRecentColors());
2401
+ }
2402
+ discardPendingColor() {
2403
+ this.pendingRecentColor = null;
2404
+ }
2373
2405
  setupEventListeners() {
2374
2406
  this.colorArea.addEventListener("mousedown", (t) => this.startColorDrag(t)), this.colorArea.addEventListener("click", (t) => {
2375
- t.stopPropagation(), this.updateColorFromArea(t);
2407
+ t.stopPropagation();
2376
2408
  }), this.hueSlider.addEventListener("mousedown", (t) => this.startHueDrag(t)), this.hueSlider.addEventListener("click", (t) => {
2377
- t.stopPropagation(), this.updateHueFromSlider(t);
2409
+ t.stopPropagation();
2378
2410
  }), this.formatSelect.addEventListener("change", () => this.updateColorInput()), this.hexInput.addEventListener(
2379
2411
  "input",
2380
2412
  (t) => this.updateColorFromInput(t)
2381
- ), this.hexInput.addEventListener("blur", (t) => this.validateColorInput(t)), this.opacitySlider.addEventListener(
2413
+ ), this.hexInput.addEventListener("blur", (t) => {
2414
+ this.validateColorInput(t), this.queueRecentColor(this.currentColor);
2415
+ }), this.hexInput.addEventListener("keydown", (t) => {
2416
+ t.key === "Enter" && (t.preventDefault(), this.validateColorInput(t), this.queueRecentColor(this.currentColor), this.close(!0));
2417
+ }), this.opacitySlider.addEventListener(
2382
2418
  "mousedown",
2383
2419
  (t) => this.startOpacityDrag(t)
2384
2420
  ), this.opacitySlider.addEventListener("click", (t) => {
2385
- t.stopPropagation(), this.updateOpacityFromSlider(t);
2421
+ t.stopPropagation();
2386
2422
  });
2387
2423
  }
2388
2424
  startColorDrag(t) {
2389
- t.preventDefault(), t.stopPropagation(), this.updateColorFromArea(t);
2425
+ t.preventDefault(), t.stopPropagation(), this.isColorDragging = !0, this.updateColorFromArea(t);
2390
2426
  const e = (s) => this.updateColorFromArea(s), i = () => {
2391
- document.removeEventListener("mousemove", e), document.removeEventListener("mouseup", i);
2427
+ document.removeEventListener("mousemove", e), document.removeEventListener("mouseup", i), this.isColorDragging = !1, this.queueRecentColor(this.currentColor);
2392
2428
  };
2393
2429
  document.addEventListener("mousemove", e), document.addEventListener("mouseup", i);
2394
2430
  }
2395
2431
  startHueDrag(t) {
2396
- t.preventDefault(), t.stopPropagation(), this.updateHueFromSlider(t);
2432
+ t.preventDefault(), t.stopPropagation(), this.isHueDragging = !0, this.updateHueFromSlider(t);
2397
2433
  const e = (s) => this.updateHueFromSlider(s), i = () => {
2398
- document.removeEventListener("mousemove", e), document.removeEventListener("mouseup", i);
2434
+ document.removeEventListener("mousemove", e), document.removeEventListener("mouseup", i), this.isHueDragging = !1, this.queueRecentColor(this.currentColor);
2399
2435
  };
2400
2436
  document.addEventListener("mousemove", e), document.addEventListener("mouseup", i);
2401
2437
  }
@@ -2407,7 +2443,11 @@ class Pt {
2407
2443
  this.isUpdatingHue = !0;
2408
2444
  const e = this.hueSlider.getBoundingClientRect();
2409
2445
  let i = (t.clientX - e.left) / e.width;
2410
- i = Math.max(2e-3, Math.min(0.996, i)), this.hueMarker.style.left = `${i * 100}%`;
2446
+ i = Math.max(2e-3, Math.min(0.996, i)), console.log("Hue slider click:", {
2447
+ x: i,
2448
+ hueValue: i * 360,
2449
+ percent: i * 100
2450
+ }), this.hueMarker.style.left = `${i * 100}%`;
2411
2451
  const s = i * 360;
2412
2452
  this.updateHue(s), this.isUpdatingHue = !1;
2413
2453
  }
@@ -2416,15 +2456,16 @@ class Pt {
2416
2456
  this.setColor(s);
2417
2457
  }
2418
2458
  updateHue(t) {
2419
- t = Math.max(0.5, Math.min(358.5, t)), this.colorArea.getBoundingClientRect();
2420
- const e = parseFloat(this.colorMarker.style.left || "50%") / 100, i = parseFloat(this.colorMarker.style.top || "50%") / 100;
2459
+ const e = t;
2460
+ t = Math.max(0.5, Math.min(358.5, t)), console.log("UpdateHue:", { originalHue: e, clampedHue: t }), this.colorArea.getBoundingClientRect();
2461
+ const i = parseFloat(this.colorMarker.style.left || "50%") / 100, s = parseFloat(this.colorMarker.style.top || "50%") / 100;
2421
2462
  this.colorArea.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${t}, 100%, 50%))`;
2422
- const s = e, n = 1 - i, o = this.hsvToHex(t, s, n);
2423
- this.setColor(o);
2463
+ const n = i, o = 1 - s, a = this.hsvToHex(t, n, o);
2464
+ this.setColor(a);
2424
2465
  }
2425
2466
  getCurrentHue() {
2426
- const e = parseFloat(this.hueMarker.style.left || "0%") / 100 * 360;
2427
- return Math.max(0.5, Math.min(358.5, e));
2467
+ const t = parseFloat(this.hueMarker.style.left || "0%") / 100, e = t * 360;
2468
+ return console.log("GetCurrentHue:", { huePosition: t, hueValue: e }), Math.max(0.5, Math.min(358.5, e));
2428
2469
  }
2429
2470
  updateColorInput() {
2430
2471
  const t = this.formatSelect.value, { h: e, s: i, v: s } = this.hexToHsv(this.currentColor);
@@ -2471,9 +2512,9 @@ class Pt {
2471
2512
  this.updateColorInput();
2472
2513
  }
2473
2514
  startOpacityDrag(t) {
2474
- t.preventDefault(), t.stopPropagation(), this.updateOpacityFromSlider(t);
2515
+ t.preventDefault(), t.stopPropagation(), this.isOpacityDragging = !0, this.updateOpacityFromSlider(t);
2475
2516
  const e = (s) => this.updateOpacityFromSlider(s), i = () => {
2476
- document.removeEventListener("mousemove", e), document.removeEventListener("mouseup", i);
2517
+ document.removeEventListener("mousemove", e), document.removeEventListener("mouseup", i), this.isOpacityDragging = !1, this.queueRecentColor(this.currentColor);
2477
2518
  };
2478
2519
  document.addEventListener("mousemove", e), document.addEventListener("mouseup", i);
2479
2520
  }
@@ -2492,20 +2533,20 @@ class Pt {
2492
2533
  return /^#[0-9A-Fa-f]{6}$/.test(t);
2493
2534
  }
2494
2535
  hsvToHex(t, e, i) {
2495
- t = Math.max(0, Math.min(359.9, t)), e = Math.max(0, Math.min(1, e)), i = Math.max(0, Math.min(1, i));
2536
+ t = Math.max(0, Math.min(359.9, t)), e = Math.max(0, Math.min(1, e)), i = Math.max(0, Math.min(1, i)), console.log("CustomColorPicker HsvToHex:", { h: t, s: e, v: i });
2496
2537
  const s = i * e, n = s * (1 - Math.abs(t / 60 % 2 - 1)), o = i - s;
2497
2538
  let a = 0, l = 0, r = 0;
2498
2539
  return t < 60 ? (a = s, l = n, r = 0) : t < 120 ? (a = n, l = s, r = 0) : t < 180 ? (a = 0, l = s, r = n) : t < 240 ? (a = 0, l = n, r = s) : t < 300 ? (a = n, l = 0, r = s) : (a = s, l = 0, r = n), a = Math.round((a + o) * 255), l = Math.round((l + o) * 255), r = Math.round((r + o) * 255), `#${a.toString(16).padStart(2, "0")}${l.toString(16).padStart(2, "0")}${r.toString(16).padStart(2, "0")}`;
2499
2540
  }
2500
2541
  setColor(t) {
2501
- this.currentColor = t, this.updatePickerFromColor(t), this.updateColorInput(), this.updateOpacityBackground(), this.onColorChange && this.onColorChange(t, this.currentOpacity);
2542
+ this.currentColor = t, this.updatePickerFromColor(t), this.updateColorInput(), this.updateOpacityBackground(), this.onColorChange && this.onColorChange(t, this.currentOpacity), this.queueRecentColor(t);
2502
2543
  }
2503
2544
  setupEyedropper(t) {
2504
2545
  const e = async () => {
2505
2546
  if ("EyeDropper" in window)
2506
2547
  try {
2507
2548
  const n = (await new window.EyeDropper().open()).sRGBHex;
2508
- this.currentColor = n, this.updateColorInput(), this.updateColorAreaFromHex(n), this.onColorChange && this.onColorChange(n);
2549
+ this.currentColor = n, this.updateColorInput(), this.updateColorAreaFromHex(n), this.onColorChange && this.onColorChange(n), this.queueRecentColor(n);
2509
2550
  } catch (i) {
2510
2551
  console.log("User cancelled eyedropper or error occurred:", i);
2511
2552
  }
@@ -2525,11 +2566,11 @@ class Pt {
2525
2566
  });
2526
2567
  }
2527
2568
  open(t, e, i) {
2528
- this.currentColor = t, this.currentOpacity = i ?? 100, this.updateColorInput(), this.updatePickerFromColor(t), this.updateOpacityBackground(), this.opacityMarker.style.left = `${this.currentOpacity}%`, this.isOpen = !0, this.element.style.display = "block";
2569
+ this.currentColor = t, this.currentOpacity = i ?? 100, this.updateColorInput(), this.updatePickerFromColor(t), this.refreshRecentColors(), this.updateOpacityBackground(), this.opacityMarker.style.left = `${this.currentOpacity}%`, this.pendingRecentColor = null, this.isOpen = !0, this.element.style.display = "block";
2529
2570
  const s = e.getBoundingClientRect(), n = window.innerWidth, o = window.innerHeight;
2530
2571
  this.element.style.position = "fixed", this.element.style.zIndex = "10002";
2531
2572
  let a = s.right + 8, l = s.top;
2532
- a + 408 > n && (a = s.left - 408 - 8), a < 8 && (a = Math.max(8, (n - 408) / 2)), l + 500 > o && (l = Math.max(8, o - 500 - 8)), this.element.style.left = `${a}px`, this.element.style.top = `${l}px`, this.element.parentElement || document.body.appendChild(this.element), this.updatePickerFromColor(t), setTimeout(() => {
2573
+ a + 408 > n && (a = s.left - 408 - 8), a < 8 && (a = Math.max(8, (n - 408) / 2)), l + 500 > o && (l = Math.max(8, o - 500 - 8)), this.element.style.left = `${a}px`, this.element.style.top = `${l}px`, this.element.parentElement || document.body.appendChild(this.element), this.updatePickerFromColor(t), document.addEventListener("keydown", this.handleKeydown, !0), setTimeout(() => {
2533
2574
  document.addEventListener("click", this.handleOutsideClick, !0);
2534
2575
  }, 50);
2535
2576
  }
@@ -2562,133 +2603,59 @@ class Pt {
2562
2603
  }, r = (h) => {
2563
2604
  if (!i) return;
2564
2605
  h.preventDefault(), h.stopPropagation();
2565
- const d = h.clientX - s, u = h.clientY - n;
2566
- let g = o + d, C = a + u;
2567
- const m = window.innerWidth, y = window.innerHeight, f = e.offsetWidth, E = e.offsetHeight;
2568
- g = Math.max(8, Math.min(m - f - 8, g)), C = Math.max(8, Math.min(y - E - 8, C)), e.style.left = `${g}px`, e.style.top = `${C}px`;
2606
+ const d = h.clientX - s, C = h.clientY - n;
2607
+ let u = o + d, f = a + C;
2608
+ const v = window.innerWidth, b = window.innerHeight, m = e.offsetWidth, L = e.offsetHeight;
2609
+ u = Math.max(8, Math.min(v - m - 8, u)), f = Math.max(8, Math.min(b - L - 8, f)), e.style.left = `${u}px`, e.style.top = `${f}px`;
2569
2610
  }, c = (h) => {
2570
2611
  i && (i = !1, h.preventDefault(), h.stopPropagation(), e.classList.remove("dragging"), document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", c), document.body.style.userSelect = "");
2571
2612
  };
2572
2613
  t.addEventListener("mousedown", l);
2573
2614
  }
2574
- close() {
2575
- this.isOpen = !1, this.element.style.display = "none", document.removeEventListener("click", this.handleOutsideClick, !0);
2615
+ close(t = !1) {
2616
+ this.isOpen = !1, this.element.style.display = "none", document.removeEventListener("click", this.handleOutsideClick, !0), document.removeEventListener("keydown", this.handleKeydown, !0), t ? this.flushRecentColor() : this.discardPendingColor();
2576
2617
  }
2577
2618
  getElement() {
2578
2619
  return this.element;
2579
2620
  }
2580
2621
  }
2581
- class se extends I {
2622
+ class he extends T {
2582
2623
  constructor(t = {}) {
2583
- let e;
2584
- if (typeof t.default == "string")
2585
- if (t.default.match(/^#[a-fA-F0-9]{3,8}$/)) {
2586
- let i = t.default, s = 100;
2587
- if (i.length === 9) {
2588
- const n = parseInt(i.slice(-2), 16);
2589
- s = Math.round(n / 255 * 100), i = i.slice(0, 7);
2590
- }
2591
- e = {
2592
- type: "solid",
2593
- angle: 90,
2594
- stops: [{ color: i, position: 0, opacity: s }]
2595
- };
2596
- } else
2597
- e = nt(t.default) || {
2598
- type: "linear",
2599
- angle: 90,
2600
- stops: [
2601
- { color: "#a84b4b", position: 0, opacity: 100 },
2602
- { color: "#786666", position: 100, opacity: 100 }
2603
- ]
2604
- };
2605
- else
2606
- e = t.default || {
2624
+ super({
2625
+ ...t,
2626
+ title: t.title || "Gradient",
2627
+ default: t.default || {
2607
2628
  type: "linear",
2608
2629
  angle: 90,
2609
2630
  stops: [
2610
2631
  { color: "#a84b4b", position: 0, opacity: 100 },
2611
2632
  { color: "#786666", position: 100, opacity: 100 }
2612
2633
  ]
2613
- };
2614
- (!e.stops || e.stops.length === 0) && (e.stops = [
2615
- { color: "#a84b4b", position: 0, opacity: 100 },
2616
- { color: "#786666", position: 100, opacity: 100 }
2617
- ]), super({
2618
- ...t,
2619
- title: t.title || "Gradient",
2620
- default: e
2634
+ }
2621
2635
  }), this.inputType = {
2622
2636
  type: "text",
2623
2637
  angle: "number",
2624
2638
  stops: "text"
2625
- }, this.element = null, this.previewElement = null, this.textInputElement = null, this.popoverElement = null, this.placeholderTrigger = null, this.isPopoverOpen = !1, this.isUserEditing = !1, this.handleBackgroundClick = (i) => {
2626
- var r;
2639
+ }, this.element = null, this.previewElement = null, this.textInputElement = null, this.popoverElement = null, this.placeholderTrigger = null, this.isPopoverOpen = !1, this.isUserEditing = !1, this.handleBackgroundClick = (e) => {
2640
+ var l;
2627
2641
  if (!this.popoverElement || !this.isPopoverOpen) return;
2628
- const s = i.target, n = this.popoverElement.contains(s), o = (r = this.element) == null ? void 0 : r.contains(s), a = document.querySelectorAll(".custom-color-picker"), l = Array.from(a).some(
2629
- (c) => c.contains(s)
2642
+ const i = e.target, s = this.popoverElement.contains(i), n = (l = this.element) == null ? void 0 : l.contains(i), o = document.querySelectorAll(".custom-color-picker"), a = Array.from(o).some(
2643
+ (r) => r.contains(i)
2630
2644
  );
2631
- !n && !o && !l && this.closePopover();
2645
+ !s && !n && !a && this.closePopover();
2632
2646
  }, this.detectChange = t.detectChange, this.forText = t.forText || !1;
2633
2647
  }
2634
- // Safe getter for the value property
2635
- getSafeValue() {
2636
- return !this.value || !this.isValidGradientValue(this.value) ? (console.warn("Invalid value detected, returning default:", this.value), this.getDefaultGradientValue()) : this.value;
2637
- }
2638
2648
  setValue(t) {
2639
- let e;
2640
- if (!t)
2641
- console.warn("Undefined value in setValue, using default"), e = this.getDefaultGradientValue();
2642
- else if (typeof t == "string")
2643
- if (t.match(/^#[a-fA-F0-9]{3,8}$/)) {
2644
- let i = t, s = 100;
2645
- if (i.length === 9) {
2646
- const n = parseInt(i.slice(-2), 16);
2647
- s = Math.round(n / 255 * 100), i = i.slice(0, 7);
2648
- }
2649
- e = {
2650
- type: "solid",
2651
- angle: 90,
2652
- stops: [{ color: i, position: 0, opacity: s }]
2653
- };
2654
- } else {
2655
- const i = nt(t);
2656
- i && this.isValidGradientValue(i) ? e = i : (console.warn(
2657
- "Failed to parse string value, using default:",
2658
- t
2659
- ), e = this.getDefaultGradientValue());
2660
- }
2661
- else if (typeof t == "object" && t.background) {
2662
- console.warn(
2663
- "Received CSS style object, extracting background value:",
2664
- t
2665
- );
2666
- const i = t.background;
2667
- if (typeof i == "string") {
2668
- this.setValue(i);
2669
- return;
2670
- } else
2671
- e = this.getDefaultGradientValue();
2672
- } else this.isValidGradientValue(t) ? (e = t, e.stops && e.stops.length > 0 ? e.stops.forEach((i) => {
2673
- i.opacity === void 0 && (i.opacity = 100);
2674
- }) : e.stops = [
2675
- { color: "#a84b4b", position: 0, opacity: 100 },
2676
- { color: "#786666", position: 100, opacity: 100 }
2677
- ]) : (console.warn(
2678
- "Invalid gradient value in setValue, using default:",
2679
- t
2680
- ), e = this.getDefaultGradientValue());
2681
- super.setValue(e), this.updateUI(), this.isPopoverOpen && this.refreshPopoverContent();
2682
- }
2683
- getDefaultGradientValue() {
2684
- return this.props && this.props.default && this.isValidGradientValue(this.props.default) ? this.props.default : {
2649
+ t ? (this.value = t, this.value.stops && this.value.stops.forEach((e) => {
2650
+ e.opacity === void 0 && (e.opacity = 100);
2651
+ })) : this.value = {
2685
2652
  type: "linear",
2686
2653
  angle: 90,
2687
2654
  stops: [
2688
2655
  { color: "#a84b4b", position: 0, opacity: 100 },
2689
2656
  { color: "#786666", position: 100, opacity: 100 }
2690
2657
  ]
2691
- };
2658
+ }, this.updateUI(), this.isPopoverOpen && this.refreshPopoverContent(), this.onChange && this.onChange(this.value), this.detectChange && this.detectChange(this.value);
2692
2659
  }
2693
2660
  updateUI() {
2694
2661
  if (this.previewElement && this.value)
@@ -2702,9 +2669,7 @@ class se extends I {
2702
2669
  );
2703
2670
  }
2704
2671
  } else
2705
- this.previewElement.style.background = this.generateCSS(
2706
- this.getSafeValue()
2707
- );
2672
+ this.previewElement.style.background = this.generateCSS(this.value);
2708
2673
  this.textInputElement && this.value && !this.isUserEditing && (this.textInputElement.value = this.generateDisplayText(this.value));
2709
2674
  }
2710
2675
  generateDisplayText(t) {
@@ -2726,8 +2691,8 @@ class se extends I {
2726
2691
  n.className = "input-label", n.textContent = this.props.title, s.appendChild(n), t.appendChild(s);
2727
2692
  }
2728
2693
  const e = document.createElement("div");
2729
- e.className = "gradient-input-wrapper", this.previewElement = document.createElement("div"), this.previewElement.className = "gradient-mini-preview", this.previewElement.style.background = this.value ? this.generateCSS(this.getSafeValue()) : "linear-gradient(90deg, #a84b4b 0%, #786666 100%)", this.textInputElement = document.createElement("input"), this.textInputElement.type = "text", this.textInputElement.className = "gradient-text-input", this.textInputElement.placeholder = "Enter gradient CSS or paste color...", this.textInputElement.value = this.value ? this.generateDisplayText(this.value) : "", this.textInputElement.readOnly = !1, this.previewElement.addEventListener("click", () => this.openPopover()), this.textInputElement.addEventListener("focus", () => {
2730
- this.isUserEditing = !0, this.value && (this.textInputElement.value = this.generateCSS(this.getSafeValue()));
2694
+ e.className = "gradient-input-wrapper", this.previewElement = document.createElement("div"), this.previewElement.className = "gradient-mini-preview", this.previewElement.style.background = this.value ? this.generateCSS(this.value) : "linear-gradient(90deg, #a84b4b 0%, #786666 100%)", this.textInputElement = document.createElement("input"), this.textInputElement.type = "text", this.textInputElement.className = "gradient-text-input", this.textInputElement.placeholder = "Enter gradient CSS or paste color...", this.textInputElement.value = this.value ? this.generateDisplayText(this.value) : "", this.textInputElement.readOnly = !1, this.previewElement.addEventListener("click", () => this.openPopover()), this.textInputElement.addEventListener("focus", () => {
2695
+ this.isUserEditing = !0, this.value && (this.textInputElement.value = this.generateCSS(this.value));
2731
2696
  }), this.textInputElement.addEventListener("blur", () => {
2732
2697
  this.isUserEditing = !1, this.value && (this.textInputElement.value = this.generateDisplayText(this.value)), this.placeholderTrigger && (this.placeholderTrigger.style.display = this.textInputElement.value ? "none" : "flex");
2733
2698
  }), this.textInputElement.addEventListener(
@@ -2737,29 +2702,21 @@ class se extends I {
2737
2702
  "input",
2738
2703
  (s) => this.handleInput(s)
2739
2704
  ), this.textInputElement.addEventListener("keydown", (s) => {
2740
- s.key === "Enter" && (this.handleInput(s), this.textInputElement.blur()), s.key === "Escape" && (this.value && (this.textInputElement.value = this.generateCSS(this.getSafeValue())), this.textInputElement.blur());
2705
+ s.key === "Enter" && (this.handleInput(s), this.textInputElement.blur()), s.key === "Escape" && (this.value && (this.textInputElement.value = this.generateCSS(this.value)), this.textInputElement.blur());
2741
2706
  });
2742
2707
  const i = document.createElement("div");
2743
2708
  return i.className = "gradient-input-placeholder-trigger", i.textContent = this.textInputElement.placeholder || "", i.style.display = this.textInputElement.value ? "none" : "flex", i.addEventListener("click", (s) => {
2744
2709
  s.stopPropagation(), this.openPopover();
2745
2710
  }), e.appendChild(this.previewElement), e.appendChild(this.textInputElement), e.appendChild(i), this.placeholderTrigger = i, t.appendChild(e), this.createPopover(), this.element = t, t;
2746
2711
  }
2747
- isValidGradientValue(t) {
2748
- return !t || typeof t != "object" || !t.type || !["linear", "radial", "solid"].includes(t.type) || t.type !== "solid" && typeof t.angle != "number" || !Array.isArray(t.stops) || t.stops.length === 0 ? !1 : t.stops.every(
2749
- (e) => e && typeof e.color == "string" && typeof e.position == "number"
2750
- );
2751
- }
2752
2712
  generateCSS(t) {
2753
- if (!t || !this.isValidGradientValue(t))
2754
- return console.warn("Invalid gradient value passed to generateCSS:", t), console.trace("Stack trace for invalid gradient value"), "linear-gradient(90deg, #a84b4b 0%, #786666 100%)";
2713
+ if (!t) return "linear-gradient(90deg, #a84b4b 0%, #786666 100%)";
2755
2714
  if (t.type === "solid") {
2756
2715
  const i = t.stops && t.stops.length > 0 ? t.stops[0] : null;
2757
2716
  if (!i) return "#000000";
2758
2717
  const s = i.opacity !== void 0 ? i.opacity : 100, n = Math.round(s / 100 * 255).toString(16).toUpperCase().padStart(2, "0");
2759
2718
  return `#${i.color.replace("#", "")}${n}`;
2760
2719
  }
2761
- if (!t.stops || !Array.isArray(t.stops) || t.stops.length === 0)
2762
- return console.warn("Invalid gradient stops in generateCSS:", t), "linear-gradient(90deg, #a84b4b 0%, #786666 100%)";
2763
2720
  const e = t.stops.map((i) => {
2764
2721
  const s = i.opacity !== void 0 ? i.opacity : 100;
2765
2722
  return `${this.addOpacityToColor(i.color, s)} ${i.position}%`;
@@ -2814,7 +2771,7 @@ class se extends I {
2814
2771
  const e = document.createElement("span");
2815
2772
  e.textContent = "Fill";
2816
2773
  const i = document.createElement("button");
2817
- i.type = "button", i.className = "gradient-popover-close", i.innerHTML = lt, i.addEventListener("click", () => this.closePopover()), t.appendChild(e), t.appendChild(i);
2774
+ i.type = "button", i.className = "gradient-popover-close", i.innerHTML = ut, i.addEventListener("click", () => this.closePopover()), t.appendChild(e), t.appendChild(i);
2818
2775
  const s = document.createElement("div");
2819
2776
  s.className = "gradient-editor";
2820
2777
  const n = this.createTypeTabs();
@@ -2861,17 +2818,81 @@ class se extends I {
2861
2818
  t.innerHTML = "", this.value && (this.value.type === "solid" ? this.createSolidEditor(t) : this.createGradientEditor(t));
2862
2819
  }
2863
2820
  createSolidEditor(t) {
2864
- var o, a, l, r, c, h;
2865
2821
  const e = document.createElement("div");
2866
- e.className = "gradient-solid-picker embedded-color-picker";
2867
- const i = ((l = (a = (o = this.value) == null ? void 0 : o.stops) == null ? void 0 : a[0]) == null ? void 0 : l.color) || "#000000", s = ((h = (c = (r = this.value) == null ? void 0 : r.stops) == null ? void 0 : c[0]) == null ? void 0 : h.opacity) || 100, n = this.createEmbeddedColorPickerWithOpacity(
2868
- i,
2869
- s,
2870
- (d, u) => {
2871
- this.value && (!this.value.stops || this.value.stops.length === 0 ? this.value.stops = [{ color: d, position: 0, opacity: u }] : (this.value.stops[0].color = d, this.value.stops[0].opacity = u), this.updateUI(), this.triggerChange());
2872
- }
2822
+ if (e.className = "gradient-solid-picker", !this.value) return;
2823
+ (!this.value.stops || this.value.stops.length === 0) && (this.value.stops = [{ color: "#000000", position: 0, opacity: 100 }]);
2824
+ let i = this.value.stops[0].color || "#000000", s = this.value.stops[0].opacity !== void 0 ? this.value.stops[0].opacity : 100;
2825
+ const n = () => {
2826
+ this.value && (!this.value.stops || this.value.stops.length === 0) && (this.value.stops = [{ color: i, position: 0, opacity: s }]);
2827
+ }, o = document.createElement("div");
2828
+ o.className = "gstop-row solid-row";
2829
+ const a = document.createElement("div");
2830
+ a.className = "gstop-color-container";
2831
+ const l = document.createElement("div");
2832
+ l.className = "gstop-color-preview", l.style.backgroundColor = i;
2833
+ const r = document.createElement("input");
2834
+ r.type = "text", r.className = "gstop-color-input", r.value = i.toUpperCase(), r.placeholder = "#000000";
2835
+ const c = document.createElement("button");
2836
+ c.type = "button", c.className = "gstop-color-copy", c.innerHTML = `<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
2837
+ <path d="M14.5896 19.3033L13.4111 20.4818C11.7839 22.109 9.14575 22.109 7.51856 20.4818C5.89138 18.8546 5.89138 16.2164 7.51856 14.5892L8.69708 13.4107M19.3037 14.5892L20.4822 13.4107C22.1094 11.7835 22.1094 9.14535 20.4822 7.51816C18.855 5.89098 16.2168 5.89098 14.5896 7.51816L13.4111 8.69668M11.0837 16.9166L16.917 11.0833" stroke="#919EAB" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
2838
+ </svg>`, a.appendChild(l), a.appendChild(r), a.appendChild(c), o.appendChild(a), e.appendChild(o);
2839
+ const h = document.createElement("div");
2840
+ h.className = "gstop-opacity-row";
2841
+ const d = document.createElement("span");
2842
+ d.className = "gstop-opacity-label", d.textContent = "Opacity";
2843
+ const C = document.createElement("div");
2844
+ C.className = "gstop-opacity-group";
2845
+ const u = document.createElement("input");
2846
+ u.type = "range", u.className = "gstop-opacity-slider", u.min = "0", u.max = "100", u.value = s.toString();
2847
+ const f = (y) => {
2848
+ const E = this.hexToRgb(y);
2849
+ u.style.setProperty(
2850
+ "--slider-color",
2851
+ `rgb(${E.r}, ${E.g}, ${E.b})`
2852
+ );
2853
+ };
2854
+ f(i);
2855
+ const v = document.createElement("span");
2856
+ v.className = "gstop-opacity-value", v.textContent = `${s}%`, C.appendChild(u), C.appendChild(v), h.appendChild(d), h.appendChild(C), e.appendChild(h), t.appendChild(e);
2857
+ const b = (y, E) => {
2858
+ i = y, s = Math.round(E), n(), r.value = y.toUpperCase(), l.style.backgroundColor = y, u.value = s.toString(), v.textContent = `${s}%`, f(y), this.value && this.value.stops && this.value.stops[0] && (this.value.stops[0].color = y, this.value.stops[0].opacity = s), this.updateUI(), this.triggerChange();
2859
+ };
2860
+ let m = null;
2861
+ const L = new ht(
2862
+ (y, E) => {
2863
+ m = null, b(y, E ?? s);
2864
+ },
2865
+ "solid"
2873
2866
  );
2874
- e.appendChild(n), t.appendChild(e);
2867
+ c.addEventListener("click", async (y) => {
2868
+ y.stopPropagation();
2869
+ const E = r.value.startsWith("#") ? r.value : `#${r.value}`;
2870
+ try {
2871
+ await navigator.clipboard.writeText(E);
2872
+ const O = c.innerHTML;
2873
+ c.innerHTML = `<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
2874
+ <path d="M9.3335 14L12.2502 16.9167L18.6668 10.5" stroke="#00A76F" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
2875
+ </svg>`, setTimeout(() => {
2876
+ c.innerHTML = O;
2877
+ }, 1e3);
2878
+ } catch (O) {
2879
+ console.warn("Failed to copy color to clipboard:", O);
2880
+ }
2881
+ });
2882
+ const M = () => {
2883
+ m && (J.addColor(m, "solid"), m = null);
2884
+ };
2885
+ r.addEventListener("click", (y) => {
2886
+ y.stopPropagation(), L.open(i, r, s);
2887
+ }), r.addEventListener("input", (y) => {
2888
+ const E = y.target.value.trim(), O = E.startsWith("#") ? E : `#${E}`;
2889
+ /^#[0-9A-Fa-f]{6}$/.test(O) && (m = O, b(O, s));
2890
+ }), r.addEventListener("blur", M), r.addEventListener("keydown", (y) => {
2891
+ y.key === "Enter" && (y.preventDefault(), M(), r.blur());
2892
+ }), u.addEventListener("input", (y) => {
2893
+ const E = parseInt(y.target.value, 10);
2894
+ isNaN(E) || (s = Math.max(0, Math.min(100, E)), v.textContent = `${s}%`, n(), this.value && this.value.stops && this.value.stops[0] && (this.value.stops[0].opacity = s), this.updateUI(), this.triggerChange());
2895
+ });
2875
2896
  }
2876
2897
  createEmbeddedColorPickerWithOpacity(t, e, i) {
2877
2898
  const s = document.createElement("div");
@@ -2894,40 +2915,57 @@ class se extends I {
2894
2915
  h.className = "color-picker-opacity embedded";
2895
2916
  const d = document.createElement("div");
2896
2917
  d.className = "color-picker-opacity-marker", h.appendChild(d);
2897
- const u = document.createElement("div");
2898
- u.className = "color-picker-format-section embedded";
2899
- const g = document.createElement("select");
2900
- g.className = "color-picker-format-select";
2901
- const C = document.createElement("option");
2902
- C.value = "hex", C.textContent = "HEX";
2903
- const m = document.createElement("option");
2904
- m.value = "rgb", m.textContent = "RGB";
2905
- const y = document.createElement("option");
2906
- y.value = "hsl", y.textContent = "HSL", g.appendChild(C), g.appendChild(m), g.appendChild(y);
2907
- const f = document.createElement("input");
2908
- f.type = "text", f.className = "color-picker-color-input", f.value = t;
2909
- const E = document.createElement("div");
2910
- E.className = "color-picker-input-container";
2911
- const V = document.createElement("button");
2912
- return V.className = "color-picker-copy-inside", V.textContent = "Copy", E.appendChild(f), E.appendChild(V), u.appendChild(g), u.appendChild(E), s.appendChild(n), s.appendChild(a), s.appendChild(h), s.appendChild(u), this.setupEmbeddedColorPicker(
2918
+ const C = document.createElement("div");
2919
+ C.className = "color-picker-format-section embedded";
2920
+ const u = document.createElement("select");
2921
+ u.className = "color-picker-format-select";
2922
+ const f = document.createElement("option");
2923
+ f.value = "hex", f.textContent = "HEX";
2924
+ const v = document.createElement("option");
2925
+ v.value = "rgb", v.textContent = "RGB";
2926
+ const b = document.createElement("option");
2927
+ b.value = "hsl", b.textContent = "HSL", u.appendChild(f), u.appendChild(v), u.appendChild(b);
2928
+ const m = document.createElement("input");
2929
+ m.type = "text", m.className = "color-picker-color-input", m.value = t;
2930
+ const L = document.createElement("div");
2931
+ L.className = "color-picker-input-container";
2932
+ const M = document.createElement("button");
2933
+ M.className = "color-picker-copy-inside", M.textContent = "Copy", L.appendChild(m), L.appendChild(M), C.appendChild(u), C.appendChild(L), s.appendChild(n), s.appendChild(a), s.appendChild(h);
2934
+ let y, E;
2935
+ const O = this.setupEmbeddedColorPicker(
2913
2936
  n,
2914
2937
  o,
2915
2938
  r,
2916
2939
  c,
2917
- g,
2918
- f,
2919
- V,
2940
+ u,
2941
+ m,
2942
+ M,
2920
2943
  l,
2921
2944
  t,
2922
2945
  e,
2923
- i
2924
- ), this.setupOpacitySlider(
2946
+ i,
2947
+ {
2948
+ onColorChanged: () => {
2949
+ E == null || E();
2950
+ },
2951
+ onColorApplied: () => {
2952
+ y == null || y(), E == null || E();
2953
+ }
2954
+ },
2955
+ "solid"
2956
+ ), q = lt(
2957
+ (w) => {
2958
+ O.applyColor(w);
2959
+ },
2960
+ "solid"
2961
+ );
2962
+ y = () => q.refresh(), s.appendChild(q.container), s.appendChild(C);
2963
+ const S = this.setupOpacitySlider(
2925
2964
  h,
2926
2965
  d,
2927
- t,
2928
- e,
2929
- i
2930
- ), s;
2966
+ O
2967
+ );
2968
+ return E = () => S.refresh(), s;
2931
2969
  }
2932
2970
  createEmbeddedColorPicker(t, e, i) {
2933
2971
  const s = document.createElement("div");
@@ -2950,162 +2988,195 @@ class se extends I {
2950
2988
  h.className = "color-picker-format-section embedded";
2951
2989
  const d = document.createElement("select");
2952
2990
  d.className = "color-picker-format-select";
2953
- const u = document.createElement("option");
2954
- u.value = "hex", u.textContent = "HEX";
2955
- const g = document.createElement("option");
2956
- g.value = "rgb", g.textContent = "RGB";
2957
2991
  const C = document.createElement("option");
2958
- C.value = "hsl", C.textContent = "HSL", d.appendChild(u), d.appendChild(g), d.appendChild(C);
2959
- const m = document.createElement("input");
2960
- m.type = "text", m.className = "color-picker-color-input", m.value = t;
2961
- const y = document.createElement("div");
2962
- y.className = "color-picker-input-container";
2963
- const f = document.createElement("button");
2964
- return f.className = "color-picker-copy-inside", f.textContent = "Copy", y.appendChild(m), y.appendChild(f), h.appendChild(d), h.appendChild(y), s.appendChild(n), s.appendChild(a), s.appendChild(h), this.setupEmbeddedColorPicker(
2992
+ C.value = "hex", C.textContent = "HEX";
2993
+ const u = document.createElement("option");
2994
+ u.value = "rgb", u.textContent = "RGB";
2995
+ const f = document.createElement("option");
2996
+ f.value = "hsl", f.textContent = "HSL", d.appendChild(C), d.appendChild(u), d.appendChild(f);
2997
+ const v = document.createElement("input");
2998
+ v.type = "text", v.className = "color-picker-color-input", v.value = t;
2999
+ const b = document.createElement("div");
3000
+ b.className = "color-picker-input-container";
3001
+ const m = document.createElement("button");
3002
+ m.className = "color-picker-copy-inside", m.textContent = "Copy", b.appendChild(v), b.appendChild(m), h.appendChild(d), h.appendChild(b), s.appendChild(n), s.appendChild(a);
3003
+ let L;
3004
+ const M = this.setupEmbeddedColorPicker(
2965
3005
  n,
2966
3006
  o,
2967
3007
  r,
2968
3008
  c,
2969
3009
  d,
3010
+ v,
2970
3011
  m,
2971
- f,
2972
3012
  l,
2973
3013
  t,
2974
3014
  e,
2975
- i
2976
- ), s;
3015
+ i,
3016
+ {
3017
+ onColorApplied: () => {
3018
+ L == null || L();
3019
+ }
3020
+ },
3021
+ "gradient"
3022
+ ), y = lt(
3023
+ (E) => {
3024
+ M.applyColor(E);
3025
+ },
3026
+ "gradient"
3027
+ );
3028
+ return L = () => y.refresh(), s.appendChild(y.container), s.appendChild(h), s;
2977
3029
  }
2978
- setupEmbeddedColorPicker(t, e, i, s, n, o, a, l, r, c, h) {
2979
- let d = r;
2980
- const { h: u, s: g, v: C } = this.hexToHsv(r);
3030
+ setupEmbeddedColorPicker(t, e, i, s, n, o, a, l, r, c, h, d, C = "gradient") {
3031
+ let u = r;
3032
+ const { h: f, s: v, v: b } = this.hexToHsv(r);
2981
3033
  let m = c;
2982
- s.style.left = `${u / 360 * 100}%`, e.style.left = `${g * 100}%`, e.style.top = `${(1 - C) * 100}%`, t.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${u}, 100%, 50%))`;
2983
- const y = (v, w = m) => {
2984
- d = v, m = Math.round(w), f(), h(v, m);
2985
- }, f = () => {
2986
- const v = n.value, { h: w, s: x, v: k } = this.hexToHsv(d);
2987
- switch (v) {
3034
+ s.style.left = `${f / 360 * 100}%`, e.style.left = `${v * 100}%`, e.style.top = `${(1 - b) * 100}%`, t.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${f}, 100%, 50%))`;
3035
+ const L = () => {
3036
+ var g;
3037
+ (g = d == null ? void 0 : d.onColorChanged) == null || g.call(d);
3038
+ }, M = () => {
3039
+ var g;
3040
+ J.addColor(u, C), (g = d == null ? void 0 : d.onColorApplied) == null || g.call(d);
3041
+ }, y = (g, x = m) => {
3042
+ u = g, m = Math.round(x), E(), h(g, m), L();
3043
+ }, E = () => {
3044
+ const g = n.value, { h: x, s: k, v: I } = this.hexToHsv(u);
3045
+ switch (g) {
2988
3046
  case "hex":
2989
- o.value = d;
3047
+ o.value = u;
2990
3048
  break;
2991
3049
  case "rgb":
2992
- const { r: T, g: $, b: W } = this.hexToRgb(d);
2993
- o.value = `rgb(${T}, ${$}, ${W})`;
3050
+ const { r: $, g: F, b: _ } = this.hexToRgb(u);
3051
+ o.value = `rgb(${$}, ${F}, ${_})`;
2994
3052
  break;
2995
3053
  case "hsl":
2996
- const { hue: F, sat: _, lightness: K } = this.hsvToHsl(w, x, k);
2997
- o.value = `hsl(${Math.round(F)}, ${Math.round(
2998
- _ * 100
2999
- )}%, ${Math.round(K * 100)}%)`;
3054
+ const { hue: G, sat: Z, lightness: st } = this.hsvToHsl(x, k, I);
3055
+ o.value = `hsl(${Math.round(G)}, ${Math.round(
3056
+ Z * 100
3057
+ )}%, ${Math.round(st * 100)}%)`;
3000
3058
  break;
3001
3059
  }
3002
- }, E = () => parseFloat(s.style.left || "0%") / 100 * 360, V = (v, w) => {
3003
- const x = E(), k = this.hsvToHex(x, v, w);
3004
- y(k, m);
3005
- }, A = (v) => {
3006
- v = Math.max(0.1, Math.min(358.9, v));
3007
- const w = parseFloat(e.style.left || "50%") / 100, x = parseFloat(e.style.top || "50%") / 100;
3008
- t.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${v}, 100%, 50%))`;
3009
- const k = w, T = 1 - x, $ = this.hsvToHex(v, k, T);
3010
- y($, m);
3011
- }, B = (v) => {
3012
- v.stopPropagation();
3013
- const w = t.getBoundingClientRect(), x = Math.max(0, Math.min(1, (v.clientX - w.left) / w.width)), k = Math.max(0, Math.min(1, (v.clientY - w.top) / w.height));
3014
- e.style.left = `${x * 100}%`, e.style.top = `${k * 100}%`, V(x, 1 - k);
3015
- }, L = (v) => {
3016
- v.preventDefault(), v.stopPropagation(), B(v);
3017
- const w = (k) => B(k), x = () => {
3018
- document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", x);
3060
+ }, O = (g) => {
3061
+ if (!/^#[0-9A-Fa-f]{6}$/.test(g))
3062
+ return;
3063
+ const { h: x, s: k, v: I } = this.hexToHsv(g);
3064
+ s.style.left = `${x / 360 * 100}%`, e.style.left = `${k * 100}%`, e.style.top = `${(1 - I) * 100}%`, t.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${x}, 100%, 50%))`, y(g, m);
3065
+ }, q = () => parseFloat(s.style.left || "0%") / 100 * 360, S = (g, x) => {
3066
+ const k = q(), I = this.hsvToHex(k, g, x);
3067
+ y(I, m);
3068
+ }, w = (g) => {
3069
+ g = Math.max(0.1, Math.min(358.9, g));
3070
+ const x = parseFloat(e.style.left || "50%") / 100, k = parseFloat(e.style.top || "50%") / 100;
3071
+ t.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${g}, 100%, 50%))`;
3072
+ const I = x, $ = 1 - k, F = this.hsvToHex(g, I, $);
3073
+ y(F, m);
3074
+ }, N = (g) => {
3075
+ const x = t.getBoundingClientRect(), k = Math.max(0, Math.min(1, (g.clientX - x.left) / x.width)), I = Math.max(0, Math.min(1, (g.clientY - x.top) / x.height));
3076
+ e.style.left = `${k * 100}%`, e.style.top = `${I * 100}%`, S(k, 1 - I);
3077
+ }, D = (g) => {
3078
+ g.preventDefault(), g.stopPropagation(), N(g);
3079
+ const x = (I) => N(I), k = () => {
3080
+ document.removeEventListener("mousemove", x), document.removeEventListener("mouseup", k), M();
3019
3081
  };
3020
- document.addEventListener("mousemove", w), document.addEventListener("mouseup", x);
3021
- }, b = (v) => {
3022
- v.stopPropagation();
3023
- const w = i.getBoundingClientRect();
3024
- let x = (v.clientX - w.left) / w.width;
3025
- x = Math.max(1e-3, Math.min(0.998, x)), s.style.left = `${x * 100}%`;
3026
- const k = x * 360;
3027
- A(k);
3028
- }, M = (v) => {
3029
- v.preventDefault(), v.stopPropagation(), b(v);
3030
- const w = (k) => b(k), x = () => {
3031
- document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", x);
3082
+ document.addEventListener("mousemove", x), document.addEventListener("mouseup", k);
3083
+ }, A = (g) => {
3084
+ const x = i.getBoundingClientRect();
3085
+ let k = (g.clientX - x.left) / x.width;
3086
+ k = Math.max(1e-3, Math.min(0.998, k)), s.style.left = `${k * 100}%`;
3087
+ const I = k * 360;
3088
+ w(I);
3089
+ }, P = (g) => {
3090
+ g.preventDefault(), g.stopPropagation(), A(g);
3091
+ const x = (I) => A(I), k = () => {
3092
+ document.removeEventListener("mousemove", x), document.removeEventListener("mouseup", k), M();
3032
3093
  };
3033
- document.addEventListener("mousemove", w), document.addEventListener("mouseup", x);
3034
- }, P = (v) => {
3035
- const w = v.target.value, x = n.value;
3036
- let k = "";
3037
- if (x === "hex" && /^#[0-9A-Fa-f]{6}$/.test(w))
3038
- k = w;
3039
- else if (x === "rgb") {
3040
- const T = w.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);
3041
- if (T) {
3042
- const $ = parseInt(T[1]), W = parseInt(T[2]), F = parseInt(T[3]);
3043
- $ <= 255 && W <= 255 && F <= 255 && (k = `#${$.toString(16).padStart(2, "0")}${W.toString(16).padStart(2, "0")}${F.toString(16).padStart(2, "0")}`);
3094
+ document.addEventListener("mousemove", x), document.addEventListener("mouseup", k);
3095
+ }, V = (g) => {
3096
+ const x = g.target.value, k = n.value;
3097
+ let I = "";
3098
+ if (k === "hex" && /^#[0-9A-Fa-f]{6}$/.test(x))
3099
+ I = x;
3100
+ else if (k === "rgb") {
3101
+ const $ = x.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);
3102
+ if ($) {
3103
+ const F = parseInt($[1]), _ = parseInt($[2]), G = parseInt($[3]);
3104
+ F <= 255 && _ <= 255 && G <= 255 && (I = `#${F.toString(16).padStart(2, "0")}${_.toString(16).padStart(2, "0")}${G.toString(16).padStart(2, "0")}`);
3044
3105
  }
3045
- } else if (x === "hsl") {
3046
- const T = w.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);
3047
- if (T) {
3048
- const $ = parseInt(T[1]), W = parseInt(T[2]) / 100, F = parseInt(T[3]) / 100;
3049
- if ($ <= 360 && W <= 1 && F <= 1) {
3050
- const _ = F + W * Math.min(F, 1 - F), K = _ === 0 ? 0 : 2 * (1 - F / _);
3051
- k = this.hsvToHex($, K, _);
3106
+ } else if (k === "hsl") {
3107
+ const $ = x.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);
3108
+ if ($) {
3109
+ const F = parseInt($[1]), _ = parseInt($[2]) / 100, G = parseInt($[3]) / 100;
3110
+ if (F <= 360 && _ <= 1 && G <= 1) {
3111
+ const Z = G + _ * Math.min(G, 1 - G), st = Z === 0 ? 0 : 2 * (1 - G / Z);
3112
+ I = this.hsvToHex(F, st, Z);
3052
3113
  }
3053
3114
  }
3054
3115
  }
3055
- if (k) {
3056
- const { h: T, s: $, v: W } = this.hexToHsv(k);
3057
- s.style.left = `${T / 360 * 100}%`, e.style.left = `${$ * 100}%`, e.style.top = `${(1 - W) * 100}%`, t.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${T}, 100%, 50%))`, y(k, m);
3058
- }
3059
- }, O = (v) => {
3060
- f();
3061
- }, H = () => {
3062
- f();
3063
- }, S = () => {
3116
+ I && O(I);
3117
+ }, R = () => {
3118
+ E(), M();
3119
+ }, B = () => {
3120
+ E();
3121
+ }, gt = () => {
3064
3122
  navigator.clipboard.writeText(o.value).catch(() => {
3065
3123
  o.select(), document.execCommand("copy");
3066
3124
  });
3067
3125
  };
3068
- f(), t.addEventListener("mousedown", L), t.addEventListener("click", B), i.addEventListener("mousedown", M), i.addEventListener("click", b), n.addEventListener("change", H), o.addEventListener("input", P), o.addEventListener("blur", O), a.addEventListener("click", S);
3069
- const D = async () => {
3126
+ E(), t.addEventListener("mousedown", D), t.addEventListener("click", (g) => g.stopPropagation()), i.addEventListener("mousedown", P), i.addEventListener("click", (g) => g.stopPropagation()), n.addEventListener("change", B), o.addEventListener("input", V), o.addEventListener("blur", R), o.addEventListener("keydown", (g) => {
3127
+ g.key === "Enter" && (g.preventDefault(), R(), o.blur());
3128
+ }), a.addEventListener("click", gt);
3129
+ const mt = async () => {
3070
3130
  if ("EyeDropper" in window)
3071
3131
  try {
3072
- const x = (await new window.EyeDropper().open()).sRGBHex, { h: k, s: T, v: $ } = this.hexToHsv(x);
3073
- s.style.left = `${k / 360 * 100}%`, e.style.left = `${T * 100}%`, e.style.top = `${(1 - $) * 100}%`, t.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${k}, 100%, 50%))`, y(x, m);
3074
- } catch (v) {
3075
- console.log("User cancelled eyedropper or error occurred:", v);
3132
+ const k = (await new window.EyeDropper().open()).sRGBHex, { h: I, s: $, v: F } = this.hexToHsv(k);
3133
+ s.style.left = `${I / 360 * 100}%`, e.style.left = `${$ * 100}%`, e.style.top = `${(1 - F) * 100}%`, t.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${I}, 100%, 50%))`, y(k, m), M();
3134
+ } catch (g) {
3135
+ console.log("User cancelled eyedropper or error occurred:", g);
3076
3136
  }
3077
3137
  else
3078
3138
  alert(
3079
3139
  "EyeDropper API is not supported in this browser. Try using Chrome 95+ or Edge 95+."
3080
3140
  );
3081
3141
  };
3082
- l.addEventListener("click", D);
3142
+ return l.addEventListener("click", mt), {
3143
+ applyColor: (g) => {
3144
+ O(g), M();
3145
+ },
3146
+ getCurrentColor: () => u,
3147
+ getCurrentOpacity: () => m,
3148
+ setOpacity: (g) => {
3149
+ m = Math.max(0, Math.min(100, Math.round(g))), h(u, m), L();
3150
+ }
3151
+ };
3083
3152
  }
3084
3153
  hsvToHex(t, e, i) {
3085
3154
  const s = i * e, n = s * (1 - Math.abs(t / 60 % 2 - 1)), o = i - s;
3086
3155
  let a = 0, l = 0, r = 0;
3087
3156
  return t >= 0 && t < 60 ? (a = s, l = n, r = 0) : t >= 60 && t < 120 ? (a = n, l = s, r = 0) : t >= 120 && t < 180 ? (a = 0, l = s, r = n) : t >= 180 && t < 240 ? (a = 0, l = n, r = s) : t >= 240 && t < 300 ? (a = n, l = 0, r = s) : t >= 300 && t < 360 && (a = s, l = 0, r = n), a = Math.round((a + o) * 255), l = Math.round((l + o) * 255), r = Math.round((r + o) * 255), `#${a.toString(16).padStart(2, "0")}${l.toString(16).padStart(2, "0")}${r.toString(16).padStart(2, "0")}`;
3088
3157
  }
3089
- setupOpacitySlider(t, e, i, s, n) {
3090
- const o = () => {
3091
- const { r: c, g: h, b: d } = this.hexToRgb(i);
3092
- t.style.setProperty("--color-rgb", `${c}, ${h}, ${d}`);
3093
- }, a = () => {
3094
- e.style.left = `${s}%`;
3158
+ setupOpacitySlider(t, e, i) {
3159
+ const s = () => {
3160
+ const { r, g: c, b: h } = this.hexToRgb(i.getCurrentColor());
3161
+ t.style.setProperty("--color-rgb", `${r}, ${c}, ${h}`);
3162
+ }, n = () => {
3163
+ e.style.left = `${i.getCurrentOpacity()}%`;
3164
+ }, o = () => {
3165
+ s(), n();
3095
3166
  };
3096
- o(), a();
3097
- let l = !1;
3098
- const r = (c) => {
3099
- const h = t.getBoundingClientRect(), d = c.clientX - h.left, u = Math.max(0, Math.min(100, d / h.width * 100)), g = Math.round(u);
3100
- s = g, a(), n(i, g);
3167
+ o();
3168
+ let a = !1;
3169
+ const l = (r) => {
3170
+ const c = t.getBoundingClientRect(), h = r.clientX - c.left, d = Math.max(0, Math.min(100, h / c.width * 100)), C = Math.round(d);
3171
+ i.setOpacity(C), n();
3101
3172
  };
3102
- t.addEventListener("mousedown", (c) => {
3103
- l = !0, r(c);
3104
- }), document.addEventListener("mousemove", (c) => {
3105
- l && r(c);
3173
+ return t.addEventListener("mousedown", (r) => {
3174
+ a = !0, l(r);
3175
+ }), document.addEventListener("mousemove", (r) => {
3176
+ a && l(r);
3106
3177
  }), document.addEventListener("mouseup", () => {
3107
- l = !1;
3108
- });
3178
+ a = !1;
3179
+ }), { refresh: o };
3109
3180
  }
3110
3181
  hexToHsv(t) {
3111
3182
  const e = parseInt(t.slice(1, 3), 16) / 255, i = parseInt(t.slice(3, 5), 16) / 255, s = parseInt(t.slice(5, 7), 16) / 255, n = Math.max(e, i, s), o = Math.min(e, i, s), a = n - o;
@@ -3136,31 +3207,31 @@ class se extends I {
3136
3207
  <svg width="15" height="17" viewBox="0 0 15 17" fill="none" xmlns="http://www.w3.org/2000/svg">
3137
3208
  <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"/>
3138
3209
  </svg>
3139
- `, l.title = "Flip gradient", i.addEventListener("change", (m) => {
3140
- const y = m.target.value;
3141
- this.switchType(y === "radial" ? "radial" : "linear");
3142
- }), o.addEventListener("input", (m) => {
3143
- const y = m.target.value, f = parseInt(y);
3144
- if (this.value && !isNaN(f)) {
3145
- const E = Math.max(0, Math.min(360, f));
3146
- this.value.angle = E, this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3210
+ `, l.title = "Flip gradient", i.addEventListener("change", (v) => {
3211
+ const b = v.target.value;
3212
+ this.switchType(b === "radial" ? "radial" : "linear");
3213
+ }), o.addEventListener("input", (v) => {
3214
+ const b = v.target.value, m = parseInt(b);
3215
+ if (this.value && !isNaN(m)) {
3216
+ const L = Math.max(0, Math.min(360, m));
3217
+ this.value.angle = L, this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3147
3218
  }
3148
- }), o.addEventListener("focus", (m) => {
3149
- const y = m.target;
3150
- y.value = y.value.replace(/[^0-9-]/g, ""), setTimeout(() => y.select(), 0);
3151
- }), o.addEventListener("blur", (m) => {
3152
- var E;
3153
- const y = m.target;
3154
- let f = parseInt(y.value);
3155
- isNaN(f) && (f = ((E = this.value) == null ? void 0 : E.angle) ?? 0), f = Math.max(0, Math.min(360, f)), this.value && (this.value.angle = f), y.value = `${f}°`, this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3219
+ }), o.addEventListener("focus", (v) => {
3220
+ const b = v.target;
3221
+ b.value = b.value.replace(/[^0-9-]/g, ""), setTimeout(() => b.select(), 0);
3222
+ }), o.addEventListener("blur", (v) => {
3223
+ var L;
3224
+ const b = v.target;
3225
+ let m = parseInt(b.value);
3226
+ isNaN(m) && (m = ((L = this.value) == null ? void 0 : L.angle) ?? 0), m = Math.max(0, Math.min(360, m)), this.value && (this.value.angle = m), b.value = `${m}°`, this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3156
3227
  }), l.addEventListener("click", () => {
3157
- this.value && (this.value.stops = this.value.stops.map((m) => ({
3158
- ...m,
3159
- position: 100 - m.position
3228
+ this.value && (this.value.stops = this.value.stops.map((v) => ({
3229
+ ...v,
3230
+ position: 100 - v.position
3160
3231
  })), this.updateGradientPreview(), this.updateStopsList(), this.updateUI(), this.triggerChange());
3161
3232
  }), e.appendChild(i), e.appendChild(o), e.appendChild(l), t.appendChild(e), (() => {
3162
- var m;
3163
- ((m = this.value) == null ? void 0 : m.type) === "radial" ? (o.disabled = !0, o.style.opacity = "0.5") : (o.disabled = !1, o.style.opacity = "1");
3233
+ var v;
3234
+ ((v = this.value) == null ? void 0 : v.type) === "radial" ? (o.disabled = !0, o.style.opacity = "0.5") : (o.disabled = !1, o.style.opacity = "1");
3164
3235
  })();
3165
3236
  const c = document.createElement("div");
3166
3237
  c.className = "gradient-preview", this.updateGradientPreview(c);
@@ -3168,19 +3239,19 @@ class se extends I {
3168
3239
  h.className = "gradient-handles", this.createGradientHandles(h, c), c.appendChild(h), t.appendChild(c);
3169
3240
  const d = document.createElement("div");
3170
3241
  d.className = "gradient-stops-header";
3171
- const u = document.createElement("span");
3172
- u.textContent = "Stops";
3173
- const g = document.createElement("button");
3174
- g.type = "button", g.className = "gradient-add-stop", g.textContent = "+", d.appendChild(u), d.appendChild(g);
3175
- const C = document.createElement("div");
3176
- C.className = "gradient-stops", t.appendChild(d), t.appendChild(C), this.updateStopsList(C), g.addEventListener("click", () => {
3177
- this.addGradientStop(), this.updateStopsList(C), this.updateGradientPreview(c), this.createGradientHandles(h, c), this.updateUI();
3242
+ const C = document.createElement("span");
3243
+ C.textContent = "Stops";
3244
+ const u = document.createElement("button");
3245
+ u.type = "button", u.className = "gradient-add-stop", u.textContent = "+", d.appendChild(C), d.appendChild(u);
3246
+ const f = document.createElement("div");
3247
+ f.className = "gradient-stops", t.appendChild(d), t.appendChild(f), this.updateStopsList(f), u.addEventListener("click", () => {
3248
+ this.addGradientStop(), this.updateStopsList(f), this.updateGradientPreview(c), this.createGradientHandles(h, c), this.updateUI();
3178
3249
  });
3179
3250
  }
3180
3251
  updateGradientPreview(t) {
3181
3252
  var i;
3182
3253
  const e = t || ((i = this.popoverElement) == null ? void 0 : i.querySelector(".gradient-preview"));
3183
- e && this.value && (e.style.background = this.generateCSS(this.getSafeValue()));
3254
+ e && this.value && (e.style.background = this.generateCSS(this.value));
3184
3255
  }
3185
3256
  createGradientHandles(t, e) {
3186
3257
  t.innerHTML = "", !(!this.value || this.value.type === "solid" || !this.value.stops) && this.value.stops.forEach((i, s) => {
@@ -3193,16 +3264,16 @@ class se extends I {
3193
3264
  makeDraggable(t, e, i) {
3194
3265
  let s = !1, n = 0, o = 0, a = null;
3195
3266
  const l = (d) => "touches" in d && d.touches.length > 0 ? d.touches[0].clientX : d.clientX, r = (d) => {
3196
- var u, g, C;
3197
- s = !0, n = l(d), o = ((C = (g = (u = this.value) == null ? void 0 : u.stops) == null ? void 0 : g[i]) == null ? void 0 : C.position) || 0, t.classList.add("selected"), document.addEventListener("pointermove", c, { passive: !1 }), document.addEventListener("pointerup", h), document.addEventListener("mousemove", c, { passive: !1 }), document.addEventListener("mouseup", h), document.addEventListener("touchmove", c, {
3267
+ var C, u, f;
3268
+ s = !0, n = l(d), o = ((f = (u = (C = this.value) == null ? void 0 : C.stops) == null ? void 0 : u[i]) == null ? void 0 : f.position) || 0, t.classList.add("selected"), document.addEventListener("pointermove", c, { passive: !1 }), document.addEventListener("pointerup", h), document.addEventListener("mousemove", c, { passive: !1 }), document.addEventListener("mouseup", h), document.addEventListener("touchmove", c, {
3198
3269
  passive: !1
3199
3270
  }), document.addEventListener("touchend", h), d.preventDefault();
3200
3271
  }, c = (d) => {
3201
- var y, f;
3202
- if (!s || !((f = (y = this.value) == null ? void 0 : y.stops) != null && f[i])) return;
3203
- const u = e.getBoundingClientRect(), C = (l(d) - n) / u.width * 100;
3204
- let m = o + C;
3205
- m = Math.max(0, Math.min(100, m)), this.value.stops[i].position = Math.round(m), t.style.left = `${m}%`, a && cancelAnimationFrame(a), a = requestAnimationFrame(() => {
3272
+ var b, m;
3273
+ if (!s || !((m = (b = this.value) == null ? void 0 : b.stops) != null && m[i])) return;
3274
+ const C = e.getBoundingClientRect(), f = (l(d) - n) / C.width * 100;
3275
+ let v = o + f;
3276
+ v = Math.max(0, Math.min(100, v)), this.value.stops[i].position = Math.round(v), t.style.left = `${v}%`, a && cancelAnimationFrame(a), a = requestAnimationFrame(() => {
3206
3277
  this.updateGradientPreview(), this.updateStopsList(), this.updateUI(), a = null;
3207
3278
  }), d.preventDefault();
3208
3279
  }, h = () => {
@@ -3216,7 +3287,7 @@ class se extends I {
3216
3287
  var i;
3217
3288
  const e = t || ((i = this.popoverElement) == null ? void 0 : i.querySelector(".gradient-stops"));
3218
3289
  !e || !this.value || this.value.type === "solid" || !this.value.stops || (e.innerHTML = "", this.value.stops.forEach((s, n) => {
3219
- var A, B;
3290
+ var O, q;
3220
3291
  const o = document.createElement("div");
3221
3292
  o.className = "gstop-row";
3222
3293
  const a = document.createElement("div");
@@ -3233,130 +3304,138 @@ class se extends I {
3233
3304
  d.type = "button", d.className = "gstop-color-copy", d.innerHTML = `<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
3234
3305
  <path d="M14.5896 19.3033L13.4111 20.4818C11.7839 22.109 9.14575 22.109 7.51856 20.4818C5.89138 18.8546 5.89138 16.2164 7.51856 14.5892L8.69708 13.4107M19.3037 14.5892L20.4822 13.4107C22.1094 11.7835 22.1094 9.14535 20.4822 7.51816C18.855 5.89098 16.2168 5.89098 14.5896 7.51816L13.4111 8.69668M11.0837 16.9166L16.917 11.0833" stroke="#919EAB" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
3235
3306
  </svg>`, r.appendChild(c), r.appendChild(h), r.appendChild(d);
3236
- const u = document.createElement("button");
3237
- u.type = "button", u.className = "gstop-del", u.innerHTML = `<svg width="14" height="2" viewBox="0 0 14 2" fill="none" xmlns="http://www.w3.org/2000/svg">
3307
+ const C = document.createElement("button");
3308
+ C.type = "button", C.className = "gstop-del", C.innerHTML = `<svg width="14" height="2" viewBox="0 0 14 2" fill="none" xmlns="http://www.w3.org/2000/svg">
3238
3309
  <path d="M0.8 0.800003H12.4667" stroke="#919EAB" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
3239
- </svg>`, u.disabled = (((B = (A = this.value) == null ? void 0 : A.stops) == null ? void 0 : B.length) || 0) <= 2, l.addEventListener("input", (L) => {
3240
- var O;
3241
- const b = L.target, M = b.value.replace(/[^\d]/g, ""), P = parseInt(M);
3242
- if (this.value && !isNaN(P)) {
3243
- const H = Math.max(0, Math.min(100, P));
3244
- this.value.stops[n].position = H, b.value = `${H}%`;
3245
- const S = (O = this.popoverElement) == null ? void 0 : O.querySelector(
3310
+ </svg>`, C.disabled = (((q = (O = this.value) == null ? void 0 : O.stops) == null ? void 0 : q.length) || 0) <= 2, l.addEventListener("input", (S) => {
3311
+ var A;
3312
+ const w = S.target, N = w.value.replace(/[^\d]/g, ""), D = parseInt(N);
3313
+ if (this.value && !isNaN(D)) {
3314
+ const P = Math.max(0, Math.min(100, D));
3315
+ this.value.stops[n].position = P, w.value = `${P}%`;
3316
+ const V = (A = this.popoverElement) == null ? void 0 : A.querySelector(
3246
3317
  ".gradient-preview"
3247
- ), D = S == null ? void 0 : S.querySelector(
3318
+ ), R = V == null ? void 0 : V.querySelector(
3248
3319
  ".gradient-handles"
3249
3320
  );
3250
- S && D && this.createGradientHandles(D, S), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3321
+ V && R && this.createGradientHandles(R, V), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3251
3322
  }
3252
- }), l.addEventListener("focus", (L) => {
3253
- const b = L.target, M = b.value.replace("%", "");
3254
- b.value = M, b.select();
3255
- }), l.addEventListener("blur", (L) => {
3256
- var O, H;
3257
- const b = L.target, M = b.value.replace(/[^\d]/g, ""), P = parseInt(M);
3258
- if (isNaN(P))
3259
- b.value = `${((H = (O = this.value) == null ? void 0 : O.stops[n]) == null ? void 0 : H.position) || 0}%`;
3323
+ }), l.addEventListener("focus", (S) => {
3324
+ const w = S.target, N = w.value.replace("%", "");
3325
+ w.value = N, w.select();
3326
+ }), l.addEventListener("blur", (S) => {
3327
+ var A, P;
3328
+ const w = S.target, N = w.value.replace(/[^\d]/g, ""), D = parseInt(N);
3329
+ if (isNaN(D))
3330
+ w.value = `${((P = (A = this.value) == null ? void 0 : A.stops[n]) == null ? void 0 : P.position) || 0}%`;
3260
3331
  else {
3261
- const S = Math.max(0, Math.min(100, P));
3262
- b.value = `${S}%`, this.value && (this.value.stops[n].position = S, this.updateGradientPreview(), this.updateUI(), this.triggerChange());
3332
+ const V = Math.max(0, Math.min(100, D));
3333
+ w.value = `${V}%`, this.value && (this.value.stops[n].position = V, this.updateGradientPreview(), this.updateUI(), this.triggerChange());
3263
3334
  }
3264
3335
  });
3265
- const g = new Pt(
3266
- (L, b) => {
3267
- var M, P, O;
3268
- if (h.value = L.replace("#", "").toUpperCase(), c.style.backgroundColor = L, this.value) {
3269
- this.value.stops[n].color = L, b !== void 0 && (this.value.stops[n].opacity = b);
3270
- const H = (M = o.parentElement) == null ? void 0 : M.querySelector(
3336
+ const u = new ht(
3337
+ (S, w) => {
3338
+ var N, D, A;
3339
+ if (h.value = S.replace("#", "").toUpperCase(), c.style.backgroundColor = S, f = null, this.value) {
3340
+ this.value.stops[n].color = S, w !== void 0 && (this.value.stops[n].opacity = w);
3341
+ const P = (N = o.parentElement) == null ? void 0 : N.querySelector(
3271
3342
  ".gstop-opacity-slider"
3272
3343
  );
3273
- if (H) {
3274
- const v = this.hexToRgb(L);
3275
- H.style.setProperty(
3344
+ if (P) {
3345
+ const B = this.hexToRgb(S);
3346
+ P.style.setProperty(
3276
3347
  "--slider-color",
3277
- `rgb(${v.r}, ${v.g}, ${v.b})`
3348
+ `rgb(${B.r}, ${B.g}, ${B.b})`
3278
3349
  );
3279
3350
  }
3280
- if (b !== void 0) {
3281
- const v = (P = o.parentElement) == null ? void 0 : P.querySelector(
3351
+ if (w !== void 0) {
3352
+ const B = (D = o.parentElement) == null ? void 0 : D.querySelector(
3282
3353
  ".gstop-opacity-value"
3283
3354
  );
3284
- v && (v.textContent = `${b}%`), H && (H.value = b.toString());
3355
+ B && (B.textContent = `${w}%`), P && (P.value = w.toString());
3285
3356
  }
3286
- const S = (O = this.popoverElement) == null ? void 0 : O.querySelector(
3357
+ const V = (A = this.popoverElement) == null ? void 0 : A.querySelector(
3287
3358
  ".gradient-preview"
3288
- ), D = S == null ? void 0 : S.querySelector(
3359
+ ), R = V == null ? void 0 : V.querySelector(
3289
3360
  ".gradient-handles"
3290
3361
  );
3291
- S && D && this.createGradientHandles(D, S), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3362
+ V && R && this.createGradientHandles(R, V), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3292
3363
  }
3293
- }
3364
+ },
3365
+ "gradient"
3294
3366
  );
3295
- h.addEventListener("click", (L) => {
3296
- L.stopPropagation(), g.open(s.color, h, s.opacity || 100);
3297
- }), h.addEventListener("input", (L) => {
3298
- var P, O;
3299
- const b = L.target.value.trim(), M = b.startsWith("#") ? b : `#${b}`;
3300
- if (/^#[0-9A-Fa-f]{6}$/.test(M) && (c.style.backgroundColor = M, this.value)) {
3301
- this.value.stops[n].color = M;
3302
- const H = (P = o.parentElement) == null ? void 0 : P.querySelector(
3367
+ let f = null;
3368
+ h.addEventListener("click", (S) => {
3369
+ S.stopPropagation(), u.open(s.color, h, s.opacity || 100);
3370
+ }), h.addEventListener("input", (S) => {
3371
+ var D, A;
3372
+ const w = S.target.value.trim(), N = w.startsWith("#") ? w : `#${w}`;
3373
+ if (/^#[0-9A-Fa-f]{6}$/.test(N) && (c.style.backgroundColor = N, this.value)) {
3374
+ this.value.stops[n].color = N, f = N;
3375
+ const P = (D = o.parentElement) == null ? void 0 : D.querySelector(
3303
3376
  ".gstop-opacity-slider"
3304
3377
  );
3305
- if (H) {
3306
- const v = this.hexToRgb(M);
3307
- H.style.setProperty(
3378
+ if (P) {
3379
+ const B = this.hexToRgb(N);
3380
+ P.style.setProperty(
3308
3381
  "--slider-color",
3309
- `rgb(${v.r}, ${v.g}, ${v.b})`
3382
+ `rgb(${B.r}, ${B.g}, ${B.b})`
3310
3383
  );
3311
3384
  }
3312
- const S = (O = this.popoverElement) == null ? void 0 : O.querySelector(
3385
+ const V = (A = this.popoverElement) == null ? void 0 : A.querySelector(
3313
3386
  ".gradient-preview"
3314
- ), D = S == null ? void 0 : S.querySelector(
3387
+ ), R = V == null ? void 0 : V.querySelector(
3315
3388
  ".gradient-handles"
3316
3389
  );
3317
- S && D && this.createGradientHandles(D, S), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3390
+ V && R && this.createGradientHandles(R, V), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3318
3391
  }
3319
- }), d.addEventListener("click", async (L) => {
3320
- L.stopPropagation();
3321
- const b = `#${h.value}`;
3392
+ });
3393
+ const v = () => {
3394
+ f && (J.addColor(f, "gradient"), f = null);
3395
+ };
3396
+ h.addEventListener("blur", v), h.addEventListener("keydown", (S) => {
3397
+ S.key === "Enter" && (S.preventDefault(), v(), h.blur());
3398
+ }), d.addEventListener("click", async (S) => {
3399
+ S.stopPropagation();
3400
+ const w = `#${h.value}`;
3322
3401
  try {
3323
- await navigator.clipboard.writeText(b);
3324
- const M = d.innerHTML;
3402
+ await navigator.clipboard.writeText(w);
3403
+ const N = d.innerHTML;
3325
3404
  d.innerHTML = `<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
3326
3405
  <path d="M9.3335 14L12.2502 16.9167L18.6668 10.5" stroke="#00A76F" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
3327
3406
  </svg>`, setTimeout(() => {
3328
- d.innerHTML = M;
3407
+ d.innerHTML = N;
3329
3408
  }, 1e3);
3330
- } catch (M) {
3331
- console.warn("Failed to copy color to clipboard:", M);
3409
+ } catch (N) {
3410
+ console.warn("Failed to copy color to clipboard:", N);
3332
3411
  }
3333
- }), u.addEventListener("click", () => {
3334
- var L;
3412
+ }), C.addEventListener("click", () => {
3413
+ var S;
3335
3414
  if (this.value && this.value.stops.length > 2) {
3336
3415
  this.value.stops.splice(n, 1);
3337
- const b = (L = this.popoverElement) == null ? void 0 : L.querySelector(
3416
+ const w = (S = this.popoverElement) == null ? void 0 : S.querySelector(
3338
3417
  ".gradient-preview"
3339
- ), M = b == null ? void 0 : b.querySelector(
3418
+ ), N = w == null ? void 0 : w.querySelector(
3340
3419
  ".gradient-handles"
3341
3420
  );
3342
- b && M && this.createGradientHandles(M, b), this.updateStopsList(), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3421
+ w && N && this.createGradientHandles(N, w), this.updateStopsList(), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
3343
3422
  }
3344
- }), o.appendChild(a), o.appendChild(r), o.appendChild(u), e.appendChild(o);
3345
- const C = document.createElement("div");
3346
- C.className = "gstop-opacity-row";
3423
+ }), o.appendChild(a), o.appendChild(r), o.appendChild(C), e.appendChild(o);
3424
+ const b = document.createElement("div");
3425
+ b.className = "gstop-opacity-row";
3347
3426
  const m = document.createElement("span");
3348
3427
  m.className = "gstop-opacity-label", m.textContent = "Opacity";
3349
- const y = document.createElement("div");
3350
- y.className = "gstop-opacity-group";
3351
- const f = document.createElement("input");
3352
- f.type = "range", f.className = "gstop-opacity-slider", f.min = "0", f.max = "100", f.value = (s.opacity !== void 0 ? s.opacity : 100).toString();
3353
- const E = this.hexToRgb(s.color);
3354
- f.style.setProperty(
3428
+ const L = document.createElement("div");
3429
+ L.className = "gstop-opacity-group";
3430
+ const M = document.createElement("input");
3431
+ M.type = "range", M.className = "gstop-opacity-slider", M.min = "0", M.max = "100", M.value = (s.opacity !== void 0 ? s.opacity : 100).toString();
3432
+ const y = this.hexToRgb(s.color);
3433
+ M.style.setProperty(
3355
3434
  "--slider-color",
3356
- `rgb(${E.r}, ${E.g}, ${E.b})`
3435
+ `rgb(${y.r}, ${y.g}, ${y.b})`
3357
3436
  );
3358
- const V = document.createElement("span");
3359
- V.className = "gstop-opacity-value", V.textContent = `${s.opacity !== void 0 ? s.opacity : 100}%`;
3437
+ const E = document.createElement("span");
3438
+ E.className = "gstop-opacity-value", E.textContent = `${s.opacity !== void 0 ? s.opacity : 100}%`;
3360
3439
  }));
3361
3440
  }
3362
3441
  addGradientStop() {
@@ -3608,57 +3687,49 @@ class se extends I {
3608
3687
  return this.element;
3609
3688
  }
3610
3689
  getValue() {
3611
- return this.value ? this.generateCSS(this.getSafeValue()) : "";
3612
- }
3613
- getCSSValue() {
3614
- return this.value ? this.generateCSS(this.getSafeValue()) : "";
3615
- }
3616
- // Method to get CSS properties object for text gradients
3617
- getTextCSSProperties() {
3618
- if (!this.value) return {};
3619
- const t = this.generateCSS(this.getSafeValue());
3620
- return t.includes("gradient") ? {
3621
- background: t,
3690
+ return this.value ? this.forText ? {
3691
+ background: this.generateCSS(this.value),
3622
3692
  "-webkit-background-clip": "text",
3623
3693
  "background-clip": "text",
3624
3694
  color: "transparent",
3625
3695
  "-webkit-text-fill-color": "transparent"
3626
- } : {
3627
- color: t
3628
- };
3696
+ } : this.generateCSS(this.value) : this.forText ? {} : "";
3697
+ }
3698
+ getCSSValue() {
3699
+ return this.value ? this.generateCSS(this.value) : "";
3629
3700
  }
3630
3701
  // Add method to get the raw object value if needed
3631
3702
  getRawValue() {
3632
3703
  return this.value;
3633
3704
  }
3634
3705
  }
3635
- const Ot = `
3706
+ const Gt = `
3636
3707
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3637
3708
  <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"/>
3638
3709
  </svg>
3639
- `, $t = `
3710
+ `, Wt = `
3640
3711
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3641
3712
  <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"/>
3642
3713
  </svg>
3643
3714
  `;
3644
- class ne extends z {
3715
+ class de extends z {
3645
3716
  constructor(t) {
3646
3717
  super({
3647
3718
  title: "Border",
3648
3719
  collapsed: t == null ? void 0 : t.collapsed,
3649
3720
  settings: {
3650
- size: new G({
3721
+ size: new U({
3651
3722
  title: "Size",
3652
- icon: $t,
3723
+ icon: Wt,
3653
3724
  default: (t == null ? void 0 : t.size) ?? 0,
3654
3725
  suffix: "px"
3655
3726
  }),
3656
- color: new U({
3727
+ color: new j({
3657
3728
  default: (t == null ? void 0 : t.color) ?? "0, 0, 30"
3658
3729
  }),
3659
- radius: new G({
3730
+ radius: new U({
3660
3731
  title: "Radius",
3661
- icon: Ot,
3732
+ icon: Gt,
3662
3733
  default: (t == null ? void 0 : t.radius) ?? 12,
3663
3734
  suffix: "px"
3664
3735
  })
@@ -3677,20 +3748,20 @@ class ne extends z {
3677
3748
  `;
3678
3749
  }
3679
3750
  }
3680
- const At = `
3751
+ const Ut = `
3681
3752
  <svg xmlns="http://www.w3.org/2000/svg" width="14" height="13" viewBox="0 0 14 13" fill="none">
3682
3753
  <path d="M1 2.75C1 2.05109 1 1.70163 1.11418 1.42597C1.26642 1.05843 1.55843 0.766422 1.92597 0.614181C2.20163 0.5 2.55109 0.5 3.25 0.5H10.75C11.4489 0.5 11.7984 0.5 12.074 0.614181C12.4416 0.766422 12.7336 1.05843 12.8858 1.42597C13 1.70163 13 2.05109 13 2.75M4.75 12.5H9.25M7 0.5V12.5" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
3683
3754
  </svg>
3684
- `, Bt = `
3755
+ `, zt = `
3685
3756
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3686
3757
  <path d="M3 5.75C3 5.05109 3 4.70163 3.11418 4.42597C3.26642 4.05843 3.55843 3.76642 3.92597 3.61418C4.20163 3.5 4.55109 3.5 5.25 3.5H12.75C13.4489 3.5 13.7984 3.5 14.074 3.61418C14.4416 3.76642 14.7336 4.05843 14.8858 4.42597C15 4.70163 15 5.05109 15 5.75M6 15.5H12M7.6875 3.5V15.5M10.3125 3.5V15.5" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
3687
3758
  </svg>
3688
- `, Dt = `
3759
+ `, jt = `
3689
3760
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3690
3761
  <path d="M6 5.75H12M9 5.75V13.25M5.85 16.25H12.15C13.4101 16.25 14.0402 16.25 14.5215 16.0048C14.9448 15.789 15.289 15.4448 15.5048 15.0215C15.75 14.5402 15.75 13.9101 15.75 12.65V6.35C15.75 5.08988 15.75 4.45982 15.5048 3.97852C15.289 3.55516 14.9448 3.21095 14.5215 2.99524C14.0402 2.75 13.4101 2.75 12.15 2.75H5.85C4.58988 2.75 3.95982 2.75 3.47852 2.99524C3.05516 3.21095 2.71095 3.55516 2.49524 3.97852C2.25 4.45982 2.25 5.08988 2.25 6.35V12.65C2.25 13.9101 2.25 14.5402 2.49524 15.0215C2.71095 15.4448 3.05516 15.789 3.47852 16.0048C3.95982 16.25 4.58988 16.25 5.85 16.25Z" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
3691
3762
  </svg>
3692
3763
  `;
3693
- class oe extends z {
3764
+ class pe extends z {
3694
3765
  constructor(t = {}) {
3695
3766
  const { showAlign: e = t.showAlign ?? !0, ...i } = t;
3696
3767
  super({
@@ -3698,12 +3769,12 @@ class oe extends z {
3698
3769
  collapsed: i.collapsed,
3699
3770
  settings: (() => {
3700
3771
  const s = {
3701
- color: new U({
3772
+ color: new j({
3702
3773
  default: i.colorDefault ?? "0, 0, 30"
3703
3774
  }),
3704
- fontFamily: new et({
3775
+ fontFamily: new at({
3705
3776
  title: "Font",
3706
- icon: At,
3777
+ icon: Ut,
3707
3778
  default: i.fontFamilyDefault ?? "Satoshi",
3708
3779
  options: i.fontFamilyOptions ?? [
3709
3780
  { name: "Alt", value: "Croco Sans Black Caps Alt" },
@@ -3714,9 +3785,9 @@ class oe extends z {
3714
3785
  getOptions: i.fontFamilyGetOptions,
3715
3786
  getOptionsAsync: i.fontFamilyGetOptionsAsync
3716
3787
  }),
3717
- fontWeight: new et({
3788
+ fontWeight: new at({
3718
3789
  title: "Weight",
3719
- icon: Bt,
3790
+ icon: zt,
3720
3791
  default: i.fontWeightDefault ?? "400",
3721
3792
  options: i.fontWeightOptions ?? [
3722
3793
  { name: "Regular", value: "400" },
@@ -3726,9 +3797,9 @@ class oe extends z {
3726
3797
  getOptions: i.fontWeightGetOptions,
3727
3798
  getOptionsAsync: i.fontWeightGetOptionsAsync
3728
3799
  }),
3729
- fontSize: new G({
3800
+ fontSize: new U({
3730
3801
  title: "Size",
3731
- icon: Dt,
3802
+ icon: jt,
3732
3803
  default: i.fontSizeDefault ?? 12,
3733
3804
  suffix: "px",
3734
3805
  mobile: i.fontSizeMobileDefault
@@ -3736,7 +3807,7 @@ class oe extends z {
3736
3807
  };
3737
3808
  return e ? {
3738
3809
  ...s,
3739
- align: new bt({
3810
+ align: new Nt({
3740
3811
  title: "Align",
3741
3812
  default: i.alignDefault ?? "center"
3742
3813
  })
@@ -3756,7 +3827,7 @@ class oe extends z {
3756
3827
  `;
3757
3828
  }
3758
3829
  }
3759
- class J extends I {
3830
+ class Q extends T {
3760
3831
  constructor(t) {
3761
3832
  super({
3762
3833
  ...t,
@@ -3802,33 +3873,33 @@ class J extends I {
3802
3873
  }), i;
3803
3874
  }
3804
3875
  }
3805
- class ae extends z {
3876
+ class ue extends z {
3806
3877
  constructor(t) {
3807
3878
  super({
3808
3879
  title: "Margins",
3809
3880
  collapsed: t == null ? void 0 : t.collapsed,
3810
3881
  settings: {
3811
- marginTop: new J({
3882
+ marginTop: new Q({
3812
3883
  title: "Top",
3813
- icon: Ft,
3884
+ icon: qt,
3814
3885
  suffix: "px",
3815
3886
  default: (t == null ? void 0 : t.marginTop) ?? "auto"
3816
3887
  }),
3817
- marginRight: new J({
3888
+ marginRight: new Q({
3818
3889
  title: "Right",
3819
- icon: Rt,
3890
+ icon: _t,
3820
3891
  suffix: "px",
3821
3892
  default: (t == null ? void 0 : t.marginRight) ?? 0
3822
3893
  }),
3823
- marginBottom: new J({
3894
+ marginBottom: new Q({
3824
3895
  title: "Bottom",
3825
- icon: Gt,
3896
+ icon: Jt,
3826
3897
  suffix: "px",
3827
3898
  default: (t == null ? void 0 : t.marginBottom) ?? 0
3828
3899
  }),
3829
- marginLeft: new J({
3900
+ marginLeft: new Q({
3830
3901
  title: "Left",
3831
- icon: Wt,
3902
+ icon: Xt,
3832
3903
  suffix: "px",
3833
3904
  default: (t == null ? void 0 : t.marginLeft) ?? 0
3834
3905
  })
@@ -3845,29 +3916,29 @@ class ae extends z {
3845
3916
  `;
3846
3917
  }
3847
3918
  }
3848
- const Ft = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3919
+ const qt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3849
3920
  <path d="M2.25 16.25H2.2575M2.25 9.5H2.2575M2.25 12.875H2.2575M2.25 6.125H2.2575M5.625 16.25H5.6325M5.625 9.5H5.6325M12.375 16.25H12.3825M12.375 9.5H12.3825M9 16.25H9.0075M9 9.5H9.0075M9 12.875H9.0075M9 6.125H9.0075M15.75 16.25H15.7575M15.75 9.5H15.7575M15.75 12.875H15.7575M15.75 6.125H15.7575M15.75 2.75H2.25" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
3850
- </svg>`, Rt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3921
+ </svg>`, _t = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3851
3922
  <path d="M5.625 2.75H5.6325M5.625 9.5H5.6325M5.625 16.25H5.6325M12.375 2.75H12.3825M12.375 9.5H12.3825M12.375 16.25H12.3825M9 2.75H9.0075M9 9.5H9.0075M9 16.25H9.0075M9 12.875H9.0075M9 6.125H9.0075M2.25 2.75H2.2575M2.25 9.5H2.2575M2.25 16.25H2.2575M2.25 12.875H2.2575M2.25 6.125H2.2575M15.75 16.25V2.75" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
3852
- </svg>`, Gt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3923
+ </svg>`, Jt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3853
3924
  <path d="M2.25 2.75H2.2575M2.25 9.5H2.2575M2.25 12.875H2.2575M2.25 6.125H2.2575M5.625 2.75H5.6325M5.625 9.5H5.6325M12.375 2.75H12.3825M12.375 9.5H12.3825M9 2.75H9.0075M9 9.5H9.0075M9 12.875H9.0075M9 6.125H9.0075M15.75 2.75H15.7575M15.75 9.5H15.7575M15.75 12.875H15.7575M15.75 6.125H15.7575M15.75 16.25H2.25" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
3854
- </svg>`, Wt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3925
+ </svg>`, Xt = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
3855
3926
  <path d="M5.625 2.75H5.6325M5.625 9.5H5.6325M5.625 16.25H5.6325M12.375 2.75H12.3825M12.375 9.5H12.3825M12.375 16.25H12.3825M9 2.75H9.0075M9 9.5H9.0075M9 16.25H9.0075M9 12.875H9.0075M9 6.125H9.0075M15.75 2.75H15.7575M15.75 9.5H15.7575M15.75 16.25H15.7575M15.75 12.875H15.7575M15.75 6.125H15.7575M2.25 16.25V2.75" stroke="#667085" stroke-linecap="round" stroke-linejoin="round"/>
3856
3927
  </svg>`;
3857
- class le extends z {
3928
+ class ge extends z {
3858
3929
  constructor(t) {
3859
3930
  super({
3860
3931
  title: "Background Image",
3861
3932
  collapsed: t == null ? void 0 : t.collapsed,
3862
3933
  settings: {
3863
- backgroundImage: new at({
3934
+ backgroundImage: new pt({
3864
3935
  ...t == null ? void 0 : t.uploadProps,
3865
3936
  default: (t == null ? void 0 : t.backgroundImage) ?? ""
3866
3937
  }),
3867
- opacity: new yt({
3938
+ opacity: new St({
3868
3939
  default: (t == null ? void 0 : t.opacity) ?? 100
3869
3940
  }),
3870
- backgroundColor: new U({
3941
+ backgroundColor: new j({
3871
3942
  default: (t == null ? void 0 : t.backgroundColor) ?? "0, 0, 30"
3872
3943
  })
3873
3944
  }
@@ -3894,40 +3965,40 @@ class le extends z {
3894
3965
  }
3895
3966
  }
3896
3967
  export {
3897
- bt as AlignSetting,
3898
- ie as AnimationSetting,
3899
- le as BackgroundSettingSet,
3900
- ne as BorderSettingSet,
3901
- _t as ButtonSetting,
3902
- R as ColorSetting,
3903
- U as ColorWithOpacitySetting,
3904
- qt as DimensionSetting,
3905
- Kt as GapSetting,
3906
- se as GradientSetting,
3907
- oe as HeaderTypographySettingSet,
3908
- Jt as HeightSetting,
3909
- jt as HtmlSetting,
3910
- Qt as MarginBottomSetting,
3911
- ae as MarginSettingGroup,
3912
- te as MarginTopSetting,
3913
- ee as MultiLanguageSetting,
3914
- G as NumberSetting,
3915
- yt as OpacitySetting,
3916
- Xt as SelectApiSettings,
3917
- et as SelectSetting,
3918
- I as Setting,
3968
+ Nt as AlignSetting,
3969
+ ce as AnimationSetting,
3970
+ ge as BackgroundSettingSet,
3971
+ de as BorderSettingSet,
3972
+ Qt as ButtonSetting,
3973
+ W as ColorSetting,
3974
+ j as ColorWithOpacitySetting,
3975
+ te as DimensionSetting,
3976
+ oe as GapSetting,
3977
+ he as GradientSetting,
3978
+ pe as HeaderTypographySettingSet,
3979
+ ee as HeightSetting,
3980
+ Kt as HtmlSetting,
3981
+ ae as MarginBottomSetting,
3982
+ ue as MarginSettingGroup,
3983
+ le as MarginTopSetting,
3984
+ re as MultiLanguageSetting,
3985
+ U as NumberSetting,
3986
+ St as OpacitySetting,
3987
+ se as SelectApiSettings,
3988
+ at as SelectSetting,
3989
+ T as Setting,
3919
3990
  z as SettingGroup,
3920
- mt as StringSetting,
3921
- ut as TabSettingGroup,
3922
- ut as TabsSettingGroup,
3923
- Yt as Toggle,
3924
- at as UploadSetting,
3925
- Zt as WidthSetting,
3926
- Ut as asSettingGroupWithSettings,
3927
- gt as createSettingGroup,
3928
- zt as createTabSettingGroup,
3929
- j as isSetting,
3930
- st as isSettingChild,
3931
- N as isSettingGroup,
3932
- q as iterateSettings
3991
+ xt as StringSetting,
3992
+ bt as TabSettingGroup,
3993
+ bt as TabsSettingGroup,
3994
+ ne as Toggle,
3995
+ pt as UploadSetting,
3996
+ ie as WidthSetting,
3997
+ Yt as asSettingGroupWithSettings,
3998
+ wt as createSettingGroup,
3999
+ Zt as createTabSettingGroup,
4000
+ X as isSetting,
4001
+ ct as isSettingChild,
4002
+ H as isSettingGroup,
4003
+ K as iterateSettings
3933
4004
  };