builder-settings-types 0.0.318 → 0.0.320

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,22 +1,22 @@
1
- const Et = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
2
- let mt = (p = 21) => {
3
- let t = "", e = crypto.getRandomValues(new Uint8Array(p |= 0));
4
- for (; p--; )
5
- t += Et[e[p] & 63];
1
+ const bt = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
2
+ let mt = (d = 21) => {
3
+ let t = "", e = crypto.getRandomValues(new Uint8Array(d |= 0));
4
+ for (; d--; )
5
+ t += bt[e[d] & 63];
6
6
  return t;
7
7
  };
8
- function wt(p) {
9
- let t = 0, e = p.parentElement;
8
+ function wt(d) {
9
+ let t = 0, e = d.parentElement;
10
10
  for (; e; )
11
- e.classList.contains("setting-group") && e !== p && t++, e = e.parentElement;
11
+ e.classList.contains("setting-group") && e !== d && t++, e = e.parentElement;
12
12
  return t;
13
13
  }
14
- function Z(p, t) {
14
+ function Z(d, t) {
15
15
  const e = Math.min(Math.max(t, 0), 5);
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 = "");
16
+ d.setAttribute("data-nesting-level", e.toString()), e > 0 ? d.style.setProperty("--visual-indent", `${e * 2}px`) : (d.style.removeProperty("--visual-indent"), d.style.marginLeft = "");
17
17
  }
18
- function et(p, t = 0) {
19
- p.querySelectorAll(":scope > .setting-group-content > .setting-group").forEach((i) => {
18
+ function et(d, t = 0) {
19
+ d.querySelectorAll(":scope > .setting-group-content > .setting-group").forEach((i) => {
20
20
  const s = i, n = t + 1;
21
21
  Z(s, n), et(s, n);
22
22
  });
@@ -112,20 +112,20 @@ class Lt {
112
112
  }
113
113
  }
114
114
  const rt = new Lt();
115
- function Y(p) {
116
- if (p === null || typeof p != "object") return p;
117
- if (p instanceof Date) return new Date(p.getTime());
118
- if (p instanceof Array) return p.map((t) => Y(t));
119
- if (typeof p == "object") {
115
+ function Y(d) {
116
+ if (d === null || typeof d != "object") return d;
117
+ if (d instanceof Date) return new Date(d.getTime());
118
+ if (d instanceof Array) return d.map((t) => Y(t));
119
+ if (typeof d == "object") {
120
120
  const t = {};
121
- for (const e in p)
122
- Object.prototype.hasOwnProperty.call(p, e) && (t[e] = Y(p[e]));
121
+ for (const e in d)
122
+ Object.prototype.hasOwnProperty.call(d, e) && (t[e] = Y(d[e]));
123
123
  return t;
124
124
  }
125
- return p;
125
+ return d;
126
126
  }
127
- function kt(p) {
128
- switch (p) {
127
+ function kt(d) {
128
+ switch (d) {
129
129
  case "number":
130
130
  return 0;
131
131
  case "text":
@@ -142,26 +142,29 @@ function kt(p) {
142
142
  return "";
143
143
  }
144
144
  }
145
- const N = class N {
145
+ const M = class M {
146
146
  constructor(t = {}) {
147
147
  this.props = t, this.dataPropsPath = "", this.id = t.id || mt(), 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, N.DefaultUploadUrl = t;
150
+ globalThis.DefaultUploadUrl = t, M.DefaultUploadUrl = t;
151
151
  }
152
152
  static SetDefaultLanguage(t) {
153
- globalThis.DefaultLanguage = t, N.DefaultLanguage = t;
153
+ globalThis.DefaultLanguage = t, M.DefaultLanguage = t;
154
154
  }
155
155
  static CurrentLanguage(t) {
156
- return t !== void 0 && (N.currentLanguage = t, N.languageChangeCallbacks.forEach((e) => e(t))), N.currentLanguage || N.DefaultLanguage;
156
+ return t !== void 0 && (M.currentLanguage = t, M.currentLanguageExplicitlySet = !0, M.DefaultLanguage || M.SetDefaultLanguage(t), M.languageChangeCallbacks.forEach((e) => e(t))), M.currentLanguage || M.DefaultLanguage;
157
+ }
158
+ static HasExplicitCurrentLanguage() {
159
+ return M.currentLanguageExplicitlySet;
157
160
  }
158
161
  static onLanguageChange(t) {
159
- return N.languageChangeCallbacks.add(t), () => {
160
- N.languageChangeCallbacks.delete(t);
162
+ return M.languageChangeCallbacks.add(t), () => {
163
+ M.languageChangeCallbacks.delete(t);
161
164
  };
162
165
  }
163
166
  static SetGlobalVariables(t) {
164
- N.GlobalVariables = { ...N.GlobalVariables, ...t };
167
+ M.GlobalVariables = { ...M.GlobalVariables, ...t };
165
168
  }
166
169
  destroy() {
167
170
  throw new Error("Method not implemented.");
@@ -244,94 +247,94 @@ const N = class N {
244
247
  return i.className = "input-icon " + (e || ""), i.innerHTML = t, i;
245
248
  }
246
249
  };
247
- N.languageChangeCallbacks = /* @__PURE__ */ new Set(), N.GlobalVariables = {
250
+ M.currentLanguageExplicitlySet = !1, M.languageChangeCallbacks = /* @__PURE__ */ new Set(), M.GlobalVariables = {
248
251
  primary: "#1B1958",
249
252
  secondary: "#0D0938",
250
253
  tertiary: "#2A1560",
251
254
  accent: "#189541",
252
255
  "text-dark": "#00141E",
253
256
  "text-light": "#FFFFFF"
254
- }, N.GlobalVariableGroups = [
257
+ }, M.GlobalVariableGroups = [
255
258
  {
256
259
  title: "Global Colors",
257
260
  keys: ["primary", "secondary", "tertiary", "accent"]
258
261
  },
259
262
  { title: "Text Color", keys: ["text-dark", "text-light"] }
260
263
  ];
261
- let x = N;
262
- function G(p) {
263
- return p instanceof x;
264
+ let x = M;
265
+ function G(d) {
266
+ return d instanceof x;
264
267
  }
265
- function k(p) {
266
- return p instanceof $;
268
+ function k(d) {
269
+ return d instanceof $;
267
270
  }
268
- function ct(p) {
269
- return G(p) || k(p);
271
+ function ct(d) {
272
+ return G(d) || k(d);
270
273
  }
271
- const ot = (p, t, e) => {
274
+ const ot = (d, t, e) => {
272
275
  let i = !1, s = 0, n = 0, o = 0, a = 0;
273
276
  const l = (h) => {
274
277
  if (h.target.closest("button")) return;
275
278
  i = !0, s = h.clientX, n = h.clientY;
276
- const d = t.getBoundingClientRect();
277
- o = d.left, a = d.top, document.addEventListener("mousemove", r), document.addEventListener("mouseup", c), document.body.style.userSelect = "none";
279
+ const p = t.getBoundingClientRect();
280
+ o = p.left, a = p.top, document.addEventListener("mousemove", r), document.addEventListener("mouseup", c), document.body.style.userSelect = "none";
278
281
  }, r = (h) => {
279
282
  if (!i) return;
280
- const d = h.clientX - s, u = h.clientY - n, f = window.innerWidth, m = window.innerHeight, g = t.offsetWidth, v = t.offsetHeight;
281
- let C = o + d, y = a + u;
282
- C = Math.max(8, Math.min(f - g - 8, C)), y = Math.max(8, Math.min(m - v - 8, y)), t.style.left = `${C}px`, t.style.top = `${y}px`, e == null || e(C, y);
283
+ const p = h.clientX - s, g = h.clientY - n, f = window.innerWidth, m = window.innerHeight, u = t.offsetWidth, v = t.offsetHeight;
284
+ let C = o + p, y = a + g;
285
+ C = Math.max(8, Math.min(f - u - 8, C)), y = Math.max(8, Math.min(m - v - 8, y)), t.style.left = `${C}px`, t.style.top = `${y}px`, e == null || e(C, y);
283
286
  }, c = () => {
284
287
  i = !1, document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", c), document.body.style.userSelect = "";
285
288
  };
286
- p.addEventListener("mousedown", l);
287
- }, W = (p) => {
288
- if (!p) return null;
289
- let t = p.trim();
289
+ d.addEventListener("mousedown", l);
290
+ }, W = (d) => {
291
+ if (!d) return null;
292
+ let t = d.trim();
290
293
  return !t.startsWith("#") || (t = t.slice(1), t.length === 3 && (t = t.split("").map((e) => e + e).join("")), !/^[0-9a-fA-F]{6}$/.test(t)) ? null : `#${t.toUpperCase()}`;
291
- }, X = (p, t, e) => `#${[p, t, e].map((i) => Math.max(0, Math.min(255, i)).toString(16).padStart(2, "0")).join("")}`, P = (p) => {
292
- const t = p.replace("#", ""), e = t.length === 3 ? t.split("").map((i) => i + i).join("") : t;
294
+ }, X = (d, t, e) => `#${[d, t, e].map((i) => Math.max(0, Math.min(255, i)).toString(16).padStart(2, "0")).join("")}`, P = (d) => {
295
+ const t = d.replace("#", ""), e = t.length === 3 ? t.split("").map((i) => i + i).join("") : t;
293
296
  return {
294
297
  r: parseInt(e.slice(0, 2), 16),
295
298
  g: parseInt(e.slice(2, 4), 16),
296
299
  b: parseInt(e.slice(4, 6), 16)
297
300
  };
298
- }, z = (p) => {
299
- const { r: t, g: e, b: i } = P(p), s = t / 255, n = e / 255, o = i / 255, a = Math.max(s, n, o), l = Math.min(s, n, o), r = a - l;
301
+ }, z = (d) => {
302
+ const { r: t, g: e, b: i } = P(d), s = t / 255, n = e / 255, o = i / 255, a = Math.max(s, n, o), l = Math.min(s, n, o), r = a - l;
300
303
  let c = 0;
301
304
  r !== 0 && (a === s ? c = (n - o) / r % 6 : a === n ? c = (o - s) / r + 2 : c = (s - n) / r + 4), c < 0 && (c += 6);
302
- const h = a === 0 ? 0 : r / a, d = a;
303
- return { h: c * 60, s: h, v: d };
304
- }, U = (p, t, e) => {
305
- const i = (p % 360 + 360) % 360, s = e * t, n = s * (1 - Math.abs(i / 60 % 2 - 1)), o = e - s;
305
+ const h = a === 0 ? 0 : r / a, p = a;
306
+ return { h: c * 60, s: h, v: p };
307
+ }, U = (d, t, e) => {
308
+ const i = (d % 360 + 360) % 360, s = e * t, n = s * (1 - Math.abs(i / 60 % 2 - 1)), o = e - s;
306
309
  let a = 0, l = 0, r = 0;
307
310
  return i < 60 ? (a = s, l = n, r = 0) : i < 120 ? (a = n, l = s, r = 0) : i < 180 ? (a = 0, l = s, r = n) : i < 240 ? (a = 0, l = n, r = s) : i < 300 ? (a = n, l = 0, r = s) : (a = s, l = 0, r = n), X(
308
311
  Math.round((a + o) * 255),
309
312
  Math.round((l + o) * 255),
310
313
  Math.round((r + o) * 255)
311
314
  );
312
- }, vt = (p, t, e) => {
315
+ }, vt = (d, t, e) => {
313
316
  const i = e * (1 - t / 2), s = i === 0 || i === 1 ? 0 : (e - i) / Math.min(i, 1 - i);
314
- return { hue: p, sat: s, lightness: i };
315
- }, it = (p, t, e) => {
316
- const i = (1 - Math.abs(2 * e - 1)) * t, s = i * (1 - Math.abs(p / 60 % 2 - 1)), n = e - i / 2;
317
+ return { hue: d, sat: s, lightness: i };
318
+ }, it = (d, t, e) => {
319
+ const i = (1 - Math.abs(2 * e - 1)) * t, s = i * (1 - Math.abs(d / 60 % 2 - 1)), n = e - i / 2;
317
320
  let o = 0, a = 0, l = 0;
318
- return p < 60 ? (o = i, a = s, l = 0) : p < 120 ? (o = s, a = i, l = 0) : p < 180 ? (o = 0, a = i, l = s) : p < 240 ? (o = 0, a = s, l = i) : p < 300 ? (o = s, a = 0, l = i) : (o = i, a = 0, l = s), {
321
+ return d < 60 ? (o = i, a = s, l = 0) : d < 120 ? (o = s, a = i, l = 0) : d < 180 ? (o = 0, a = i, l = s) : d < 240 ? (o = 0, a = s, l = i) : d < 300 ? (o = s, a = 0, l = i) : (o = i, a = 0, l = s), {
319
322
  r: Math.round((o + n) * 255),
320
323
  g: Math.round((a + n) * 255),
321
324
  b: Math.round((l + n) * 255)
322
325
  };
323
- }, st = (p, t) => {
326
+ }, st = (d, t) => {
324
327
  const e = Math.max(0, Math.min(100, t)) / 100;
325
- if (p.startsWith("#")) {
326
- const { r: s, g: n, b: o } = P(p);
328
+ if (d.startsWith("#")) {
329
+ const { r: s, g: n, b: o } = P(d);
327
330
  return `rgba(${s}, ${n}, ${o}, ${e})`;
328
331
  }
329
- if (p.startsWith("rgba("))
330
- return p.replace(/,\s*[\d.]+\)$/, `, ${e})`);
331
- if (p.startsWith("rgb("))
332
- return p.replace("rgb(", "rgba(").replace(")", `, ${e})`);
333
- if (p.startsWith("hsl(")) {
334
- const s = p.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);
332
+ if (d.startsWith("rgba("))
333
+ return d.replace(/,\s*[\d.]+\)$/, `, ${e})`);
334
+ if (d.startsWith("rgb("))
335
+ return d.replace("rgb(", "rgba(").replace(")", `, ${e})`);
336
+ if (d.startsWith("hsl(")) {
337
+ const s = d.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);
335
338
  if (s) {
336
339
  const { r: n, g: o, b: a } = it(
337
340
  parseInt(s[1]),
@@ -341,8 +344,8 @@ const ot = (p, t, e) => {
341
344
  return `rgba(${n}, ${o}, ${a}, ${e})`;
342
345
  }
343
346
  }
344
- if (p.startsWith("hsla(")) {
345
- const s = p.match(/hsla\((\d+),\s*(\d+)%,\s*(\d+)%,\s*[\d.]+\)/);
347
+ if (d.startsWith("hsla(")) {
348
+ const s = d.match(/hsla\((\d+),\s*(\d+)%,\s*(\d+)%,\s*[\d.]+\)/);
346
349
  if (s) {
347
350
  const { r: n, g: o, b: a } = it(
348
351
  parseInt(s[1]),
@@ -352,13 +355,13 @@ const ot = (p, t, e) => {
352
355
  return `rgba(${n}, ${o}, ${a}, ${e})`;
353
356
  }
354
357
  }
355
- const i = W(p);
358
+ const i = W(d);
356
359
  if (i) {
357
360
  const { r: s, g: n, b: o } = P(i);
358
361
  return `rgba(${s}, ${n}, ${o}, ${e})`;
359
362
  }
360
- return p;
361
- }, Mt = (p) => [
363
+ return d;
364
+ }, Mt = (d) => [
362
365
  "red",
363
366
  "green",
364
367
  "blue",
@@ -382,18 +385,18 @@ const ot = (p, t, e) => {
382
385
  "teal",
383
386
  "fuchsia",
384
387
  "transparent"
385
- ].includes(p.toLowerCase()), ft = (p) => [
388
+ ].includes(d.toLowerCase()), ft = (d) => [
386
389
  /^#[0-9a-fA-F]{3,8}$/,
387
390
  /^rgba?\s*\([^)]+\)$/,
388
391
  /^hsla?\s*\([^)]+\)$/,
389
392
  /^[a-zA-Z]+$/
390
- ].some((e) => e.test(p.trim())), Nt = (p) => {
393
+ ].some((e) => e.test(d.trim())), Nt = (d) => {
391
394
  if (typeof document > "u")
392
- return ft(p) || !!W(p);
395
+ return ft(d) || !!W(d);
393
396
  const t = document.createElement("div");
394
- return t.style.color = p, t.style.color !== "";
395
- }, Ct = (p) => {
396
- const t = p.trim();
397
+ return t.style.color = d, t.style.color !== "";
398
+ }, Ct = (d) => {
399
+ const t = d.trim();
397
400
  if (/^#[0-9A-Fa-f]{8}$/.test(t)) {
398
401
  const n = t.slice(1), o = parseInt(n.slice(0, 2), 16), a = parseInt(n.slice(2, 4), 16), l = parseInt(n.slice(4, 6), 16), r = parseInt(n.slice(6, 8), 16);
399
402
  return {
@@ -429,11 +432,11 @@ const ot = (p, t, e) => {
429
432
  };
430
433
  }
431
434
  return { color: W(t) || t, position: 0, opacity: 100 };
432
- }, ht = (p) => {
435
+ }, ht = (d) => {
433
436
  const t = [];
434
437
  let e = "", i = 0;
435
- for (let s = 0; s < p.length; s++) {
436
- const n = p[s];
438
+ for (let s = 0; s < d.length; s++) {
439
+ const n = d[s];
437
440
  if (n === "(") i++;
438
441
  else if (n === ")") i--;
439
442
  else if (n === "," && i === 0) {
@@ -443,16 +446,16 @@ const ot = (p, t, e) => {
443
446
  e += n;
444
447
  }
445
448
  return e.trim() && t.push(e.trim()), t;
446
- }, dt = (p, t) => {
447
- const e = new RegExp(`${t}\\s*\\(`, "i"), i = p.match(e);
449
+ }, dt = (d, t) => {
450
+ const e = new RegExp(`${t}\\s*\\(`, "i"), i = d.match(e);
448
451
  if (!i) return null;
449
452
  const s = i.index + i[0].length;
450
453
  let n = 1, o = s;
451
- for (let a = s; a < p.length && n > 0; a++)
452
- p[a] === "(" ? n++ : p[a] === ")" && n--, o = a;
453
- return n === 0 ? p.substring(s, o) : null;
454
- }, It = (p) => {
455
- const t = p.split(" ")[0].toLowerCase();
454
+ for (let a = s; a < d.length && n > 0; a++)
455
+ d[a] === "(" ? n++ : d[a] === ")" && n--, o = a;
456
+ return n === 0 ? d.substring(s, o) : null;
457
+ }, It = (d) => {
458
+ const t = d.split(" ")[0].toLowerCase();
456
459
  return [
457
460
  "circle",
458
461
  "ellipse",
@@ -463,31 +466,31 @@ const ot = (p, t, e) => {
463
466
  "at",
464
467
  "contain",
465
468
  "cover"
466
- ].includes(t) ? !1 : /^#[0-9a-f]{3,8}$/i.test(t) || /^rgb/i.test(p) || /^hsl/i.test(p) || Mt(t);
467
- }, pt = (p) => {
469
+ ].includes(t) ? !1 : /^#[0-9a-f]{3,8}$/i.test(t) || /^rgb/i.test(d) || /^hsl/i.test(d) || Mt(t);
470
+ }, pt = (d) => {
468
471
  const t = [];
469
- return p.forEach((e, i) => {
472
+ return d.forEach((e, i) => {
470
473
  const s = e.trim();
471
474
  if (!s) return;
472
475
  let n = "", o = 0;
473
476
  const a = s.match(/^(.+?)\s+(\d+(?:\.\d+)?)%?\s*$/);
474
- a && ft(a[1].trim()) ? (n = a[1].trim(), o = parseFloat(a[2])) : (n = s, o = p.length === 1 ? 0 : i / (p.length - 1) * 100);
477
+ a && ft(a[1].trim()) ? (n = a[1].trim(), o = parseFloat(a[2])) : (n = s, o = d.length === 1 ? 0 : i / (d.length - 1) * 100);
475
478
  const l = Ct(n);
476
479
  l.position = Math.max(0, Math.min(100, Math.round(o))), t.push(l);
477
480
  }), t;
478
- }, A = (p) => {
479
- const t = p.stops && p.stops.length ? p.stops : [{ color: "#000000", position: 0, opacity: 100 }];
481
+ }, A = (d) => {
482
+ const t = d.stops && d.stops.length ? d.stops : [{ color: "#000000", position: 0, opacity: 100 }];
480
483
  return {
481
- type: p.type && ["linear", "radial", "solid"].includes(p.type) ? p.type : "linear",
482
- angle: typeof p.angle == "number" ? p.angle : 90,
484
+ type: d.type && ["linear", "radial", "solid"].includes(d.type) ? d.type : "linear",
485
+ angle: typeof d.angle == "number" ? d.angle : 90,
483
486
  stops: t.map((e, i) => ({
484
487
  color: e.color || "#000000",
485
488
  position: typeof e.position == "number" ? e.position : t.length === 1 ? 0 : Math.round(i / (t.length - 1) * 100),
486
489
  opacity: e.opacity === void 0 || Number.isNaN(e.opacity) ? 100 : e.opacity
487
490
  }))
488
491
  };
489
- }, T = (p) => {
490
- const t = p.replace(/;$/, "").trim();
492
+ }, T = (d) => {
493
+ const t = d.replace(/;$/, "").trim();
491
494
  if (Nt(t)) {
492
495
  const s = Ct(t);
493
496
  return A({ type: "solid", angle: 0, stops: [s] });
@@ -519,21 +522,21 @@ const ot = (p, t, e) => {
519
522
  return o.length ? A({ type: "radial", angle: 0, stops: o }) : null;
520
523
  }
521
524
  return null;
522
- }, S = (p) => {
523
- if (p.type === "solid") {
524
- const e = p.stops[0], i = e.color;
525
+ }, S = (d) => {
526
+ if (d.type === "solid") {
527
+ const e = d.stops[0], i = e.color;
525
528
  if (i.startsWith("var(--"))
526
529
  return i;
527
530
  const s = e.opacity ?? 100, n = i.replace("#", ""), o = Math.round(s / 100 * 255).toString(16).toUpperCase().padStart(2, "0");
528
531
  return `#${n}${o}`;
529
532
  }
530
- const t = p.stops.map(
533
+ const t = d.stops.map(
531
534
  (e) => `${st(e.color, e.opacity ?? 100)} ${e.position}%`
532
535
  ).join(", ");
533
- return p.type === "radial" ? `radial-gradient(circle, ${t})` : `linear-gradient(${p.angle}deg, ${t})`;
534
- }, St = (p) => Math.round(p / 100 * 255).toString(16).toUpperCase().padStart(2, "0"), K = (p) => {
535
- if (p.type === "solid") {
536
- const t = p.stops[0];
536
+ return d.type === "radial" ? `radial-gradient(circle, ${t})` : `linear-gradient(${d.angle}deg, ${t})`;
537
+ }, St = (d) => Math.round(d / 100 * 255).toString(16).toUpperCase().padStart(2, "0"), K = (d) => {
538
+ if (d.type === "solid") {
539
+ const t = d.stops[0];
537
540
  if (t) {
538
541
  const e = t.color;
539
542
  if (e.startsWith("var(--"))
@@ -549,7 +552,7 @@ const ot = (p, t, e) => {
549
552
  }
550
553
  return "#000000";
551
554
  }
552
- return p.type === "linear" ? `Linear ${p.angle}°` : "Radial Gradient";
555
+ return d.type === "linear" ? `Linear ${d.angle}°` : "Radial Gradient";
553
556
  }, q = class q {
554
557
  static defaults() {
555
558
  return {
@@ -619,8 +622,8 @@ const ot = (p, t, e) => {
619
622
  }
620
623
  };
621
624
  q.STORAGE_KEY = "settingsLib_recentColors", q.MAX_COLORS = 12, q.colors = null;
622
- let R = q;
623
- const at = (p, t) => {
625
+ let F = q;
626
+ const at = (d, t) => {
624
627
  const e = document.createElement("div");
625
628
  e.className = "color-picker-recent-section";
626
629
  const i = document.createElement("div");
@@ -630,58 +633,58 @@ const at = (p, t) => {
630
633
  const n = () => {
631
634
  s.style.display = "none";
632
635
  }, o = (c, h) => {
633
- const d = c.getBoundingClientRect();
634
- s.textContent = h, s.style.left = `${d.left + d.width / 2}px`, s.style.top = `${d.bottom + 8}px`, s.style.display = "block";
636
+ const p = c.getBoundingClientRect();
637
+ s.textContent = h, s.style.left = `${p.left + p.width / 2}px`, s.style.top = `${p.bottom + 8}px`, s.style.display = "block";
635
638
  }, a = document.createElement("div");
636
639
  a.className = "color-picker-recent-grid";
637
640
  const l = document.createElement("div");
638
641
  l.className = "color-picker-recent-placeholder", l.textContent = "No recent colors yet", e.appendChild(i), e.appendChild(a), e.appendChild(l);
639
642
  const r = () => {
640
643
  n(), a.innerHTML = "";
641
- const c = R.getColors(t);
644
+ const c = F.getColors(t);
642
645
  if (c.length === 0) {
643
646
  a.style.display = "none", l.style.display = "block";
644
647
  return;
645
648
  }
646
649
  a.style.display = "grid", l.style.display = "none", c.forEach((h) => {
647
- const d = document.createElement("button");
648
- d.type = "button", d.className = "color-picker-recent-swatch";
649
- const u = Vt(h);
650
- if (d.title = u, d.setAttribute("aria-label", `Use color: ${u}`), h.includes("gradient(")) {
651
- d.style.backgroundImage = h, d.style.backgroundColor = "transparent";
650
+ const p = document.createElement("button");
651
+ p.type = "button", p.className = "color-picker-recent-swatch";
652
+ const g = Vt(h);
653
+ if (p.title = g, p.setAttribute("aria-label", `Use color: ${g}`), h.includes("gradient(")) {
654
+ p.style.backgroundImage = h, p.style.backgroundColor = "transparent";
652
655
  const m = T(h);
653
- m && m.stops && m.stops.length > 0 && (d.style.borderColor = m.stops[0].color);
656
+ m && m.stops && m.stops.length > 0 && (p.style.borderColor = m.stops[0].color);
654
657
  } else
655
- d.style.backgroundColor = h, d.style.borderColor = h;
656
- d.addEventListener("mouseenter", () => o(d, u)), d.addEventListener("mouseleave", () => {
657
- n(), d.style.boxShadow = "";
658
- }), d.addEventListener("mousedown", () => {
659
- d.style.boxShadow = "0px 0px 0px 2px var(--grey40)";
660
- }), d.addEventListener("mouseup", () => {
658
+ p.style.backgroundColor = h, p.style.borderColor = h;
659
+ p.addEventListener("mouseenter", () => o(p, g)), p.addEventListener("mouseleave", () => {
660
+ n(), p.style.boxShadow = "";
661
+ }), p.addEventListener("mousedown", () => {
662
+ p.style.boxShadow = "0px 0px 0px 2px var(--grey40)";
663
+ }), p.addEventListener("mouseup", () => {
661
664
  setTimeout(() => {
662
- d.style.boxShadow = "";
665
+ p.style.boxShadow = "";
663
666
  }, 150);
664
- }), d.addEventListener("click", () => {
665
- n(), p(h);
666
- }), a.appendChild(d);
667
+ }), p.addEventListener("click", () => {
668
+ n(), d(h);
669
+ }), a.appendChild(p);
667
670
  });
668
671
  };
669
672
  return r(), { container: e, refresh: r };
670
- }, Vt = (p) => {
671
- const t = T(p);
673
+ }, Vt = (d) => {
674
+ const t = T(d);
672
675
  if (t)
673
676
  return K(t);
674
- const e = W(p);
677
+ const e = W(d);
675
678
  if (e) {
676
679
  const i = P(e);
677
680
  return `${e} (RGB: ${i.r}, ${i.g}, ${i.b})`;
678
681
  }
679
- return p;
682
+ return d;
680
683
  }, yt = `<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
681
684
  <path fill-rule="evenodd" clip-rule="evenodd"
682
685
  d="M6.12347 4.96653L1.41158 0.254304C1.25449 0.102568 1.04409 0.0186071 0.825694 0.0205049C0.607302 0.0224037 0.398393 0.110007 0.24396 0.26445C0.0895282 0.418893 0.0019303 0.627818 3.24698e-05 0.846225C-0.00186536 1.06463 0.0820894 1.27505 0.233815 1.43215L4.9457 6.14438L0.233814 10.8566C0.0820886 11.0137 -0.00186625 11.2241 3.15434e-05 11.4425C0.00192934 11.6609 0.0895272 11.8699 0.243959 12.0243C0.398392 12.1787 0.607301 12.2663 0.825693 12.2682C1.04408 12.2701 1.25449 12.1862 1.41158 12.0344L6.12347 7.32222L10.8354 12.0344C10.9932 12.1824 11.2023 12.2632 11.4186 12.2597C11.6349 12.2562 11.8414 12.1687 11.9943 12.0156C12.1472 11.8626 12.2346 11.6561 12.2379 11.4398C12.2413 11.2234 12.1604 11.0143 12.0123 10.8566L7.30123 6.14438L12.0131 1.43215C12.0927 1.35531 12.1561 1.2634 12.1998 1.16177C12.2434 1.06014 12.2664 0.950833 12.2674 0.84023C12.2683 0.729626 12.2473 0.61994 12.2054 0.517568C12.1635 0.415196 12.1017 0.322191 12.0234 0.243979C11.9452 0.165768 11.8522 0.103916 11.7499 0.0620327C11.6475 0.0201492 11.5378 -0.000927989 11.4272 3.33052e-05C11.3166 0.000993646 11.2073 0.0239743 11.1057 0.0676297C11.0041 0.111286 10.9122 0.174745 10.8354 0.254305L6.12347 4.96653Z"
683
686
  fill="#919EAB"/>
684
- </svg>`, bt = `<svg width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
687
+ </svg>`, Et = `<svg width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
685
688
  <path fill-rule="evenodd" clip-rule="evenodd" d="M19.1972 3.29156C18.936 3.03034 18.6259 2.82313 18.2847 2.68176C17.9434 2.54039 17.5777 2.46763 17.2083 2.46763C16.8389 2.46763 16.4731 2.54039 16.1319 2.68176C15.7906 2.82313 15.4805 3.03034 15.2194 3.29156L13.7822 4.72875C13.2585 4.4772 12.6697 4.39449 12.097 4.49207C11.5243 4.58964 10.9961 4.86267 10.5853 5.27343L9.91687 5.94281C9.74268 6.11693 9.6045 6.32366 9.51023 6.5512C9.41595 6.77873 9.36743 7.02261 9.36743 7.2689C9.36743 7.5152 9.41595 7.75907 9.51023 7.98661C9.6045 8.21414 9.74268 8.42088 9.91687 8.595L3.83625 14.6747C3.57512 14.936 3.36803 15.2462 3.2268 15.5875C3.08556 15.9288 3.01296 16.2947 3.01312 16.6641V18.3516C3.01312 18.6499 3.13165 18.9361 3.34263 19.1471C3.55361 19.358 3.83975 19.4766 4.13812 19.4766H5.82562C6.57129 19.4759 7.28618 19.1792 7.81312 18.6516L13.8937 12.5728C14.0679 12.747 14.2746 12.8852 14.5021 12.9795C14.7297 13.0737 14.9735 13.1223 15.2198 13.1223C15.4661 13.1223 15.71 13.0737 15.9375 12.9795C16.1651 12.8852 16.3718 12.747 16.5459 12.5728L17.2153 11.9025C17.6261 11.4917 17.8991 10.9635 17.9967 10.3908C18.0942 9.81811 18.0115 9.22926 17.76 8.70562L19.1972 7.26937C19.4584 7.0082 19.6656 6.69813 19.807 6.35687C19.9484 6.01561 20.0211 5.64985 20.0211 5.28047C20.0211 4.91108 19.9484 4.54532 19.807 4.20406C19.6656 3.8628 19.4584 3.55273 19.1972 3.29156ZM5.16281 16.0012L11.2425 9.92062L12.5681 11.2462L6.48844 17.3269C6.31266 17.5027 6.07424 17.6015 5.82562 17.6016H4.88812V16.6641C4.88818 16.4154 4.98698 16.177 5.16281 16.0012Z" fill="#353C47"/>
686
689
  </svg>`, Tt = `<svg width="15" height="17" viewBox="0 0 15 17" fill="none" xmlns="http://www.w3.org/2000/svg">
687
690
  <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"/>
@@ -752,38 +755,38 @@ class ut {
752
755
  const a = document.createElement("div");
753
756
  a.className = "color-picker-sliders-container";
754
757
  const l = document.createElement("button");
755
- l.className = "color-picker-eyedropper", l.type = "button", l.innerHTML = bt;
758
+ l.className = "color-picker-eyedropper", l.type = "button", l.innerHTML = Et;
756
759
  const r = document.createElement("div");
757
760
  r.className = "color-picker-sliders-group";
758
761
  const c = document.createElement("div");
759
762
  c.className = "color-picker-hue", this.hueSlider = c;
760
763
  const h = document.createElement("div");
761
764
  h.className = "color-picker-hue-marker", this.hueMarker = h, c.appendChild(h);
762
- const d = document.createElement("div");
763
- d.className = "color-picker-opacity", this.opacitySlider = d;
764
- const u = document.createElement("div");
765
- u.className = "color-picker-opacity-marker", this.opacityMarker = u, d.appendChild(u), r.appendChild(c), r.appendChild(d), a.appendChild(l), a.appendChild(r);
766
- const f = at((b) => {
765
+ const p = document.createElement("div");
766
+ p.className = "color-picker-opacity", this.opacitySlider = p;
767
+ const g = document.createElement("div");
768
+ g.className = "color-picker-opacity-marker", this.opacityMarker = g, p.appendChild(g), r.appendChild(c), r.appendChild(p), a.appendChild(l), a.appendChild(r);
769
+ const f = at((E) => {
767
770
  var w;
768
- this.setColor(b), (w = this.onChange) == null || w.call(this, b, this.currentOpacity);
771
+ this.setColor(E), (w = this.onChange) == null || w.call(this, E, this.currentOpacity);
769
772
  }, this.recentScope);
770
773
  this.recentSectionRefresh = f.refresh;
771
774
  const m = document.createElement("div");
772
775
  m.className = "color-picker-format-section";
773
- const g = document.createElement("select");
774
- g.className = "color-picker-format-select", this.select = g;
776
+ const u = document.createElement("select");
777
+ u.className = "color-picker-format-select", this.select = u;
775
778
  const v = document.createElement("option");
776
779
  v.value = "hex", v.textContent = "HEX";
777
780
  const C = document.createElement("option");
778
781
  C.value = "rgb", C.textContent = "RGB";
779
782
  const y = document.createElement("option");
780
- y.value = "hsl", y.textContent = "HSL", g.appendChild(v), g.appendChild(C), g.appendChild(y);
781
- const E = document.createElement("input");
782
- E.type = "text", E.className = "color-picker-color-input", E.value = this.currentColor, this.input = E;
783
+ y.value = "hsl", y.textContent = "HSL", u.appendChild(v), u.appendChild(C), u.appendChild(y);
784
+ const b = document.createElement("input");
785
+ b.type = "text", b.className = "color-picker-color-input", b.value = this.currentColor, this.input = b;
783
786
  const L = document.createElement("div");
784
787
  L.className = "color-picker-input-container";
785
788
  const I = document.createElement("button");
786
- return I.className = "color-picker-copy-inside", I.textContent = "Copy", L.appendChild(E), L.appendChild(I), m.appendChild(g), m.appendChild(L), t.appendChild(e), t.appendChild(n), t.appendChild(a), t.appendChild(f.container), t.appendChild(m), t.addEventListener("click", (b) => b.stopPropagation()), this.bind(n, c, d, E, g, I, l), t;
789
+ return I.className = "color-picker-copy-inside", I.textContent = "Copy", L.appendChild(b), L.appendChild(I), m.appendChild(u), m.appendChild(L), t.appendChild(e), t.appendChild(n), t.appendChild(a), t.appendChild(f.container), t.appendChild(m), t.addEventListener("click", (E) => E.stopPropagation()), this.bind(n, c, p, b, u, I, l), t;
787
790
  }
788
791
  createBackdrop() {
789
792
  const t = document.createElement("div");
@@ -792,40 +795,40 @@ class ut {
792
795
  bind(t, e, i, s, n, o, a) {
793
796
  const l = (h) => {
794
797
  var C;
795
- const d = t.getBoundingClientRect(), u = Math.max(0, Math.min(1, (h.clientX - d.left) / d.width)), f = Math.max(0, Math.min(1, (h.clientY - d.top) / d.height));
796
- this.colorMarker.style.left = `${u * 100}%`, this.colorMarker.style.top = `${f * 100}%`;
797
- const g = this.parsePercentage(this.hueMarker.style.left || "0%") * 360, v = U(g, u, 1 - f);
798
+ const p = t.getBoundingClientRect(), g = Math.max(0, Math.min(1, (h.clientX - p.left) / p.width)), f = Math.max(0, Math.min(1, (h.clientY - p.top) / p.height));
799
+ this.colorMarker.style.left = `${g * 100}%`, this.colorMarker.style.top = `${f * 100}%`;
800
+ const u = this.parsePercentage(this.hueMarker.style.left || "0%") * 360, v = U(u, g, 1 - f);
798
801
  this.currentColor = v, this.syncInput(), this.updateOpacityBg(), (C = this.onChange) == null || C.call(this, v, this.currentOpacity);
799
802
  }, r = (h) => {
800
803
  var C;
801
- const d = e.getBoundingClientRect();
802
- let u = Math.max(0, Math.min(1, (h.clientX - d.left) / d.width));
803
- this.hueMarker.style.left = `${u * 100}%`;
804
- const f = u * 360, m = this.parsePercentage(this.colorMarker.style.left || "0%"), g = this.parsePercentage(this.colorMarker.style.top || "0%"), v = U(f, m, 1 - g);
804
+ const p = e.getBoundingClientRect();
805
+ let g = Math.max(0, Math.min(1, (h.clientX - p.left) / p.width));
806
+ this.hueMarker.style.left = `${g * 100}%`;
807
+ const f = g * 360, m = this.parsePercentage(this.colorMarker.style.left || "0%"), u = this.parsePercentage(this.colorMarker.style.top || "0%"), v = U(f, m, 1 - u);
805
808
  this.currentColor = v, this.colorArea.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${f}, 100%, 50%))`, this.syncInput(), this.updateOpacityBg(), (C = this.onChange) == null || C.call(this, v, this.currentOpacity);
806
809
  }, c = (h) => {
807
810
  var f;
808
- const d = i.getBoundingClientRect(), u = Math.max(0, Math.min(1, (h.clientX - d.left) / d.width));
809
- this.opacityMarker.style.left = `${u * 100}%`, this.currentOpacity = Math.round(u * 100), (f = this.onChange) == null || f.call(this, this.currentColor, this.currentOpacity);
811
+ const p = i.getBoundingClientRect(), g = Math.max(0, Math.min(1, (h.clientX - p.left) / p.width));
812
+ this.opacityMarker.style.left = `${g * 100}%`, this.currentOpacity = Math.round(g * 100), (f = this.onChange) == null || f.call(this, this.currentColor, this.currentOpacity);
810
813
  };
811
814
  t.addEventListener("mousedown", (h) => {
812
815
  h.preventDefault(), l(h);
813
- const d = (f) => l(f), u = () => {
814
- document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", u);
816
+ const p = (f) => l(f), g = () => {
817
+ document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", g);
815
818
  };
816
- document.addEventListener("mousemove", d), document.addEventListener("mouseup", u);
819
+ document.addEventListener("mousemove", p), document.addEventListener("mouseup", g);
817
820
  }), e.addEventListener("mousedown", (h) => {
818
821
  h.preventDefault(), r(h);
819
- const d = (f) => r(f), u = () => {
820
- document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", u);
822
+ const p = (f) => r(f), g = () => {
823
+ document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", g);
821
824
  };
822
- document.addEventListener("mousemove", d), document.addEventListener("mouseup", u);
825
+ document.addEventListener("mousemove", p), document.addEventListener("mouseup", g);
823
826
  }), i.addEventListener("mousedown", (h) => {
824
827
  h.preventDefault(), c(h);
825
- const d = (f) => c(f), u = () => {
826
- document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", u);
828
+ const p = (f) => c(f), g = () => {
829
+ document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", g);
827
830
  };
828
- document.addEventListener("mousemove", d), document.addEventListener("mouseup", u);
831
+ document.addEventListener("mousemove", p), document.addEventListener("mouseup", g);
829
832
  }), n.addEventListener("change", () => this.syncInput()), s.addEventListener("input", () => this.applyFromInput()), s.addEventListener("blur", () => this.syncInput()), s.addEventListener("keydown", (h) => {
830
833
  h.key === "Enter" && (h.preventDefault(), this.syncInput(), s.blur());
831
834
  }), o.addEventListener("click", async () => {
@@ -841,8 +844,8 @@ class ut {
841
844
  return;
842
845
  }
843
846
  try {
844
- const d = new window.EyeDropper(), { sRGBHex: u } = await d.open();
845
- this.setColor(u), (h = this.onChange) == null || h.call(this, u, this.currentOpacity);
847
+ const p = new window.EyeDropper(), { sRGBHex: g } = await p.open();
848
+ this.setColor(g), (h = this.onChange) == null || h.call(this, g, this.currentOpacity);
846
849
  } catch {
847
850
  }
848
851
  }), document.addEventListener("keydown", this.keyDown, !0), setTimeout(
@@ -900,16 +903,16 @@ class ut {
900
903
  this.currentColor = t, this.currentOpacity = i ?? 100, this.syncInput();
901
904
  const { h: s, s: n, v: o } = z(t);
902
905
  this.hueMarker.style.left = `${s / 360 * 100}%`, this.colorMarker.style.left = `${n * 100}%`, this.colorMarker.style.top = `${(1 - o) * 100}%`, this.colorArea.style.background = `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(${s}, 100%, 50%))`, this.updateOpacityBg(), this.opacityMarker.style.left = `${this.currentOpacity}%`, (y = this.recentSectionRefresh) == null || y.call(this), this.isOpen = !0, this.backdrop.style.display = "block", this.backdrop.parentElement || document.body.appendChild(this.backdrop), this.element.style.display = "block", this.element.style.position = "fixed", this.element.style.zIndex = "10002", this.element.style.left = "-9999px", this.element.style.top = "0px", this.element.parentElement || document.body.appendChild(this.element);
903
- const a = this.element.offsetWidth, l = this.element.offsetHeight, r = e.getBoundingClientRect(), c = window.innerWidth, h = window.innerHeight, d = 16;
904
- let u = r.right + 8, f = r.top;
905
- const m = c - r.right, g = r.left;
906
- m >= a + d ? u = r.right + 8 : g >= a + d ? u = r.left - a - 8 : u = Math.max(d, (c - a) / 2);
906
+ const a = this.element.offsetWidth, l = this.element.offsetHeight, r = e.getBoundingClientRect(), c = window.innerWidth, h = window.innerHeight, p = 16;
907
+ let g = r.right + 8, f = r.top;
908
+ const m = c - r.right, u = r.left;
909
+ m >= a + p ? g = r.right + 8 : u >= a + p ? g = r.left - a - 8 : g = Math.max(p, (c - a) / 2);
907
910
  const v = h - r.bottom, C = r.top;
908
- v >= l + d ? f = r.bottom + 8 : C >= l + d ? f = r.top - l - 8 : v > C ? (f = r.bottom + 8, f + l > h - d && (f = h - l - d)) : (f = r.top - l - 8, f < d && (f = d)), this.element.style.left = `${u}px`, this.element.style.top = `${f}px`;
911
+ v >= l + p ? f = r.bottom + 8 : C >= l + p ? f = r.top - l - 8 : v > C ? (f = r.bottom + 8, f + l > h - p && (f = h - l - p)) : (f = r.top - l - 8, f < p && (f = p)), this.element.style.left = `${g}px`, this.element.style.top = `${f}px`;
909
912
  }
910
913
  close(t) {
911
914
  var e;
912
- this.isOpen && (this.isOpen = !1, this.backdrop.style.display = "none", this.element.style.display = "none", document.removeEventListener("click", this.outsideClick, !0), document.removeEventListener("keydown", this.keyDown, !0), t && this.onChange && this.recentScope === "solid" && (R.addColor(this.currentColor, this.recentScope), (e = this.recentSectionRefresh) == null || e.call(this)));
915
+ this.isOpen && (this.isOpen = !1, this.backdrop.style.display = "none", this.element.style.display = "none", document.removeEventListener("click", this.outsideClick, !0), document.removeEventListener("keydown", this.keyDown, !0), t && this.onChange && this.recentScope === "solid" && (F.addColor(this.currentColor, this.recentScope), (e = this.recentSectionRefresh) == null || e.call(this)));
913
916
  }
914
917
  getElement() {
915
918
  return this.element;
@@ -933,7 +936,7 @@ class Bt {
933
936
  const s = document.createElement("div");
934
937
  s.className = "color-picker-sliders-container embedded";
935
938
  const n = document.createElement("button");
936
- n.className = "color-picker-eyedropper", n.type = "button", n.innerHTML = bt;
939
+ n.className = "color-picker-eyedropper", n.type = "button", n.innerHTML = Et;
937
940
  const o = document.createElement("div");
938
941
  o.className = "color-picker-sliders-group";
939
942
  const a = document.createElement("div");
@@ -944,62 +947,62 @@ class Bt {
944
947
  r.className = "color-picker-opacity embedded", this.opacitySlider = r;
945
948
  const c = document.createElement("div");
946
949
  c.className = "color-picker-opacity-marker", this.opacityMarker = c, r.appendChild(c), o.appendChild(a), o.appendChild(r), s.appendChild(n), s.appendChild(o);
947
- const h = at((E) => {
948
- const L = T(E);
949
- L && L.type !== "solid" ? this.onColorChange(E, this.currentOpacity) : (this.setColor(E), this.onColorChange(this.currentColor, this.currentOpacity));
950
+ const h = at((b) => {
951
+ const L = T(b);
952
+ L && L.type !== "solid" ? this.onColorChange(b, this.currentOpacity) : (this.setColor(b), this.onColorChange(this.currentColor, this.currentOpacity));
950
953
  }, "all");
951
954
  this.recentSectionRefresh = h.refresh;
952
- const d = document.createElement("div");
953
- d.className = "color-picker-format-section embedded";
954
- const u = document.createElement("select");
955
- u.className = "color-picker-format-select", this.select = u;
955
+ const p = document.createElement("div");
956
+ p.className = "color-picker-format-section embedded";
957
+ const g = document.createElement("select");
958
+ g.className = "color-picker-format-select", this.select = g;
956
959
  const f = document.createElement("option");
957
960
  f.value = "hex", f.textContent = "HEX";
958
961
  const m = document.createElement("option");
959
962
  m.value = "rgb", m.textContent = "RGB";
960
- const g = document.createElement("option");
961
- g.value = "hsl", g.textContent = "HSL", u.appendChild(f), u.appendChild(m), u.appendChild(g);
963
+ const u = document.createElement("option");
964
+ u.value = "hsl", u.textContent = "HSL", g.appendChild(f), g.appendChild(m), g.appendChild(u);
962
965
  const v = document.createElement("input");
963
966
  v.type = "text", v.className = "color-picker-color-input", this.input = v;
964
967
  const C = document.createElement("div");
965
968
  C.className = "color-picker-input-container";
966
969
  const y = document.createElement("button");
967
- return y.className = "color-picker-copy-inside", y.textContent = "Copy", C.appendChild(v), C.appendChild(y), d.appendChild(u), d.appendChild(C), t.appendChild(e), t.appendChild(s), t.appendChild(d), t.appendChild(h.container), this.bind(e, a, r, v, u, y, n), t;
970
+ return y.className = "color-picker-copy-inside", y.textContent = "Copy", C.appendChild(v), C.appendChild(y), p.appendChild(g), p.appendChild(C), t.appendChild(e), t.appendChild(s), t.appendChild(p), t.appendChild(h.container), this.bind(e, a, r, v, g, y, n), t;
968
971
  }
969
972
  bind(t, e, i, s, n, o, a) {
970
973
  const l = (h) => {
971
- const d = t.getBoundingClientRect(), u = Math.max(0, Math.min(1, (h.clientX - d.left) / d.width)), f = Math.max(0, Math.min(1, (h.clientY - d.top) / d.height));
972
- this.colorMarker.style.left = `${u * 100}%`, this.colorMarker.style.top = `${f * 100}%`;
973
- const g = this.parsePercentage(this.hueMarker.style.left || "0%") * 360, v = U(g, u, 1 - f);
974
+ const p = t.getBoundingClientRect(), g = Math.max(0, Math.min(1, (h.clientX - p.left) / p.width)), f = Math.max(0, Math.min(1, (h.clientY - p.top) / p.height));
975
+ this.colorMarker.style.left = `${g * 100}%`, this.colorMarker.style.top = `${f * 100}%`;
976
+ const u = this.parsePercentage(this.hueMarker.style.left || "0%") * 360, v = U(u, g, 1 - f);
974
977
  this.currentColor = v, this.syncInput(), this.updateOpacityBg(), this.queueChange();
975
978
  }, r = (h) => {
976
- const d = e.getBoundingClientRect(), u = Math.max(0, Math.min(1, (h.clientX - d.left) / d.width));
977
- this.hueMarker.style.left = `${u * 100}%`;
978
- const f = u * 360, m = this.parsePercentage(this.colorMarker.style.left || "0%"), g = this.parsePercentage(this.colorMarker.style.top || "0%"), v = U(f, m, 1 - g);
979
+ const p = e.getBoundingClientRect(), g = Math.max(0, Math.min(1, (h.clientX - p.left) / p.width));
980
+ this.hueMarker.style.left = `${g * 100}%`;
981
+ const f = g * 360, m = this.parsePercentage(this.colorMarker.style.left || "0%"), u = this.parsePercentage(this.colorMarker.style.top || "0%"), v = U(f, m, 1 - u);
979
982
  this.currentColor = v, this.colorArea.style.background = `linear-gradient(to top, #000, transparent),
980
983
  linear-gradient(to right, #fff, hsl(${f}, 100%, 50%))`, this.syncInput(), this.updateOpacityBg(), this.queueChange();
981
984
  }, c = (h) => {
982
- const d = i.getBoundingClientRect(), u = Math.max(0, Math.min(1, (h.clientX - d.left) / d.width));
983
- this.opacityMarker.style.left = `${u * 100}%`, this.currentOpacity = Math.round(u * 100), this.queueChange();
985
+ const p = i.getBoundingClientRect(), g = Math.max(0, Math.min(1, (h.clientX - p.left) / p.width));
986
+ this.opacityMarker.style.left = `${g * 100}%`, this.currentOpacity = Math.round(g * 100), this.queueChange();
984
987
  };
985
988
  t.addEventListener("mousedown", (h) => {
986
989
  h.preventDefault(), this.isDragging = !0, l(h);
987
- const d = (f) => l(f), u = () => {
988
- this.isDragging = !1, this.flushChange(), document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", u), this.applyPendingExternal();
990
+ const p = (f) => l(f), g = () => {
991
+ this.isDragging = !1, this.flushChange(), document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", g), this.applyPendingExternal();
989
992
  };
990
- document.addEventListener("mousemove", d), document.addEventListener("mouseup", u);
993
+ document.addEventListener("mousemove", p), document.addEventListener("mouseup", g);
991
994
  }), e.addEventListener("mousedown", (h) => {
992
995
  h.preventDefault(), this.isDragging = !0, r(h);
993
- const d = (f) => r(f), u = () => {
994
- this.isDragging = !1, this.flushChange(), document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", u), this.applyPendingExternal();
996
+ const p = (f) => r(f), g = () => {
997
+ this.isDragging = !1, this.flushChange(), document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", g), this.applyPendingExternal();
995
998
  };
996
- document.addEventListener("mousemove", d), document.addEventListener("mouseup", u);
999
+ document.addEventListener("mousemove", p), document.addEventListener("mouseup", g);
997
1000
  }), i.addEventListener("mousedown", (h) => {
998
1001
  h.preventDefault(), this.isDragging = !0, c(h);
999
- const d = (f) => c(f), u = () => {
1000
- this.isDragging = !1, this.flushChange(), document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", u), this.applyPendingExternal();
1002
+ const p = (f) => c(f), g = () => {
1003
+ this.isDragging = !1, this.flushChange(), document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", g), this.applyPendingExternal();
1001
1004
  };
1002
- document.addEventListener("mousemove", d), document.addEventListener("mouseup", u);
1005
+ document.addEventListener("mousemove", p), document.addEventListener("mouseup", g);
1003
1006
  }), n.addEventListener("change", () => {
1004
1007
  this.syncInput();
1005
1008
  }), s.addEventListener("input", () => {
@@ -1020,8 +1023,8 @@ class Bt {
1020
1023
  return;
1021
1024
  }
1022
1025
  try {
1023
- const h = new window.EyeDropper(), { sRGBHex: d } = await h.open();
1024
- this.setColor(d), this.onColorChange(this.currentColor, this.currentOpacity);
1026
+ const h = new window.EyeDropper(), { sRGBHex: p } = await h.open();
1027
+ this.setColor(p), this.onColorChange(this.currentColor, this.currentOpacity);
1025
1028
  } catch {
1026
1029
  }
1027
1030
  });
@@ -1095,7 +1098,7 @@ class Bt {
1095
1098
  }
1096
1099
  commitRecentColor() {
1097
1100
  var t;
1098
- this.recentScope === "solid" && (R.addColor(this.currentColor, this.recentScope), (t = this.recentSectionRefresh) == null || t.call(this));
1101
+ this.recentScope === "solid" && (F.addColor(this.currentColor, this.recentScope), (t = this.recentSectionRefresh) == null || t.call(this));
1099
1102
  }
1100
1103
  getElement() {
1101
1104
  return this.element;
@@ -1120,9 +1123,9 @@ const V = class V extends x {
1120
1123
  angle: "number",
1121
1124
  stops: "text"
1122
1125
  }, this.element = null, this.previewEl = null, this.inputEl = void 0, this.popoverEl = null, this.backdropEl = null, this.isPopoverOpen = !1, this.isEditing = !1, this.popoverPosition = null, this.previewUpdateTimeout = null, this.changeDebounceTimeout = null, this.solidPicker = null, this.pendingSolidColor = null, this.variant = "default", this.globalLayoutMode = "list", this.globalSearchQuery = "", this.currentMode = "custom", this.linkedGlobalVariable = null, this.unlinkButton = null, this.onBackgroundClick = (i) => {
1123
- var d;
1126
+ var p;
1124
1127
  if (!this.popoverEl || !this.isPopoverOpen) return;
1125
- const s = i.target, n = this.popoverEl.contains(s), o = (d = this.element) == null ? void 0 : d.contains(s), a = document.querySelectorAll(".custom-color-picker"), l = Array.from(a).some((u) => u.contains(s)), r = s.closest(".gstop-color-input, .gradient-mini-preview, .gstop-color-preview"), c = s.classList.contains("color-picker-backdrop"), h = s.classList.contains("gradient-popover-backdrop");
1128
+ const s = i.target, n = this.popoverEl.contains(s), o = (p = this.element) == null ? void 0 : p.contains(s), a = document.querySelectorAll(".custom-color-picker"), l = Array.from(a).some((g) => g.contains(s)), r = s.closest(".gstop-color-input, .gradient-mini-preview, .gstop-color-preview"), c = s.classList.contains("color-picker-backdrop"), h = s.classList.contains("gradient-popover-backdrop");
1126
1129
  !n && !o && !l && !r && !c && !h && this.closePopover();
1127
1130
  }, this.handlePopoverKeydown = (i) => {
1128
1131
  if (this.isPopoverOpen) {
@@ -1375,47 +1378,47 @@ const V = class V extends x {
1375
1378
  (!this.value || !this.value.stops || !this.value.stops.length) && (this.value || (this.value = this.defaultValue()), this.value.stops = [{ color: "#000000", position: 0, opacity: 100 }]);
1376
1379
  const e = this.value.stops[0], i = (h) => {
1377
1380
  h.innerHTML = "";
1378
- let d = {};
1381
+ let p = {};
1379
1382
  try {
1380
- d = x.GlobalVariables || {};
1381
- } catch (g) {
1382
- console.warn("Could not access Setting.GlobalVariables", g);
1383
+ p = x.GlobalVariables || {};
1384
+ } catch (u) {
1385
+ console.warn("Could not access Setting.GlobalVariables", u);
1383
1386
  }
1384
- if (!d || Object.keys(d).length === 0) {
1385
- const g = document.createElement("div");
1386
- g.textContent = "No global colors defined", g.style.fontSize = "12px", g.style.color = "#666", g.style.padding = "8px", h.appendChild(g);
1387
+ if (!p || Object.keys(p).length === 0) {
1388
+ const u = document.createElement("div");
1389
+ u.textContent = "No global colors defined", u.style.fontSize = "12px", u.style.color = "#666", u.style.padding = "8px", h.appendChild(u);
1387
1390
  return;
1388
1391
  }
1389
- const u = x.GlobalVariableGroups || [
1392
+ const g = x.GlobalVariableGroups || [
1390
1393
  { title: "Global Colors", keys: ["primary", "secondary", "tertiary", "accent"] },
1391
1394
  { title: "Text Color", keys: ["text-dark", "text-light"] }
1392
1395
  ], f = this.globalSearchQuery.toLowerCase();
1393
1396
  let m;
1394
- this.globalLayoutMode === "list" ? (m = document.createElement("div"), m.className = "global-colors-list") : (m = document.createElement("div"), m.className = "global-colors-grid"), h.appendChild(m), u.forEach((g) => {
1395
- const v = Object.entries(d).filter(([C]) => !g.keys.includes(C) && g.title !== "Global Colors" ? !1 : g.keys.includes(C) && C.toLowerCase().includes(f));
1397
+ this.globalLayoutMode === "list" ? (m = document.createElement("div"), m.className = "global-colors-list") : (m = document.createElement("div"), m.className = "global-colors-grid"), h.appendChild(m), g.forEach((u) => {
1398
+ const v = Object.entries(p).filter(([C]) => !u.keys.includes(C) && u.title !== "Global Colors" ? !1 : u.keys.includes(C) && C.toLowerCase().includes(f));
1396
1399
  v.length !== 0 && v.forEach(([C, y]) => {
1397
1400
  if (this.globalLayoutMode === "list") {
1398
- const E = document.createElement("div");
1399
- E.className = "global-color-row";
1401
+ const b = document.createElement("div");
1402
+ b.className = "global-color-row";
1400
1403
  const L = document.createElement("div");
1401
1404
  L.className = "global-color-circle";
1402
1405
  const I = this.resolveGlobalVarColor(y);
1403
1406
  L.style.background = I, (this.linkedGlobalVariable === `var(--${C})` || e.color === `var(--${C})`) && L.classList.add("selected");
1404
1407
  const w = document.createElement("span");
1405
- w.className = "global-color-label", w.textContent = C.split("-").map((M) => M.charAt(0).toUpperCase() + M.slice(1)).join(" "), E.appendChild(L), E.appendChild(w), E.addEventListener("click", (M) => {
1406
- M.preventDefault();
1408
+ w.className = "global-color-label", w.textContent = C.split("-").map((N) => N.charAt(0).toUpperCase() + N.slice(1)).join(" "), b.appendChild(L), b.appendChild(w), b.addEventListener("click", (N) => {
1409
+ N.preventDefault();
1407
1410
  const D = `var(--${C})`;
1408
1411
  this.setValue(D), this.pendingSolidColor = D, i(h);
1409
- }), m.appendChild(E);
1412
+ }), m.appendChild(b);
1410
1413
  } else {
1411
- const E = document.createElement("div");
1412
- E.className = "global-color-circle";
1414
+ const b = document.createElement("div");
1415
+ b.className = "global-color-circle";
1413
1416
  const L = this.resolveGlobalVarColor(y);
1414
- E.style.background = L, E.title = C.split("-").map((b) => b.charAt(0).toUpperCase() + b.slice(1)).join(" "), (this.linkedGlobalVariable === `var(--${C})` || e.color === `var(--${C})`) && E.classList.add("selected"), E.addEventListener("click", (b) => {
1415
- b.preventDefault();
1417
+ b.style.background = L, b.title = C.split("-").map((E) => E.charAt(0).toUpperCase() + E.slice(1)).join(" "), (this.linkedGlobalVariable === `var(--${C})` || e.color === `var(--${C})`) && b.classList.add("selected"), b.addEventListener("click", (E) => {
1418
+ E.preventDefault();
1416
1419
  const w = `var(--${C})`;
1417
1420
  this.setValue(w), this.pendingSolidColor = w, i(h);
1418
- }), m.appendChild(E);
1421
+ }), m.appendChild(b);
1419
1422
  }
1420
1423
  });
1421
1424
  });
@@ -1466,30 +1469,30 @@ const V = class V extends x {
1466
1469
  c.className = "gradient-subtype-inline";
1467
1470
  const h = document.createElement("select");
1468
1471
  h.className = "gradient-subtype-select";
1469
- const d = document.createElement("option");
1470
- d.value = "linear", d.textContent = "Linear";
1471
- const u = document.createElement("option");
1472
- u.value = "radial", u.textContent = "Radial", h.appendChild(d), h.appendChild(u), h.value = this.value.type === "radial" ? "radial" : "linear", e = document.createElement("input"), e.type = "text", e.inputMode = "numeric", e.className = "gradient-degree-input", e.value = `${this.value.angle ?? 90}°`, e.style.width = "75px", e.style.textAlign = "center", (!this.value.angle || this.value.stops.length < 2) && (this.value.angle = 90, e.value = "90°");
1472
+ const p = document.createElement("option");
1473
+ p.value = "linear", p.textContent = "Linear";
1474
+ const g = document.createElement("option");
1475
+ g.value = "radial", g.textContent = "Radial", h.appendChild(p), h.appendChild(g), h.value = this.value.type === "radial" ? "radial" : "linear", e = document.createElement("input"), e.type = "text", e.inputMode = "numeric", e.className = "gradient-degree-input", e.value = `${this.value.angle ?? 90}°`, e.style.width = "75px", e.style.textAlign = "center", (!this.value.angle || this.value.stops.length < 2) && (this.value.angle = 90, e.value = "90°");
1473
1476
  const f = document.createElement("button");
1474
1477
  f.type = "button", f.className = "gradient-flip-btn", f.innerHTML = Tt, h.addEventListener("change", () => {
1475
1478
  this.clearGlobalBindingForCustomChange(), this.switchType(h.value === "radial" ? "radial" : "linear", !0), e && this.updateDegreeVisibility(e);
1476
1479
  }), e.addEventListener("focus", (m) => {
1477
- const g = m.target;
1478
- g.value = g.value.replace(/[^0-9-]/g, ""), setTimeout(() => g.select(), 0);
1480
+ const u = m.target;
1481
+ u.value = u.value.replace(/[^0-9-]/g, ""), setTimeout(() => u.select(), 0);
1479
1482
  }), e.addEventListener("input", (m) => {
1480
1483
  this.clearGlobalBindingForCustomChange();
1481
- const g = parseInt(m.target.value);
1482
- !Number.isNaN(g) && this.value && (this.value.angle = Math.max(0, Math.min(360, g)), this.debouncedPreviewUpdate());
1484
+ const u = parseInt(m.target.value);
1485
+ !Number.isNaN(u) && this.value && (this.value.angle = Math.max(0, Math.min(360, u)), this.debouncedPreviewUpdate());
1483
1486
  }), e.addEventListener("blur", (m) => {
1484
1487
  var C;
1485
1488
  this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null);
1486
- const g = m.target;
1487
- let v = parseInt(g.value);
1488
- Number.isNaN(v) && (v = ((C = this.value) == null ? void 0 : C.angle) ?? 0), v = Math.max(0, Math.min(360, v)), this.value && (this.value.angle = v), g.value = `${v}°`, this.updateGradientPreview(), this.updateUI(), this.triggerChange();
1489
+ const u = m.target;
1490
+ let v = parseInt(u.value);
1491
+ Number.isNaN(v) && (v = ((C = this.value) == null ? void 0 : C.angle) ?? 0), v = Math.max(0, Math.min(360, v)), this.value && (this.value.angle = v), u.value = `${v}°`, this.updateGradientPreview(), this.updateUI(), this.triggerChange();
1489
1492
  }), f.addEventListener("click", () => {
1490
1493
  this.clearGlobalBindingForCustomChange(), !(!this.value || !this.value.stops) && (this.value.stops.forEach((m) => {
1491
1494
  m.position = 100 - m.position;
1492
- }), this.value.stops.sort((m, g) => m.position - g.position), this.updateGradientPreview(i), this.createHandles(s, i), this.updateStopsList(l), this.updateUI(), this.triggerChange());
1495
+ }), this.value.stops.sort((m, u) => m.position - u.position), this.updateGradientPreview(i), this.createHandles(s, i), this.updateStopsList(l), this.updateUI(), this.triggerChange());
1493
1496
  }), c.appendChild(h), c.appendChild(e), c.appendChild(f), t.appendChild(c), this.updateDegreeVisibility(e);
1494
1497
  }
1495
1498
  const i = document.createElement("div");
@@ -1541,28 +1544,28 @@ const V = class V extends x {
1541
1544
  o.className = "gstop-chip";
1542
1545
  const a = this.resolveGlobalVarColor(i.color);
1543
1546
  o.style.backgroundColor = a, n.appendChild(o);
1544
- const l = new ut((g, v) => {
1545
- this.clearGlobalBindingForCustomChange(), this.value && this.value.stops[s] && (this.value.stops[s].color = g, v !== void 0 && (this.value.stops[s].opacity = v), o.style.backgroundColor = g, this.updateGradientPreview(), this.updateStopsList(), this.updateUI(), this.triggerChange());
1547
+ const l = new ut((u, v) => {
1548
+ this.clearGlobalBindingForCustomChange(), this.value && this.value.stops[s] && (this.value.stops[s].color = u, v !== void 0 && (this.value.stops[s].opacity = v), o.style.backgroundColor = u, this.updateGradientPreview(), this.updateStopsList(), this.updateUI(), this.triggerChange());
1546
1549
  }, "solid");
1547
- let r = !1, c = !1, h = 0, d = 0;
1548
- const u = (g) => {
1549
- r = !0, c = !1, h = g.clientX, d = this.value.stops[s].position, n.classList.add("selected"), document.addEventListener("mousemove", f), document.addEventListener("mouseup", m), g.preventDefault(), g.stopPropagation();
1550
- }, f = (g) => {
1550
+ let r = !1, c = !1, h = 0, p = 0;
1551
+ const g = (u) => {
1552
+ r = !0, c = !1, h = u.clientX, p = this.value.stops[s].position, n.classList.add("selected"), document.addEventListener("mousemove", f), document.addEventListener("mouseup", m), u.preventDefault(), u.stopPropagation();
1553
+ }, f = (u) => {
1551
1554
  if (!r || !this.value) return;
1552
- const v = g.clientX - h;
1555
+ const v = u.clientX - h;
1553
1556
  if (Math.abs(v) > 3 && (c = !0), c) {
1554
1557
  this.clearGlobalBindingForCustomChange();
1555
1558
  const C = e.getBoundingClientRect();
1556
- let y = d + v / C.width * 100;
1559
+ let y = p + v / C.width * 100;
1557
1560
  y = Math.max(0, Math.min(100, y)), this.value.stops[s].position = Math.round(y), n.style.left = `${y}%`, this.updateGradientPreview();
1558
1561
  }
1559
- }, m = (g) => {
1562
+ }, m = (u) => {
1560
1563
  var v;
1561
1564
  if (r)
1562
1565
  if (r = !1, n.classList.remove("selected"), document.removeEventListener("mousemove", f), document.removeEventListener("mouseup", m), c)
1563
1566
  this.value && (this.value.stops.sort((C, y) => C.position - y.position), this.createHandles(t, e), this.updateStopsList()), this.updateUI(), this.triggerChange();
1564
1567
  else {
1565
- g.stopPropagation();
1568
+ u.stopPropagation();
1566
1569
  const C = (v = this.value) == null ? void 0 : v.stops[s];
1567
1570
  C && setTimeout(() => {
1568
1571
  const y = this.resolveGlobalVarColor(C.color);
@@ -1570,7 +1573,7 @@ const V = class V extends x {
1570
1573
  }, 0);
1571
1574
  }
1572
1575
  };
1573
- n.addEventListener("mousedown", u), t.appendChild(n);
1576
+ n.addEventListener("mousedown", g), t.appendChild(n);
1574
1577
  });
1575
1578
  }
1576
1579
  updateStopsList(t) {
@@ -1588,67 +1591,67 @@ const V = class V extends x {
1588
1591
  r.className = "gstop-color-container";
1589
1592
  const c = this.resolveGlobalVarColor(s.color), h = document.createElement("div");
1590
1593
  h.className = "gstop-color-preview", h.style.backgroundColor = c;
1591
- const d = document.createElement("input");
1592
- d.type = "text", d.className = "gstop-color-input", d.value = c.replace("#", "").toUpperCase();
1593
- const u = document.createElement("button");
1594
- u.type = "button", u.className = "gstop-color-copy", u.textContent = "Copy", r.appendChild(h), r.appendChild(d), r.appendChild(u);
1594
+ const p = document.createElement("input");
1595
+ p.type = "text", p.className = "gstop-color-input", p.value = c.replace("#", "").toUpperCase();
1596
+ const g = document.createElement("button");
1597
+ g.type = "button", g.className = "gstop-color-copy", g.textContent = "Copy", r.appendChild(h), r.appendChild(p), r.appendChild(g);
1595
1598
  const f = document.createElement("button");
1596
1599
  f.type = "button", f.className = "gstop-del", f.innerHTML = Pt, f.disabled = (((I = (L = this.value) == null ? void 0 : L.stops) == null ? void 0 : I.length) || 0) <= 2, o.appendChild(a), o.appendChild(r), o.appendChild(f), e.appendChild(o);
1597
1600
  const m = document.createElement("span");
1598
1601
  m.className = "gstop-opacity-label", m.textContent = "Opacity";
1599
- const g = document.createElement("div");
1600
- g.className = "gstop-opacity-group";
1602
+ const u = document.createElement("div");
1603
+ u.className = "gstop-opacity-group";
1601
1604
  const v = document.createElement("input");
1602
1605
  v.type = "range", v.className = "gstop-opacity-slider", v.min = "0", v.max = "100", v.value = String(s.opacity ?? 100);
1603
1606
  const C = P(c);
1604
1607
  v.style.setProperty("--slider-color", `rgb(${C.r}, ${C.g}, ${C.b})`);
1605
1608
  const y = document.createElement("span");
1606
- y.className = "gstop-opacity-value", y.textContent = `${s.opacity ?? 100}%`, g.appendChild(v), g.appendChild(y);
1607
- const E = new ut((b, w) => {
1608
- this.clearGlobalBindingForCustomChange(), d.value = b.replace("#", "").toUpperCase(), h.style.backgroundColor = b, this.value.stops[n].color = b, w !== void 0 && (this.value.stops[n].opacity = w, v.value = String(w), y.textContent = `${w}%`);
1609
- const M = P(b);
1610
- v.style.setProperty("--slider-color", `rgb(${M.r}, ${M.g}, ${M.b})`), this.updateGradientPreview(), this.createHandles(
1609
+ y.className = "gstop-opacity-value", y.textContent = `${s.opacity ?? 100}%`, u.appendChild(v), u.appendChild(y);
1610
+ const b = new ut((E, w) => {
1611
+ this.clearGlobalBindingForCustomChange(), p.value = E.replace("#", "").toUpperCase(), h.style.backgroundColor = E, this.value.stops[n].color = E, w !== void 0 && (this.value.stops[n].opacity = w, v.value = String(w), y.textContent = `${w}%`);
1612
+ const N = P(E);
1613
+ v.style.setProperty("--slider-color", `rgb(${N.r}, ${N.g}, ${N.b})`), this.updateGradientPreview(), this.createHandles(
1611
1614
  this.popoverEl.querySelector(".gradient-handles"),
1612
1615
  this.popoverEl.querySelector(".gradient-preview")
1613
1616
  ), this.updateUI(), this.triggerChange();
1614
1617
  }, "solid");
1615
- d.addEventListener("click", (b) => {
1616
- b.preventDefault(), b.stopPropagation();
1618
+ p.addEventListener("click", (E) => {
1619
+ E.preventDefault(), E.stopPropagation();
1617
1620
  const w = this.resolveGlobalVarColor(s.color);
1618
- E.open(w, d, s.opacity ?? 100);
1619
- }), d.addEventListener("input", () => {
1621
+ b.open(w, p, s.opacity ?? 100);
1622
+ }), p.addEventListener("input", () => {
1620
1623
  this.clearGlobalBindingForCustomChange();
1621
- const b = d.value.trim(), w = b.startsWith("#") ? b : `#${b}`;
1624
+ const E = p.value.trim(), w = E.startsWith("#") ? E : `#${E}`;
1622
1625
  if (/^#[0-9A-Fa-f]{6}$/.test(w)) {
1623
1626
  this.value.stops[n].color = w, h.style.backgroundColor = w;
1624
- const M = P(w);
1625
- v.style.setProperty("--slider-color", `rgb(${M.r}, ${M.g}, ${M.b})`), this.debouncedPreviewUpdate();
1627
+ const N = P(w);
1628
+ v.style.setProperty("--slider-color", `rgb(${N.r}, ${N.g}, ${N.b})`), this.debouncedPreviewUpdate();
1626
1629
  }
1627
- }), d.addEventListener("blur", () => {
1630
+ }), p.addEventListener("blur", () => {
1628
1631
  this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
1629
- }), u.addEventListener("click", async (b) => {
1630
- b.stopPropagation();
1632
+ }), g.addEventListener("click", async (E) => {
1633
+ E.stopPropagation();
1631
1634
  try {
1632
- await navigator.clipboard.writeText(`#${d.value}`);
1635
+ await navigator.clipboard.writeText(`#${p.value}`);
1633
1636
  } catch {
1634
1637
  }
1635
- }), l.addEventListener("focus", (b) => {
1636
- const w = b.target;
1638
+ }), l.addEventListener("focus", (E) => {
1639
+ const w = E.target;
1637
1640
  w.value = w.value.replace("%", ""), w.select();
1638
- }), l.addEventListener("input", (b) => {
1641
+ }), l.addEventListener("input", (E) => {
1639
1642
  this.clearGlobalBindingForCustomChange();
1640
- const w = b.target, M = parseInt(w.value.replace(/[^\d]/g, ""), 10);
1641
- if (!Number.isNaN(M)) {
1642
- const D = Math.max(0, Math.min(100, M));
1643
+ const w = E.target, N = parseInt(w.value.replace(/[^\d]/g, ""), 10);
1644
+ if (!Number.isNaN(N)) {
1645
+ const D = Math.max(0, Math.min(100, N));
1643
1646
  this.value.stops[n].position = D, w.value = `${D}%`, this.debouncedPreviewUpdate();
1644
1647
  }
1645
- }), l.addEventListener("blur", (b) => {
1648
+ }), l.addEventListener("blur", (E) => {
1646
1649
  this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null);
1647
- const w = b.target, M = parseInt(w.value.replace(/[^\d]/g, ""), 10);
1648
- if (Number.isNaN(M))
1650
+ const w = E.target, N = parseInt(w.value.replace(/[^\d]/g, ""), 10);
1651
+ if (Number.isNaN(N))
1649
1652
  w.value = `${this.value.stops[n].position}%`;
1650
1653
  else {
1651
- const D = Math.max(0, Math.min(100, M));
1654
+ const D = Math.max(0, Math.min(100, N));
1652
1655
  this.value.stops[n].position = D, w.value = `${D}%`;
1653
1656
  }
1654
1657
  this.updateGradientPreview(), this.createHandles(
@@ -1656,15 +1659,15 @@ const V = class V extends x {
1656
1659
  this.popoverEl.querySelector(".gradient-preview")
1657
1660
  ), this.updateStopsList(), this.updateUI(), this.triggerChange();
1658
1661
  }), f.addEventListener("click", () => {
1659
- var b;
1662
+ var E;
1660
1663
  (this.value.stops.length || 0) <= 2 || (this.clearGlobalBindingForCustomChange(), this.value.stops.splice(n, 1), this.createHandles(
1661
1664
  this.popoverEl.querySelector(".gradient-handles"),
1662
1665
  this.popoverEl.querySelector(".gradient-preview")
1663
- ), this.updateStopsList(), this.updateGradientPreview(), this.updateUI(), ((b = document.activeElement) == null ? void 0 : b.tagName) !== "INPUT" && this.repositionPopover(), this.triggerChange());
1666
+ ), this.updateStopsList(), this.updateGradientPreview(), this.updateUI(), ((E = document.activeElement) == null ? void 0 : E.tagName) !== "INPUT" && this.repositionPopover(), this.triggerChange());
1664
1667
  }), v.addEventListener("input", () => {
1665
1668
  this.clearGlobalBindingForCustomChange();
1666
- const b = parseInt(v.value, 10);
1667
- this.value.stops[n].opacity = Math.max(0, Math.min(100, b)), y.textContent = `${this.value.stops[n].opacity}%`, this.debouncedPreviewUpdate();
1669
+ const E = parseInt(v.value, 10);
1670
+ this.value.stops[n].opacity = Math.max(0, Math.min(100, E)), y.textContent = `${this.value.stops[n].opacity}%`, this.debouncedPreviewUpdate();
1668
1671
  }), v.addEventListener("change", () => {
1669
1672
  this.clearGlobalBindingForCustomChange(), this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null), this.updateGradientPreview(), this.updateUI(), this.triggerChange();
1670
1673
  });
@@ -1696,8 +1699,8 @@ const V = class V extends x {
1696
1699
  let a = t.right + 8, l = t.top;
1697
1700
  const r = i - t.right, c = t.left, h = e + n;
1698
1701
  r < h && c > r + 100 && (a = t.left - e - 8);
1699
- const d = s - t.bottom, u = t.top;
1700
- u >= o + n ? l = t.top - o - 8 : d >= o + n ? l = t.bottom + 8 : u > d ? (l = t.top - o - 8, l < n && (l = n)) : (l = t.bottom + 8, l + o > s - n && (l = s - o - n)), this.popoverEl.style.left = `${a}px`, this.popoverEl.style.top = `${l}px`, this.popoverPosition = { left: a, top: l };
1702
+ const p = s - t.bottom, g = t.top;
1703
+ g >= o + n ? l = t.top - o - 8 : p >= o + n ? l = t.bottom + 8 : g > p ? (l = t.top - o - 8, l < n && (l = n)) : (l = t.bottom + 8, l + o > s - n && (l = s - o - n)), this.popoverEl.style.left = `${a}px`, this.popoverEl.style.top = `${l}px`, this.popoverPosition = { left: a, top: l };
1701
1704
  }
1702
1705
  setTimeout(() => document.addEventListener("click", this.onBackgroundClick, !0), 200), document.addEventListener("keydown", this.handlePopoverKeydown, !0);
1703
1706
  }
@@ -1715,10 +1718,10 @@ const V = class V extends x {
1715
1718
  this.popoverEl.style.left, this.popoverEl.style.top, this.popoverEl.style.left = "-9999px", this.popoverEl.style.top = "0px";
1716
1719
  const a = this.popoverEl.offsetHeight;
1717
1720
  let l = e.right + 8, r = e.top;
1718
- const c = s - e.right, h = e.left, d = i + o;
1719
- c < d && h > c + 100 && (l = e.left - i - 8);
1720
- const u = n - e.bottom, f = e.top;
1721
- f >= a + o ? r = e.top - a - 8 : u >= a + o ? r = e.bottom + 8 : f > u ? (r = e.top - a - 8, r < o && (r = o)) : (r = e.bottom + 8, r + a > n - o && (r = n - a - o)), this.popoverEl.style.left = `${l}px`, this.popoverEl.style.top = `${r}px`;
1721
+ const c = s - e.right, h = e.left, p = i + o;
1722
+ c < p && h > c + 100 && (l = e.left - i - 8);
1723
+ const g = n - e.bottom, f = e.top;
1724
+ f >= a + o ? r = e.top - a - 8 : g >= a + o ? r = e.bottom + 8 : f > g ? (r = e.top - a - 8, r < o && (r = o)) : (r = e.bottom + 8, r + a > n - o && (r = n - a - o)), this.popoverEl.style.left = `${l}px`, this.popoverEl.style.top = `${r}px`;
1722
1725
  });
1723
1726
  }
1724
1727
  }
@@ -1737,13 +1740,13 @@ const V = class V extends x {
1737
1740
  if (!(!this.popoverEl || !this.isPopoverOpen)) {
1738
1741
  if (this.isPopoverOpen = !1, this.popoverPosition = null, this.backdropEl && (this.backdropEl.style.display = "none"), this.popoverEl.style.display = "none", document.removeEventListener("click", this.onBackgroundClick, !0), document.removeEventListener("keydown", this.handlePopoverKeydown, !0), this.commitPendingSolidColor(), this.value && this.value.type !== "solid") {
1739
1742
  const e = S(this.value);
1740
- R.addColor(e, "gradient"), (t = this.recentGradientRefresh) == null || t.call(this);
1743
+ F.addColor(e, "gradient"), (t = this.recentGradientRefresh) == null || t.call(this);
1741
1744
  }
1742
1745
  this.previewUpdateTimeout && (clearTimeout(this.previewUpdateTimeout), this.previewUpdateTimeout = null), V.openInstance === this && (V.openInstance = null);
1743
1746
  }
1744
1747
  }
1745
1748
  commitPendingSolidColor() {
1746
- this.pendingSolidColor && (this.solidPicker ? this.solidPicker.commitRecentColor() : R.addColor(this.pendingSolidColor, "solid"), this.pendingSolidColor = null);
1749
+ this.pendingSolidColor && (this.solidPicker ? this.solidPicker.commitRecentColor() : F.addColor(this.pendingSolidColor, "solid"), this.pendingSolidColor = null);
1747
1750
  }
1748
1751
  handlePaste(t) {
1749
1752
  var i;
@@ -1793,10 +1796,10 @@ const V = class V extends x {
1793
1796
  };
1794
1797
  V.openInstance = null, V.CHANGE_DEBOUNCE_DELAY = 150;
1795
1798
  let j = V;
1796
- function J(p, t) {
1797
- for (const e in p)
1798
- if (Object.prototype.hasOwnProperty.call(p, e)) {
1799
- const i = p[e];
1799
+ function J(d, t) {
1800
+ for (const e in d)
1801
+ if (Object.prototype.hasOwnProperty.call(d, e)) {
1802
+ const i = d[e];
1800
1803
  t(e, i);
1801
1804
  }
1802
1805
  }
@@ -1894,14 +1897,14 @@ const Q = class Q {
1894
1897
  }), s.forEach((r) => {
1895
1898
  n.includes(r) || this.removeSetting(r);
1896
1899
  }), n.forEach((r) => {
1897
- var d;
1900
+ var p;
1898
1901
  const c = t[r], h = this.settings[r];
1899
1902
  if (h !== c && (h && this.removeSetting(r), this.addSetting(r, c), i && r in o)) {
1900
- const u = o[r];
1903
+ const g = o[r];
1901
1904
  try {
1902
1905
  k(c) ? c.setValue(
1903
- u
1904
- ) : G(c) ? (d = c.setValue) == null || d.call(c, u) : c.setValue && c.setValue(u);
1906
+ g
1907
+ ) : G(c) ? (p = c.setValue) == null || p.call(c, g) : c.setValue && c.setValue(g);
1905
1908
  } catch (f) {
1906
1909
  console.warn(`Could not preserve value for setting ${r}:`, f);
1907
1910
  }
@@ -2332,12 +2335,12 @@ const Q = class Q {
2332
2335
  if (Object.prototype.hasOwnProperty.call(this.settings, c)) {
2333
2336
  const h = this.settings[c];
2334
2337
  k(h) && typeof h.setNestingLevel == "function" && h.setNestingLevel(this.nestingLevel + 1);
2335
- const d = h.draw();
2338
+ const p = h.draw();
2336
2339
  k(h) && h.deleteItemCfg && this.addDeleteButtonToElement(
2337
- d,
2340
+ p,
2338
2341
  c,
2339
2342
  h
2340
- ), a.appendChild(d);
2343
+ ), a.appendChild(p);
2341
2344
  }
2342
2345
  } else {
2343
2346
  const c = document.createElement("div");
@@ -2352,11 +2355,11 @@ const Q = class Q {
2352
2355
  <path d="M8 3.333v9.334M3.333 8h9.334" stroke="currentColor"
2353
2356
  stroke-width="1.5" stroke-linecap="round"/>
2354
2357
  </svg>`;
2355
- c.innerHTML = `${h}<span style="margin-left:4px;">${this.addItemCfg.buttonLabel ?? "Add"}</span>`, c.addEventListener("click", (d) => {
2356
- d.stopPropagation(), d.preventDefault();
2357
- const u = this.getNextIndexFromPrefix(this.addItemCfg.keyPrefix), f = this.addItemCfg.createItem(u);
2358
+ c.innerHTML = `${h}<span style="margin-left:4px;">${this.addItemCfg.buttonLabel ?? "Add"}</span>`, c.addEventListener("click", (p) => {
2359
+ p.stopPropagation(), p.preventDefault();
2360
+ const g = this.getNextIndexFromPrefix(this.addItemCfg.keyPrefix), f = this.addItemCfg.createItem(g);
2358
2361
  if (ct(f)) {
2359
- const m = `${this.addItemCfg.keyPrefix}${u}`;
2362
+ const m = `${this.addItemCfg.keyPrefix}${g}`;
2360
2363
  this.addSetting(m, f);
2361
2364
  }
2362
2365
  }), a.appendChild(c);
@@ -2405,8 +2408,8 @@ const Q = class Q {
2405
2408
  };
2406
2409
  Q.hiddenElements = /* @__PURE__ */ new Set();
2407
2410
  let $ = Q;
2408
- function Ee(p) {
2409
- return new At(p);
2411
+ function be(d) {
2412
+ return new At(d);
2410
2413
  }
2411
2414
  class At extends $ {
2412
2415
  constructor(t) {
@@ -2469,11 +2472,11 @@ class At extends $ {
2469
2472
  return this.updateTabUI(), t;
2470
2473
  }
2471
2474
  }
2472
- function Dt(p) {
2473
- return new $(p);
2475
+ function Dt(d) {
2476
+ return new $(d);
2474
2477
  }
2475
- function we(p) {
2476
- return p;
2478
+ function we(d) {
2479
+ return d;
2477
2480
  }
2478
2481
  class Gt extends x {
2479
2482
  constructor(t = {}) {
@@ -2495,12 +2498,12 @@ class Gt extends x {
2495
2498
  });
2496
2499
  }
2497
2500
  }
2498
- const Rt = "<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>";
2501
+ const Ft = "<svg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19' fill='none'><path d='M8.99999 15.8542C9.79613 16.5667 10.8475 17 12 17C14.4853 17 16.5 14.9853 16.5 12.5C16.5 10.4248 15.0953 8.67769 13.1849 8.15763M4.81513 8.15762C2.9047 8.67768 1.5 10.4248 1.5 12.5C1.5 14.9853 3.51472 17 6 17C8.48528 17 10.5 14.9853 10.5 12.5C10.5 11.9146 10.3882 11.3554 10.1849 10.8424M13.5 6.5C13.5 8.98528 11.4853 11 9 11C6.51472 11 4.5 8.98528 4.5 6.5C4.5 4.01472 6.51472 2 9 2C11.4853 2 13.5 4.01472 13.5 6.5Z' stroke='#667085' stroke-linecap='round' stroke-linejoin='round'/></svg>";
2499
2502
  class O extends Gt {
2500
2503
  constructor(t) {
2501
2504
  super({
2502
2505
  ...t,
2503
- icon: t.icon || Rt,
2506
+ icon: t.icon || Ft,
2504
2507
  title: t.title || "Color",
2505
2508
  default: t.default ? O.normalizeColorValue(t.default) : "#000000"
2506
2509
  }), this.inputType = "color", this.element = null, this.colorInputEl = null, this.textInputEl = null, this.detectChange = t.detectChange;
@@ -2542,12 +2545,12 @@ class O extends Gt {
2542
2545
  if (t.className = "color-setting-wrapper " + (this.props.wrapperClassName || ""), this.props.title || this.props.icon) {
2543
2546
  const m = document.createElement("div");
2544
2547
  if (m.className = "icon-container", this.props.icon) {
2545
- const g = document.createElement("span");
2546
- g.className = "input-icon", g.innerHTML = this.props.icon, m.appendChild(g);
2548
+ const u = document.createElement("span");
2549
+ u.className = "input-icon", u.innerHTML = this.props.icon, m.appendChild(u);
2547
2550
  }
2548
2551
  if (this.props.title) {
2549
- const g = document.createElement("span");
2550
- g.className = "input-label", g.textContent = this.props.title, m.appendChild(g);
2552
+ const u = document.createElement("span");
2553
+ u.className = "input-label", u.textContent = this.props.title, m.appendChild(u);
2551
2554
  }
2552
2555
  t.appendChild(m);
2553
2556
  }
@@ -2567,24 +2570,24 @@ class O extends Gt {
2567
2570
  try {
2568
2571
  if (console.log("ColorSetting: renderGlobalOptions called"), a.innerHTML = "", !x) {
2569
2572
  console.error("ColorSetting: Setting class is undefined");
2570
- const g = document.createElement("div");
2571
- g.textContent = "Error: System error (Setting undefined)", a.appendChild(g);
2573
+ const u = document.createElement("div");
2574
+ u.textContent = "Error: System error (Setting undefined)", a.appendChild(u);
2572
2575
  return;
2573
2576
  }
2574
2577
  const m = x.GlobalVariables || {};
2575
2578
  if (console.log("ColorSetting: GlobalVariables:", m), !m || Object.keys(m).length === 0) {
2576
- const g = document.createElement("div");
2577
- g.textContent = "No global colors defined", g.style.gridColumn = "1 / -1", g.style.fontSize = "12px", g.style.color = "#666", a.appendChild(g);
2579
+ const u = document.createElement("div");
2580
+ u.textContent = "No global colors defined", u.style.gridColumn = "1 / -1", u.style.fontSize = "12px", u.style.color = "#666", a.appendChild(u);
2578
2581
  return;
2579
2582
  }
2580
- Object.entries(m).forEach(([g, v]) => {
2583
+ Object.entries(m).forEach(([u, v]) => {
2581
2584
  const C = document.createElement("button");
2582
- C.className = "global-color-btn", C.title = g, C.style.width = "30px", C.style.height = "30px", C.style.borderRadius = "50%", C.style.border = "1px solid #ddd", C.style.backgroundColor = v, C.style.cursor = "pointer", this.value === `var(--${g})` && (C.style.border = "2px solid #2196f3"), C.addEventListener("click", (y) => {
2585
+ C.className = "global-color-btn", C.title = u, C.style.width = "30px", C.style.height = "30px", C.style.borderRadius = "50%", C.style.border = "1px solid #ddd", C.style.backgroundColor = v, C.style.cursor = "pointer", this.value === `var(--${u})` && (C.style.border = "2px solid #2196f3"), C.addEventListener("click", (y) => {
2583
2586
  var L, I;
2584
2587
  y.preventDefault();
2585
- const E = `var(--${g})`;
2586
- this.value = E, (L = this.onChange) == null || L.call(this, E), (I = this.detectChange) == null || I.call(this, E), Array.from(a.children).forEach((b) => {
2587
- b.style.border = "1px solid #ddd";
2588
+ const b = `var(--${u})`;
2589
+ this.value = b, (L = this.onChange) == null || L.call(this, b), (I = this.detectChange) == null || I.call(this, b), Array.from(a.children).forEach((E) => {
2590
+ E.style.border = "1px solid #ddd";
2588
2591
  }), C.style.border = "2px solid #2196f3", h.style.backgroundColor = v;
2589
2592
  }), a.appendChild(C);
2590
2593
  });
@@ -2598,51 +2601,51 @@ class O extends Gt {
2598
2601
  m.preventDefault(), n.classList.add("active"), s.classList.remove("active"), o.style.display = "none", a.style.display = "grid", l();
2599
2602
  }), this.value && this.value.startsWith("var(--") ? n.click() : s.click();
2600
2603
  const r = (m) => {
2601
- const g = m.value.trim();
2602
- if (!g)
2604
+ const u = m.value.trim();
2605
+ if (!u)
2603
2606
  return e.classList.remove("error"), !0;
2604
- const C = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(g);
2607
+ const C = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(u);
2605
2608
  return C ? e.classList.remove("error") : e.classList.add("error"), C;
2606
2609
  }, c = document.createElement("input");
2607
2610
  c.type = "color", c.className = "color-picker", c.value = this.value && !this.value.startsWith("var(--") ? this.value : "#000000", c.setAttribute("aria-label", "Choose color"), c.setAttribute("title", "Click to open color picker"), this.getDataPropsPath() && c.setAttribute("data-test-id", this.getDataPropsPath()), this.colorInputEl = c;
2608
2611
  const h = document.createElement("div");
2609
2612
  h.className = "color-preview";
2610
- let d = this.value || "#000000";
2611
- if (d.startsWith("var(--")) {
2612
- const m = d.replace("var(--", "").replace(")", "");
2613
- d = (x.GlobalVariables || {})[m] || "#000000";
2613
+ let p = this.value || "#000000";
2614
+ if (p.startsWith("var(--")) {
2615
+ const m = p.replace("var(--", "").replace(")", "");
2616
+ p = (x.GlobalVariables || {})[m] || "#000000";
2614
2617
  }
2615
- h.style.backgroundColor = d;
2616
- const u = document.createElement("input");
2617
- u.type = "text", u.className = "color-text-input", u.value = this.value || "", u.placeholder = "#000000", u.setAttribute("pattern", "#[0-9A-Fa-f]{6}"), u.setAttribute("title", "Enter a hex color value (e.g., #ff0000)"), u.setAttribute("aria-label", "Hex color value"), u.setAttribute("maxlength", "7"), this.getDataPropsPath() && u.setAttribute("data-test-id", `${this.getDataPropsPath()}_text`), this.textInputEl = u;
2618
+ h.style.backgroundColor = p;
2619
+ const g = document.createElement("input");
2620
+ g.type = "text", g.className = "color-text-input", g.value = this.value || "", g.placeholder = "#000000", g.setAttribute("pattern", "#[0-9A-Fa-f]{6}"), g.setAttribute("title", "Enter a hex color value (e.g., #ff0000)"), g.setAttribute("aria-label", "Hex color value"), g.setAttribute("maxlength", "7"), this.getDataPropsPath() && g.setAttribute("data-test-id", `${this.getDataPropsPath()}_text`), this.textInputEl = g;
2618
2621
  const f = (m) => {
2619
2622
  var v, C;
2620
- let g = m.trim();
2621
- if (g && !g.startsWith("#") && !g.startsWith("var(") && /^[0-9A-Fa-f]{3}$|^[0-9A-Fa-f]{6}$/.test(g) && (g = "#" + g, this.textInputEl && (this.textInputEl.value = g)), this.textInputEl && r(this.textInputEl)) {
2622
- const y = O.normalizeColorValue(g);
2623
+ let u = m.trim();
2624
+ if (u && !u.startsWith("#") && !u.startsWith("var(") && /^[0-9A-Fa-f]{3}$|^[0-9A-Fa-f]{6}$/.test(u) && (u = "#" + u, this.textInputEl && (this.textInputEl.value = u)), this.textInputEl && r(this.textInputEl)) {
2625
+ const y = O.normalizeColorValue(u);
2623
2626
  this.value = y, (v = this.onChange) == null || v.call(this, y), (C = this.detectChange) == null || C.call(this, y), this.colorInputEl && (this.colorInputEl.value = y), h.style.backgroundColor = y;
2624
2627
  }
2625
2628
  };
2626
2629
  return this.textInputEl.addEventListener("input", (m) => {
2627
- const g = m.target.value;
2628
- f(g);
2630
+ const u = m.target.value;
2631
+ f(u);
2629
2632
  }), this.textInputEl.addEventListener("paste", (m) => {
2630
2633
  var v;
2631
2634
  m.preventDefault();
2632
- const g = ((v = m.clipboardData) == null ? void 0 : v.getData("text")) || "";
2633
- this.textInputEl && (this.textInputEl.value = g.trim(), f(g));
2635
+ const u = ((v = m.clipboardData) == null ? void 0 : v.getData("text")) || "";
2636
+ this.textInputEl && (this.textInputEl.value = u.trim(), f(u));
2634
2637
  }), this.textInputEl.addEventListener("keydown", (m) => {
2635
- var g, v, C;
2636
- m.key === "Enter" && (m.preventDefault(), f(((g = this.textInputEl) == null ? void 0 : g.value) || ""), (v = this.textInputEl) == null || v.blur()), m.key === "Escape" && (this.textInputEl && this.value && (this.textInputEl.value = this.value), (C = this.textInputEl) == null || C.blur(), e.classList.remove("error"));
2638
+ var u, v, C;
2639
+ m.key === "Enter" && (m.preventDefault(), f(((u = this.textInputEl) == null ? void 0 : u.value) || ""), (v = this.textInputEl) == null || v.blur()), m.key === "Escape" && (this.textInputEl && this.value && (this.textInputEl.value = this.value), (C = this.textInputEl) == null || C.blur(), e.classList.remove("error"));
2637
2640
  }), this.colorInputEl.addEventListener("input", (m) => {
2638
2641
  var C, y;
2639
- const g = m.target.value, v = O.normalizeColorValue(g);
2642
+ const u = m.target.value, v = O.normalizeColorValue(u);
2640
2643
  this.value = v, (C = this.onChange) == null || C.call(this, v), (y = this.detectChange) == null || y.call(this, v), this.textInputEl && (this.textInputEl.value = v), h.style.backgroundColor = v, e.classList.remove("error");
2641
2644
  }), this.colorInputEl.addEventListener("change", (m) => {
2642
2645
  var C, y;
2643
- const g = m.target.value, v = O.normalizeColorValue(g);
2646
+ const u = m.target.value, v = O.normalizeColorValue(u);
2644
2647
  this.value = v, (C = this.onChange) == null || C.call(this, v), (y = this.detectChange) == null || y.call(this, v), this.textInputEl && (this.textInputEl.value = v), h.style.backgroundColor = v;
2645
- }), o.appendChild(c), o.appendChild(h), o.appendChild(u), e.appendChild(i), e.appendChild(o), e.appendChild(a), t.appendChild(e), this.element = t, t;
2648
+ }), o.appendChild(c), o.appendChild(h), o.appendChild(g), e.appendChild(i), e.appendChild(o), e.appendChild(a), t.appendChild(e), this.element = t, t;
2646
2649
  }
2647
2650
  getElement() {
2648
2651
  return this.element;
@@ -2660,20 +2663,20 @@ class O extends Gt {
2660
2663
  return this.isValidHex() ? this.hexToRgb(this.value) : "0, 0, 0";
2661
2664
  }
2662
2665
  }
2663
- const Ft = `
2666
+ const Rt = `
2664
2667
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
2665
2668
  <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"/>
2666
2669
  <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"/>
2667
2670
  <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"/>
2668
2671
  </svg>`;
2669
- class F extends x {
2672
+ class R extends x {
2670
2673
  constructor(t = {}) {
2671
2674
  super({
2672
2675
  ...t,
2673
- icon: t.icon || Ft,
2676
+ icon: t.icon || Rt,
2674
2677
  title: t.title || "Color & Opacity",
2675
2678
  default: t.default || "#000000FF"
2676
- }), 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 = F.normalizeHexWithOpacity(this.value));
2679
+ }), 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 = R.normalizeHexWithOpacity(this.value));
2677
2680
  }
2678
2681
  static normalizeHexWithOpacity(t) {
2679
2682
  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");
@@ -2691,7 +2694,7 @@ class F extends x {
2691
2694
  return `#${i}${n}`;
2692
2695
  }
2693
2696
  setValue(t) {
2694
- t === void 0 || t === "" ? this.value = "#000000FF" : this.value = F.normalizeHexWithOpacity(t), this.updateInputElements(), this.updateColorPreview(), this.onChange && this.onChange(this.value), this.detectChange && this.detectChange(this.value);
2697
+ t === void 0 || t === "" ? this.value = "#000000FF" : this.value = R.normalizeHexWithOpacity(t), this.updateInputElements(), this.updateColorPreview(), this.onChange && this.onChange(this.value), this.detectChange && this.detectChange(this.value);
2695
2698
  }
2696
2699
  updateInputElements() {
2697
2700
  this.value && (this.colorInputEl && (this.colorInputEl.value = this.getRgbColor()), this.textInputEl && (this.textInputEl.value = this.value), this.opacityInputEl && (this.opacityInputEl.value = this.getOpacityPercent().toString()));
@@ -2702,7 +2705,7 @@ class F extends x {
2702
2705
  this.colorPreviewEl.style.backgroundColor = `rgba(${s}, ${n}, ${o}, ${e})`;
2703
2706
  }
2704
2707
  handleColorChange(t) {
2705
- const e = this.getOpacityPercent(), i = F.combineColorOpacity(
2708
+ const e = this.getOpacityPercent(), i = R.combineColorOpacity(
2706
2709
  t,
2707
2710
  e
2708
2711
  );
@@ -2713,7 +2716,7 @@ class F extends x {
2713
2716
  return e || i ? (this.setValue(t), !0) : !1;
2714
2717
  }
2715
2718
  handleOpacityChange(t) {
2716
- const e = this.getRgbColor(), i = Math.max(0, Math.min(100, t)), s = F.combineColorOpacity(
2719
+ const e = this.getRgbColor(), i = Math.max(0, Math.min(100, t)), s = R.combineColorOpacity(
2717
2720
  e,
2718
2721
  i
2719
2722
  );
@@ -3423,12 +3426,44 @@ const Kt = `
3423
3426
  super(t), this.inputType = {
3424
3427
  imageUrl: "text",
3425
3428
  markers: "text"
3426
- }, this.mainButton = null, this.thumbnailEl = null, this.markerCountEl = null, this.popoverEl = null, this.backdropEl = null, this.imageElement = null, this.cursorTooltip = null, this.popoverPosition = null, this.isPopoverOpen = !1, this.confirmOverlayEl = null, this.confirmPromise = null, this.draggingMarkerId = null, this.history = [], this.historyIndex = -1, this.isUndoRedoOperation = !1, this.initialValue = null, this.props.maxMarkers = this.props.maxMarkers ?? 10, this.props.maxFileSizeMB = this.props.maxFileSizeMB ?? 5, this.props.markerSize = this.props.markerSize ?? 24, this.value || (this.value = { imageUrl: "", markers: [] }), this.onBackgroundClick = (e) => {
3429
+ }, this.mainButton = null, this.thumbnailEl = null, this.markerCountEl = null, this.popoverEl = null, this.backdropEl = null, this.imageElement = null, this.cursorTooltip = null, this.popoverPosition = null, this.isPopoverOpen = !1, this.confirmOverlayEl = null, this.confirmPromise = null, this.lastImageNaturalSize = null, this.draggingMarkerId = null, this.history = [], this.historyIndex = -1, this.isUndoRedoOperation = !1, this.initialValue = null, this.messageListener = null, this.props.maxMarkers = this.props.maxMarkers ?? 10, this.props.maxFileSizeMB = this.props.maxFileSizeMB ?? 5, this.props.markerSize = this.props.markerSize ?? 24, this.value || (this.value = { imageUrl: "", markers: [] }), this.setupMessageListener(), this.onBackgroundClick = (e) => {
3427
3430
  this.isPopoverOpen && this.popoverEl && !this.popoverEl.contains(e.target) && this.closePopover();
3428
3431
  }, this.handlePopoverKeydown = (e) => {
3429
3432
  this.isPopoverOpen && (e.key === "Escape" ? this.closePopover() : (e.ctrlKey || e.metaKey) && (e.key === "z" || e.key === "Z" ? e.shiftKey ? (e.preventDefault(), this.redo()) : (e.preventDefault(), this.undo()) : (e.key === "y" || e.key === "Y") && (e.preventDefault(), this.redo())));
3430
3433
  }, this.boundHandleMarkerDrag = this.handleMarkerDrag.bind(this), this.boundStopDragging = this.stopDragging.bind(this);
3431
3434
  }
3435
+ setupMessageListener() {
3436
+ this.messageListener = (t) => {
3437
+ if (t.data && t.data.type === "FILE_MANAGER_IMAGE_SELECTED" && t.data.settingId === this.id) {
3438
+ const e = t.data.imageUrl;
3439
+ if (e && typeof e == "string") {
3440
+ const i = this.lastImageNaturalSize, s = new Image();
3441
+ s.onload = () => {
3442
+ var a;
3443
+ const n = {
3444
+ width: s.naturalWidth || 0,
3445
+ height: s.naturalHeight || 0
3446
+ }, o = this.scaleMarkersForNewImage(
3447
+ ((a = this.value) == null ? void 0 : a.markers) || [],
3448
+ i,
3449
+ n
3450
+ );
3451
+ this.value = {
3452
+ imageUrl: e,
3453
+ markers: o
3454
+ }, this.lastImageNaturalSize = n, this.history = [
3455
+ JSON.parse(JSON.stringify(o))
3456
+ ], this.historyIndex = 0, this.updateUndoRedoButtons(), this.updateButtonDisplay(), this.refreshPopoverContent(), this.triggerChange();
3457
+ }, s.onerror = () => {
3458
+ this.showError("Failed to load image from file manager.");
3459
+ }, s.src = e;
3460
+ }
3461
+ }
3462
+ }, window.addEventListener("message", this.messageListener);
3463
+ }
3464
+ cleanupMessageListener() {
3465
+ this.messageListener && (window.removeEventListener("message", this.messageListener), this.messageListener = null);
3466
+ }
3432
3467
  draw() {
3433
3468
  const t = document.createElement("div");
3434
3469
  if (t.className = "image-map-setting-wrapper", this.props.title || this.props.icon) {
@@ -3468,7 +3503,11 @@ const Kt = `
3468
3503
  s.className = "image-map-content", this.popoverEl.appendChild(s), document.body.appendChild(this.backdropEl), document.body.appendChild(this.popoverEl);
3469
3504
  }
3470
3505
  openPopover() {
3471
- B.openInstance && B.openInstance !== this && B.openInstance.closePopover(), this.isPopoverOpen = !0, B.openInstance = this, this.value ? this.initialValue = JSON.parse(JSON.stringify(this.value)) : this.initialValue = { imageUrl: "", markers: [] }, this.value && (this.history = [JSON.parse(JSON.stringify(this.value.markers))], this.historyIndex = 0), this.backdropEl && (this.backdropEl.style.display = "block"), this.popoverEl && (this.popoverEl.style.display = "flex"), this.positionPopover(), this.refreshPopoverContent(), setTimeout(() => {
3506
+ B.openInstance && B.openInstance !== this && B.openInstance.closePopover(), this.isPopoverOpen = !0, B.openInstance = this, this.value ? this.initialValue = JSON.parse(
3507
+ JSON.stringify(this.value)
3508
+ ) : this.initialValue = { imageUrl: "", markers: [] }, this.value && (this.history = [
3509
+ JSON.parse(JSON.stringify(this.value.markers))
3510
+ ], this.historyIndex = 0), this.backdropEl && (this.backdropEl.style.display = "block"), this.popoverEl && (this.popoverEl.style.display = "flex"), this.positionPopover(), this.refreshPopoverContent(), setTimeout(() => {
3472
3511
  document.addEventListener("click", this.onBackgroundClick, !0);
3473
3512
  }, 200), document.addEventListener("keydown", this.handlePopoverKeydown, !0);
3474
3513
  }
@@ -3488,7 +3527,9 @@ const Kt = `
3488
3527
  "You haven't placed all markers. Closing will discard your changes."
3489
3528
  ))
3490
3529
  return;
3491
- this.initialValue && (this.value = JSON.parse(JSON.stringify(this.initialValue)), this.updateButtonDisplay(), this.triggerChange());
3530
+ this.initialValue && (this.value = JSON.parse(
3531
+ JSON.stringify(this.initialValue)
3532
+ ), this.updateButtonDisplay(), this.triggerChange());
3492
3533
  }
3493
3534
  this.isPopoverOpen = !1, this.draggingMarkerId = null, this.backdropEl && (this.backdropEl.style.display = "none"), this.popoverEl && (this.popoverEl.style.display = "none"), document.removeEventListener("click", this.onBackgroundClick, !0), document.removeEventListener("keydown", this.handlePopoverKeydown, !0), B.openInstance === this && (B.openInstance = null);
3494
3535
  }
@@ -3502,9 +3543,13 @@ const Kt = `
3502
3543
  }
3503
3544
  refreshPopoverContent() {
3504
3545
  if (!this.popoverEl) return;
3505
- const t = this.popoverEl.querySelector(".image-map-content");
3546
+ const t = this.popoverEl.querySelector(
3547
+ ".image-map-content"
3548
+ );
3506
3549
  if (!t) return;
3507
- const e = t.querySelector(".image-map-container"), i = (e == null ? void 0 : e.scrollTop) || 0;
3550
+ const e = t.querySelector(
3551
+ ".image-map-container"
3552
+ ), i = (e == null ? void 0 : e.scrollTop) || 0;
3508
3553
  if (t.innerHTML = "", this.value && this.value.imageUrl && this.value.imageUrl !== "") {
3509
3554
  const n = document.createElement("div");
3510
3555
  n.className = "image-map-main-layout";
@@ -3512,7 +3557,9 @@ const Kt = `
3512
3557
  o.className = "image-map-image-section", this.renderImageMapSection(o);
3513
3558
  const a = document.createElement("div");
3514
3559
  a.className = "image-map-sidebar", this.renderSidebar(a), n.appendChild(o), n.appendChild(a), t.appendChild(n), requestAnimationFrame(() => {
3515
- const l = o.querySelector(".image-map-container");
3560
+ const l = o.querySelector(
3561
+ ".image-map-container"
3562
+ );
3516
3563
  l && (l.scrollTop = i);
3517
3564
  });
3518
3565
  } else
@@ -3521,19 +3568,21 @@ const Kt = `
3521
3568
  renderUploadSection(t) {
3522
3569
  const e = document.createElement("div");
3523
3570
  e.className = "upload-section";
3524
- const i = document.createElement("label");
3525
- i.className = "upload-label", i.innerHTML = `
3571
+ const i = document.createElement("button");
3572
+ i.type = "button", i.className = "upload-label", i.innerHTML = `
3526
3573
  <div class="upload-placeholder">
3527
3574
  ${Kt}
3528
3575
  <span>Click to upload image</span>
3529
3576
  </div>
3530
- `;
3531
- const s = document.createElement("input");
3532
- s.type = "file", s.accept = "image/*", s.style.display = "none", s.addEventListener("change", (n) => {
3533
- var a;
3534
- const o = (a = n.target.files) == null ? void 0 : a[0];
3535
- o && this.handleImageUpload(o);
3536
- }), i.appendChild(s), e.appendChild(i), t.appendChild(e);
3577
+ `, i.addEventListener("click", () => {
3578
+ window.postMessage(
3579
+ {
3580
+ type: "OPEN_FILE_MANAGER_MODAL",
3581
+ settingId: this.id
3582
+ },
3583
+ "*"
3584
+ );
3585
+ }), e.appendChild(i), t.appendChild(e);
3537
3586
  }
3538
3587
  renderImageMapSection(t) {
3539
3588
  const e = document.createElement("div");
@@ -3544,25 +3593,40 @@ const Kt = `
3544
3593
  s.type = "button", s.className = "undo-btn action-btn", s.innerHTML = te, s.title = "Undo (Ctrl+Z)", s.disabled = !this.canUndo(), s.addEventListener("click", () => this.undo()), i.appendChild(s);
3545
3594
  const n = document.createElement("button");
3546
3595
  n.type = "button", n.className = "redo-btn action-btn", n.innerHTML = ee, n.title = "Redo (Ctrl+Y)", n.disabled = !this.canRedo(), n.addEventListener("click", () => this.redo()), i.appendChild(n), e.appendChild(i);
3547
- const o = document.createElement("div");
3548
- o.className = "replace-wrapper";
3549
- const a = document.createElement("input");
3550
- a.type = "file", a.accept = "image/*", a.style.display = "none", a.addEventListener("change", (d) => {
3551
- var f;
3552
- const u = (f = d.target.files) == null ? void 0 : f[0];
3553
- u && this.handleImageUpload(u), a.value = "";
3554
- });
3555
- const l = document.createElement("button");
3556
- l.type = "button", l.className = "replace-btn", l.textContent = "Replace Image", l.addEventListener("click", () => a.click()), o.appendChild(l), o.appendChild(a), e.appendChild(o);
3557
- const r = document.createElement("button");
3558
- r.type = "button", r.className = "clear-all-btn", r.textContent = "Clear All Markers", r.addEventListener("click", () => this.handleClearAllMarkers()), e.appendChild(r), t.appendChild(e);
3559
- const c = document.createElement("div");
3560
- c.className = "image-map-container";
3561
- const h = document.createElement("div");
3562
- h.className = "image-map-wrapper", h.addEventListener("mousemove", this.boundHandleMarkerDrag), h.addEventListener("mouseup", this.boundStopDragging), h.addEventListener("mouseleave", this.boundStopDragging), this.imageElement = document.createElement("img"), this.imageElement.className = "image-map-image", this.imageElement.src = this.value.imageUrl, this.imageElement.addEventListener("click", (d) => this.handleImageClick(d)), h.appendChild(this.imageElement), this.cursorTooltip = document.createElement("div"), this.cursorTooltip.className = "marker-cursor-tooltip", h.appendChild(this.cursorTooltip), this.imageElement.addEventListener("mouseenter", () => this.showCursorTooltip()), this.imageElement.addEventListener("mouseleave", () => this.hideCursorTooltip()), this.imageElement.addEventListener("mousemove", (d) => this.updateCursorTooltip(d)), this.value && this.value.markers && this.value.markers.forEach((d) => {
3563
- const u = this.createMarkerElement(d);
3564
- h.appendChild(u);
3565
- }), c.appendChild(h), t.appendChild(c);
3596
+ const o = document.createElement("button");
3597
+ o.type = "button", o.className = "replace-btn", o.textContent = "Replace Image", o.addEventListener("click", () => {
3598
+ window.postMessage(
3599
+ {
3600
+ type: "OPEN_FILE_MANAGER_MODAL",
3601
+ settingId: this.id
3602
+ },
3603
+ "*"
3604
+ );
3605
+ }), e.appendChild(o);
3606
+ const a = document.createElement("button");
3607
+ a.type = "button", a.className = "clear-all-btn", a.textContent = "Clear All Markers", a.addEventListener("click", () => this.handleClearAllMarkers()), e.appendChild(a), t.appendChild(e);
3608
+ const l = document.createElement("div");
3609
+ l.className = "image-map-container";
3610
+ const r = document.createElement("div");
3611
+ r.className = "image-map-wrapper", r.addEventListener("mousemove", this.boundHandleMarkerDrag), r.addEventListener("mouseup", this.boundStopDragging), r.addEventListener("mouseleave", this.boundStopDragging), this.imageElement = document.createElement("img"), this.imageElement.className = "image-map-image", this.imageElement.src = this.value.imageUrl, this.imageElement.addEventListener(
3612
+ "load",
3613
+ () => this.recordImageNaturalSize()
3614
+ ), this.imageElement.addEventListener(
3615
+ "click",
3616
+ (c) => this.handleImageClick(c)
3617
+ ), r.appendChild(this.imageElement), this.cursorTooltip = document.createElement("div"), this.cursorTooltip.className = "marker-cursor-tooltip", r.appendChild(this.cursorTooltip), this.imageElement.addEventListener(
3618
+ "mouseenter",
3619
+ () => this.showCursorTooltip()
3620
+ ), this.imageElement.addEventListener(
3621
+ "mouseleave",
3622
+ () => this.hideCursorTooltip()
3623
+ ), this.imageElement.addEventListener(
3624
+ "mousemove",
3625
+ (c) => this.updateCursorTooltip(c)
3626
+ ), this.value && this.value.markers && this.value.markers.forEach((c) => {
3627
+ const h = this.createMarkerElement(c);
3628
+ r.appendChild(h);
3629
+ }), l.appendChild(r), t.appendChild(l);
3566
3630
  }
3567
3631
  renderSidebar(t) {
3568
3632
  var c, h;
@@ -3573,20 +3637,20 @@ const Kt = `
3573
3637
  const o = document.createElement("div");
3574
3638
  o.className = "prize-list";
3575
3639
  const a = ((h = this.value) == null ? void 0 : h.markers) || [], l = /* @__PURE__ */ new Map();
3576
- a.forEach((d) => l.set(d.index, d));
3577
- for (let d = 1; d <= i; d++) {
3578
- const u = l.get(d), f = !!u, m = (u == null ? void 0 : u.prizeName) || this.props.prizeMap && this.props.prizeMap[d - 1] || `Prize #${d}`, g = document.createElement("div");
3579
- g.className = `prize-item ${f ? "placed" : "missing"}`;
3640
+ a.forEach((p) => l.set(p.index, p));
3641
+ for (let p = 1; p <= i; p++) {
3642
+ const g = l.get(p), f = !!g, m = (g == null ? void 0 : g.prizeName) || this.props.prizeMap && this.props.prizeMap[p - 1] || `Prize #${p}`, u = document.createElement("div");
3643
+ u.className = `prize-item ${f ? "placed" : "missing"}`;
3580
3644
  const v = document.createElement("div");
3581
- v.className = "prize-index", v.textContent = String(d);
3645
+ v.className = "prize-index", v.textContent = String(p);
3582
3646
  const C = document.createElement("div");
3583
3647
  C.className = "prize-label";
3584
3648
  const y = document.createElement("div");
3585
- y.className = "prize-title", y.textContent = `Prize #${d}`;
3586
- const E = document.createElement("div");
3587
- E.className = "prize-subtitle", E.textContent = f ? m : "Not Placed", C.appendChild(y), C.appendChild(E);
3649
+ y.className = "prize-title", y.textContent = `Prize #${p}`;
3650
+ const b = document.createElement("div");
3651
+ b.className = "prize-subtitle", b.textContent = f ? m : "Not Placed", C.appendChild(y), C.appendChild(b);
3588
3652
  const L = document.createElement("div");
3589
- L.className = `prize-status ${f ? "placed" : "missing"}`, L.innerHTML = f ? ie : se, g.appendChild(v), g.appendChild(C), g.appendChild(L), o.appendChild(g);
3653
+ L.className = `prize-status ${f ? "placed" : "missing"}`, L.innerHTML = f ? ie : se, u.appendChild(v), u.appendChild(C), u.appendChild(L), o.appendChild(u);
3590
3654
  }
3591
3655
  t.appendChild(o);
3592
3656
  const r = document.createElement("button");
@@ -3611,33 +3675,63 @@ const Kt = `
3611
3675
  }), e;
3612
3676
  }
3613
3677
  handleImageUpload(t) {
3614
- if (!["image/jpeg", "image/jpg", "image/png", "image/gif", "image/webp"].includes(t.type)) {
3615
- this.showError("Invalid file type. Please upload a JPEG, PNG, GIF, or WebP image.");
3678
+ const e = this.lastImageNaturalSize;
3679
+ if (![
3680
+ "image/jpeg",
3681
+ "image/jpg",
3682
+ "image/png",
3683
+ "image/gif",
3684
+ "image/webp"
3685
+ ].includes(t.type)) {
3686
+ this.showError(
3687
+ "Invalid file type. Please upload a JPEG, PNG, GIF, or WebP image."
3688
+ );
3616
3689
  return;
3617
3690
  }
3618
- const i = (this.props.maxFileSizeMB || 5) * 1024 * 1024;
3619
- if (t.size > i) {
3620
- const n = (t.size / 1048576).toFixed(1);
3621
- this.showError(`File size (${n}MB) exceeds ${this.props.maxFileSizeMB}MB limit.`);
3691
+ const s = (this.props.maxFileSizeMB || 5) * 1024 * 1024;
3692
+ if (t.size > s) {
3693
+ const o = (t.size / 1048576).toFixed(1);
3694
+ this.showError(
3695
+ `File size (${o}MB) exceeds ${this.props.maxFileSizeMB}MB limit.`
3696
+ );
3622
3697
  return;
3623
3698
  }
3624
- const s = new FileReader();
3625
- s.onload = (n) => {
3626
- var a;
3627
- const o = (a = n.target) == null ? void 0 : a.result;
3628
- typeof o == "string" && (this.value = {
3629
- imageUrl: o,
3630
- markers: []
3631
- // Clear markers on new upload
3632
- }, this.history = [[]], this.historyIndex = 0, this.updateUndoRedoButtons(), this.updateButtonDisplay(), this.refreshPopoverContent(), this.triggerChange());
3633
- }, s.onerror = () => {
3699
+ const n = new FileReader();
3700
+ n.onload = (o) => {
3701
+ var l;
3702
+ const a = (l = o.target) == null ? void 0 : l.result;
3703
+ if (typeof a == "string") {
3704
+ const r = new Image();
3705
+ r.onload = () => {
3706
+ var p;
3707
+ const c = {
3708
+ width: r.naturalWidth || 0,
3709
+ height: r.naturalHeight || 0
3710
+ }, h = this.scaleMarkersForNewImage(
3711
+ ((p = this.value) == null ? void 0 : p.markers) || [],
3712
+ e,
3713
+ c
3714
+ );
3715
+ this.value = {
3716
+ imageUrl: a,
3717
+ markers: h
3718
+ }, this.lastImageNaturalSize = c, this.history = [
3719
+ JSON.parse(JSON.stringify(h))
3720
+ ], this.historyIndex = 0, this.updateUndoRedoButtons(), this.updateButtonDisplay(), this.refreshPopoverContent(), this.triggerChange();
3721
+ }, r.onerror = () => {
3722
+ this.showError("Failed to read image file.");
3723
+ }, r.src = a;
3724
+ }
3725
+ }, n.onerror = () => {
3634
3726
  this.showError("Failed to read image file.");
3635
- }, s.readAsDataURL(t);
3727
+ }, n.readAsDataURL(t);
3636
3728
  }
3637
3729
  handleImageClick(t) {
3638
3730
  if (this.draggingMarkerId !== null || !this.value || !this.imageElement) return;
3639
3731
  if (this.value.markers.length >= (this.props.maxMarkers || 10)) {
3640
- this.showError(`Maximum of ${this.props.maxMarkers || 10} markers allowed.`);
3732
+ this.showError(
3733
+ `Maximum of ${this.props.maxMarkers || 10} markers allowed.`
3734
+ );
3641
3735
  return;
3642
3736
  }
3643
3737
  const e = this.imageElement.getBoundingClientRect(), i = (t.clientX - e.left) / e.width * 100, s = (t.clientY - e.top) / e.height * 100, n = this.value.markers.map((c) => c.index).sort((c, h) => c - h);
@@ -3660,7 +3754,8 @@ const Kt = `
3660
3754
  }
3661
3755
  handleMarkerDrag(t) {
3662
3756
  var r;
3663
- if (this.draggingMarkerId === null || !this.imageElement || !this.value) return;
3757
+ if (this.draggingMarkerId === null || !this.imageElement || !this.value)
3758
+ return;
3664
3759
  const e = this.imageElement.getBoundingClientRect(), i = (t.clientX - e.left) / e.width * 100, s = (t.clientY - e.top) / e.height * 100, n = Math.min(100, Math.max(0, i)), o = Math.min(100, Math.max(0, s)), a = this.value.markers.map(
3665
3760
  (c) => c.id === this.draggingMarkerId ? { ...c, x: n, y: o } : c
3666
3761
  ), l = (r = this.popoverEl) == null ? void 0 : r.querySelector(
@@ -3717,7 +3812,9 @@ const Kt = `
3717
3812
  }
3718
3813
  saveState() {
3719
3814
  if (this.isUndoRedoOperation || !this.value) return;
3720
- const t = JSON.parse(JSON.stringify(this.value.markers));
3815
+ const t = JSON.parse(
3816
+ JSON.stringify(this.value.markers)
3817
+ );
3721
3818
  if (this.historyIndex >= 0 && this.history.length > 0) {
3722
3819
  const e = this.history[this.historyIndex];
3723
3820
  if (JSON.stringify(e) === JSON.stringify(t))
@@ -3749,7 +3846,11 @@ const Kt = `
3749
3846
  }
3750
3847
  updateUndoRedoButtons() {
3751
3848
  if (!this.popoverEl) return;
3752
- const t = this.popoverEl.querySelector(".undo-btn"), e = this.popoverEl.querySelector(".redo-btn");
3849
+ const t = this.popoverEl.querySelector(
3850
+ ".undo-btn"
3851
+ ), e = this.popoverEl.querySelector(
3852
+ ".redo-btn"
3853
+ );
3753
3854
  t && (t.disabled = !this.canUndo()), e && (e.disabled = !this.canRedo());
3754
3855
  }
3755
3856
  showError(t) {
@@ -3805,6 +3906,25 @@ const Kt = `
3805
3906
  markers: e
3806
3907
  };
3807
3908
  }
3909
+ scaleMarkersForNewImage(t, e, i) {
3910
+ if (!t.length) return [];
3911
+ const s = e && e.width && e.height && e || i && i.width && i.height && i || null;
3912
+ return t.map((n) => {
3913
+ const o = { ...n };
3914
+ return s && o.x > 100 && (o.x = o.x / s.width * 100), s && o.y > 100 && (o.y = o.y / s.height * 100), o.x = this.clampPercentage(o.x), o.y = this.clampPercentage(o.y), o;
3915
+ });
3916
+ }
3917
+ clampPercentage(t) {
3918
+ return Number.isFinite(t) ? Math.max(0, Math.min(100, t)) : 0;
3919
+ }
3920
+ recordImageNaturalSize() {
3921
+ if (!this.imageElement) return;
3922
+ const { naturalWidth: t, naturalHeight: e } = this.imageElement;
3923
+ t && e && (this.lastImageNaturalSize = {
3924
+ width: t,
3925
+ height: e
3926
+ });
3927
+ }
3808
3928
  showConfirmModal(t, e) {
3809
3929
  return this.confirmPromise ? this.confirmPromise : (this.confirmPromise = new Promise((i) => {
3810
3930
  this.confirmOverlayEl && (this.confirmOverlayEl.remove(), this.confirmOverlayEl = null);
@@ -3822,11 +3942,11 @@ const Kt = `
3822
3942
  r.type = "button", r.className = "confirm-btn ghost", r.textContent = "Cancel";
3823
3943
  const c = document.createElement("button");
3824
3944
  c.type = "button", c.className = "confirm-btn danger", c.textContent = "Discard";
3825
- const h = (d) => {
3826
- s.remove(), this.confirmOverlayEl = null, this.confirmPromise = null, i(d);
3945
+ const h = (p) => {
3946
+ s.remove(), this.confirmOverlayEl = null, this.confirmPromise = null, i(p);
3827
3947
  };
3828
- r.addEventListener("click", () => h(!1)), c.addEventListener("click", () => h(!0)), s.addEventListener("click", (d) => {
3829
- d.target === s && h(!1);
3948
+ r.addEventListener("click", () => h(!1)), c.addEventListener("click", () => h(!0)), s.addEventListener("click", (p) => {
3949
+ p.target === s && h(!1);
3830
3950
  }), l.appendChild(r), l.appendChild(c), n.appendChild(o), n.appendChild(a), n.appendChild(l), s.appendChild(n), document.body.appendChild(s), setTimeout(() => {
3831
3951
  n.classList.add("visible");
3832
3952
  }, 10);
@@ -3837,7 +3957,7 @@ const Kt = `
3837
3957
  }
3838
3958
  destroy() {
3839
3959
  var t, e;
3840
- this.closePopover(), (t = this.backdropEl) != null && t.parentElement && this.backdropEl.parentElement.removeChild(this.backdropEl), (e = this.popoverEl) != null && e.parentElement && this.popoverEl.parentElement.removeChild(this.popoverEl), document.removeEventListener("click", this.onBackgroundClick, !0), document.removeEventListener("keydown", this.handlePopoverKeydown, !0);
3960
+ this.closePopover(), (t = this.backdropEl) != null && t.parentElement && this.backdropEl.parentElement.removeChild(this.backdropEl), (e = this.popoverEl) != null && e.parentElement && this.popoverEl.parentElement.removeChild(this.popoverEl), document.removeEventListener("click", this.onBackgroundClick, !0), document.removeEventListener("keydown", this.handlePopoverKeydown, !0), this.cleanupMessageListener();
3841
3961
  }
3842
3962
  };
3843
3963
  B.openInstance = null;
@@ -4179,11 +4299,13 @@ class Ve extends H {
4179
4299
  }
4180
4300
  class Te extends x {
4181
4301
  constructor(t) {
4182
- super(t), this.inputType = {}, this.container = null, this.defaultLanguage = "", this.uploadSettings = /* @__PURE__ */ new Map(), this.popup = null, t.default ? this.value = { ...t.default } : this.value || (this.value = {}), this.defaultLanguage = t.languages.includes(x.DefaultLanguage) ? x.DefaultLanguage : t.languages[0];
4183
- const e = t.defaultValue || `Enter text in ${this.capitalizeFirstLetter(this.defaultLanguage)}`;
4184
- t.languages.forEach((i) => {
4185
- var s, n;
4186
- i in (this.value || {}) || (this.value || (this.value = {}), i === this.defaultLanguage && e ? this.value[i] = ((s = t.default) == null ? void 0 : s[i]) || e : this.value[i] = ((n = t.default) == null ? void 0 : n[i]) || "");
4302
+ super(t), this.inputType = {}, this.container = null, this.defaultLanguage = "", this.uploadSettings = /* @__PURE__ */ new Map(), this.popup = null, t.default ? this.value = { ...t.default } : this.value || (this.value = {});
4303
+ const e = x.HasExplicitCurrentLanguage(), i = e ? x.CurrentLanguage() : "", s = x.DefaultLanguage;
4304
+ this.defaultLanguage = e && i && t.languages.includes(i) ? i : s && t.languages.includes(s) ? s : t.languages[0];
4305
+ const n = t.defaultValue || `Enter text in ${this.capitalizeFirstLetter(this.defaultLanguage)}`;
4306
+ t.languages.forEach((o) => {
4307
+ var a, l;
4308
+ o in (this.value || {}) || (this.value || (this.value = {}), o === this.defaultLanguage && n ? this.value[o] = ((a = t.default) == null ? void 0 : a[o]) || n : this.value[o] = ((l = t.default) == null ? void 0 : l[o]) || "");
4187
4309
  });
4188
4310
  }
4189
4311
  capitalizeFirstLetter(t) {
@@ -4210,12 +4332,12 @@ class Te extends x {
4210
4332
  return;
4211
4333
  }
4212
4334
  const c = "...";
4213
- let h = 0, d = e.length, u = 0;
4214
- for (; h <= d; ) {
4215
- const m = Math.floor((h + d) / 2), g = e.slice(0, m).trimEnd() + c;
4216
- this.measureTextWidth(g, i) <= l ? (u = m, h = m + 1) : d = m - 1;
4335
+ let h = 0, p = e.length, g = 0;
4336
+ for (; h <= p; ) {
4337
+ const m = Math.floor((h + p) / 2), u = e.slice(0, m).trimEnd() + c;
4338
+ this.measureTextWidth(u, i) <= l ? (g = m, h = m + 1) : p = m - 1;
4217
4339
  }
4218
- const f = e.slice(0, u).trimEnd() + c;
4340
+ const f = e.slice(0, g).trimEnd() + c;
4219
4341
  t.placeholder = f;
4220
4342
  }
4221
4343
  autosizeTextarea(t, e = 3) {
@@ -4283,28 +4405,28 @@ class Te extends x {
4283
4405
  });
4284
4406
  }
4285
4407
  renderContent(t) {
4286
- var s;
4408
+ var n;
4287
4409
  const e = t.querySelector(
4288
4410
  ".simple-multi-language-content"
4289
4411
  );
4290
4412
  if (!e) return;
4291
4413
  e.innerHTML = "";
4292
- const i = x.CurrentLanguage();
4293
- if (!i || !this.props.languages.includes(i))
4294
- this.props.languages.forEach((n) => {
4295
- var l;
4296
- const o = ((l = this.value) == null ? void 0 : l[n]) || "", a = this.createTextareaRow(n, o);
4297
- e.appendChild(a);
4414
+ const i = x.HasExplicitCurrentLanguage(), s = x.CurrentLanguage();
4415
+ if (!i || !s || !this.props.languages.includes(s))
4416
+ this.props.languages.forEach((o) => {
4417
+ var r;
4418
+ const a = ((r = this.value) == null ? void 0 : r[o]) || "", l = this.createTextareaRow(o, a);
4419
+ e.appendChild(l);
4298
4420
  });
4299
4421
  else {
4300
- const n = ((s = this.value) == null ? void 0 : s[i]) || "", o = this.createTextareaRow(i, n);
4301
- e.appendChild(o);
4302
- const a = e.querySelector(
4422
+ const o = ((n = this.value) == null ? void 0 : n[s]) || "", a = this.createTextareaRow(s, o);
4423
+ e.appendChild(a);
4424
+ const l = e.querySelector(
4303
4425
  ".simple-language-textarea"
4304
4426
  );
4305
- if (a) {
4306
- const l = a.getAttribute("data-full-placeholder") || "";
4307
- l && this.adaptPlaceholderToSingleLine(a, l);
4427
+ if (l) {
4428
+ const r = l.getAttribute("data-full-placeholder") || "";
4429
+ r && this.adaptPlaceholderToSingleLine(l, r);
4308
4430
  }
4309
4431
  }
4310
4432
  }
@@ -4320,7 +4442,7 @@ class Te extends x {
4320
4442
  display: flex;
4321
4443
  align-items: center;
4322
4444
  justify-content: center;
4323
- z-index: 9999;
4445
+ z-index: 1;
4324
4446
  `;
4325
4447
  const e = document.createElement("div");
4326
4448
  e.classList.add("multi-language-popup"), e.style.cssText = `
@@ -4378,22 +4500,22 @@ class Te extends x {
4378
4500
  }
4379
4501
  draw() {
4380
4502
  const t = document.createElement("div");
4381
- if (t.classList.add("simple-multi-language-wrapper"), this.props.title) {
4382
- const s = document.createElement("div");
4383
- s.classList.add("simple-multi-language-title"), s.style.cssText = `
4503
+ t.classList.add("simple-multi-language-wrapper");
4504
+ const e = document.createElement("div");
4505
+ e.classList.add("simple-multi-language-title"), e.style.cssText = `
4384
4506
  display: flex;
4385
4507
  justify-content: space-between;
4386
4508
  align-items: center;
4387
4509
  `;
4388
- const n = document.createElement("span");
4389
- n.textContent = this.props.title;
4390
- const o = document.createElement("button");
4391
- o.classList.add("multi-language-eye-icon"), o.innerHTML = `
4510
+ const i = document.createElement("span");
4511
+ i.textContent = this.props.title ?? "";
4512
+ const s = document.createElement("button");
4513
+ s.classList.add("multi-language-eye-icon"), s.innerHTML = `
4392
4514
  <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
4393
4515
  <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path>
4394
4516
  <circle cx="12" cy="12" r="3"></circle>
4395
4517
  </svg>
4396
- `, o.style.cssText = `
4518
+ `, s.style.cssText = `
4397
4519
  background: none;
4398
4520
  border: none;
4399
4521
  cursor: pointer;
@@ -4403,28 +4525,27 @@ class Te extends x {
4403
4525
  justify-content: center;
4404
4526
  color: #666;
4405
4527
  transition: color 0.2s;
4406
- `, o.addEventListener("mouseenter", () => {
4407
- o.style.color = "#000";
4408
- }), o.addEventListener("mouseleave", () => {
4409
- o.style.color = "#666";
4410
- }), o.addEventListener("click", (a) => {
4411
- a.preventDefault(), this.showPopup();
4412
- }), s.appendChild(n), s.appendChild(o), t.appendChild(s);
4413
- }
4414
- const e = document.createElement("div");
4415
- e.classList.add("simple-multi-language-content"), t.appendChild(e), this.container = t, this.renderContent(t), this.languageChangeUnsubscribe = x.onLanguageChange(() => {
4416
- this.container && this.renderContent(this.container);
4528
+ `, s.addEventListener("mouseenter", () => {
4529
+ s.style.color = "#000";
4530
+ }), s.addEventListener("mouseleave", () => {
4531
+ s.style.color = "#666";
4532
+ }), s.addEventListener("click", (a) => {
4533
+ a.preventDefault(), this.showPopup();
4534
+ }), e.appendChild(i), e.appendChild(s), t.appendChild(e);
4535
+ const n = document.createElement("div");
4536
+ n.classList.add("simple-multi-language-content"), t.appendChild(n), this.container = t, this.renderContent(t), this.languageChangeUnsubscribe = x.onLanguageChange((a) => {
4537
+ a && this.props.languages.includes(a) && (this.defaultLanguage = a), this.container && this.renderContent(this.container);
4417
4538
  });
4418
- const i = () => {
4539
+ const o = () => {
4419
4540
  if (!this.container) return;
4420
4541
  this.container.querySelectorAll(
4421
4542
  ".simple-language-textarea"
4422
- ).forEach((n) => {
4423
- const o = n.getAttribute("data-full-placeholder") || "";
4424
- o && this.adaptPlaceholderToSingleLine(n, o);
4543
+ ).forEach((l) => {
4544
+ const r = l.getAttribute("data-full-placeholder") || "";
4545
+ r && this.adaptPlaceholderToSingleLine(l, r);
4425
4546
  });
4426
4547
  };
4427
- return window.addEventListener("resize", i), t;
4548
+ return window.addEventListener("resize", o), t;
4428
4549
  }
4429
4550
  setValue(t) {
4430
4551
  super.setValue(t), this.container && this.props.languages.forEach((e) => {
@@ -4687,7 +4808,7 @@ class He extends $ {
4687
4808
  }),
4688
4809
  marginLeft: new _({
4689
4810
  title: "Left",
4690
- icon: be,
4811
+ icon: Ee,
4691
4812
  suffix: "px",
4692
4813
  default: (t == null ? void 0 : t.marginLeft) ?? 0
4693
4814
  })
@@ -4710,7 +4831,7 @@ const fe = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewB
4710
4831
  <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"/>
4711
4832
  </svg>`, ye = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
4712
4833
  <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"/>
4713
- </svg>`, be = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
4834
+ </svg>`, Ee = `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19" fill="none">
4714
4835
  <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"/>
4715
4836
  </svg>`;
4716
4837
  class Be extends $ {
@@ -4726,7 +4847,7 @@ class Be extends $ {
4726
4847
  opacity: new Ut({
4727
4848
  default: (t == null ? void 0 : t.opacity) ?? 100
4728
4849
  }),
4729
- backgroundColor: new F({
4850
+ backgroundColor: new R({
4730
4851
  default: (t == null ? void 0 : t.backgroundColor) ?? "0, 0, 30"
4731
4852
  })
4732
4853
  }
@@ -4781,7 +4902,7 @@ export {
4781
4902
  Oe as BorderSettingSet,
4782
4903
  Le as ButtonSetting,
4783
4904
  O as ColorSetting,
4784
- F as ColorWithOpacitySetting,
4905
+ R as ColorWithOpacitySetting,
4785
4906
  ke as DimensionSetting,
4786
4907
  Ie as GapSetting,
4787
4908
  j as GradientSetting,
@@ -4808,7 +4929,7 @@ export {
4808
4929
  ae as WidthSetting,
4809
4930
  we as asSettingGroupWithSettings,
4810
4931
  Dt as createSettingGroup,
4811
- Ee as createTabSettingGroup,
4932
+ be as createTabSettingGroup,
4812
4933
  G as isSetting,
4813
4934
  ct as isSettingChild,
4814
4935
  k as isSettingGroup,