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
|
|
2
|
-
let
|
|
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 +=
|
|
5
|
+
t += ft[e[p] & 63];
|
|
6
6
|
return t;
|
|
7
7
|
};
|
|
8
|
-
function
|
|
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
|
|
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
|
|
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
|
-
|
|
21
|
+
tt(s, n), ot(s, n);
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
const
|
|
24
|
+
const Ct = {
|
|
25
25
|
maxLevel: 5,
|
|
26
26
|
spacingMultiplier: 1,
|
|
27
27
|
visualIndentMultiplier: 2,
|
|
28
28
|
enableAutoDetection: !0
|
|
29
29
|
};
|
|
30
|
-
class
|
|
30
|
+
class yt {
|
|
31
31
|
constructor(t = {}) {
|
|
32
|
-
this.observedElements = /* @__PURE__ */ new Set(), this.config = { ...
|
|
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 =
|
|
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
|
|
115
|
-
function
|
|
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) =>
|
|
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] =
|
|
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
|
|
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
|
|
145
|
+
class T {
|
|
146
146
|
constructor(t = {}) {
|
|
147
|
-
this.props = t, this.dataPropsPath = "", this.id = t.id ||
|
|
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,
|
|
150
|
+
globalThis.DefaultUploadUrl = t, T.DefaultUploadUrl = t;
|
|
151
151
|
}
|
|
152
152
|
static SetDefaultLanguage(t) {
|
|
153
|
-
globalThis.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 =
|
|
175
|
-
return i.value =
|
|
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 ||
|
|
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
|
|
237
|
-
return p instanceof
|
|
236
|
+
function X(p) {
|
|
237
|
+
return p instanceof T;
|
|
238
238
|
}
|
|
239
|
-
function
|
|
239
|
+
function H(p) {
|
|
240
240
|
return p instanceof z;
|
|
241
241
|
}
|
|
242
|
-
function
|
|
243
|
-
return
|
|
242
|
+
function ct(p) {
|
|
243
|
+
return X(p) || H(p);
|
|
244
244
|
}
|
|
245
|
-
function
|
|
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
|
|
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 ||
|
|
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
|
-
|
|
260
|
-
|
|
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
|
-
|
|
276
|
+
K(this.settings, (t, e) => {
|
|
277
277
|
const i = String(t), s = this.dataPropsPath ? `${this.dataPropsPath}_${i}` : i;
|
|
278
|
-
(
|
|
278
|
+
(H(e) || X(e) && typeof e.setDataPropsPath == "function") && e.setDataPropsPath(s);
|
|
279
279
|
});
|
|
280
280
|
}
|
|
281
281
|
updateNestingStyles() {
|
|
282
|
-
this.elementRef && (
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
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 && (
|
|
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 (
|
|
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 (
|
|
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(),
|
|
394
|
+
return this.changeHandlers.clear(), K(this.settings, (i, s) => {
|
|
394
395
|
var n;
|
|
395
|
-
if (
|
|
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 (
|
|
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
|
-
|
|
424
|
+
ct(l) && (this.addSetting(i, l), n = l);
|
|
424
425
|
}
|
|
425
426
|
}
|
|
426
|
-
n && (
|
|
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
|
-
|
|
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
|
-
|
|
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),
|
|
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 (
|
|
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 (
|
|
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
|
|
659
|
-
for (const
|
|
660
|
-
if (Object.prototype.hasOwnProperty.call(this.settings,
|
|
661
|
-
const
|
|
662
|
-
if (
|
|
663
|
-
const
|
|
664
|
-
|
|
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
|
|
667
|
-
|
|
668
|
+
const o = n;
|
|
669
|
+
o.includeGetJson !== !1 && (i[s] = o.value);
|
|
668
670
|
}
|
|
669
671
|
}
|
|
670
|
-
return this.hide
|
|
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
|
|
673
|
-
if (!
|
|
674
|
-
if (
|
|
675
|
-
return
|
|
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
|
|
678
|
-
return
|
|
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 (
|
|
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 (
|
|
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}`,
|
|
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
|
-
|
|
740
|
+
H(h) && typeof h.setNestingLevel == "function" && h.setNestingLevel(this.nestingLevel + 1);
|
|
739
741
|
const d = h.draw();
|
|
740
|
-
|
|
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
|
|
762
|
-
if (
|
|
763
|
-
const
|
|
764
|
-
this.addSetting(
|
|
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,
|
|
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
|
-
|
|
811
|
-
let z =
|
|
812
|
-
function
|
|
813
|
-
return new
|
|
812
|
+
it.hiddenElements = /* @__PURE__ */ new Set();
|
|
813
|
+
let z = it;
|
|
814
|
+
function Zt(p) {
|
|
815
|
+
return new bt(p);
|
|
814
816
|
}
|
|
815
|
-
class
|
|
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 && (
|
|
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
|
|
868
|
+
function wt(p) {
|
|
867
869
|
return new z(p);
|
|
868
870
|
}
|
|
869
|
-
function
|
|
871
|
+
function Yt(p) {
|
|
870
872
|
return p;
|
|
871
873
|
}
|
|
872
|
-
class
|
|
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
|
|
893
|
-
class
|
|
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 ||
|
|
899
|
+
icon: t.icon || Lt,
|
|
898
900
|
title: t.title || "Color",
|
|
899
|
-
default: t.default ?
|
|
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("#") ?
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 ?
|
|
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
|
|
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
|
|
1004
|
+
class j extends T {
|
|
1003
1005
|
constructor(t = {}) {
|
|
1004
1006
|
super({
|
|
1005
1007
|
...t,
|
|
1006
|
-
icon: t.icon ||
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
1458
|
-
}), this.heightSetting = new
|
|
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:
|
|
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
|
|
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>`,
|
|
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>`,
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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
|
|
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">${
|
|
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">${
|
|
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 =
|
|
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 =
|
|
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">${
|
|
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
|
|
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 ||
|
|
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
|
|
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
|
|
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 ||
|
|
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
|
|
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>`,
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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 ??
|
|
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
|
|
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
|
|
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 ||
|
|
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
|
|
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
|
|
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 ||
|
|
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
|
|
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(
|
|
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,
|
|
2083
|
+
let h = 0, d = e.length, C = 0;
|
|
2082
2084
|
for (; h <= d; ) {
|
|
2083
|
-
const
|
|
2084
|
-
this.measureTextWidth(
|
|
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
|
|
2087
|
-
t.placeholder =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
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 =
|
|
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
|
|
2357
|
-
|
|
2358
|
-
const
|
|
2359
|
-
|
|
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 = "
|
|
2362
|
-
const
|
|
2363
|
-
|
|
2364
|
-
const
|
|
2365
|
-
|
|
2366
|
-
const
|
|
2367
|
-
|
|
2368
|
-
|
|
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()
|
|
2407
|
+
t.stopPropagation();
|
|
2376
2408
|
}), this.hueSlider.addEventListener("mousedown", (t) => this.startHueDrag(t)), this.hueSlider.addEventListener("click", (t) => {
|
|
2377
|
-
t.stopPropagation()
|
|
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) =>
|
|
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()
|
|
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)),
|
|
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
|
-
|
|
2420
|
-
|
|
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
|
|
2423
|
-
this.setColor(
|
|
2463
|
+
const n = i, o = 1 - s, a = this.hsvToHex(t, n, o);
|
|
2464
|
+
this.setColor(a);
|
|
2424
2465
|
}
|
|
2425
2466
|
getCurrentHue() {
|
|
2426
|
-
const
|
|
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,
|
|
2566
|
-
let
|
|
2567
|
-
const
|
|
2568
|
-
|
|
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
|
|
2622
|
+
class he extends T {
|
|
2582
2623
|
constructor(t = {}) {
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
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 = (
|
|
2626
|
-
var
|
|
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
|
|
2629
|
-
(
|
|
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
|
-
!
|
|
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
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
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.
|
|
2730
|
-
this.isUserEditing = !0, this.value && (this.textInputElement.value = this.generateCSS(this.
|
|
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.
|
|
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
|
|
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 =
|
|
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
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
(
|
|
2871
|
-
|
|
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
|
-
|
|
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
|
|
2898
|
-
|
|
2899
|
-
const
|
|
2900
|
-
|
|
2901
|
-
const
|
|
2902
|
-
|
|
2903
|
-
const
|
|
2904
|
-
|
|
2905
|
-
const
|
|
2906
|
-
|
|
2907
|
-
const
|
|
2908
|
-
|
|
2909
|
-
const
|
|
2910
|
-
|
|
2911
|
-
const
|
|
2912
|
-
|
|
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
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2940
|
+
u,
|
|
2941
|
+
m,
|
|
2942
|
+
M,
|
|
2920
2943
|
l,
|
|
2921
2944
|
t,
|
|
2922
2945
|
e,
|
|
2923
|
-
i
|
|
2924
|
-
|
|
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
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
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 = "
|
|
2959
|
-
const
|
|
2960
|
-
|
|
2961
|
-
const
|
|
2962
|
-
|
|
2963
|
-
const
|
|
2964
|
-
|
|
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
|
-
|
|
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
|
|
2980
|
-
const { h:
|
|
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 = `${
|
|
2983
|
-
const
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
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 =
|
|
3047
|
+
o.value = u;
|
|
2990
3048
|
break;
|
|
2991
3049
|
case "rgb":
|
|
2992
|
-
const { r:
|
|
2993
|
-
o.value = `rgb(${
|
|
3050
|
+
const { r: $, g: F, b: _ } = this.hexToRgb(u);
|
|
3051
|
+
o.value = `rgb(${$}, ${F}, ${_})`;
|
|
2994
3052
|
break;
|
|
2995
3053
|
case "hsl":
|
|
2996
|
-
const { hue:
|
|
2997
|
-
o.value = `hsl(${Math.round(
|
|
2998
|
-
|
|
2999
|
-
)}%, ${Math.round(
|
|
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
|
-
},
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
const
|
|
3018
|
-
|
|
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",
|
|
3021
|
-
},
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
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",
|
|
3034
|
-
},
|
|
3035
|
-
const
|
|
3036
|
-
let
|
|
3037
|
-
if (
|
|
3038
|
-
|
|
3039
|
-
else if (
|
|
3040
|
-
const
|
|
3041
|
-
if (
|
|
3042
|
-
const
|
|
3043
|
-
|
|
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 (
|
|
3046
|
-
const
|
|
3047
|
-
if (
|
|
3048
|
-
const
|
|
3049
|
-
if (
|
|
3050
|
-
const
|
|
3051
|
-
|
|
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
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
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
|
-
|
|
3069
|
-
|
|
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
|
|
3073
|
-
s.style.left = `${
|
|
3074
|
-
} catch (
|
|
3075
|
-
console.log("User cancelled eyedropper or error occurred:",
|
|
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",
|
|
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
|
|
3090
|
-
const
|
|
3091
|
-
const { r
|
|
3092
|
-
t.style.setProperty("--color-rgb", `${
|
|
3093
|
-
},
|
|
3094
|
-
e.style.left = `${
|
|
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()
|
|
3097
|
-
let
|
|
3098
|
-
const
|
|
3099
|
-
const
|
|
3100
|
-
|
|
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", (
|
|
3103
|
-
|
|
3104
|
-
}), document.addEventListener("mousemove", (
|
|
3105
|
-
|
|
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
|
-
|
|
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", (
|
|
3140
|
-
const
|
|
3141
|
-
this.switchType(
|
|
3142
|
-
}), o.addEventListener("input", (
|
|
3143
|
-
const
|
|
3144
|
-
if (this.value && !isNaN(
|
|
3145
|
-
const
|
|
3146
|
-
this.value.angle =
|
|
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", (
|
|
3149
|
-
const
|
|
3150
|
-
|
|
3151
|
-
}), o.addEventListener("blur", (
|
|
3152
|
-
var
|
|
3153
|
-
const
|
|
3154
|
-
let
|
|
3155
|
-
isNaN(
|
|
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((
|
|
3158
|
-
...
|
|
3159
|
-
position: 100 -
|
|
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
|
|
3163
|
-
((
|
|
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
|
|
3172
|
-
|
|
3173
|
-
const
|
|
3174
|
-
|
|
3175
|
-
const
|
|
3176
|
-
|
|
3177
|
-
this.addGradientStop(), this.updateStopsList(
|
|
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.
|
|
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
|
|
3197
|
-
s = !0, n = l(d), o = ((
|
|
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
|
|
3202
|
-
if (!s || !((
|
|
3203
|
-
const
|
|
3204
|
-
let
|
|
3205
|
-
|
|
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
|
|
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
|
|
3237
|
-
|
|
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>`,
|
|
3240
|
-
var
|
|
3241
|
-
const
|
|
3242
|
-
if (this.value && !isNaN(
|
|
3243
|
-
const
|
|
3244
|
-
this.value.stops[n].position =
|
|
3245
|
-
const
|
|
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
|
-
),
|
|
3318
|
+
), R = V == null ? void 0 : V.querySelector(
|
|
3248
3319
|
".gradient-handles"
|
|
3249
3320
|
);
|
|
3250
|
-
|
|
3321
|
+
V && R && this.createGradientHandles(R, V), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
|
|
3251
3322
|
}
|
|
3252
|
-
}), l.addEventListener("focus", (
|
|
3253
|
-
const
|
|
3254
|
-
|
|
3255
|
-
}), l.addEventListener("blur", (
|
|
3256
|
-
var
|
|
3257
|
-
const
|
|
3258
|
-
if (isNaN(
|
|
3259
|
-
|
|
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
|
|
3262
|
-
|
|
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
|
|
3266
|
-
(
|
|
3267
|
-
var
|
|
3268
|
-
if (h.value =
|
|
3269
|
-
this.value.stops[n].color =
|
|
3270
|
-
const
|
|
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 (
|
|
3274
|
-
const
|
|
3275
|
-
|
|
3344
|
+
if (P) {
|
|
3345
|
+
const B = this.hexToRgb(S);
|
|
3346
|
+
P.style.setProperty(
|
|
3276
3347
|
"--slider-color",
|
|
3277
|
-
`rgb(${
|
|
3348
|
+
`rgb(${B.r}, ${B.g}, ${B.b})`
|
|
3278
3349
|
);
|
|
3279
3350
|
}
|
|
3280
|
-
if (
|
|
3281
|
-
const
|
|
3351
|
+
if (w !== void 0) {
|
|
3352
|
+
const B = (D = o.parentElement) == null ? void 0 : D.querySelector(
|
|
3282
3353
|
".gstop-opacity-value"
|
|
3283
3354
|
);
|
|
3284
|
-
|
|
3355
|
+
B && (B.textContent = `${w}%`), P && (P.value = w.toString());
|
|
3285
3356
|
}
|
|
3286
|
-
const
|
|
3357
|
+
const V = (A = this.popoverElement) == null ? void 0 : A.querySelector(
|
|
3287
3358
|
".gradient-preview"
|
|
3288
|
-
),
|
|
3359
|
+
), R = V == null ? void 0 : V.querySelector(
|
|
3289
3360
|
".gradient-handles"
|
|
3290
3361
|
);
|
|
3291
|
-
|
|
3362
|
+
V && R && this.createGradientHandles(R, V), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
|
|
3292
3363
|
}
|
|
3293
|
-
}
|
|
3364
|
+
},
|
|
3365
|
+
"gradient"
|
|
3294
3366
|
);
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
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 (
|
|
3306
|
-
const
|
|
3307
|
-
|
|
3378
|
+
if (P) {
|
|
3379
|
+
const B = this.hexToRgb(N);
|
|
3380
|
+
P.style.setProperty(
|
|
3308
3381
|
"--slider-color",
|
|
3309
|
-
`rgb(${
|
|
3382
|
+
`rgb(${B.r}, ${B.g}, ${B.b})`
|
|
3310
3383
|
);
|
|
3311
3384
|
}
|
|
3312
|
-
const
|
|
3385
|
+
const V = (A = this.popoverElement) == null ? void 0 : A.querySelector(
|
|
3313
3386
|
".gradient-preview"
|
|
3314
|
-
),
|
|
3387
|
+
), R = V == null ? void 0 : V.querySelector(
|
|
3315
3388
|
".gradient-handles"
|
|
3316
3389
|
);
|
|
3317
|
-
|
|
3390
|
+
V && R && this.createGradientHandles(R, V), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
|
|
3318
3391
|
}
|
|
3319
|
-
})
|
|
3320
|
-
|
|
3321
|
-
|
|
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(
|
|
3324
|
-
const
|
|
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 =
|
|
3407
|
+
d.innerHTML = N;
|
|
3329
3408
|
}, 1e3);
|
|
3330
|
-
} catch (
|
|
3331
|
-
console.warn("Failed to copy color to clipboard:",
|
|
3409
|
+
} catch (N) {
|
|
3410
|
+
console.warn("Failed to copy color to clipboard:", N);
|
|
3332
3411
|
}
|
|
3333
|
-
}),
|
|
3334
|
-
var
|
|
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
|
|
3416
|
+
const w = (S = this.popoverElement) == null ? void 0 : S.querySelector(
|
|
3338
3417
|
".gradient-preview"
|
|
3339
|
-
),
|
|
3418
|
+
), N = w == null ? void 0 : w.querySelector(
|
|
3340
3419
|
".gradient-handles"
|
|
3341
3420
|
);
|
|
3342
|
-
|
|
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(
|
|
3345
|
-
const
|
|
3346
|
-
|
|
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
|
|
3350
|
-
|
|
3351
|
-
const
|
|
3352
|
-
|
|
3353
|
-
const
|
|
3354
|
-
|
|
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(${
|
|
3435
|
+
`rgb(${y.r}, ${y.g}, ${y.b})`
|
|
3357
3436
|
);
|
|
3358
|
-
const
|
|
3359
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
|
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
|
-
`,
|
|
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
|
|
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
|
|
3721
|
+
size: new U({
|
|
3651
3722
|
title: "Size",
|
|
3652
|
-
icon:
|
|
3723
|
+
icon: Wt,
|
|
3653
3724
|
default: (t == null ? void 0 : t.size) ?? 0,
|
|
3654
3725
|
suffix: "px"
|
|
3655
3726
|
}),
|
|
3656
|
-
color: new
|
|
3727
|
+
color: new j({
|
|
3657
3728
|
default: (t == null ? void 0 : t.color) ?? "0, 0, 30"
|
|
3658
3729
|
}),
|
|
3659
|
-
radius: new
|
|
3730
|
+
radius: new U({
|
|
3660
3731
|
title: "Radius",
|
|
3661
|
-
icon:
|
|
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
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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
|
|
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
|
|
3772
|
+
color: new j({
|
|
3702
3773
|
default: i.colorDefault ?? "0, 0, 30"
|
|
3703
3774
|
}),
|
|
3704
|
-
fontFamily: new
|
|
3775
|
+
fontFamily: new at({
|
|
3705
3776
|
title: "Font",
|
|
3706
|
-
icon:
|
|
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
|
|
3788
|
+
fontWeight: new at({
|
|
3718
3789
|
title: "Weight",
|
|
3719
|
-
icon:
|
|
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
|
|
3800
|
+
fontSize: new U({
|
|
3730
3801
|
title: "Size",
|
|
3731
|
-
icon:
|
|
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
|
|
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
|
|
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
|
|
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
|
|
3882
|
+
marginTop: new Q({
|
|
3812
3883
|
title: "Top",
|
|
3813
|
-
icon:
|
|
3884
|
+
icon: qt,
|
|
3814
3885
|
suffix: "px",
|
|
3815
3886
|
default: (t == null ? void 0 : t.marginTop) ?? "auto"
|
|
3816
3887
|
}),
|
|
3817
|
-
marginRight: new
|
|
3888
|
+
marginRight: new Q({
|
|
3818
3889
|
title: "Right",
|
|
3819
|
-
icon:
|
|
3890
|
+
icon: _t,
|
|
3820
3891
|
suffix: "px",
|
|
3821
3892
|
default: (t == null ? void 0 : t.marginRight) ?? 0
|
|
3822
3893
|
}),
|
|
3823
|
-
marginBottom: new
|
|
3894
|
+
marginBottom: new Q({
|
|
3824
3895
|
title: "Bottom",
|
|
3825
|
-
icon:
|
|
3896
|
+
icon: Jt,
|
|
3826
3897
|
suffix: "px",
|
|
3827
3898
|
default: (t == null ? void 0 : t.marginBottom) ?? 0
|
|
3828
3899
|
}),
|
|
3829
|
-
marginLeft: new
|
|
3900
|
+
marginLeft: new Q({
|
|
3830
3901
|
title: "Left",
|
|
3831
|
-
icon:
|
|
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
|
|
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>`,
|
|
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>`,
|
|
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>`,
|
|
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
|
|
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
|
|
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
|
|
3938
|
+
opacity: new St({
|
|
3868
3939
|
default: (t == null ? void 0 : t.opacity) ?? 100
|
|
3869
3940
|
}),
|
|
3870
|
-
backgroundColor: new
|
|
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
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
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
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
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
|
};
|