@contember/echo 0.0.31 → 0.0.32

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.
package/dist/echo.es.js CHANGED
@@ -1,6 +1,6 @@
1
- import { sharedConfig as L, createRoot as Ue, createRenderEffect as b, untrack as Ye, getOwner as De, createEffect as Y, runWithOwner as lt, createMemo as k, createSignal as A, onCleanup as te, $PROXY as R, $TRACK as Fe, getListener as $e, batch as ct, onMount as pe, createContext as dt, createComponent as f, useContext as ut, For as _, Show as D, mergeProps as ge, Switch as ht, Match as ne } from "solid-js";
2
- import ft from "html2canvas";
3
- const gt = [
1
+ import { sharedConfig as L, createRoot as Ue, createRenderEffect as b, untrack as Ye, getOwner as De, createEffect as ee, runWithOwner as lt, createMemo as k, createSignal as A, onCleanup as te, $PROXY as Y, $TRACK as Fe, getListener as $e, batch as ct, onMount as ye, createContext as dt, createComponent as g, useContext as ut, For as W, Show as D, mergeProps as ae, Switch as ht, Match as ne } from "solid-js";
2
+ import gt from "html2canvas";
3
+ const ft = [
4
4
  "allowfullscreen",
5
5
  "async",
6
6
  "autofocus",
@@ -34,7 +34,7 @@ const gt = [
34
34
  "isMap",
35
35
  "noModule",
36
36
  "playsInline",
37
- ...gt
37
+ ...ft
38
38
  ]), vt = /* @__PURE__ */ new Set([
39
39
  "innerHTML",
40
40
  "textContent",
@@ -68,11 +68,11 @@ const gt = [
68
68
  TEXTAREA: 1
69
69
  }
70
70
  });
71
- function yt(e, n) {
71
+ function pt(e, n) {
72
72
  const t = wt[e];
73
73
  return typeof t == "object" ? t[n] ? t.$ : void 0 : t;
74
74
  }
75
- const pt = /* @__PURE__ */ new Set([
75
+ const yt = /* @__PURE__ */ new Set([
76
76
  "beforeinput",
77
77
  "click",
78
78
  "dblclick",
@@ -106,29 +106,29 @@ function xt(e, n, t) {
106
106
  for (; n[a - 1] === t[o - 1]; )
107
107
  a--, o--;
108
108
  if (a === i) {
109
- const d = o < r ? l ? t[l - 1].nextSibling : t[o - l] : s;
110
- for (; l < o; ) e.insertBefore(t[l++], d);
109
+ const u = o < r ? l ? t[l - 1].nextSibling : t[o - l] : s;
110
+ for (; l < o; ) e.insertBefore(t[l++], u);
111
111
  } else if (o === l)
112
112
  for (; i < a; )
113
113
  (!c || !c.has(n[i])) && n[i].remove(), i++;
114
114
  else if (n[i] === t[o - 1] && t[l] === n[a - 1]) {
115
- const d = n[--a].nextSibling;
116
- e.insertBefore(t[l++], n[i++].nextSibling), e.insertBefore(t[--o], d), n[a] = t[o];
115
+ const u = n[--a].nextSibling;
116
+ e.insertBefore(t[l++], n[i++].nextSibling), e.insertBefore(t[--o], u), n[a] = t[o];
117
117
  } else {
118
118
  if (!c) {
119
119
  c = /* @__PURE__ */ new Map();
120
120
  let h = l;
121
121
  for (; h < o; ) c.set(t[h], h++);
122
122
  }
123
- const d = c.get(n[i]);
124
- if (d != null)
125
- if (l < d && d < o) {
126
- let h = i, g = 1, m;
127
- for (; ++h < a && h < o && !((m = c.get(n[h])) == null || m !== d + g); )
128
- g++;
129
- if (g > d - l) {
130
- const y = n[i];
131
- for (; l < d; ) e.insertBefore(t[l++], y);
123
+ const u = c.get(n[i]);
124
+ if (u != null)
125
+ if (l < u && u < o) {
126
+ let h = i, f = 1, m;
127
+ for (; ++h < a && h < o && !((m = c.get(n[h])) == null || m !== u + f); )
128
+ f++;
129
+ if (f > u - l) {
130
+ const p = n[i];
131
+ for (; l < u; ) e.insertBefore(t[l++], p);
132
132
  } else e.replaceChild(t[l++], n[i++]);
133
133
  } else i++;
134
134
  else n[i++].remove();
@@ -159,14 +159,14 @@ function T(e, n = window.document) {
159
159
  t.has(o) || (t.add(o), n.addEventListener(o, zt));
160
160
  }
161
161
  }
162
- function u(e, n, t) {
163
- ce(e) || (t == null ? e.removeAttribute(n) : e.setAttribute(n, t));
162
+ function d(e, n, t) {
163
+ de(e) || (t == null ? e.removeAttribute(n) : e.setAttribute(n, t));
164
164
  }
165
165
  function St(e, n, t) {
166
- ce(e) || (t ? e.setAttribute(n, "") : e.removeAttribute(n));
166
+ de(e) || (t ? e.setAttribute(n, "") : e.removeAttribute(n));
167
167
  }
168
168
  function Re(e, n) {
169
- ce(e) || (n == null ? e.removeAttribute("class") : e.className = n);
169
+ de(e) || (n == null ? e.removeAttribute("class") : e.className = n);
170
170
  }
171
171
  function U(e, n, t, r) {
172
172
  if (r)
@@ -190,7 +190,7 @@ function Ct(e, n, t = {}) {
190
190
  return t;
191
191
  }
192
192
  function F(e, n, t) {
193
- if (!n) return t ? u(e, "style") : n;
193
+ if (!n) return t ? d(e, "style") : n;
194
194
  const r = e.style;
195
195
  if (typeof n == "string") return r.cssText = n;
196
196
  typeof t == "string" && (r.cssText = t = void 0), t || (t = {}), n || (n = {});
@@ -204,15 +204,15 @@ function F(e, n, t) {
204
204
  function $t(e, n = {}, t, r) {
205
205
  const a = {};
206
206
  return b(
207
- () => a.children = ae(e, n.children, a.children)
207
+ () => a.children = ie(e, n.children, a.children)
208
208
  ), b(() => typeof n.ref == "function" && V(n.ref, e)), b(() => Et(e, n, t, !0, a, !0)), a;
209
209
  }
210
210
  function V(e, n, t) {
211
211
  return Ye(() => e(n, t));
212
212
  }
213
213
  function v(e, n, t, r) {
214
- if (t !== void 0 && !r && (r = []), typeof n != "function") return ae(e, n, r, t);
215
- b((a) => ae(e, n(), a, t), r);
214
+ if (t !== void 0 && !r && (r = []), typeof n != "function") return ie(e, n, r, t);
215
+ b((a) => ie(e, n(), a, t), r);
216
216
  }
217
217
  function Et(e, n, t, r, a = {}, o = !1) {
218
218
  n || (n = {});
@@ -228,7 +228,7 @@ function Et(e, n, t, r, a = {}, o = !1) {
228
228
  a[i] = Ne(e, i, l, a[i], t, o, n);
229
229
  }
230
230
  }
231
- function ce(e) {
231
+ function de(e) {
232
232
  return !!L.context && !L.done && (!e || e.isConnected);
233
233
  }
234
234
  function Pt(e) {
@@ -240,36 +240,36 @@ function je(e, n, t) {
240
240
  e.classList.toggle(r[a], t);
241
241
  }
242
242
  function Ne(e, n, t, r, a, o, i) {
243
- let l, s, c, d, h;
243
+ let l, s, c, u, h;
244
244
  if (n === "style") return F(e, t, r);
245
245
  if (n === "classList") return Ct(e, t, r);
246
246
  if (t === r) return r;
247
247
  if (n === "ref")
248
248
  o || t(e);
249
249
  else if (n.slice(0, 3) === "on:") {
250
- const g = n.slice(3);
251
- r && e.removeEventListener(g, r, typeof r != "function" && r), t && e.addEventListener(g, t, typeof t != "function" && t);
250
+ const f = n.slice(3);
251
+ r && e.removeEventListener(f, r, typeof r != "function" && r), t && e.addEventListener(f, t, typeof t != "function" && t);
252
252
  } else if (n.slice(0, 10) === "oncapture:") {
253
- const g = n.slice(10);
254
- r && e.removeEventListener(g, r, !0), t && e.addEventListener(g, t, !0);
253
+ const f = n.slice(10);
254
+ r && e.removeEventListener(f, r, !0), t && e.addEventListener(f, t, !0);
255
255
  } else if (n.slice(0, 2) === "on") {
256
- const g = n.slice(2).toLowerCase(), m = pt.has(g);
256
+ const f = n.slice(2).toLowerCase(), m = yt.has(f);
257
257
  if (!m && r) {
258
- const y = Array.isArray(r) ? r[0] : r;
259
- e.removeEventListener(g, y);
258
+ const p = Array.isArray(r) ? r[0] : r;
259
+ e.removeEventListener(f, p);
260
260
  }
261
- (m || t) && (U(e, g, t, m), m && T([g]));
261
+ (m || t) && (U(e, f, t, m), m && T([f]));
262
262
  } else if (n.slice(0, 5) === "attr:")
263
- u(e, n.slice(5), t);
263
+ d(e, n.slice(5), t);
264
264
  else if (n.slice(0, 5) === "bool:")
265
265
  St(e, n.slice(5), t);
266
- else if ((h = n.slice(0, 5) === "prop:") || (c = vt.has(n)) || (d = yt(n, e.tagName)) || (s = mt.has(n)) || (l = e.nodeName.includes("-") || "is" in i)) {
266
+ else if ((h = n.slice(0, 5) === "prop:") || (c = vt.has(n)) || (u = pt(n, e.tagName)) || (s = mt.has(n)) || (l = e.nodeName.includes("-") || "is" in i)) {
267
267
  if (h)
268
268
  n = n.slice(5), s = !0;
269
- else if (ce(e)) return t;
270
- n === "class" || n === "className" ? Re(e, t) : l && !s && !c ? e[Pt(n)] = t : e[d || n] = t;
269
+ else if (de(e)) return t;
270
+ n === "class" || n === "className" ? Re(e, t) : l && !s && !c ? e[Pt(n)] = t : e[u || n] = t;
271
271
  } else
272
- u(e, bt[n] || n, t);
272
+ d(e, bt[n] || n, t);
273
273
  return t;
274
274
  }
275
275
  function zt(e) {
@@ -308,14 +308,14 @@ function zt(e) {
308
308
  } else l();
309
309
  o(r);
310
310
  }
311
- function ae(e, n, t, r, a) {
312
- const o = ce(e);
311
+ function ie(e, n, t, r, a) {
312
+ const o = de(e);
313
313
  if (o) {
314
314
  !t && (t = [...e.childNodes]);
315
315
  let s = [];
316
316
  for (let c = 0; c < t.length; c++) {
317
- const d = t[c];
318
- d.nodeType === 8 && d.data.slice(0, 2) === "!$" ? d.remove() : s.push(d);
317
+ const u = t[c];
318
+ u.nodeType === 8 && u.data.slice(0, 2) === "!$" ? u.remove() : s.push(u);
319
319
  }
320
320
  t = s;
321
321
  }
@@ -327,41 +327,41 @@ function ae(e, n, t, r, a) {
327
327
  return t;
328
328
  if (l) {
329
329
  let s = t[0];
330
- s && s.nodeType === 3 ? s.data !== n && (s.data = n) : s = document.createTextNode(n), t = X(e, t, r, s);
330
+ s && s.nodeType === 3 ? s.data !== n && (s.data = n) : s = document.createTextNode(n), t = G(e, t, r, s);
331
331
  } else
332
332
  t !== "" && typeof t == "string" ? t = e.firstChild.data = n : t = e.textContent = n;
333
333
  } else if (n == null || i === "boolean") {
334
334
  if (o) return t;
335
- t = X(e, t, r);
335
+ t = G(e, t, r);
336
336
  } else {
337
337
  if (i === "function")
338
338
  return b(() => {
339
339
  let s = n();
340
340
  for (; typeof s == "function"; ) s = s();
341
- t = ae(e, s, t, r);
341
+ t = ie(e, s, t, r);
342
342
  }), () => t;
343
343
  if (Array.isArray(n)) {
344
344
  const s = [], c = t && Array.isArray(t);
345
345
  if (Ee(s, n, t, a))
346
- return b(() => t = ae(e, s, t, r, !0)), () => t;
346
+ return b(() => t = ie(e, s, t, r, !0)), () => t;
347
347
  if (o) {
348
348
  if (!s.length) return t;
349
349
  if (r === void 0) return t = [...e.childNodes];
350
- let d = s[0];
351
- if (d.parentNode !== e) return t;
352
- const h = [d];
353
- for (; (d = d.nextSibling) !== r; ) h.push(d);
350
+ let u = s[0];
351
+ if (u.parentNode !== e) return t;
352
+ const h = [u];
353
+ for (; (u = u.nextSibling) !== r; ) h.push(u);
354
354
  return t = h;
355
355
  }
356
356
  if (s.length === 0) {
357
- if (t = X(e, t, r), l) return t;
358
- } else c ? t.length === 0 ? qe(e, s, r) : xt(e, t, s) : (t && X(e), qe(e, s));
357
+ if (t = G(e, t, r), l) return t;
358
+ } else c ? t.length === 0 ? qe(e, s, r) : xt(e, t, s) : (t && G(e), qe(e, s));
359
359
  t = s;
360
360
  } else if (n.nodeType) {
361
361
  if (o && n.parentNode) return t = l ? [n] : n;
362
362
  if (Array.isArray(t)) {
363
- if (l) return t = X(e, t, r, n);
364
- X(e, t, null, n);
363
+ if (l) return t = G(e, t, r, n);
364
+ G(e, t, null, n);
365
365
  } else t == null || t === "" || !e.firstChild ? e.appendChild(n) : e.replaceChild(n, e.firstChild);
366
366
  t = n;
367
367
  }
@@ -387,8 +387,8 @@ function Ee(e, n, t, r) {
387
387
  } else
388
388
  e.push(l), a = !0;
389
389
  else {
390
- const d = String(l);
391
- s && s.nodeType === 3 && s.data === d ? e.push(s) : e.push(document.createTextNode(d));
390
+ const u = String(l);
391
+ s && s.nodeType === 3 && s.data === u ? e.push(s) : e.push(document.createTextNode(u));
392
392
  }
393
393
  }
394
394
  return a;
@@ -396,7 +396,7 @@ function Ee(e, n, t, r) {
396
396
  function qe(e, n, t = null) {
397
397
  for (let r = 0, a = n.length; r < a; r++) e.insertBefore(n[r], t);
398
398
  }
399
- function X(e, n, t, r) {
399
+ function G(e, n, t, r) {
400
400
  if (t === void 0) return e.textContent = "";
401
401
  const a = r || document.createTextNode("");
402
402
  if (n.length) {
@@ -418,13 +418,13 @@ function It(e, n = !1) {
418
418
  function Ot(e) {
419
419
  const { useShadow: n } = e, t = document.createTextNode(""), r = () => e.mount || document.body, a = De();
420
420
  let o, i = !!L.context;
421
- return Y(
421
+ return ee(
422
422
  () => {
423
423
  i && (De().user = i = !1), o || (o = lt(a, () => k(() => e.children)));
424
424
  const l = r();
425
425
  if (l instanceof HTMLHeadElement) {
426
- const [s, c] = A(!1), d = () => c(!0);
427
- Ue((h) => v(l, () => s() ? h() : o(), null)), te(d);
426
+ const [s, c] = A(!1), u = () => c(!0);
427
+ Ue((h) => v(l, () => s() ? h() : o(), null)), te(u);
428
428
  } else {
429
429
  const s = It(e.isSVG ? "g" : "div", e.isSVG), c = n && s.attachShadow ? s.attachShadow({
430
430
  mode: "open"
@@ -485,20 +485,20 @@ const Mt = 5e3, At = (e) => {
485
485
  return (...r) => {
486
486
  clearTimeout(t), t = window.setTimeout(() => e(...r), n);
487
487
  };
488
- }, Ft = "echo_", K = "echo-pages", Ge = (e) => {
488
+ }, Ft = "echo_", R = "echo-pages", Ge = (e) => {
489
489
  if (!e || e === "/") return "/";
490
490
  const n = e.split("/");
491
491
  return n.length <= 4 ? e : `/${n[1]}/.../${n[n.length - 1]}`;
492
492
  }, Xe = () => {
493
493
  window.dispatchEvent(new Event("echo-storage-change"));
494
- }, Je = (e) => `${Ft}${e}`, G = (e, n) => {
494
+ }, Je = (e) => `${Ft}${e}`, K = (e, n) => {
495
495
  try {
496
496
  const t = localStorage.getItem(Je(e));
497
497
  return t ? JSON.parse(t) : n;
498
498
  } catch {
499
499
  return n;
500
500
  }
501
- }, ie = (e, n) => {
501
+ }, se = (e, n) => {
502
502
  try {
503
503
  localStorage.setItem(Je(e), JSON.stringify(n));
504
504
  } catch (t) {
@@ -513,41 +513,41 @@ const Mt = 5e3, At = (e) => {
513
513
  const t = {
514
514
  message: n.feedback.message,
515
515
  customInputValues: n.feedback.customInputValues
516
- }, r = G(K, {}), a = Ge(e);
516
+ }, r = K(R, {}), a = Ge(e);
517
517
  (t || n.drawing.shapes.length > 0) && (r[a] = {
518
518
  ...r[a] || {},
519
519
  ...t ? { feedback: t } : {},
520
520
  drawing: {
521
521
  shapes: n.drawing.shapes
522
522
  }
523
- }), ie(K, r), Xe();
523
+ }), se(R, r), Xe();
524
524
  } catch (t) {
525
525
  console.warn("Failed to save page state:", t);
526
526
  }
527
527
  }, Te = (e) => {
528
528
  try {
529
- return G(K, {})[e];
529
+ return K(R, {})[e];
530
530
  } catch (n) {
531
531
  console.error("Failed to load page state:", n);
532
532
  return;
533
533
  }
534
534
  }, Ze = (e) => {
535
535
  try {
536
- const n = G(K, {});
537
- delete n[e], ie(K, n), Xe();
536
+ const n = K(R, {});
537
+ delete n[e], se(R, n), Xe();
538
538
  } catch (n) {
539
539
  console.error("Failed to clear page state:", n);
540
540
  }
541
541
  }, Qe = () => {
542
542
  try {
543
- const e = G(K, {});
543
+ const e = K(R, {});
544
544
  return Object.keys(e).length;
545
545
  } catch (e) {
546
546
  return console.error("Failed to get stored pages count:", e), 0;
547
547
  }
548
548
  }, ke = () => {
549
549
  try {
550
- const e = G(K, {});
550
+ const e = K(R, {});
551
551
  return Object.entries(e).map(([n, t]) => ({
552
552
  path: Ge(n),
553
553
  state: t
@@ -557,10 +557,10 @@ const Mt = 5e3, At = (e) => {
557
557
  }
558
558
  }, jt = (e) => Dt((n, t, r = !1) => {
559
559
  (!r || t.feedback.message.trim().length > 0 || t.drawing.shapes.length > 0) && (Lt(n, t), e.setState({ pagesCount: Qe() }));
560
- }, 1e3), ze = Symbol("store-raw"), Z = Symbol("store-node"), j = Symbol("store-has"), et = Symbol("store-self");
560
+ }, 1e3), ze = Symbol("store-raw"), J = Symbol("store-node"), j = Symbol("store-has"), et = Symbol("store-self");
561
561
  function tt(e) {
562
- let n = e[R];
563
- if (!n && (Object.defineProperty(e, R, {
562
+ let n = e[Y];
563
+ if (!n && (Object.defineProperty(e, Y, {
564
564
  value: n = new Proxy(e, Vt)
565
565
  }), !Array.isArray(e))) {
566
566
  const t = Object.keys(e), r = Object.getOwnPropertyDescriptors(e);
@@ -576,21 +576,21 @@ function tt(e) {
576
576
  }
577
577
  function me(e) {
578
578
  let n;
579
- return e != null && typeof e == "object" && (e[R] || !(n = Object.getPrototypeOf(e)) || n === Object.prototype || Array.isArray(e));
579
+ return e != null && typeof e == "object" && (e[Y] || !(n = Object.getPrototypeOf(e)) || n === Object.prototype || Array.isArray(e));
580
580
  }
581
- function se(e, n = /* @__PURE__ */ new Set()) {
581
+ function le(e, n = /* @__PURE__ */ new Set()) {
582
582
  let t, r, a, o;
583
583
  if (t = e != null && e[ze]) return t;
584
584
  if (!me(e) || n.has(e)) return e;
585
585
  if (Array.isArray(e)) {
586
586
  Object.isFrozen(e) ? e = e.slice(0) : n.add(e);
587
587
  for (let i = 0, l = e.length; i < l; i++)
588
- a = e[i], (r = se(a, n)) !== a && (e[i] = r);
588
+ a = e[i], (r = le(a, n)) !== a && (e[i] = r);
589
589
  } else {
590
590
  Object.isFrozen(e) ? e = Object.assign({}, e) : n.add(e);
591
591
  const i = Object.keys(e), l = Object.getOwnPropertyDescriptors(e);
592
592
  for (let s = 0, c = i.length; s < c; s++)
593
- o = i[s], !l[o].get && (a = e[o], (r = se(a, n)) !== a && (e[o] = r));
593
+ o = i[s], !l[o].get && (a = e[o], (r = le(a, n)) !== a && (e[o] = r));
594
594
  }
595
595
  return e;
596
596
  }
@@ -600,7 +600,7 @@ function ve(e, n) {
600
600
  value: t = /* @__PURE__ */ Object.create(null)
601
601
  }), t;
602
602
  }
603
- function le(e, n, t) {
603
+ function ce(e, n, t) {
604
604
  if (e[n]) return e[n];
605
605
  const [r, a] = A(t, {
606
606
  equals: !1,
@@ -610,10 +610,10 @@ function le(e, n, t) {
610
610
  }
611
611
  function Nt(e, n) {
612
612
  const t = Reflect.getOwnPropertyDescriptor(e, n);
613
- return !t || t.get || !t.configurable || n === R || n === Z || (delete t.value, delete t.writable, t.get = () => e[R][n]), t;
613
+ return !t || t.get || !t.configurable || n === Y || n === J || (delete t.value, delete t.writable, t.get = () => e[Y][n]), t;
614
614
  }
615
615
  function nt(e) {
616
- $e() && le(ve(e, Z), et)();
616
+ $e() && ce(ve(e, J), et)();
617
617
  }
618
618
  function qt(e) {
619
619
  return nt(e), Reflect.ownKeys(e);
@@ -621,20 +621,20 @@ function qt(e) {
621
621
  const Vt = {
622
622
  get(e, n, t) {
623
623
  if (n === ze) return e;
624
- if (n === R) return t;
624
+ if (n === Y) return t;
625
625
  if (n === Fe)
626
626
  return nt(e), t;
627
- const r = ve(e, Z), a = r[n];
627
+ const r = ve(e, J), a = r[n];
628
628
  let o = a ? a() : e[n];
629
- if (n === Z || n === j || n === "__proto__") return o;
629
+ if (n === J || n === j || n === "__proto__") return o;
630
630
  if (!a) {
631
631
  const i = Object.getOwnPropertyDescriptor(e, n);
632
- $e() && (typeof o != "function" || e.hasOwnProperty(n)) && !(i && i.get) && (o = le(r, n, o)());
632
+ $e() && (typeof o != "function" || e.hasOwnProperty(n)) && !(i && i.get) && (o = ce(r, n, o)());
633
633
  }
634
634
  return me(o) ? tt(o) : o;
635
635
  },
636
636
  has(e, n) {
637
- return n === ze || n === R || n === Fe || n === Z || n === j || n === "__proto__" ? !0 : ($e() && le(ve(e, j), n)(), n in e);
637
+ return n === ze || n === Y || n === Fe || n === J || n === j || n === "__proto__" ? !0 : ($e() && ce(ve(e, j), n)(), n in e);
638
638
  },
639
639
  set() {
640
640
  return !0;
@@ -649,10 +649,10 @@ function be(e, n, t, r = !1) {
649
649
  if (!r && e[n] === t) return;
650
650
  const a = e[n], o = e.length;
651
651
  t === void 0 ? (delete e[n], e[j] && e[j][n] && a !== void 0 && e[j][n].$()) : (e[n] = t, e[j] && e[j][n] && a === void 0 && e[j][n].$());
652
- let i = ve(e, Z), l;
653
- if ((l = le(i, n, a)) && l.$(() => t), Array.isArray(e) && e.length !== o) {
652
+ let i = ve(e, J), l;
653
+ if ((l = ce(i, n, a)) && l.$(() => t), Array.isArray(e) && e.length !== o) {
654
654
  for (let s = e.length; s < o; s++) (l = i[s]) && l.$();
655
- (l = le(i, "length", o)) && l.$(e.length);
655
+ (l = ce(i, "length", o)) && l.$(e.length);
656
656
  }
657
657
  (l = i[et]) && l.$();
658
658
  }
@@ -664,7 +664,7 @@ function rt(e, n) {
664
664
  }
665
665
  }
666
666
  function Bt(e, n) {
667
- if (typeof n == "function" && (n = n(e)), n = se(n), Array.isArray(n)) {
667
+ if (typeof n == "function" && (n = n(e)), n = le(n), Array.isArray(n)) {
668
668
  if (e === n) return;
669
669
  let t = 0, r = n.length;
670
670
  for (; t < r; t++) {
@@ -688,8 +688,8 @@ function oe(e, n, t = []) {
688
688
  r(e[s], s) && oe(e, [s].concat(n), t);
689
689
  return;
690
690
  } else if (l && i === "object") {
691
- const { from: s = 0, to: c = e.length - 1, by: d = 1 } = r;
692
- for (let h = s; h <= c; h += d)
691
+ const { from: s = 0, to: c = e.length - 1, by: u = 1 } = r;
692
+ for (let h = s; h <= c; h += u)
693
693
  oe(e, [h].concat(n), t);
694
694
  return;
695
695
  } else if (n.length > 1) {
@@ -699,10 +699,10 @@ function oe(e, n, t = []) {
699
699
  a = e[r], t = [r].concat(t);
700
700
  }
701
701
  let o = n[0];
702
- typeof o == "function" && (o = o(a, t), o === a) || r === void 0 && o == null || (o = se(o), r === void 0 || me(a) && me(o) && !Array.isArray(o) ? rt(a, o) : be(e, r, o));
702
+ typeof o == "function" && (o = o(a, t), o === a) || r === void 0 && o == null || (o = le(o), r === void 0 || me(a) && me(o) && !Array.isArray(o) ? rt(a, o) : be(e, r, o));
703
703
  }
704
704
  function Ie(...[e, n]) {
705
- const t = se(e || {}), r = Array.isArray(t), a = tt(t);
705
+ const t = le(e || {}), r = Array.isArray(t), a = tt(t);
706
706
  function o(...i) {
707
707
  ct(() => {
708
708
  r && i.length === 1 ? Bt(t, i[0]) : oe(t, i);
@@ -731,11 +731,11 @@ const B = {
731
731
  default: 1
732
732
  }
733
733
  }
734
- }, Wt = (e) => {
734
+ }, _t = (e) => {
735
735
  const n = e.replace("#", ""), t = Number.parseInt(n.slice(0, 2), 16) / 255, r = Number.parseInt(n.slice(2, 2), 16) / 255, a = Number.parseInt(n.slice(4, 2), 16) / 255;
736
736
  return 0.2126 * t + 0.7152 * r + 0.0722 * a;
737
- }, _t = (e) => Wt(e) < 0.5 ? "#FFFFFF" : "#000000";
738
- let N = [], O = null, Q = null, ee = null;
737
+ }, Wt = (e) => _t(e) < 0.5 ? "#FFFFFF" : "#000000";
738
+ let N = [], O = null, Z = null, Q = null;
739
739
  const Se = (e, n) => (...t) => {
740
740
  const r = (o) => {
741
741
  if (typeof o == "string") return o;
@@ -764,21 +764,21 @@ const Se = (e, n) => (...t) => {
764
764
  log: console.log,
765
765
  warn: console.warn,
766
766
  error: console.error
767
- }, Q = window.onerror, ee = window.onunhandledrejection, window.onerror = (e, n, t, r, a) => {
767
+ }, Z = window.onerror, Q = window.onunhandledrejection, window.onerror = (e, n, t, r, a) => {
768
768
  const o = (a == null ? void 0 : a.stack) || (a == null ? void 0 : a.message) || e;
769
769
  return N.push({
770
770
  type: "error",
771
771
  message: `Uncaught Error: ${o}
772
772
  Location: ${n}:${t}:${r}`,
773
773
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
774
- }), Q ? Q(e, n, t, r, a) : !1;
774
+ }), Z ? Z(e, n, t, r, a) : !1;
775
775
  }, window.onunhandledrejection = (e) => {
776
776
  const n = e.reason;
777
777
  N.push({
778
778
  type: "error",
779
779
  message: `Unhandled Promise Rejection: ${(n == null ? void 0 : n.stack) || (n == null ? void 0 : n.message) || n}`,
780
780
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
781
- }), ee && ee(e);
781
+ }), Q && Q(e);
782
782
  }, console.log = Se("log", O.log), console.warn = Se("warn", O.warn), console.error = Se("error", O.error), window.addEventListener("error", (e) => {
783
783
  const { message: n, filename: t, lineno: r, colno: a, error: o } = e, i = (o == null ? void 0 : o.stack) || (o == null ? void 0 : o.message) || n;
784
784
  N.push({
@@ -789,12 +789,12 @@ Location: ${t}:${r}:${a}`,
789
789
  });
790
790
  }));
791
791
  }, Ut = () => {
792
- O && (console.log = O.log, console.warn = O.warn, console.error = O.error, O = null), Q && (window.onerror = Q, Q = null), ee && (window.onunhandledrejection = ee, ee = null), window.removeEventListener("error", () => {
792
+ O && (console.log = O.log, console.warn = O.warn, console.error = O.error, O = null), Z && (window.onerror = Z, Z = null), Q && (window.onunhandledrejection = Q, Q = null), window.removeEventListener("error", () => {
793
793
  }), N = [];
794
794
  }, Yt = () => [...N], Rt = () => {
795
795
  var e;
796
796
  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || ((e = window.matchMedia) == null ? void 0 : e.call(window, "(max-width: 768px)").matches);
797
- }, he = (e, { useClientCoords: n = !1 } = {}) => {
797
+ }, ge = (e, { useClientCoords: n = !1 } = {}) => {
798
798
  const r = typeof TouchEvent < "u" && e instanceof TouchEvent ? e.touches[0] : null;
799
799
  return {
800
800
  x: r ? n ? r.clientX : r.pageX : n ? e.clientX : e.pageX,
@@ -812,43 +812,39 @@ Location: ${t}:${r}:${a}`,
812
812
  width: Math.abs(t.x - n.x),
813
813
  height: Math.abs(t.y - n.y)
814
814
  };
815
- }, Kt = (e) => e.length < 2 ? null : `M ${e[0].x} ${e[0].y} ${e.slice(1).map((n) => `L ${n.x} ${n.y}`).join(" ")}`, we = window.EventTarget.prototype.addEventListener, J = window.EventTarget.prototype.removeEventListener;
816
- let ye = !1;
817
- const Gt = (e, n, t, r) => {
815
+ }, Kt = (e) => e.length < 2 ? null : `M ${e[0].x} ${e[0].y} ${e.slice(1).map((n) => `L ${n.x} ${n.y}`).join(" ")}`, we = window.EventTarget.prototype.addEventListener, X = window.EventTarget.prototype.removeEventListener;
816
+ let pe = !1;
817
+ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
818
818
  we.call(e, n, t, r);
819
819
  }, Xt = (e, n, t, r) => {
820
- J.call(e, n, t, r);
821
- }, re = /* @__PURE__ */ new WeakMap(), Jt = (e) => {
822
- ye || (ye = !0, window.EventTarget.prototype.addEventListener = function(n, t, r) {
823
- if (!this || typeof this != "object")
820
+ X.call(e, n, t, r);
821
+ }, Jt = (e) => {
822
+ pe || (pe = !0, window.EventTarget.prototype.addEventListener = function(n, t, r) {
823
+ if (!t)
824
824
  return we.call(this, n, t, r);
825
825
  const a = Qt(t, e);
826
- re.has(this) || re.set(this, /* @__PURE__ */ new Map());
827
- const o = { listener: t }, i = re.get(this);
828
- i && i.set(t, o), we.call(this, n, a, r);
826
+ re.has(this) || re.set(this, /* @__PURE__ */ new Map()), re.get(this).set(t, a), we.call(this, n, a, r);
829
827
  }, window.EventTarget.prototype.removeEventListener = function(n, t, r) {
830
- if (!this || typeof this != "object")
831
- return J.call(this, n, t, r);
828
+ if (!t || typeof this != "object")
829
+ return X.call(this, n, t, r);
832
830
  const a = re.get(this);
833
- if (!a) {
834
- J.call(this, n, t, r);
835
- return;
836
- }
831
+ if (!a)
832
+ return X.call(this, n, t, r);
837
833
  const o = a.get(t);
838
- o ? (J.call(this, n, o.listener, r), a.delete(t), a.size === 0 && re.delete(this)) : J.call(this, n, t, r);
834
+ o ? (X.call(this, n, o, r), a.delete(t), a.size === 0 && re.delete(this)) : X.call(this, n, t, r);
839
835
  });
840
836
  }, Zt = () => {
841
- ye && (window.EventTarget.prototype.addEventListener = we, window.EventTarget.prototype.removeEventListener = J, ye = !1);
837
+ pe && (window.EventTarget.prototype.addEventListener = we, window.EventTarget.prototype.removeEventListener = X, pe = !1);
842
838
  }, M = (e) => {
843
839
  const { event: n, callback: t, onMount: r, onCleanup: a, useOriginal: o = !0 } = e;
844
- pe(() => {
840
+ ye(() => {
845
841
  r == null || r(), o ? Gt(window, n, t) : window.addEventListener(n, t);
846
842
  }), te(() => {
847
843
  a == null || a(), o ? Xt(window, n, t) : window.removeEventListener(n, t);
848
844
  });
849
845
  }, Oe = (e) => {
850
846
  const { target: n, options: t, callback: r, onMount: a, onCleanup: o } = e, i = new MutationObserver(r);
851
- pe(() => {
847
+ ye(() => {
852
848
  a == null || a(), i.observe(n, t);
853
849
  }), te(() => {
854
850
  o == null || o(), i.disconnect();
@@ -860,7 +856,7 @@ const Gt = (e, n, t, r) => {
860
856
  try {
861
857
  const n = document.createElement("style");
862
858
  document.head.appendChild(n), (e = n.sheet) == null || e.insertRule("body > div:last-child img { display: inline-block; }");
863
- const t = await ft(document.body, {
859
+ const t = await gt(document.body, {
864
860
  logging: !1,
865
861
  useCORS: !0,
866
862
  scale: window.devicePixelRatio,
@@ -891,7 +887,7 @@ const Gt = (e, n, t, r) => {
891
887
  throw new Error("Echo initialization failed: onSubmit must be a function");
892
888
  if (e.primaryColor && !/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(e.primaryColor))
893
889
  throw new Error("Echo initialization failed: primaryColor must be a valid hex color");
894
- }, Be = 5, We = (e, n) => B[e].getCursor(n), on = (e, n, t) => {
890
+ }, Be = 5, _e = (e, n) => B[e].getCursor(n), on = (e, n, t) => {
895
891
  var l, s;
896
892
  const [r, a] = Ie({
897
893
  isDrawing: !1,
@@ -907,13 +903,13 @@ const Gt = (e, n, t, r) => {
907
903
  dragStartPos: null,
908
904
  initialClickPos: null,
909
905
  dragOffset: null,
910
- cursor: We("rectangle", e.primaryColor)
911
- }), o = (c, d = !1) => {
906
+ cursor: _e("rectangle", e.primaryColor)
907
+ }), o = (c, u = !1) => {
912
908
  if (c.selectedTool || c.selectedColor) {
913
- const h = c.selectedTool || r.selectedTool, g = c.selectedColor || r.selectedColor;
914
- c.cursor = We(h, g);
909
+ const h = c.selectedTool || r.selectedTool, f = c.selectedColor || r.selectedColor;
910
+ c.cursor = _e(h, f);
915
911
  }
916
- a(c), t == null || t(c, d);
912
+ a(c), t == null || t(c, u);
917
913
  }, i = {
918
914
  startDrawing: (c) => {
919
915
  o({
@@ -947,27 +943,27 @@ const Gt = (e, n, t, r) => {
947
943
  if (!h.classList.contains("echo-drawing-layer-mask") && !h.classList.contains("echo-shape"))
948
944
  return;
949
945
  }
950
- const d = he(c);
946
+ const u = ge(c);
951
947
  if (c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
952
948
  const h = c.target.dataset.shapeId;
953
949
  if (h && r.selectedShapeId === h) {
954
- const g = r.shapes.find((m) => m.id === h);
955
- if (g) {
956
- i.startDrag(d), i.updateDragOffset(g, d);
950
+ const f = r.shapes.find((m) => m.id === h);
951
+ if (f) {
952
+ i.startDrag(u), i.updateDragOffset(f, u);
957
953
  return;
958
954
  }
959
955
  }
960
956
  }
961
- i.setInitialClick(d);
957
+ i.setInitialClick(u);
962
958
  },
963
959
  handleMove: (c) => {
964
- const d = he(c, { useClientCoords: !0 }), h = he(c);
965
- if (o({ mousePosition: d }), r.isDragging && r.selectedShapeId && r.dragStartPos && r.shapes.find((m) => m.id === r.selectedShapeId)) {
966
- const m = h.x - r.dragStartPos.x, y = h.y - r.dragStartPos.y, E = r.shapes.map((S) => S.id === r.selectedShapeId ? {
960
+ const u = ge(c, { useClientCoords: !0 }), h = ge(c);
961
+ if (o({ mousePosition: u }), r.isDragging && r.selectedShapeId && r.dragStartPos && r.shapes.find((m) => m.id === r.selectedShapeId)) {
962
+ const m = h.x - r.dragStartPos.x, p = h.y - r.dragStartPos.y, E = r.shapes.map((S) => S.id === r.selectedShapeId ? {
967
963
  ...S,
968
964
  points: S.points.map((C) => ({
969
965
  x: C.x + m,
970
- y: C.y + y
966
+ y: C.y + p
971
967
  }))
972
968
  } : S);
973
969
  o({ shapes: E }), i.startDrag(h);
@@ -985,10 +981,10 @@ const Gt = (e, n, t, r) => {
985
981
  return;
986
982
  }
987
983
  if (r.initialClickPos && !r.isDrawing) {
988
- const d = he(c);
989
- if (Ve(r.initialClickPos, d) < Be && c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
990
- const g = c.target.dataset.shapeId;
991
- g && o({ selectedShapeId: g });
984
+ const u = ge(c);
985
+ if (Ve(r.initialClickPos, u) < Be && c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
986
+ const f = c.target.dataset.shapeId;
987
+ f && o({ selectedShapeId: f });
992
988
  }
993
989
  }
994
990
  i.setInitialClick(null), i.finishDrawing();
@@ -1017,11 +1013,11 @@ const Gt = (e, n, t, r) => {
1017
1013
  initialClickPos: c
1018
1014
  });
1019
1015
  },
1020
- updateDragOffset: (c, d) => {
1016
+ updateDragOffset: (c, u) => {
1021
1017
  o({
1022
1018
  dragOffset: {
1023
- x: d.x - c.points[0].x,
1024
- y: d.y - c.points[0].y
1019
+ x: u.x - c.points[0].x,
1020
+ y: u.y - c.points[0].y
1025
1021
  }
1026
1022
  });
1027
1023
  }
@@ -1034,7 +1030,7 @@ const Gt = (e, n, t, r) => {
1034
1030
  }, an = (e, n, t, r) => {
1035
1031
  var h;
1036
1032
  const a = (r == null ? void 0 : r.reduce(
1037
- (g, m) => (g[m.id] = m.defaultValue ?? (m.type === "checkbox" ? [] : ""), g),
1033
+ (f, m) => (f[m.id] = m.defaultValue ?? (m.type === "checkbox" ? [] : ""), f),
1038
1034
  {}
1039
1035
  )) || {}, o = Te(n), i = (o == null ? void 0 : o.feedback.customInputValues) || {}, l = {
1040
1036
  ...a,
@@ -1049,9 +1045,9 @@ const Gt = (e, n, t, r) => {
1049
1045
  });
1050
1046
  return {
1051
1047
  state: s,
1052
- setState: (g, m = !1) => {
1053
- const y = "isCapturing" in g || "isMinimized" in g || m;
1054
- !y && !s.hasUserInteracted && c({ hasUserInteracted: !0 }), c(g), (s.hasUserInteracted || y) && (t == null || t(g, m));
1048
+ setState: (f, m = !1) => {
1049
+ const p = "isCapturing" in f || "isMinimized" in f || m;
1050
+ !p && !s.hasUserInteracted && c({ hasUserInteracted: !0 }), c(f), (s.hasUserInteracted || p) && (t == null || t(f, m));
1055
1051
  }
1056
1052
  };
1057
1053
  }, sn = (e, n) => {
@@ -1078,7 +1074,7 @@ const Gt = (e, n, t, r) => {
1078
1074
  state: t,
1079
1075
  setState: r
1080
1076
  };
1081
- }, _e = (e) => {
1077
+ }, We = (e) => {
1082
1078
  var n;
1083
1079
  return ((n = e.customInputs) == null ? void 0 : n.reduce(
1084
1080
  (t, r) => (t[r.id] = r.defaultValue ?? (r.type === "checkbox" ? [] : ""), t),
@@ -1089,38 +1085,38 @@ const Gt = (e, n, t, r) => {
1089
1085
  const t = sn(e), r = jt(t), a = At(t), o = an(
1090
1086
  e,
1091
1087
  n,
1092
- (c, d) => {
1088
+ (c, u) => {
1093
1089
  r(
1094
1090
  n,
1095
1091
  {
1096
1092
  feedback: { ...o.state, ...c },
1097
1093
  drawing: i.state
1098
1094
  },
1099
- d
1095
+ u
1100
1096
  );
1101
1097
  },
1102
1098
  e.customInputs
1103
- ), i = on(e, n, (c, d) => {
1099
+ ), i = on(e, n, (c, u) => {
1104
1100
  r(
1105
1101
  n,
1106
1102
  {
1107
1103
  feedback: o.state,
1108
1104
  drawing: { ...i.state, ...c }
1109
1105
  },
1110
- d
1106
+ u
1111
1107
  );
1112
1108
  }), l = (c) => {
1113
1109
  n = c;
1114
- const d = Te(n), h = {
1115
- ..._e(e),
1116
- ...d == null ? void 0 : d.feedback.customInputValues
1110
+ const u = Te(n), h = {
1111
+ ...We(e),
1112
+ ...u == null ? void 0 : u.feedback.customInputValues
1117
1113
  };
1118
1114
  o.setState({
1119
- message: (d == null ? void 0 : d.feedback.message) || "",
1115
+ message: (u == null ? void 0 : u.feedback.message) || "",
1120
1116
  customInputValues: h,
1121
1117
  hasUserInteracted: !1
1122
1118
  }), i.setState({
1123
- shapes: (d == null ? void 0 : d.drawing.shapes) || []
1119
+ shapes: (u == null ? void 0 : u.drawing.shapes) || []
1124
1120
  });
1125
1121
  }, s = () => {
1126
1122
  Ze(n);
@@ -1131,7 +1127,7 @@ const Gt = (e, n, t, r) => {
1131
1127
  isCapturing: !1,
1132
1128
  isMinimized: !1,
1133
1129
  hasUserInteracted: !1,
1134
- customInputValues: _e(e)
1130
+ customInputValues: We(e)
1135
1131
  },
1136
1132
  drawing: {
1137
1133
  isDrawing: !1,
@@ -1165,8 +1161,8 @@ const Gt = (e, n, t, r) => {
1165
1161
  submit: async (c) => {
1166
1162
  t.setState({ isOpen: !1 });
1167
1163
  try {
1168
- const d = await e.onSubmit(c);
1169
- return d instanceof Response && !d.ok ? (a.show({ type: "error", message: "Submission failed" }), d) : (s(), a.show({ type: "success", message: "Feedback submitted" }), d);
1164
+ const u = await e.onSubmit(c);
1165
+ return u instanceof Response && !u.ok ? (a.show({ type: "error", message: "Submission failed" }), u) : (s(), a.show({ type: "success", message: "Feedback submitted" }), u);
1170
1166
  } catch {
1171
1167
  a.show({ type: "error", message: "Submission failed" });
1172
1168
  }
@@ -1181,7 +1177,7 @@ const Gt = (e, n, t, r) => {
1181
1177
  position: e.position,
1182
1178
  customInputs: e.customInputs
1183
1179
  });
1184
- return f(at.Provider, {
1180
+ return g(at.Provider, {
1185
1181
  value: n,
1186
1182
  get children() {
1187
1183
  return e.children;
@@ -1232,8 +1228,8 @@ const Gt = (e, n, t, r) => {
1232
1228
  },
1233
1229
  callback: t
1234
1230
  });
1235
- }, hn = `*,*:before,*:after{box-sizing:border-box}.echo-root{position:absolute;top:0;left:0;z-index:var(--z-root);isolation:isolate;pointer-events:none;--z-root: 999999;--z-launcher: 2;--z-overlay: 1;--z-drawing-toolbar: 3;--z-drawing-tooltip: 3;--z-shape-actions: 3;--z-notification: 2;--z-welcome-message: 2;--z-widget-button: 2;--z-feedback-form: 4;--primary-color: #000;--primary-text-color: #fff;--error-color: #f44336;--success-color: var(--primary-color);--text-dark: #1a1a1a;--text-medium: #333;--text-light: #666;--text-lighter: #999;--border-color: rgba(0, 0, 0, .1);--border-color-light: rgba(0, 0, 0, .05);--border-color-medium: rgba(0, 0, 0, .08);--primary-color-lighter: color-mix(in srgb, var(--primary-color) 100%, white 40%);--primary-color-lightest: color-mix(in srgb, var(--primary-color) 7%, white 100%);--hover-color: color-mix(in srgb, var(--primary-color) 80%, #fff);--shadow-color-dark: rgba(0, 0, 0, .6);--shadow-color-light: rgba(255, 255, 255, .1);--shadow-color-medium: rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px;--shadow-md: 0 4px 10px;--shadow-lg: 0 10px 20px;--shadow-black-sm: var(--shadow-sm) rgba(0, 0, 0, .5);--shadow-black-md: var(--shadow-md) rgba(0, 0, 0, .5);--shadow-black-lg: var(--shadow-lg) rgba(0, 0, 0, .5);--shadow-black-lightened-sm: var(--shadow-sm) var(--shadow-color-medium);--shadow-black-lightened-md: var(--shadow-md) var(--shadow-color-medium);--shadow-black-lightened-lg: var(--shadow-lg) var(--shadow-color-medium);--shadow-primary-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color) 60%, transparent 80%);--shadow-primary-md: var(--shadow-md) color-mix(in srgb, var(--primary-color) 50%, transparent 80%);--shadow-primary-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color) 40%, transparent 80%);--shadow-primary-lighter-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color-lighter) 70%, transparent 80%);--shadow-primary-lighter-md: var(--shadow-md) color-mix(in srgb, var(--primary-color-lighter) 60%, transparent 80%);--shadow-primary-lighter-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color-lighter) 50%, transparent 80%);--shadow-primary-lightest-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color-lightest) 70%, transparent 80%);--shadow-primary-lightest-md: var(--shadow-md) color-mix(in srgb, var(--primary-color-lightest) 60%, transparent 80%);--shadow-primary-lightest-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color-lightest) 50%, transparent 80%);--shadow-combined-sm: var(--shadow-primary-sm), var(--shadow-black-lightened-sm);--shadow-combined-md: var(--shadow-primary-md), var(--shadow-black-lightened-md);--shadow-combined-lg: var(--shadow-primary-lg), var(--shadow-black-lightened-lg);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-xs: .8125rem;--font-sm: .875rem;--font-base: .9375rem;--font-md: 1rem;--font-lg: 1.125rem;--duration-fast: .1s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .4s;--duration-slowest: .6s;--ease-default: ease;--ease-in-out: ease-in-out;--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.16, 1, .3, 1)}.echo-stored-feedback{position:absolute;display:flex;flex-direction:column;bottom:calc(100% + var(--spacing-lg));right:0;width:320px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-black-lightened-lg);animation:slideUpFade var(--duration-base) var(--ease-smooth);z-index:calc(var(--z-widget-button) + 1);transform-origin:bottom right;transition:all var(--duration-base) var(--ease-smooth)}.echo-stored-feedback-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.echo-stored-feedback-header h3{margin:0;font-size:var(--font-md);font-weight:600}.echo-stored-feedback-list{max-height:400px;overflow-y:auto;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-stored-feedback-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color-light);transition:all var(--duration-base) var(--ease-smooth);background:#fff;position:relative}.echo-stored-feedback-item:hover{background:var(--primary-color-lightest)}.echo-stored-feedback-item-current{background:var(--primary-color-lightest);padding-left:calc(var(--spacing-lg) - 3px)}.echo-stored-feedback-item-current:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary-color);border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.echo-stored-feedback-item:last-child{border-bottom:none;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-stored-feedback-item:last-child.echo-stored-feedback-item-current:before{border-bottom-left-radius:var(--radius-lg)}.echo-stored-feedback-content{flex:1;min-width:0;margin-right:var(--spacing-md)}.echo-stored-feedback-path{font-size:var(--font-sm);font-weight:500;color:var(--text-medium);margin-bottom:var(--spacing-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.echo-stored-feedback-preview{font-size:var(--font-xs);color:var(--text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.echo-stored-feedback-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.echo-stored-feedback-link{color:var(--text-light)}.echo-stored-feedback-link:hover{color:var(--primary-color)}.echo-stored-feedback-delete{color:var(--text-light);font-size:var(--font-xs);padding:var(--spacing-xs) var(--spacing-md)}.echo-stored-feedback-delete:hover{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 10%,transparent)}.echo-stored-feedback-empty{padding:var(--spacing-3xl) var(--spacing-lg);text-align:center;color:var(--text-light);font-size:var(--font-sm);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-launcher{position:fixed;z-index:var(--z-launcher);bottom:var(--spacing-xl);right:var(--spacing-xl);pointer-events:none}.echo-overlay{position:absolute;top:0;left:0;margin:0;padding:0;max-width:none;max-height:none;border:3px solid var(--primary-color);background:transparent}.echo-overlay::backdrop{background:transparent}[data-hidden=true],[data-hidden=false]{transition:opacity var(--duration-slow) var(--ease-in-out),visibility var(--duration-slow) var(--ease-in-out)}[data-hidden=true]{opacity:0;visibility:hidden;pointer-events:none}[data-hidden=false]{opacity:1;visibility:visible;pointer-events:auto;user-select:none;-webkit-user-select:none}.echo-launcher-button{z-index:var(--z-widget-button);position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;background:radial-gradient(circle at 40% 40%,var(--primary-color) 0%,var(--primary-color-lighter) 65%,var(--primary-color-lighter) 100%);border:none;border-radius:var(--radius-full);width:48px;height:48px;box-shadow:var(--shadow-black-md);transition:all var(--duration-slow) var(--ease-default),transform var(--duration-slower) var(--ease-smooth),opacity var(--duration-slow) var(--ease-in-out);will-change:transform}.echo-launcher-button:hover{box-shadow:var(--shadow-black-lg);transform:translateY(-2px)}.echo-launcher-button:active{transform:scale(.95)}.echo-launcher-button-count{position:absolute;top:calc(-1 * var(--spacing-xs));right:calc(-1 * var(--spacing-xs));background:var(--primary-color-lightest);color:var(--primary-color-lighter);border-radius:var(--radius-md);min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-black-sm);padding:0 var(--spacing-xs);font-weight:600;pointer-events:auto;cursor:pointer;transform-origin:center center;animation:popIn var(--duration-slow) var(--ease-bounce);transition:transform var(--duration-base) var(--ease-default)}.echo-launcher-button-count:hover{transform:scale(1.1)}.echo-feedback{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);width:min(calc(100vw - var(--spacing-2xl)),24rem);z-index:var(--z-feedback-form);box-shadow:var(--shadow-black-lightened-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);background:#fff;border-radius:var(--radius-lg);will-change:transform;padding:var(--spacing-lg)}.echo-feedback[data-minimized=true]{transition:transform .4s var(--ease-default),box-shadow .4s var(--ease-default);transform:translate(calc(100% - 48px),calc(100% - 48px));box-shadow:0 8px 16px #0003}.echo-feedback[data-minimized=true]:hover{cursor:pointer;transform:translate(calc(100% - 48px),calc(100% - 48px)) rotate(-2deg) scale(1.1);box-shadow:0 12px 24px #00000040}.echo-feedback[data-minimized=false]{transition:transform .4s var(--ease-smooth),box-shadow .4s var(--ease-smooth);transform:translate(0)}.echo-feedback[style*=transition]{pointer-events:none}.echo-feedback-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.echo-feedback-header{display:flex;justify-content:space-between;align-items:center}.echo-feedback-title{font-size:var(--font-lg);font-weight:600;color:var(--text-dark);margin:0}.echo-feedback-header-actions{display:flex;gap:var(--spacing-xs);margin:calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) 0}.echo-feedback-form-textarea{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default);min-height:120px;resize:vertical;font-family:inherit}.echo-feedback-form-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-feedback-form-textarea::placeholder{color:var(--text-lighter)}[data-hide-when-drawing=true]{opacity:1;visibility:visible;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}[data-drawing=true] [data-hide-when-drawing=true]{opacity:0;visibility:hidden;pointer-events:none;user-select:none;-webkit-user-select:none}.echo-drawing-layer,.echo-drawing-layer-container{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;user-select:none;-webkit-user-select:none}.echo-drawing-layer-container svg{pointer-events:auto}.echo-drawing-toolbar{position:fixed;top:var(--spacing-xl);left:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:var(--z-drawing-toolbar);opacity:1;transition:opacity var(--duration-base) var(--ease-default)}.echo-drawing-toolbar-button{width:50px;height:50px;border-radius:var(--radius-full);border:2px solid #ddd;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:all var(--duration-base) var(--ease-default);box-shadow:var(--shadow-black-sm);position:relative}.echo-drawing-toolbar-icon{width:25px;height:25px;color:var(--primary-color);transition:color var(--duration-base) var(--ease-default)}.echo-drawing-toolbar-button:hover{transform:scale(1.05);border-color:var(--hover-color)}.echo-drawing-toolbar-button[data-selected=true]{background:var(--primary-color-lightest);border-color:var(--primary-color)}.echo-color-selector{position:relative}.echo-color-selector:hover .echo-drawing-toolbar-button{border-top-right-radius:0;border-bottom-right-radius:0;transform:scale(1.05);border-right-color:transparent;background:rgba(var(--primary-color),.9);border-color:var(--hover-color)}.echo-color-swatch-wrapper{position:absolute;left:calc(100% - 2px);top:50%;transform:translateY(-50%);height:52.5px;padding-right:var(--spacing-sm);display:none}.echo-color-selector:hover .echo-color-swatch-wrapper{display:block}.echo-color-swatch{height:100%;background:#fff;border-radius:var(--radius-md);border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--spacing-sm);padding-left:var(--spacing-md);box-shadow:var(--shadow-black-sm);display:flex;align-items:center;gap:var(--spacing-sm);border:2px solid #ddd;border-left:none}.echo-color-selector:hover .echo-color-swatch{border-color:var(--hover-color)}.echo-color-swatch-button{width:24px;height:24px;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;padding:0;transition:transform var(--duration-base) var(--ease-default)}.echo-color-swatch-button:hover{transform:scale(1.1)}.echo-color-swatch-button[data-selected=true]{border-color:var(--primary-color)}.echo-drawing-tooltip{display:flex;text-wrap:nowrap;position:fixed;background:#fff;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-combined-sm);font-size:var(--font-sm);color:var(--primary-color);z-index:var(--z-drawing-tooltip);pointer-events:none;animation:slideDownFade var(--duration-slow) var(--ease-default);border:1px solid var(--primary-color);background:var(--primary-color-lightest)}.echo-shape-actions{position:fixed;z-index:var(--z-shape-actions);display:flex;gap:var(--spacing-xs);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-combined-md);transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-sm)));animation:popInSlideDown var(--duration-fast) var(--ease-default);cursor:default;pointer-events:auto;padding:var(--spacing-xs);border:1px solid var(--primary-color)}.echo-shape-actions-divider{width:1px;margin:var(--spacing-sm) 0;background:var(--border-color);pointer-events:none}.echo-shape-actions[hidden]{display:none}.echo-notification{position:absolute;z-index:var(--z-notification);bottom:70px;right:0;width:300px;padding:var(--spacing-2xl);border-radius:var(--radius-lg);font-size:var(--font-md);font-weight:500;box-shadow:var(--shadow-combined-md);background:#fff;border:1px solid var(--primary-color);transform-origin:bottom right;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl);opacity:1;pointer-events:auto;transition:all var(--duration-base) var(--ease-smooth)}.echo-notification:not([data-empty=true]){animation:popInSlideUp var(--duration-slower) var(--ease-spring)}.echo-notification[data-empty=true]{opacity:0;pointer-events:none;transform:translateY(var(--spacing-sm)) scale(.95);transition:none}.echo-notification-hide{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:24px;height:24px;padding:var(--spacing-xs);border:none;background:transparent;color:var(--text-light);opacity:.7;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-bounce);flex-shrink:0}.echo-notification-hide:hover{opacity:1;background:var(--primary-color-lightest);transform:scale(1.1);color:var(--primary-color)}.echo-notification-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;transform:scale(1.5);background:var(--primary-color-lightest);padding:var(--spacing-md);border-radius:var(--radius-full);margin-top:var(--spacing-md);transition:all var(--duration-base) var(--ease-bounce)}.echo-notification[data-type=success]{border-color:var(--success-color)}.echo-notification[data-type=success] .echo-notification-icon{color:var(--success-color)}.echo-notification[data-type=error]{border-color:var(--error-color)}.echo-notification[data-type=error] .echo-notification-icon{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 10%,white)}.echo-notification-content{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 12px}.echo-notification-title{font-size:1rem;font-weight:600;color:#1a1a1a}.echo-notification-message{font-size:.875rem;font-weight:400;color:#666;line-height:1.4;max-width:100%}@media (max-width: 768px){.echo-notification{right:0;width:calc(100vw - 40px);height:auto;min-height:180px;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:.9375rem;padding:20px;gap:16px;bottom:calc(100% + 20px)}.echo-notification-icon{transform:scale(1.3);padding:10px;margin-top:8px}.echo-notification-title{font-size:.9375rem}.echo-notification-message{font-size:.8125rem}}.echo-welcome-message{display:flex;align-items:center;gap:var(--spacing-xs);position:fixed;z-index:var(--z-welcome-message);background:var(--primary-color-lightest);border:1px solid var(--primary-color);color:var(--primary-color);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);font-size:var(--font-sm);font-weight:500;box-shadow:var(--shadow-combined-md);opacity:1;transform:translateY(0) scale(1);transition:all var(--duration-slow) var(--ease-smooth);animation:bounceIn var(--duration-slowest) var(--ease-bounce);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;cursor:pointer;text-align:left}.echo-welcome-message:hover{transform:translateY(-2px) scale(1.02);background:var(--primary-color-lightest);box-shadow:var(--shadow-combined-lg)}.echo-welcome-message:active{transform:translateY(0) scale(.98)}.echo-welcome-message-close{width:20px;height:20px;padding:2px;margin-left:var(--spacing-xs);border:none;background:transparent;opacity:.7;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-default)}.echo-welcome-message-close:hover{opacity:1;background:var(--shadow-color-light);transform:scale(1.1)}.echo-welcome-message-close:active{transform:scale(.95)}.echo-welcome-message:after{content:"";position:absolute;bottom:-4px;right:17px;width:16px;height:16px;background:inherit;transform:rotate(45deg);border-radius:var(--radius-xs);border:1px solid var(--primary-color);z-index:-2}.echo-welcome-message:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--primary-color-lightest);z-index:-1;border-radius:var(--radius-lg)}.echo-welcome-message-pulsar{content:"";display:inline-block;width:6px;height:6px;background:var(--primary-color);border-radius:50%;margin-right:8px;animation:pulse 1.5s var(--ease-in-out) infinite}.echo-button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all var(--duration-base) var(--ease-default);line-height:1}.echo-button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.echo-button-primary{background:var(--primary-color);color:#fff}.echo-button-primary:hover{background:var(--hover-color);transform:translateY(-1px)}.echo-button-primary:active{transform:translateY(0)}.echo-button-secondary{background:transparent;color:var(--text-light)}.echo-button-secondary:hover{background-color:var(--primary-color-lightest);color:var(--primary-color)}.echo-button-xs{padding:var(--spacing-xs);font-size:var(--font-xs)}.echo-button-sm{padding:var(--spacing-xs);font-size:var(--font-sm)}.echo-button-md{padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-base)}.echo-button-lg{padding:var(--spacing-md) var(--spacing-3xl);font-size:var(--font-md)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(var(--spacing-sm))}to{opacity:1;transform:translateY(0)}}@keyframes slideDownFade{0%{opacity:0;transform:translateY(calc(-1 * var(--spacing-sm)))}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes popInSlideUp{0%{opacity:0;transform:translateY(var(--spacing-sm)) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes popInSlideDown{0%{opacity:0;transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-xs))) scale(.95)}to{opacity:1;transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-sm))) scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:translateY(var(--spacing-xl)) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}to{transform:scale(1);opacity:1}}.echo-inputs{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.echo-input{display:flex;flex-direction:column;gap:.5rem}.echo-input-label{font-size:.875rem;font-weight:500;color:var(--text-color)}.echo-input-required{color:#dc2626;margin-left:.25rem}.echo-input-field{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default)}.echo-input-field:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-input-field::placeholder{color:var(--text-lighter)}select.echo-input-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding-right:2.5rem;cursor:pointer}.echo-input-options{display:flex;flex-direction:column;gap:var(--spacing-sm);border:none;margin:0;padding:0}.echo-input-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--duration-base) var(--ease-default)}.echo-input-option:hover{background:var(--primary-color-lightest)}.echo-input-option input[type=radio],.echo-input-option input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;width:18px;height:18px;border:1px solid var(--border-color);background-color:#fff;display:grid;place-content:center;cursor:pointer;transition:all var(--duration-base) var(--ease-default)}.echo-input-option input[type=radio]{border-radius:50%}.echo-input-option input[type=radio]:before{content:"";width:10px;height:10px;border-radius:50%;transform:scale(0);transition:transform var(--duration-base) var(--ease-default);background-color:var(--primary-color)}.echo-input-option input[type=radio]:checked:before{transform:scale(1)}.echo-input-option input[type=checkbox]{border-radius:var(--radius-sm)}.echo-input-option input[type=checkbox]:before{content:"";width:12px;height:12px;transform:scale(0);transition:all var(--duration-base) var(--ease-default);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.echo-input-option input[type=checkbox]:checked{background-color:var(--primary-color-lighter);border-color:var(--primary-color-lighter)}.echo-input-option input[type=checkbox]:checked:before{transform:scale(1)}.echo-input-option input[type=radio]:hover,.echo-input-option input[type=checkbox]:hover{border-color:var(--primary-color-lighter)}.echo-input-option input[type=radio]:focus,.echo-input-option input[type=checkbox]:focus{outline:none;border-color:var(--primary-color-lighter);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-input-option input[type=radio]:checked,.echo-input-option input[type=checkbox]:checked{border-color:var(--primary-color-lighter)}.echo-input-option span{font-size:var(--font-sm);color:var(--text-medium);-webkit-user-select:none;user-select:none}.echo-select{position:relative;width:100%}.echo-select-trigger{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default);cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:.5rem;outline:none}.echo-select-trigger[data-placeholder=true]{color:var(--text-lighter)}.echo-select-trigger:hover{border-color:var(--border-color-medium)}.echo-select-trigger:focus,.echo-select-trigger[data-open=true]{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-select-arrow{flex-shrink:0;transition:transform var(--duration-base) var(--ease-default)}.echo-select-trigger[data-open=true] .echo-select-arrow{transform:rotate(180deg)}.echo-select-dropdown{position:absolute;top:calc(100% + .25rem);left:0;right:0;background:#fff;border:1px solid var(--border-color-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-black-lightened-md);max-height:15rem;overflow-y:auto;z-index:10;animation:slideDownFade var(--duration-base) var(--ease-default);padding:var(--spacing-xs)}.echo-select-option{width:100%;padding:.5rem .75rem;background:none;border:none;text-align:left;color:var(--text-medium);font-size:var(--font-sm);cursor:pointer;transition:all var(--duration-base) var(--ease-default);outline:none;border-radius:var(--radius-sm)}.echo-select-option:hover{background:var(--primary-color-lightest)}.echo-select-option:focus{background:var(--primary-color-lightest);box-shadow:0 0 0 1px var(--primary-color) inset}.echo-select-option[data-selected=true]{background:var(--primary-color-lightest);color:var(--primary-color);font-weight:500}select.echo-input-field{display:none}.visually-hidden{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}`;
1236
- var fn = /* @__PURE__ */ w('<div class=echo-color-selector role=group aria-label="Color Selection"><button class=echo-drawing-toolbar-button title="Current Color"></button><div class=echo-color-swatch-wrapper role=listbox aria-label="Available Colors"><div class=echo-color-swatch>'), gn = /* @__PURE__ */ w("<button class=echo-color-swatch-button role=option>");
1231
+ }, hn = `*,*:before,*:after{box-sizing:border-box}.echo-root{position:absolute;top:0;left:0;z-index:var(--z-root);isolation:isolate;pointer-events:none;--z-root: 999999;--z-launcher: 2;--z-overlay: 1;--z-drawing-toolbar: 3;--z-drawing-tooltip: 3;--z-shape-actions: 3;--z-notification: 2;--z-welcome-message: 2;--z-widget-button: 2;--z-feedback-form: 4;--primary-color: #000;--primary-text-color: #fff;--error-color: #f44336;--success-color: var(--primary-color);--text-dark: #1a1a1a;--text-medium: #333;--text-light: #666;--text-lighter: #999;--border-color: rgba(0, 0, 0, .1);--border-color-light: rgba(0, 0, 0, .05);--border-color-medium: rgba(0, 0, 0, .08);--background-color: #fff;--primary-color-lighter: color-mix(in srgb, var(--primary-color) 100%, white 40%);--primary-color-lightest: color-mix(in srgb, var(--primary-color) 7%, white 100%);--hover-color: color-mix(in srgb, var(--primary-color) 80%, #fff);--shadow-color-dark: rgba(0, 0, 0, .6);--shadow-color-light: rgba(255, 255, 255, .1);--shadow-color-medium: rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px;--shadow-md: 0 4px 10px;--shadow-lg: 0 10px 20px;--shadow-black-sm: var(--shadow-sm) rgba(0, 0, 0, .5);--shadow-black-md: var(--shadow-md) rgba(0, 0, 0, .5);--shadow-black-lg: var(--shadow-lg) rgba(0, 0, 0, .5);--shadow-black-lightened-sm: var(--shadow-sm) var(--shadow-color-medium);--shadow-black-lightened-md: var(--shadow-md) var(--shadow-color-medium);--shadow-black-lightened-lg: var(--shadow-lg) var(--shadow-color-medium);--shadow-primary-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color) 60%, transparent 80%);--shadow-primary-md: var(--shadow-md) color-mix(in srgb, var(--primary-color) 50%, transparent 80%);--shadow-primary-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color) 40%, transparent 80%);--shadow-primary-lighter-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color-lighter) 70%, transparent 80%);--shadow-primary-lighter-md: var(--shadow-md) color-mix(in srgb, var(--primary-color-lighter) 60%, transparent 80%);--shadow-primary-lighter-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color-lighter) 50%, transparent 80%);--shadow-primary-lightest-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color-lightest) 70%, transparent 80%);--shadow-primary-lightest-md: var(--shadow-md) color-mix(in srgb, var(--primary-color-lightest) 60%, transparent 80%);--shadow-primary-lightest-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color-lightest) 50%, transparent 80%);--shadow-combined-sm: var(--shadow-primary-sm), var(--shadow-black-lightened-sm);--shadow-combined-md: var(--shadow-primary-md), var(--shadow-black-lightened-md);--shadow-combined-lg: var(--shadow-primary-lg), var(--shadow-black-lightened-lg);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-xs: .8125rem;--font-sm: .875rem;--font-base: .9375rem;--font-md: 1rem;--font-lg: 1.125rem;--duration-fast: .1s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .4s;--duration-slowest: .6s;--ease-default: ease;--ease-in-out: ease-in-out;--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.16, 1, .3, 1)}.echo-stored-feedback{position:absolute;display:flex;flex-direction:column;bottom:calc(100% + var(--spacing-lg));right:0;width:320px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-black-lightened-lg);animation:slideUpFade var(--duration-base) var(--ease-smooth);z-index:calc(var(--z-widget-button) + 1);transform-origin:bottom right;transition:all var(--duration-base) var(--ease-smooth)}.echo-stored-feedback-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.echo-stored-feedback-header h3{margin:0;font-size:var(--font-md);font-weight:600}.echo-stored-feedback-list{max-height:400px;overflow-y:auto;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-stored-feedback-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color-light);transition:all var(--duration-base) var(--ease-smooth);background:#fff;position:relative}.echo-stored-feedback-item:hover{background:var(--primary-color-lightest)}.echo-stored-feedback-item-current{background:var(--primary-color-lightest);padding-left:calc(var(--spacing-lg) - 3px)}.echo-stored-feedback-item-current:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary-color);border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.echo-stored-feedback-item:last-child{border-bottom:none;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-stored-feedback-item:last-child.echo-stored-feedback-item-current:before{border-bottom-left-radius:var(--radius-lg)}.echo-stored-feedback-content{flex:1;min-width:0;margin-right:var(--spacing-md)}.echo-stored-feedback-path{font-size:var(--font-sm);font-weight:500;color:var(--text-medium);margin-bottom:var(--spacing-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.echo-stored-feedback-preview{font-size:var(--font-xs);color:var(--text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.echo-stored-feedback-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.echo-stored-feedback-link{color:var(--text-light)}.echo-stored-feedback-link:hover{color:var(--primary-color)}.echo-stored-feedback-delete{color:var(--text-light);font-size:var(--font-xs);padding:var(--spacing-xs) var(--spacing-md)}.echo-stored-feedback-delete:hover{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 10%,transparent)}.echo-stored-feedback-empty{padding:var(--spacing-3xl) var(--spacing-lg);text-align:center;color:var(--text-light);font-size:var(--font-sm);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-launcher{position:fixed;z-index:var(--z-launcher);bottom:var(--spacing-xl);right:var(--spacing-xl);pointer-events:none}.echo-overlay{position:absolute;top:0;left:0;margin:0;padding:0;max-width:none;max-height:none;border:3px solid var(--primary-color);background:transparent}.echo-overlay::backdrop{background:transparent}[data-hidden=true],[data-hidden=false]{transition:opacity var(--duration-slow) var(--ease-in-out),visibility var(--duration-slow) var(--ease-in-out)}[data-hidden=true]{opacity:0;visibility:hidden;pointer-events:none}[data-hidden=false]{opacity:1;visibility:visible;pointer-events:auto;user-select:none;-webkit-user-select:none}.echo-launcher-button{z-index:var(--z-widget-button);position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;background:radial-gradient(circle at 40% 40%,var(--primary-color) 0%,var(--primary-color-lighter) 65%,var(--primary-color-lighter) 100%);border:none;border-radius:var(--radius-full);width:48px;height:48px;box-shadow:var(--shadow-black-md);transition:all var(--duration-slow) var(--ease-default),transform var(--duration-slower) var(--ease-smooth),opacity var(--duration-slow) var(--ease-in-out);will-change:transform}.echo-launcher-button:hover{box-shadow:var(--shadow-black-lg);transform:translateY(-2px)}.echo-launcher-button:active{transform:scale(.95)}.echo-launcher-button-count{position:absolute;top:calc(-1 * var(--spacing-xs));left:calc(-1 * var(--spacing-xs));background:var(--primary-color-lightest);color:var(--primary-color-lighter);border-radius:var(--radius-md);min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-black-sm);padding:0 var(--spacing-xs);font-weight:600;pointer-events:auto;cursor:pointer;transform-origin:center center;animation:popIn var(--duration-slow) var(--ease-bounce);transition:transform var(--duration-base) var(--ease-default)}.echo-launcher-button-count:hover{transform:scale(1.1)}.echo-feedback{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);width:min(calc(100vw - var(--spacing-xl) * 2),24rem);max-height:calc(100vh - var(--spacing-xl) * 2);z-index:var(--z-feedback-form);box-shadow:var(--shadow-black-lightened-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);background:var(--background-color);border-radius:var(--radius-lg);overflow-y:auto;will-change:transform;padding:0 var(--spacing-lg)}.echo-feedback[data-minimized=true]{transition:transform .4s var(--ease-default),box-shadow .4s var(--ease-default);transform:translate(calc(100% - 48px),calc(100% - 48px));box-shadow:0 8px 16px #0003}.echo-feedback[data-minimized=true]:hover{cursor:pointer;transform:translate(calc(100% - 48px),calc(100% - 48px)) rotate(-2deg) scale(1.1);box-shadow:0 12px 24px #00000040}.echo-feedback[data-minimized=false]{transition:transform .4s var(--ease-smooth),box-shadow .4s var(--ease-smooth);transform:translate(0)}.echo-feedback[style*=transition]{pointer-events:none}.echo-feedback-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.echo-feedback-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0;background-color:var(--background-color);position:sticky;top:0;z-index:1}.echo-feedback-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0;background-color:var(--background-color);position:sticky;bottom:0;z-index:1}.echo-feedback-title{font-size:var(--font-lg);font-weight:600;color:var(--text-dark);margin:0}.echo-feedback-header-actions{display:flex;gap:var(--spacing-xs);margin:calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) 0}.echo-feedback-form-textarea{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default);min-height:120px;resize:vertical;font-family:inherit}.echo-feedback-form-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-feedback-form-textarea::placeholder{color:var(--text-lighter)}[data-hide-when-drawing=true]{opacity:1;visibility:visible;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}[data-drawing=true] [data-hide-when-drawing=true]{opacity:0;visibility:hidden;pointer-events:none;user-select:none;-webkit-user-select:none}.echo-drawing-layer,.echo-drawing-layer-container{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;user-select:none;-webkit-user-select:none}.echo-drawing-layer-container svg{pointer-events:auto}.echo-drawing-toolbar{position:fixed;top:var(--spacing-xl);left:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:var(--z-drawing-toolbar);opacity:1;transition:opacity var(--duration-base) var(--ease-default)}.echo-drawing-toolbar-button{width:50px;height:50px;border-radius:var(--radius-full);border:2px solid #ddd;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:all var(--duration-base) var(--ease-default);box-shadow:var(--shadow-black-sm);position:relative}.echo-drawing-toolbar-icon{width:25px;height:25px;color:var(--primary-color);transition:color var(--duration-base) var(--ease-default)}.echo-drawing-toolbar-button:hover{transform:scale(1.05);border-color:var(--hover-color)}.echo-drawing-toolbar-button[data-selected=true]{background:var(--primary-color-lightest);border-color:var(--primary-color)}.echo-color-selector{position:relative}.echo-color-selector:hover .echo-drawing-toolbar-button{border-top-right-radius:0;border-bottom-right-radius:0;transform:scale(1.05);border-right-color:transparent;background:rgba(var(--primary-color),.9);border-color:var(--hover-color)}.echo-color-swatch-wrapper{position:absolute;left:calc(100% - 2px);top:50%;transform:translateY(-50%);height:52.5px;padding-right:var(--spacing-sm);display:none}.echo-color-selector:hover .echo-color-swatch-wrapper{display:block}.echo-color-swatch{height:100%;background:#fff;border-radius:var(--radius-md);border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--spacing-sm);padding-left:var(--spacing-md);box-shadow:var(--shadow-black-sm);display:flex;align-items:center;gap:var(--spacing-sm);border:2px solid #ddd;border-left:none}.echo-color-selector:hover .echo-color-swatch{border-color:var(--hover-color)}.echo-color-swatch-button{width:24px;height:24px;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;padding:0;transition:transform var(--duration-base) var(--ease-default)}.echo-color-swatch-button:hover{transform:scale(1.1)}.echo-color-swatch-button[data-selected=true]{border-color:var(--primary-color)}.echo-drawing-tooltip{display:flex;text-wrap:nowrap;position:fixed;background:#fff;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-combined-sm);font-size:var(--font-sm);color:var(--primary-color);z-index:var(--z-drawing-tooltip);pointer-events:none;animation:slideDownFade var(--duration-slow) var(--ease-default);border:1px solid var(--primary-color);background:var(--primary-color-lightest)}.echo-shape-actions{position:fixed;z-index:var(--z-shape-actions);display:flex;gap:var(--spacing-xs);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-combined-md);transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-sm)));animation:popInSlideDown var(--duration-fast) var(--ease-default);cursor:default;pointer-events:auto;padding:var(--spacing-xs);border:1px solid var(--primary-color)}.echo-shape-actions-divider{width:1px;margin:var(--spacing-sm) 0;background:var(--border-color);pointer-events:none}.echo-shape-actions[hidden]{display:none}.echo-notification{position:absolute;z-index:var(--z-notification);bottom:70px;right:0;width:300px;padding:var(--spacing-2xl);border-radius:var(--radius-lg);font-size:var(--font-md);font-weight:500;box-shadow:var(--shadow-combined-md);background:#fff;border:1px solid var(--primary-color);transform-origin:bottom right;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl);opacity:1;pointer-events:auto;transition:all var(--duration-base) var(--ease-smooth)}.echo-notification:not([data-empty=true]){animation:popInSlideUp var(--duration-slower) var(--ease-spring)}.echo-notification[data-empty=true]{opacity:0;pointer-events:none;transform:translateY(var(--spacing-sm)) scale(.95);transition:none}.echo-notification-hide{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:24px;height:24px;padding:var(--spacing-xs);border:none;background:transparent;color:var(--text-light);opacity:.7;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-bounce);flex-shrink:0}.echo-notification-hide:hover{opacity:1;background:var(--primary-color-lightest);transform:scale(1.1);color:var(--primary-color)}.echo-notification-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;transform:scale(1.5);background:var(--primary-color-lightest);padding:var(--spacing-md);border-radius:var(--radius-full);margin-top:var(--spacing-md);transition:all var(--duration-base) var(--ease-bounce)}.echo-notification[data-type=success]{border-color:var(--success-color)}.echo-notification[data-type=success] .echo-notification-icon{color:var(--success-color)}.echo-notification[data-type=error]{border-color:var(--error-color)}.echo-notification[data-type=error] .echo-notification-icon{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 10%,white)}.echo-notification-content{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 12px}.echo-notification-title{font-size:1rem;font-weight:600;color:#1a1a1a}.echo-notification-message{font-size:.875rem;font-weight:400;color:#666;line-height:1.4;max-width:100%}@media (max-width: 768px){.echo-notification{right:0;width:calc(100vw - 40px);height:auto;min-height:180px;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:.9375rem;padding:20px;gap:16px;bottom:calc(100% + 20px)}.echo-notification-icon{transform:scale(1.3);padding:10px;margin-top:8px}.echo-notification-title{font-size:.9375rem}.echo-notification-message{font-size:.8125rem}}.echo-welcome-message{display:flex;align-items:center;gap:var(--spacing-xs);position:fixed;z-index:var(--z-welcome-message);background:var(--primary-color-lightest);border:1px solid var(--primary-color);color:var(--primary-color);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);font-size:var(--font-sm);font-weight:500;box-shadow:var(--shadow-combined-md);opacity:1;transform:translateY(0) scale(1);transition:all var(--duration-slow) var(--ease-smooth);animation:bounceIn var(--duration-slowest) var(--ease-bounce);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;cursor:pointer;text-align:left}.echo-welcome-message:hover{transform:translateY(-2px) scale(1.02);background:var(--primary-color-lightest);box-shadow:var(--shadow-combined-lg)}.echo-welcome-message:active{transform:translateY(0) scale(.98)}.echo-welcome-message-close{width:20px;height:20px;padding:2px;margin-left:var(--spacing-xs);border:none;background:transparent;opacity:.7;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-default)}.echo-welcome-message-close:hover{opacity:1;background:var(--shadow-color-light);transform:scale(1.1)}.echo-welcome-message-close:active{transform:scale(.95)}.echo-welcome-message:after{content:"";position:absolute;bottom:-4px;right:17px;width:16px;height:16px;background:inherit;transform:rotate(45deg);border-radius:var(--radius-xs);border:1px solid var(--primary-color);z-index:-2}.echo-welcome-message:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--primary-color-lightest);z-index:-1;border-radius:var(--radius-lg)}.echo-welcome-message-pulsar{content:"";display:inline-block;width:6px;height:6px;background:var(--primary-color);border-radius:50%;margin-right:8px;animation:pulse 1.5s var(--ease-in-out) infinite}.echo-button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all var(--duration-base) var(--ease-default);line-height:1}.echo-button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.echo-button-primary{background:var(--primary-color);color:#fff}.echo-button-primary:hover{background:var(--hover-color);transform:translateY(-1px)}.echo-button-primary:active{transform:translateY(0)}.echo-button-secondary{background:transparent;color:var(--text-light)}.echo-button-secondary:hover{background-color:var(--primary-color-lightest);color:var(--primary-color)}.echo-button-xs{padding:var(--spacing-xs);font-size:var(--font-xs)}.echo-button-sm{padding:var(--spacing-xs);font-size:var(--font-sm)}.echo-button-md{padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-base)}.echo-button-lg{padding:var(--spacing-md) var(--spacing-3xl);font-size:var(--font-md)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(var(--spacing-sm))}to{opacity:1;transform:translateY(0)}}@keyframes slideDownFade{0%{opacity:0;transform:translateY(calc(-1 * var(--spacing-sm)))}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes popInSlideUp{0%{opacity:0;transform:translateY(var(--spacing-sm)) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes popInSlideDown{0%{opacity:0;transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-xs))) scale(.95)}to{opacity:1;transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-sm))) scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:translateY(var(--spacing-xl)) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}to{transform:scale(1);opacity:1}}.echo-inputs{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.echo-input{display:flex;flex-direction:column;gap:.5rem}.echo-input-label{font-size:.875rem;font-weight:500;color:var(--text-color)}.echo-input-required{color:#dc2626;margin-left:.25rem}.echo-input-field{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default)}.echo-input-field:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-input-field:disabled{opacity:.5}.echo-input-field::placeholder{color:var(--text-lighter)}select.echo-input-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding-right:2.5rem;cursor:pointer}.echo-input-options-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xl);border:none;margin:0;padding:0}.echo-input-options{display:flex;flex-direction:column;gap:var(--spacing-sm);border:none;margin:0;padding:0}.echo-input-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--duration-base) var(--ease-default)}.echo-input-option:hover{background:var(--primary-color-lightest)}.echo-input-option input[type=radio],.echo-input-option input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;width:18px;height:18px;border:1px solid var(--border-color);background-color:#fff;display:grid;place-content:center;cursor:pointer;transition:all var(--duration-base) var(--ease-default)}.echo-input-option input[type=radio]{border-radius:50%}.echo-input-option input[type=radio]:before{content:"";width:10px;height:10px;border-radius:50%;transform:scale(0);transition:transform var(--duration-base) var(--ease-default);background-color:var(--primary-color)}.echo-input-option input[type=radio]:checked:before{transform:scale(1)}.echo-input-option input[type=checkbox]{border-radius:var(--radius-sm)}.echo-input-option input[type=checkbox]:before{content:"";width:12px;height:12px;transform:scale(0);transition:all var(--duration-base) var(--ease-default);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.echo-input-option input[type=checkbox]:checked{background-color:var(--primary-color-lighter);border-color:var(--primary-color-lighter)}.echo-input-option input[type=checkbox]:checked:before{transform:scale(1)}.echo-input-option input[type=radio]:hover,.echo-input-option input[type=checkbox]:hover{border-color:var(--primary-color-lighter)}.echo-input-option input[type=radio]:focus,.echo-input-option input[type=checkbox]:focus{outline:none;border-color:var(--primary-color-lighter);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-input-option input[type=radio]:checked,.echo-input-option input[type=checkbox]:checked{border-color:var(--primary-color-lighter)}.echo-input-option span{font-size:var(--font-sm);color:var(--text-medium);-webkit-user-select:none;user-select:none}.echo-select{position:relative;width:100%}.echo-select-trigger{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default);cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:.5rem;outline:none}.echo-select-trigger[data-placeholder=true]{color:var(--text-lighter)}.echo-select-trigger:hover{border-color:var(--border-color-medium)}.echo-select-trigger:focus,.echo-select-trigger[data-open=true]{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-select-arrow{flex-shrink:0;transition:transform var(--duration-base) var(--ease-default)}.echo-select-trigger[data-open=true] .echo-select-arrow{transform:rotate(180deg)}.echo-select-dropdown{position:absolute;top:calc(100% + .25rem);left:0;right:0;background:#fff;border:1px solid var(--border-color-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-black-lightened-md);max-height:15rem;overflow-y:auto;z-index:10;animation:slideDownFade var(--duration-base) var(--ease-default);padding:var(--spacing-xs)}.echo-select-option{width:100%;padding:.5rem .75rem;background:none;border:none;text-align:left;color:var(--text-medium);font-size:var(--font-sm);cursor:pointer;transition:all var(--duration-base) var(--ease-default);outline:none;border-radius:var(--radius-sm)}.echo-select-option:hover{background:var(--primary-color-lightest)}.echo-select-option:focus{background:var(--primary-color-lightest);box-shadow:0 0 0 1px var(--primary-color) inset}.echo-select-option[data-selected=true]{background:var(--primary-color-lightest);color:var(--primary-color);font-weight:500}select.echo-input-field{display:none}.visually-hidden{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}`;
1232
+ var gn = /* @__PURE__ */ w('<div class=echo-color-selector role=group aria-label="Color Selection"><button class=echo-drawing-toolbar-button title="Current Color"></button><div class=echo-color-swatch-wrapper role=listbox aria-label="Available Colors"><div class=echo-color-swatch>'), fn = /* @__PURE__ */ w("<button class=echo-color-swatch-button role=option>");
1237
1233
  const mn = [
1238
1234
  "#ff6b6b",
1239
1235
  // Soft Red
@@ -1263,18 +1259,18 @@ const mn = [
1263
1259
  }, Ce = (e) => vn[e] || "Primary", bn = () => {
1264
1260
  const e = $();
1265
1261
  return (() => {
1266
- var n = fn(), t = n.firstChild, r = t.nextSibling, a = r.firstChild;
1267
- return u(t, "aria-expanded", !1), v(a, f(_, {
1262
+ var n = gn(), t = n.firstChild, r = t.nextSibling, a = r.firstChild;
1263
+ return d(t, "aria-expanded", !1), v(a, g(W, {
1268
1264
  get each() {
1269
1265
  return [e.widget.state.primaryColor, ...mn];
1270
1266
  },
1271
1267
  children: (o) => (() => {
1272
- var i = gn();
1268
+ var i = fn();
1273
1269
  return i.$$click = () => e.drawing.setState({
1274
1270
  selectedColor: o
1275
1271
  }), o != null ? i.style.setProperty("background-color", o) : i.style.removeProperty("background-color"), b((l) => {
1276
- var s = `Select ${Ce(o)} color`, c = e.drawing.state.selectedColor === o, d = `${Ce(o)} color`, h = e.drawing.state.selectedColor === o;
1277
- return s !== l.e && u(i, "title", l.e = s), c !== l.t && u(i, "data-selected", l.t = c), d !== l.a && u(i, "aria-label", l.a = d), h !== l.o && u(i, "aria-selected", l.o = h), l;
1272
+ var s = `Select ${Ce(o)} color`, c = e.drawing.state.selectedColor === o, u = `${Ce(o)} color`, h = e.drawing.state.selectedColor === o;
1273
+ return s !== l.e && d(i, "title", l.e = s), c !== l.t && d(i, "data-selected", l.t = c), u !== l.a && d(i, "aria-label", l.a = u), h !== l.o && d(i, "aria-selected", l.o = h), l;
1278
1274
  }, {
1279
1275
  e: void 0,
1280
1276
  t: void 0,
@@ -1284,7 +1280,7 @@ const mn = [
1284
1280
  })()
1285
1281
  })), b((o) => {
1286
1282
  var i = `Current color: ${Ce(e.drawing.state.selectedColor)}`, l = e.drawing.state.selectedColor;
1287
- return i !== o.e && u(t, "aria-label", o.e = i), l !== o.t && ((o.t = l) != null ? t.style.setProperty("background-color", l) : t.style.removeProperty("background-color")), o;
1283
+ return i !== o.e && d(t, "aria-label", o.e = i), l !== o.t && ((o.t = l) != null ? t.style.setProperty("background-color", l) : t.style.removeProperty("background-color")), o;
1288
1284
  }, {
1289
1285
  e: void 0,
1290
1286
  t: void 0
@@ -1293,11 +1289,11 @@ const mn = [
1293
1289
  };
1294
1290
  T(["click"]);
1295
1291
  var wn = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="m9 18 6-6-6-6">');
1296
- const yn = (e) => (() => {
1292
+ const pn = (e) => (() => {
1297
1293
  var n = wn();
1298
1294
  return b((t) => {
1299
1295
  var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
1300
- return r !== t.e && u(n, "width", t.e = r), a !== t.t && u(n, "height", t.t = a), o !== t.a && u(n, "fill", t.a = o), i !== t.o && u(n, "stroke", t.o = i), l !== t.i && u(n, "stroke-width", t.i = l), s !== t.n && u(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1296
+ return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1301
1297
  }, {
1302
1298
  e: void 0,
1303
1299
  t: void 0,
@@ -1308,12 +1304,12 @@ const yn = (e) => (() => {
1308
1304
  s: void 0
1309
1305
  }), n;
1310
1306
  })();
1311
- var pn = /* @__PURE__ */ w('<svg viewBox="0 0 64 66"fill=none><path d="M59.716 36.936L54.9 33l-6.17 5.108a77.278 77.278 0 00-12.744 13.469l-3.637 4.914-3.778-5.017a83.719 83.719 0 00-13.956-14.538L9.799 33l2.86-2.332A104.39 104.39 0 0030.1 12.5l2.24-2.98 1.736 2.298a111.905 111.905 0 0018.608 19.384l2.206 1.81 2.861-2.333a104.13 104.13 0 005.297-4.641C59.978 11.294 47.409.26 32.349.26 14.997.26.92 14.923.92 33c0 18.076 14.077 32.74 31.43 32.74 15.102 0 27.715-11.103 30.73-25.892a75.808 75.808 0 00-3.375-2.912h.011z">');
1307
+ var yn = /* @__PURE__ */ w('<svg viewBox="0 0 64 66"fill=none><path d="M59.716 36.936L54.9 33l-6.17 5.108a77.278 77.278 0 00-12.744 13.469l-3.637 4.914-3.778-5.017a83.719 83.719 0 00-13.956-14.538L9.799 33l2.86-2.332A104.39 104.39 0 0030.1 12.5l2.24-2.98 1.736 2.298a111.905 111.905 0 0018.608 19.384l2.206 1.81 2.861-2.333a104.13 104.13 0 005.297-4.641C59.978 11.294 47.409.26 32.349.26 14.997.26.92 14.923.92 33c0 18.076 14.077 32.74 31.43 32.74 15.102 0 27.715-11.103 30.73-25.892a75.808 75.808 0 00-3.375-2.912h.011z">');
1312
1308
  const xn = (e) => (() => {
1313
- var n = pn(), t = n.firstChild;
1309
+ var n = yn(), t = n.firstChild;
1314
1310
  return b((r) => {
1315
1311
  var a = e.size ?? 24, o = e.size ?? 24, i = e.class, l = e.style, s = e.fill ?? "currentColor";
1316
- return a !== r.e && u(n, "width", r.e = a), o !== r.t && u(n, "height", r.t = o), i !== r.a && u(n, "class", r.a = i), r.o = F(n, l, r.o), s !== r.i && u(t, "fill", r.i = s), r;
1312
+ return a !== r.e && d(n, "width", r.e = a), o !== r.t && d(n, "height", r.t = o), i !== r.a && d(n, "class", r.a = i), r.o = F(n, l, r.o), s !== r.i && d(t, "fill", r.i = s), r;
1317
1313
  }, {
1318
1314
  e: void 0,
1319
1315
  t: void 0,
@@ -1327,7 +1323,7 @@ const Sn = (e) => (() => {
1327
1323
  var n = kn();
1328
1324
  return b((t) => {
1329
1325
  var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
1330
- return r !== t.e && u(n, "width", t.e = r), a !== t.t && u(n, "height", t.t = a), o !== t.a && u(n, "fill", t.a = o), i !== t.o && u(n, "stroke", t.o = i), l !== t.i && u(n, "stroke-width", t.i = l), s !== t.n && u(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1326
+ return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1331
1327
  }, {
1332
1328
  e: void 0,
1333
1329
  t: void 0,
@@ -1343,7 +1339,7 @@ const $n = (e) => (() => {
1343
1339
  var n = Cn();
1344
1340
  return b((t) => {
1345
1341
  var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
1346
- return r !== t.e && u(n, "width", t.e = r), a !== t.t && u(n, "height", t.t = a), o !== t.a && u(n, "fill", t.a = o), i !== t.o && u(n, "stroke", t.o = i), l !== t.i && u(n, "stroke-width", t.i = l), s !== t.n && u(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1342
+ return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1347
1343
  }, {
1348
1344
  e: void 0,
1349
1345
  t: void 0,
@@ -1359,7 +1355,7 @@ const it = (e) => (() => {
1359
1355
  var n = En();
1360
1356
  return b((t) => {
1361
1357
  var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
1362
- return r !== t.e && u(n, "width", t.e = r), a !== t.t && u(n, "height", t.t = a), o !== t.a && u(n, "fill", t.a = o), i !== t.o && u(n, "stroke", t.o = i), l !== t.i && u(n, "stroke-width", t.i = l), s !== t.n && u(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1358
+ return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1363
1359
  }, {
1364
1360
  e: void 0,
1365
1361
  t: void 0,
@@ -1375,7 +1371,7 @@ const zn = (e) => (() => {
1375
1371
  var n = Pn();
1376
1372
  return b((t) => {
1377
1373
  var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
1378
- return r !== t.e && u(n, "width", t.e = r), a !== t.t && u(n, "height", t.t = a), o !== t.a && u(n, "fill", t.a = o), i !== t.o && u(n, "stroke", t.o = i), l !== t.i && u(n, "stroke-width", t.i = l), s !== t.n && u(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1374
+ return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1379
1375
  }, {
1380
1376
  e: void 0,
1381
1377
  t: void 0,
@@ -1391,7 +1387,7 @@ const In = (e) => (() => {
1391
1387
  var n = Tn();
1392
1388
  return b((t) => {
1393
1389
  var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
1394
- return r !== t.e && u(n, "width", t.e = r), a !== t.t && u(n, "height", t.t = a), o !== t.a && u(n, "fill", t.a = o), i !== t.o && u(n, "stroke", t.o = i), l !== t.i && u(n, "stroke-width", t.i = l), s !== t.n && u(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1390
+ return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1395
1391
  }, {
1396
1392
  e: void 0,
1397
1393
  t: void 0,
@@ -1407,7 +1403,7 @@ const xe = (e) => (() => {
1407
1403
  var n = On();
1408
1404
  return b((t) => {
1409
1405
  var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
1410
- return r !== t.e && u(n, "width", t.e = r), a !== t.t && u(n, "height", t.t = a), o !== t.a && u(n, "fill", t.a = o), i !== t.o && u(n, "stroke", t.o = i), l !== t.i && u(n, "stroke-width", t.i = l), s !== t.n && u(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1406
+ return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1411
1407
  }, {
1412
1408
  e: void 0,
1413
1409
  t: void 0,
@@ -1426,7 +1422,7 @@ const Dn = {
1426
1422
  const e = $(), n = Object.values(B);
1427
1423
  return (() => {
1428
1424
  var t = Mn(), r = t.firstChild;
1429
- return v(t, f(_, {
1425
+ return v(t, g(W, {
1430
1426
  each: n,
1431
1427
  children: (a) => {
1432
1428
  const o = Dn[a.id];
@@ -1434,12 +1430,12 @@ const Dn = {
1434
1430
  var i = An();
1435
1431
  return i.$$click = () => e.drawing.setState({
1436
1432
  selectedTool: a.id
1437
- }), v(i, f(o, {
1433
+ }), v(i, g(o, {
1438
1434
  class: "echo-drawing-toolbar-icon",
1439
1435
  "aria-hidden": "true"
1440
1436
  })), b((l) => {
1441
- var s = a.label, c = e.drawing.state.selectedTool === a.id, d = a.label, h = e.drawing.state.selectedTool === a.id;
1442
- return s !== l.e && u(i, "title", l.e = s), c !== l.t && u(i, "data-selected", l.t = c), d !== l.a && u(i, "aria-label", l.a = d), h !== l.o && u(i, "aria-pressed", l.o = h), l;
1437
+ var s = a.label, c = e.drawing.state.selectedTool === a.id, u = a.label, h = e.drawing.state.selectedTool === a.id;
1438
+ return s !== l.e && d(i, "title", l.e = s), c !== l.t && d(i, "data-selected", l.t = c), u !== l.a && d(i, "aria-label", l.a = u), h !== l.o && d(i, "aria-pressed", l.o = h), l;
1443
1439
  }, {
1444
1440
  e: void 0,
1445
1441
  t: void 0,
@@ -1448,9 +1444,9 @@ const Dn = {
1448
1444
  }), i;
1449
1445
  })();
1450
1446
  }
1451
- }), r), v(t, f(bn, {}), r), r.$$click = () => e.drawing.setState({
1447
+ }), r), v(t, g(bn, {}), r), r.$$click = () => e.drawing.setState({
1452
1448
  shapes: []
1453
- }, !0), v(r, f(it, {
1449
+ }, !0), v(r, g(it, {
1454
1450
  class: "echo-drawing-toolbar-icon",
1455
1451
  "aria-hidden": "true"
1456
1452
  })), t;
@@ -1460,7 +1456,7 @@ T(["click"]);
1460
1456
  var Ln = /* @__PURE__ */ w("<div class=echo-drawing-tooltip data-hide-when-drawing=true>");
1461
1457
  const jn = () => {
1462
1458
  const e = $(), n = k(() => e.drawing.state.showTooltip && e.drawing.state.mousePosition.y && e.drawing.state.mousePosition.x && e.widget.state.isOpen && !Rt());
1463
- return f(D, {
1459
+ return g(D, {
1464
1460
  get when() {
1465
1461
  return n();
1466
1462
  },
@@ -1477,11 +1473,11 @@ const jn = () => {
1477
1473
  });
1478
1474
  };
1479
1475
  var Nn = /* @__PURE__ */ w("<button>");
1480
- const W = (e) => {
1476
+ const _ = (e) => {
1481
1477
  const n = () => e.variant || "primary", t = () => e.size || "md";
1482
1478
  return (() => {
1483
1479
  var r = Nn();
1484
- return $t(r, ge(e, {
1480
+ return $t(r, ae(e, {
1485
1481
  get class() {
1486
1482
  return `echo-button echo-button-${n()} echo-button-${t()} ${e.class}`;
1487
1483
  }
@@ -1493,7 +1489,7 @@ const Vn = (e) => (() => {
1493
1489
  var n = qn();
1494
1490
  return b((t) => {
1495
1491
  var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
1496
- return r !== t.e && u(n, "width", t.e = r), a !== t.t && u(n, "height", t.t = a), o !== t.a && u(n, "fill", t.a = o), i !== t.o && u(n, "stroke", t.o = i), l !== t.i && u(n, "stroke-width", t.i = l), s !== t.n && u(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1492
+ return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
1497
1493
  }, {
1498
1494
  e: void 0,
1499
1495
  t: void 0,
@@ -1504,7 +1500,7 @@ const Vn = (e) => (() => {
1504
1500
  s: void 0
1505
1501
  }), n;
1506
1502
  })();
1507
- var Bn = /* @__PURE__ */ w("<div class=echo-stored-feedback-empty>No unsubmitted feedback"), Wn = /* @__PURE__ */ w("<div class=echo-stored-feedback><div class=echo-stored-feedback-header><h3>Unsubmitted Feedback</h3></div><div class=echo-stored-feedback-list>"), _n = /* @__PURE__ */ w("<div><div class=echo-stored-feedback-content><div class=echo-stored-feedback-path></div><div class=echo-stored-feedback-preview></div></div><div class=echo-stored-feedback-actions>");
1503
+ var Bn = /* @__PURE__ */ w("<div class=echo-stored-feedback-empty>No unsubmitted feedback"), _n = /* @__PURE__ */ w("<div class=echo-stored-feedback><div class=echo-stored-feedback-header><h3>Unsubmitted Feedback</h3></div><div class=echo-stored-feedback-list>"), Wn = /* @__PURE__ */ w("<div><div class=echo-stored-feedback-content><div class=echo-stored-feedback-path></div><div class=echo-stored-feedback-preview></div></div><div class=echo-stored-feedback-actions>");
1508
1504
  const Hn = () => {
1509
1505
  const e = $();
1510
1506
  let n;
@@ -1547,76 +1543,76 @@ const Hn = () => {
1547
1543
  event: "click",
1548
1544
  callback: l
1549
1545
  });
1550
- const d = (m, y) => {
1551
- const E = y ? `${m}${y}` : m;
1546
+ const u = (m, p) => {
1547
+ const E = p ? `${m}${p}` : m;
1552
1548
  window.location.href = E, e.widget.setState({
1553
1549
  isStoredFeedbackOpen: !1
1554
1550
  });
1555
1551
  }, h = (m) => {
1556
1552
  a() === m && e.methods.reset(), Ze(m);
1557
- const y = ke();
1558
- r(y), e.widget.setState({
1559
- pagesCount: y.length
1553
+ const p = ke();
1554
+ r(p), e.widget.setState({
1555
+ pagesCount: p.length
1560
1556
  });
1561
- }, g = (m) => {
1557
+ }, f = (m) => {
1562
1558
  if (m === "/") return "/";
1563
- const y = m.split("/");
1564
- return y.length <= 4 ? m : `/${y[1]}/.../${y[y.length - 1]}`;
1559
+ const p = m.split("/");
1560
+ return p.length <= 4 ? m : `/${p[1]}/.../${p[p.length - 1]}`;
1565
1561
  };
1566
- return f(D, {
1562
+ return g(D, {
1567
1563
  get when() {
1568
1564
  return e.widget.state.isStoredFeedbackOpen;
1569
1565
  },
1570
1566
  get children() {
1571
- var m = Wn(), y = m.firstChild;
1572
- y.firstChild;
1573
- var E = y.nextSibling, S = n;
1574
- return typeof S == "function" ? V(S, m) : n = m, v(y, f(W, {
1567
+ var m = _n(), p = m.firstChild;
1568
+ p.firstChild;
1569
+ var E = p.nextSibling, S = n;
1570
+ return typeof S == "function" ? V(S, m) : n = m, v(p, g(_, {
1575
1571
  variant: "secondary",
1576
1572
  size: "sm",
1577
1573
  onClick: () => e.widget.setState({
1578
1574
  isStoredFeedbackOpen: !1
1579
1575
  }),
1580
1576
  get children() {
1581
- return f(xe, {
1577
+ return g(xe, {
1582
1578
  size: 20
1583
1579
  });
1584
1580
  }
1585
- }), null), v(E, f(_, {
1581
+ }), null), v(E, g(W, {
1586
1582
  get each() {
1587
1583
  return t();
1588
1584
  },
1589
1585
  children: (C) => {
1590
- const p = k(() => C.path === a());
1586
+ const y = k(() => C.path === a());
1591
1587
  return (() => {
1592
- var P = _n(), z = P.firstChild, x = z.firstChild, H = x.nextSibling, q = z.nextSibling;
1593
- return v(x, () => g(C.path)), v(H, () => C.state.feedback.message), v(q, (() => {
1594
- var I = k(() => !p());
1595
- return () => I() && f(W, {
1588
+ var P = Wn(), z = P.firstChild, x = z.firstChild, H = x.nextSibling, q = z.nextSibling;
1589
+ return v(x, () => f(C.path)), v(H, () => C.state.feedback.message), v(q, (() => {
1590
+ var I = k(() => !y());
1591
+ return () => I() && g(_, {
1596
1592
  class: "echo-stored-feedback-link",
1597
1593
  variant: "secondary",
1598
1594
  size: "sm",
1599
- onClick: () => d(C.path, C.state.latestQuery),
1595
+ onClick: () => u(C.path, C.state.latestQuery),
1600
1596
  get children() {
1601
- return f(Vn, {});
1597
+ return g(Vn, {});
1602
1598
  }
1603
1599
  });
1604
- })(), null), v(q, f(W, {
1600
+ })(), null), v(q, g(_, {
1605
1601
  class: "echo-stored-feedback-delete",
1606
1602
  variant: "secondary",
1607
1603
  size: "sm",
1608
1604
  onClick: () => h(C.path),
1609
1605
  children: "Delete"
1610
1606
  }), null), b((I) => {
1611
- var Me = `echo-stored-feedback-item ${p() ? "echo-stored-feedback-item-current" : ""}`, Ae = C.path;
1612
- return Me !== I.e && Re(P, I.e = Me), Ae !== I.t && u(x, "title", I.t = Ae), I;
1607
+ var Me = `echo-stored-feedback-item ${y() ? "echo-stored-feedback-item-current" : ""}`, Ae = C.path;
1608
+ return Me !== I.e && Re(P, I.e = Me), Ae !== I.t && d(x, "title", I.t = Ae), I;
1613
1609
  }, {
1614
1610
  e: void 0,
1615
1611
  t: void 0
1616
1612
  }), P;
1617
1613
  })();
1618
1614
  }
1619
- }), null), v(E, f(D, {
1615
+ }), null), v(E, g(D, {
1620
1616
  get when() {
1621
1617
  return t().length === 0;
1622
1618
  },
@@ -1633,7 +1629,7 @@ const Rn = () => {
1633
1629
  let r;
1634
1630
  const a = () => {
1635
1631
  r && window.clearTimeout(r), r = window.setTimeout(() => {
1636
- const c = G("welcome_message_shown", !1);
1632
+ const c = K("welcome_message_shown", !1);
1637
1633
  !e.widget.state.isOpen && !e.widget.state.isStoredFeedbackOpen && c && t(!0);
1638
1634
  }, 4e3);
1639
1635
  }, o = () => {
@@ -1645,9 +1641,9 @@ const Rn = () => {
1645
1641
  isOpen: !e.widget.state.isOpen
1646
1642
  }), e.widget.setState({
1647
1643
  welcomeMessageIsClosing: !0
1648
- }), ie("welcome_message_shown", !0);
1644
+ }), se("welcome_message_shown", !0);
1649
1645
  };
1650
- Y(() => {
1646
+ ee(() => {
1651
1647
  e.widget.state.isOpen || (t(!1), a()), e.widget.state.isStoredFeedbackOpen && t(!1);
1652
1648
  });
1653
1649
  const s = (c) => {
@@ -1657,25 +1653,25 @@ const Rn = () => {
1657
1653
  };
1658
1654
  return [(() => {
1659
1655
  var c = Un();
1660
- return c.addEventListener("pointerleave", i), c.addEventListener("pointerenter", o), c.$$click = l, v(c, f(xn, {
1656
+ return c.addEventListener("pointerleave", i), c.addEventListener("pointerenter", o), c.$$click = l, v(c, g(xn, {
1661
1657
  stroke: "white",
1662
1658
  fill: "#ffffff",
1663
1659
  "aria-hidden": "true"
1664
1660
  }), null), v(c, (() => {
1665
- var d = k(() => e.widget.state.pagesCount > 0);
1666
- return () => d() && (() => {
1661
+ var u = k(() => e.widget.state.pagesCount > 0);
1662
+ return () => u() && (() => {
1667
1663
  var h = Yn();
1668
- return h.$$click = s, v(h, () => e.widget.state.pagesCount), b(() => u(h, "aria-label", `View ${e.widget.state.pagesCount} stored feedback items`)), h;
1664
+ return h.$$click = s, v(h, () => e.widget.state.pagesCount), b(() => d(h, "aria-label", `View ${e.widget.state.pagesCount} stored feedback items`)), h;
1669
1665
  })();
1670
- })(), null), b((d) => {
1671
- var h = e.widget.state.isOpen, g = `translateX(${n() ? "45px" : "0"})`, m = e.widget.state.isOpen;
1672
- return h !== d.e && u(c, "data-hidden", d.e = h), g !== d.t && ((d.t = g) != null ? c.style.setProperty("transform", g) : c.style.removeProperty("transform")), m !== d.a && u(c, "aria-expanded", d.a = m), d;
1666
+ })(), null), b((u) => {
1667
+ var h = e.widget.state.isOpen, f = `translateX(${n() ? "45px" : "0"})`, m = e.widget.state.isOpen;
1668
+ return h !== u.e && d(c, "data-hidden", u.e = h), f !== u.t && ((u.t = f) != null ? c.style.setProperty("transform", f) : c.style.removeProperty("transform")), m !== u.a && d(c, "aria-expanded", u.a = m), u;
1673
1669
  }, {
1674
1670
  e: void 0,
1675
1671
  t: void 0,
1676
1672
  a: void 0
1677
1673
  }), c;
1678
- })(), f(Hn, {})];
1674
+ })(), g(Hn, {})];
1679
1675
  };
1680
1676
  T(["click"]);
1681
1677
  var Kn = /* @__PURE__ */ w("<div class=echo-notification><div class=echo-notification-icon></div><div class=echo-notification-content><div class=echo-notification-title></div><div class=echo-notification-message>");
@@ -1699,7 +1695,7 @@ const Gn = () => {
1699
1695
  };
1700
1696
  return (() => {
1701
1697
  var r = Kn(), a = r.firstChild, o = a.nextSibling, i = o.firstChild, l = i.nextSibling;
1702
- return v(r, f(W, {
1698
+ return v(r, g(_, {
1703
1699
  class: "echo-notification-hide",
1704
1700
  variant: "secondary",
1705
1701
  size: "sm",
@@ -1708,17 +1704,17 @@ const Gn = () => {
1708
1704
  return e.widget.state.text.notification.hideTitle;
1709
1705
  },
1710
1706
  get children() {
1711
- return f(xe, {
1707
+ return g(xe, {
1712
1708
  size: 20
1713
1709
  });
1714
1710
  }
1715
1711
  }), a), v(a, (() => {
1716
1712
  var s = k(() => e.widget.state.notification.type === "success");
1717
- return () => s() ? f(zn, {
1713
+ return () => s() ? g(zn, {
1718
1714
  size: 32
1719
1715
  }) : (() => {
1720
1716
  var c = k(() => e.widget.state.notification.type === "error");
1721
- return () => c() ? f(In, {
1717
+ return () => c() ? g(In, {
1722
1718
  size: 32
1723
1719
  }) : null;
1724
1720
  })();
@@ -1726,8 +1722,8 @@ const Gn = () => {
1726
1722
  var s;
1727
1723
  return (s = e.widget.state.notification) == null ? void 0 : s.message;
1728
1724
  }), b((s) => {
1729
- var c = e.widget.state.notification.type, d = !e.widget.state.notification.type, h = !e.widget.state.notification.show;
1730
- return c !== s.e && u(r, "data-type", s.e = c), d !== s.t && u(r, "data-empty", s.t = d), h !== s.a && u(r, "data-hidden", s.a = h), s;
1725
+ var c = e.widget.state.notification.type, u = !e.widget.state.notification.type, h = !e.widget.state.notification.show;
1726
+ return c !== s.e && d(r, "data-type", s.e = c), u !== s.t && d(r, "data-empty", s.t = u), h !== s.a && d(r, "data-hidden", s.a = h), s;
1731
1727
  }, {
1732
1728
  e: void 0,
1733
1729
  t: void 0,
@@ -1760,43 +1756,43 @@ const Jn = () => {
1760
1756
  }, i = k(() => e.drawing.state.selectedShapeId ? e.drawing.state.shapes.find((s) => s.id === e.drawing.state.selectedShapeId) : null), l = k(() => {
1761
1757
  const s = i(), c = n == null ? void 0 : n.getBoundingClientRect();
1762
1758
  if (!s || !c) return null;
1763
- let d = null;
1759
+ let u = null;
1764
1760
  if (s.type === "rectangle") {
1765
1761
  const m = ot(s.points);
1766
1762
  if (!m) return null;
1767
- d = {
1763
+ u = {
1768
1764
  x: m.x + m.width / 2,
1769
1765
  y: m.y
1770
1766
  };
1771
1767
  } else if (s.type === "path" && s.points.length > 0)
1772
- d = {
1768
+ u = {
1773
1769
  x: s.points[0].x,
1774
1770
  y: s.points[0].y
1775
1771
  };
1776
1772
  else
1777
1773
  return null;
1778
- const h = 8, g = t();
1774
+ const h = 8, f = t();
1779
1775
  return {
1780
- x: Math.max(c.width / 2 + h, Math.min(window.innerWidth - c.width / 2 - h, d.x - g.x)),
1781
- y: Math.max(c.height + h, Math.min(window.innerHeight - h, d.y - g.y))
1776
+ x: Math.max(c.width / 2 + h, Math.min(window.innerWidth - c.width / 2 - h, u.x - f.x)),
1777
+ y: Math.max(c.height + h, Math.min(window.innerHeight - h, u.y - f.y))
1782
1778
  };
1783
1779
  });
1784
1780
  return (() => {
1785
1781
  var s = Xn(), c = n;
1786
- return typeof c == "function" ? V(c, s) : n = s, s.style.setProperty("top", "0"), s.style.setProperty("left", "0"), v(s, f(W, {
1782
+ return typeof c == "function" ? V(c, s) : n = s, s.style.setProperty("top", "0"), s.style.setProperty("left", "0"), v(s, g(_, {
1787
1783
  onClick: o,
1788
1784
  size: "sm",
1789
1785
  variant: "secondary",
1790
1786
  title: "Delete shape",
1791
1787
  get children() {
1792
- return f(it, {
1788
+ return g(it, {
1793
1789
  size: 20
1794
1790
  });
1795
1791
  }
1796
- })), b((d) => {
1797
- var m, y;
1798
- var h = !l(), g = `translate(calc(${(m = l()) == null ? void 0 : m.x}px - 50%), calc(${(y = l()) == null ? void 0 : y.y}px - 125%))`;
1799
- return h !== d.e && (s.hidden = d.e = h), g !== d.t && ((d.t = g) != null ? s.style.setProperty("transform", g) : s.style.removeProperty("transform")), d;
1792
+ })), b((u) => {
1793
+ var m, p;
1794
+ var h = !l(), f = `translate(calc(${(m = l()) == null ? void 0 : m.x}px - 50%), calc(${(p = l()) == null ? void 0 : p.y}px - 125%))`;
1795
+ return h !== u.e && (s.hidden = u.e = h), f !== u.t && ((u.t = f) != null ? s.style.setProperty("transform", f) : s.style.removeProperty("transform")), u;
1800
1796
  }, {
1801
1797
  e: void 0,
1802
1798
  t: void 0
@@ -1805,25 +1801,25 @@ const Jn = () => {
1805
1801
  };
1806
1802
  var Zn = /* @__PURE__ */ w("<button class=echo-welcome-message><span class=echo-welcome-message-pulsar></span><div class=echo-welcome-message-close role=button tabindex=0>");
1807
1803
  const Qn = () => {
1808
- const e = $(), n = G("welcome_message_shown", !1), t = (a) => {
1804
+ const e = $(), n = K("welcome_message_shown", !1), t = (a) => {
1809
1805
  a.stopPropagation(), e.widget.setState({
1810
1806
  welcomeMessageIsClosing: !0
1811
- }), ie("welcome_message_shown", !0);
1807
+ }), se("welcome_message_shown", !0);
1812
1808
  }, r = () => {
1813
1809
  e.widget.setState({
1814
1810
  isOpen: !0
1815
1811
  }), e.widget.setState({
1816
1812
  welcomeMessageIsClosing: !0
1817
- }), ie("welcome_message_shown", !0);
1813
+ }), se("welcome_message_shown", !0);
1818
1814
  };
1819
1815
  return n ? null : (() => {
1820
1816
  var a = Zn(), o = a.firstChild, i = o.nextSibling;
1821
- return a.$$click = r, a.style.setProperty("bottom", "80px"), a.style.setProperty("right", "20px"), v(a, () => e.widget.state.text.welcomeMessage.text, i), i.$$keydown = (l) => l.key === "Enter" && t(l), i.$$click = t, v(i, f(xe, {
1817
+ return a.$$click = r, a.style.setProperty("bottom", "80px"), a.style.setProperty("right", "20px"), v(a, () => e.widget.state.text.welcomeMessage.text, i), i.$$keydown = (l) => l.key === "Enter" && t(l), i.$$click = t, v(i, g(xe, {
1822
1818
  size: 16,
1823
1819
  strokeWidth: 3
1824
1820
  })), b((l) => {
1825
1821
  var s = e.widget.state.welcomeMessageIsClosing, c = e.widget.state.text.welcomeMessage.closeAriaLabel;
1826
- return s !== l.e && u(a, "data-hidden", l.e = s), c !== l.t && u(i, "aria-label", l.t = c), l;
1822
+ return s !== l.e && d(a, "data-hidden", l.e = s), c !== l.t && d(i, "aria-label", l.t = c), l;
1827
1823
  }, {
1828
1824
  e: void 0,
1829
1825
  t: void 0
@@ -1834,23 +1830,23 @@ T(["click", "keydown"]);
1834
1830
  var er = /* @__PURE__ */ w("<svg><rect class=echo-shape fill=transparent vector-effect=non-scaling-stroke role=img></svg>", !1, !0), tr = /* @__PURE__ */ w("<svg><path class=echo-shape fill=none vector-effect=non-scaling-stroke stroke-linecap=round role=img></svg>", !1, !0);
1835
1831
  const He = (e) => {
1836
1832
  const n = k(() => e.id === e.selectedShapeId);
1837
- return [f(D, {
1833
+ return [g(D, {
1838
1834
  get when() {
1839
1835
  return e.type === "rectangle";
1840
1836
  },
1841
1837
  get children() {
1842
- return f(nr, ge(e, {
1838
+ return g(nr, ae(e, {
1843
1839
  get isSelected() {
1844
1840
  return n();
1845
1841
  }
1846
1842
  }));
1847
1843
  }
1848
- }), f(D, {
1844
+ }), g(D, {
1849
1845
  get when() {
1850
1846
  return e.type === "path";
1851
1847
  },
1852
1848
  get children() {
1853
- return f(rr, ge(e, {
1849
+ return g(rr, ae(e, {
1854
1850
  get isSelected() {
1855
1851
  return n();
1856
1852
  }
@@ -1859,7 +1855,7 @@ const He = (e) => {
1859
1855
  })];
1860
1856
  }, nr = (e) => {
1861
1857
  const n = k(() => ot(e.points));
1862
- return f(D, {
1858
+ return g(D, {
1863
1859
  get when() {
1864
1860
  return n();
1865
1861
  },
@@ -1872,8 +1868,8 @@ const He = (e) => {
1872
1868
  var r;
1873
1869
  return (r = e.onShapeClick) == null ? void 0 : r.call(e, e.id);
1874
1870
  }, b((r) => {
1875
- var a = e.id, o = e.isSelected, i = n().x, l = n().y, s = n().width, c = n().height, d = e.color, h = B.rectangle.strokeWidth, g = e.isSelected ? B.rectangle.opacity.selected : B.rectangle.opacity.default, m = e.isSelected ? "5,5" : "none", y = e.isSelected ? "move" : "pointer", E = `Rectangle shape ${e.isSelected ? "(selected)" : ""}`, S = e.onShapeClick ? 0 : -1;
1876
- return a !== r.e && u(t, "data-shape-id", r.e = a), o !== r.t && u(t, "data-selected", r.t = o), i !== r.a && u(t, "x", r.a = i), l !== r.o && u(t, "y", r.o = l), s !== r.i && u(t, "width", r.i = s), c !== r.n && u(t, "height", r.n = c), d !== r.s && u(t, "stroke", r.s = d), h !== r.h && u(t, "stroke-width", r.h = h), g !== r.r && u(t, "opacity", r.r = g), m !== r.d && u(t, "stroke-dasharray", r.d = m), y !== r.l && u(t, "cursor", r.l = y), E !== r.u && u(t, "aria-label", r.u = E), S !== r.c && u(t, "tabindex", r.c = S), r;
1871
+ var a = e.id, o = e.isSelected, i = n().x, l = n().y, s = n().width, c = n().height, u = e.color, h = B.rectangle.strokeWidth, f = e.isSelected ? B.rectangle.opacity.selected : B.rectangle.opacity.default, m = e.isSelected ? "5,5" : "none", p = e.isSelected ? "move" : "pointer", E = `Rectangle shape ${e.isSelected ? "(selected)" : ""}`, S = e.onShapeClick ? 0 : -1;
1872
+ return a !== r.e && d(t, "data-shape-id", r.e = a), o !== r.t && d(t, "data-selected", r.t = o), i !== r.a && d(t, "x", r.a = i), l !== r.o && d(t, "y", r.o = l), s !== r.i && d(t, "width", r.i = s), c !== r.n && d(t, "height", r.n = c), u !== r.s && d(t, "stroke", r.s = u), h !== r.h && d(t, "stroke-width", r.h = h), f !== r.r && d(t, "opacity", r.r = f), m !== r.d && d(t, "stroke-dasharray", r.d = m), p !== r.l && d(t, "cursor", r.l = p), E !== r.u && d(t, "aria-label", r.u = E), S !== r.c && d(t, "tabindex", r.c = S), r;
1877
1873
  }, {
1878
1874
  e: void 0,
1879
1875
  t: void 0,
@@ -1893,7 +1889,7 @@ const He = (e) => {
1893
1889
  });
1894
1890
  }, rr = (e) => {
1895
1891
  const n = k(() => Kt(e.points));
1896
- return f(D, {
1892
+ return g(D, {
1897
1893
  get when() {
1898
1894
  return n();
1899
1895
  },
@@ -1906,8 +1902,8 @@ const He = (e) => {
1906
1902
  var r;
1907
1903
  return (r = e.onShapeClick) == null ? void 0 : r.call(e, e.id);
1908
1904
  }, b((r) => {
1909
- var a = e.id, o = e.isSelected, i = n(), l = e.color, s = B.path.strokeWidth, c = e.isSelected ? B.path.opacity.selected : B.path.opacity.default, d = e.isSelected ? "move" : "pointer", h = `Freehand shape ${e.isSelected ? "(selected)" : ""}`, g = e.onShapeClick ? 0 : -1;
1910
- return a !== r.e && u(t, "data-shape-id", r.e = a), o !== r.t && u(t, "data-selected", r.t = o), i !== r.a && u(t, "d", r.a = i), l !== r.o && u(t, "stroke", r.o = l), s !== r.i && u(t, "stroke-width", r.i = s), c !== r.n && u(t, "opacity", r.n = c), d !== r.s && u(t, "cursor", r.s = d), h !== r.h && u(t, "aria-label", r.h = h), g !== r.r && u(t, "tabindex", r.r = g), r;
1905
+ var a = e.id, o = e.isSelected, i = n(), l = e.color, s = B.path.strokeWidth, c = e.isSelected ? B.path.opacity.selected : B.path.opacity.default, u = e.isSelected ? "move" : "pointer", h = `Freehand shape ${e.isSelected ? "(selected)" : ""}`, f = e.onShapeClick ? 0 : -1;
1906
+ return a !== r.e && d(t, "data-shape-id", r.e = a), o !== r.t && d(t, "data-selected", r.t = o), i !== r.a && d(t, "d", r.a = i), l !== r.o && d(t, "stroke", r.o = l), s !== r.i && d(t, "stroke-width", r.i = s), c !== r.n && d(t, "opacity", r.n = c), u !== r.s && d(t, "cursor", r.s = u), h !== r.h && d(t, "aria-label", r.h = h), f !== r.r && d(t, "tabindex", r.r = f), r;
1911
1907
  }, {
1912
1908
  e: void 0,
1913
1909
  t: void 0,
@@ -1927,7 +1923,7 @@ var or = /* @__PURE__ */ w('<div class=echo-drawing-layer-container role=applica
1927
1923
  const ar = () => {
1928
1924
  const e = $();
1929
1925
  let n;
1930
- return pe(() => {
1926
+ return ye(() => {
1931
1927
  n == null || n.addEventListener("mousemove", e.drawing.methods.handleMove), n == null || n.addEventListener("mouseup", e.drawing.methods.handleEnd), n == null || n.addEventListener("touchmove", e.drawing.methods.handleMove, {
1932
1928
  passive: !1
1933
1929
  }), n == null || n.addEventListener("touchend", e.drawing.methods.handleEnd);
@@ -1935,7 +1931,7 @@ const ar = () => {
1935
1931
  n == null || n.removeEventListener("mousemove", e.drawing.methods.handleMove), n == null || n.removeEventListener("mouseup", e.drawing.methods.handleEnd), n == null || n.removeEventListener("touchmove", e.drawing.methods.handleMove), n == null || n.removeEventListener("touchend", e.drawing.methods.handleEnd);
1936
1932
  }), (() => {
1937
1933
  var t = or(), r = t.firstChild, a = r.firstChild, o = n;
1938
- return typeof o == "function" ? V(o, t) : n = t, v(t, f(jn, {}), r), v(t, f(Jn, {}), r), U(r, "touchend", e.drawing.methods.handleLeave, !0), U(r, "mouseleave", e.drawing.methods.handleLeave), U(r, "mouseenter", e.drawing.methods.handleEnter), r.$$touchmove = (i) => {
1934
+ return typeof o == "function" ? V(o, t) : n = t, v(t, g(jn, {}), r), v(t, g(Jn, {}), r), U(r, "touchend", e.drawing.methods.handleLeave, !0), U(r, "mouseleave", e.drawing.methods.handleLeave), U(r, "mouseenter", e.drawing.methods.handleEnter), r.$$touchmove = (i) => {
1939
1935
  i.preventDefault(), e.drawing.methods.handleMove(i);
1940
1936
  }, U(r, "mousemove", e.drawing.methods.handleMove, !0), r.$$touchstart = (i) => {
1941
1937
  i.preventDefault(), e.drawing.methods.handleStart(i), e.drawing.methods.handleEnter(i), e.drawing.setState({
@@ -1947,11 +1943,11 @@ const ar = () => {
1947
1943
  showTooltip: !1,
1948
1944
  hasDrawn: !0
1949
1945
  });
1950
- }, v(r, f(_, {
1946
+ }, v(r, g(W, {
1951
1947
  get each() {
1952
1948
  return e.drawing.state.shapes;
1953
1949
  },
1954
- children: (i) => f(He, {
1950
+ children: (i) => g(He, {
1955
1951
  get id() {
1956
1952
  return i.id;
1957
1953
  },
@@ -1971,7 +1967,7 @@ const ar = () => {
1971
1967
  return e.drawing.methods.handleShapeClick;
1972
1968
  }
1973
1969
  })
1974
- }), null), v(r, f(He, {
1970
+ }), null), v(r, g(He, {
1975
1971
  id: "temp",
1976
1972
  get type() {
1977
1973
  return e.drawing.state.selectedTool;
@@ -1990,7 +1986,7 @@ const ar = () => {
1990
1986
  width: e.widget.state.dimensions.width,
1991
1987
  height: e.widget.state.dimensions.height
1992
1988
  }, e.drawing.state.currentPoints, e.drawing.state.shapes);
1993
- return l !== i.e && ((i.e = l) != null ? t.style.setProperty("cursor", l) : t.style.removeProperty("cursor")), s !== i.t && u(a, "d", i.t = s), i;
1989
+ return l !== i.e && ((i.e = l) != null ? t.style.setProperty("cursor", l) : t.style.removeProperty("cursor")), s !== i.t && d(a, "d", i.t = s), i;
1994
1990
  }, {
1995
1991
  e: void 0,
1996
1992
  t: void 0
@@ -1998,7 +1994,7 @@ const ar = () => {
1998
1994
  })();
1999
1995
  };
2000
1996
  T(["mousedown", "touchstart", "mousemove", "touchmove", "touchend"]);
2001
- const de = (e) => ({
1997
+ const ue = (e) => ({
2002
1998
  handleTextChange: (o) => {
2003
1999
  const i = o.target;
2004
2000
  e(i.value);
@@ -2013,7 +2009,7 @@ const de = (e) => ({
2013
2009
  getCheckboxValue: (o) => Array.isArray(o) ? o : []
2014
2010
  });
2015
2011
  var ir = /* @__PURE__ */ w("<div class=echo-input role=group>"), sr = /* @__PURE__ */ w("<label class=echo-input-label><span>"), lr = /* @__PURE__ */ w('<span class=echo-input-required aria-label="Required field">*');
2016
- const ue = (e) => (() => {
2012
+ const he = (e) => (() => {
2017
2013
  var n = ir();
2018
2014
  return v(n, (() => {
2019
2015
  var t = k(() => !!e.label);
@@ -2030,8 +2026,8 @@ var cr = /* @__PURE__ */ w("<textarea class=echo-input-field rows=5>"), dr = /*
2030
2026
  const st = (e) => {
2031
2027
  const {
2032
2028
  handleTextChange: n
2033
- } = de(e.onChange);
2034
- return f(ue, {
2029
+ } = ue(e.onChange);
2030
+ return g(he, {
2035
2031
  get label() {
2036
2032
  return e.config.label;
2037
2033
  },
@@ -2042,8 +2038,8 @@ const st = (e) => {
2042
2038
  return [(() => {
2043
2039
  var t = cr();
2044
2040
  return U(t, "input", n, !0), b((r) => {
2045
- var a = e.config.id, o = e.config.placeholder, i = e.config.required, l = e.config.label || e.config.placeholder, s = e.config.required, c = e.value === "", d = `${e.config.id}-description`;
2046
- return a !== r.e && u(t, "id", r.e = a), o !== r.t && u(t, "placeholder", r.t = o), i !== r.a && (t.required = r.a = i), l !== r.o && u(t, "aria-label", r.o = l), s !== r.i && u(t, "aria-required", r.i = s), c !== r.n && u(t, "aria-invalid", r.n = c), d !== r.s && u(t, "aria-describedby", r.s = d), r;
2041
+ var a = e.config.id, o = e.config.placeholder, i = e.config.required, l = e.config.label || e.config.placeholder, s = e.config.required, c = e.value === "", u = `${e.config.id}-description`;
2042
+ return a !== r.e && d(t, "id", r.e = a), o !== r.t && d(t, "placeholder", r.t = o), i !== r.a && (t.required = r.a = i), l !== r.o && d(t, "aria-label", r.o = l), s !== r.i && d(t, "aria-required", r.i = s), c !== r.n && d(t, "aria-invalid", r.n = c), u !== r.s && d(t, "aria-describedby", r.s = u), r;
2047
2043
  }, {
2048
2044
  e: void 0,
2049
2045
  t: void 0,
@@ -2055,19 +2051,19 @@ const st = (e) => {
2055
2051
  }), b(() => t.value = e.value === void 0 ? "" : e.value), t;
2056
2052
  })(), (() => {
2057
2053
  var t = dr();
2058
- return v(t, () => e.config.placeholder), b(() => u(t, "id", `${e.config.id}-description`)), t;
2054
+ return v(t, () => e.config.placeholder), b(() => d(t, "id", `${e.config.id}-description`)), t;
2059
2055
  })()];
2060
2056
  }
2061
2057
  });
2062
2058
  };
2063
2059
  T(["input"]);
2064
2060
  var ur = /* @__PURE__ */ w("<fieldset class=echo-input-options role=group>"), hr = /* @__PURE__ */ w("<label class=echo-input-option><input type=checkbox><span>");
2065
- const fr = (e) => {
2061
+ const gr = (e) => {
2066
2062
  const {
2067
2063
  handleCheckboxChange: n,
2068
2064
  getCheckboxValue: t
2069
- } = de(e.onChange), r = () => t(e.value), a = () => r().length > 0;
2070
- return f(ue, {
2065
+ } = ue(e.onChange), r = () => t(e.value), a = () => r().length > 0;
2066
+ return g(he, {
2071
2067
  get label() {
2072
2068
  return e.config.label;
2073
2069
  },
@@ -2076,24 +2072,24 @@ const fr = (e) => {
2076
2072
  },
2077
2073
  get children() {
2078
2074
  var o = ur();
2079
- return v(o, f(_, {
2075
+ return v(o, g(W, {
2080
2076
  get each() {
2081
2077
  return e.config.options;
2082
2078
  },
2083
2079
  children: (i, l) => (() => {
2084
- var s = hr(), c = s.firstChild, d = c.nextSibling;
2085
- return c.addEventListener("change", (h) => n(r(), i.value, h.currentTarget.checked)), v(d, () => i.label), b(() => c.required = e.config.required && !a() && l() === 0), b(() => c.value = i.value), b(() => c.checked = r().includes(i.value)), s;
2080
+ var s = hr(), c = s.firstChild, u = c.nextSibling;
2081
+ return c.addEventListener("change", (h) => n(r(), i.value, h.currentTarget.checked)), v(u, () => i.label), b(() => c.required = e.config.required && !a() && l() === 0), b(() => c.value = i.value), b(() => c.checked = r().includes(i.value)), s;
2086
2082
  })()
2087
- })), b(() => u(o, "aria-required", e.config.required)), o;
2083
+ })), b(() => d(o, "aria-required", e.config.required)), o;
2088
2084
  }
2089
2085
  });
2090
2086
  };
2091
- var gr = /* @__PURE__ */ w("<fieldset class=echo-input-options role=radiogroup>"), mr = /* @__PURE__ */ w("<label class=echo-input-option><input type=radio><span>");
2087
+ var fr = /* @__PURE__ */ w("<fieldset class=echo-input-options role=radiogroup>"), mr = /* @__PURE__ */ w("<label class=echo-input-option><input type=radio><span>");
2092
2088
  const vr = (e) => {
2093
2089
  const {
2094
2090
  handleSelectChange: n
2095
- } = de(e.onChange);
2096
- return f(ue, {
2091
+ } = ue(e.onChange);
2092
+ return g(he, {
2097
2093
  get label() {
2098
2094
  return e.config.label;
2099
2095
  },
@@ -2101,8 +2097,8 @@ const vr = (e) => {
2101
2097
  return e.config.required;
2102
2098
  },
2103
2099
  get children() {
2104
- var t = gr();
2105
- return v(t, f(_, {
2100
+ var t = fr();
2101
+ return v(t, g(W, {
2106
2102
  get each() {
2107
2103
  return e.config.options;
2108
2104
  },
@@ -2110,24 +2106,24 @@ const vr = (e) => {
2110
2106
  var a = mr(), o = a.firstChild, i = o.nextSibling;
2111
2107
  return o.addEventListener("change", () => n(r.value)), v(i, () => r.label), b((l) => {
2112
2108
  var s = e.config.id, c = e.config.required;
2113
- return s !== l.e && u(o, "name", l.e = s), c !== l.t && (o.required = l.t = c), l;
2109
+ return s !== l.e && d(o, "name", l.e = s), c !== l.t && (o.required = l.t = c), l;
2114
2110
  }, {
2115
2111
  e: void 0,
2116
2112
  t: void 0
2117
2113
  }), b(() => o.value = r.value), b(() => o.checked = e.value === r.value), a;
2118
2114
  })()
2119
- })), b(() => u(t, "aria-required", e.config.required)), t;
2115
+ })), b(() => d(t, "aria-required", e.config.required)), t;
2120
2116
  }
2121
2117
  });
2122
2118
  };
2123
- var br = /* @__PURE__ */ w("<div class=echo-select-dropdown role=listbox>"), wr = /* @__PURE__ */ w('<div class=echo-select><button type=button class=echo-select-trigger aria-haspopup=listbox><span></span><svg class=echo-select-arrow width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="m6 9 6 6 6-6"></path></svg></button><input type=text class=visually-hidden aria-hidden=true>'), yr = /* @__PURE__ */ w("<button type=button class=echo-select-option role=option>");
2124
- const pr = (e) => {
2119
+ var br = /* @__PURE__ */ w("<div class=echo-select-dropdown role=listbox>"), wr = /* @__PURE__ */ w('<div class=echo-select><button type=button class=echo-select-trigger aria-haspopup=listbox><span></span><svg class=echo-select-arrow width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="m6 9 6 6 6-6"></path></svg></button><input type=text class=visually-hidden aria-hidden=true>'), pr = /* @__PURE__ */ w("<button type=button class=echo-select-option role=option>");
2120
+ const yr = (e) => {
2125
2121
  const {
2126
2122
  handleSelectChange: n
2127
- } = de(e.onChange), [t, r] = A(!1);
2123
+ } = ue(e.onChange), [t, r] = A(!1);
2128
2124
  let a, o, i;
2129
- const l = () => e.config.options.find((h) => h.value === (e.value === void 0 ? "" : e.value)), s = (h, g) => {
2130
- g.stopPropagation(), h.value === e.value ? e.config.required || n("") : n(h.value), r(!1);
2125
+ const l = () => e.config.options.find((h) => h.value === (e.value === void 0 ? "" : e.value)), s = (h, f) => {
2126
+ f.stopPropagation(), h.value === e.value ? e.config.required || n("") : n(h.value), r(!1);
2131
2127
  }, c = () => {
2132
2128
  r(!t());
2133
2129
  };
@@ -2137,7 +2133,7 @@ const pr = (e) => {
2137
2133
  if (!t() || !a) return;
2138
2134
  h.composedPath().includes(a) || r(!1);
2139
2135
  }
2140
- }), f(ue, {
2136
+ }), g(he, {
2141
2137
  get label() {
2142
2138
  return e.config.label;
2143
2139
  },
@@ -2145,41 +2141,41 @@ const pr = (e) => {
2145
2141
  return e.config.required;
2146
2142
  },
2147
2143
  get children() {
2148
- var h = wr(), g = h.firstChild, m = g.firstChild, y = g.nextSibling, E = a;
2149
- typeof E == "function" ? V(E, h) : a = h, g.$$click = (p) => {
2150
- p.stopPropagation(), c();
2144
+ var h = wr(), f = h.firstChild, m = f.firstChild, p = f.nextSibling, E = a;
2145
+ typeof E == "function" ? V(E, h) : a = h, f.$$click = (y) => {
2146
+ y.stopPropagation(), c();
2151
2147
  };
2152
2148
  var S = o;
2153
- typeof S == "function" ? V(S, g) : o = g, v(m, () => {
2154
- var p;
2155
- return ((p = l()) == null ? void 0 : p.label) || e.config.placeholder;
2156
- }), v(h, f(D, {
2149
+ typeof S == "function" ? V(S, f) : o = f, v(m, () => {
2150
+ var y;
2151
+ return ((y = l()) == null ? void 0 : y.label) || e.config.placeholder;
2152
+ }), v(h, g(D, {
2157
2153
  get when() {
2158
2154
  return t();
2159
2155
  },
2160
2156
  get children() {
2161
- var p = br();
2162
- return v(p, f(_, {
2157
+ var y = br();
2158
+ return v(y, g(W, {
2163
2159
  get each() {
2164
2160
  return e.config.options;
2165
2161
  },
2166
2162
  children: (P) => (() => {
2167
- var z = yr();
2163
+ var z = pr();
2168
2164
  return z.$$click = (x) => s(P, x), v(z, () => P.label), b((x) => {
2169
2165
  var H = P.value === e.value, q = P.value === e.value;
2170
- return H !== x.e && u(z, "aria-selected", x.e = H), q !== x.t && u(z, "data-selected", x.t = q), x;
2166
+ return H !== x.e && d(z, "aria-selected", x.e = H), q !== x.t && d(z, "data-selected", x.t = q), x;
2171
2167
  }, {
2172
2168
  e: void 0,
2173
2169
  t: void 0
2174
2170
  }), z;
2175
2171
  })()
2176
- })), p;
2172
+ })), y;
2177
2173
  }
2178
- }), y);
2174
+ }), p);
2179
2175
  var C = i;
2180
- return typeof C == "function" ? V(C, y) : i = y, b((p) => {
2176
+ return typeof C == "function" ? V(C, p) : i = p, b((y) => {
2181
2177
  var P = t(), z = !e.value, x = e.config.required, H = t(), q = e.config.required, I = e.config.required;
2182
- return P !== p.e && u(g, "data-open", p.e = P), z !== p.t && u(g, "data-placeholder", p.t = z), x !== p.a && u(g, "data-required", p.a = x), H !== p.o && u(g, "aria-expanded", p.o = H), q !== p.i && u(g, "aria-required", p.i = q), I !== p.n && (y.required = p.n = I), p;
2178
+ return P !== y.e && d(f, "data-open", y.e = P), z !== y.t && d(f, "data-placeholder", y.t = z), x !== y.a && d(f, "data-required", y.a = x), H !== y.o && d(f, "aria-expanded", y.o = H), q !== y.i && d(f, "aria-required", y.i = q), I !== y.n && (p.required = y.n = I), y;
2183
2179
  }, {
2184
2180
  e: void 0,
2185
2181
  t: void 0,
@@ -2187,7 +2183,7 @@ const pr = (e) => {
2187
2183
  o: void 0,
2188
2184
  i: void 0,
2189
2185
  n: void 0
2190
- }), b(() => y.value = e.value === void 0 ? "" : e.value), h;
2186
+ }), b(() => p.value = e.value === void 0 ? "" : e.value), h;
2191
2187
  }
2192
2188
  });
2193
2189
  };
@@ -2196,8 +2192,8 @@ var xr = /* @__PURE__ */ w("<input type=text class=echo-input-field>");
2196
2192
  const kr = (e) => {
2197
2193
  const {
2198
2194
  handleTextChange: n
2199
- } = de(e.onChange);
2200
- return f(ue, {
2195
+ } = ue(e.onChange);
2196
+ return g(he, {
2201
2197
  get label() {
2202
2198
  return e.config.label;
2203
2199
  },
@@ -2207,18 +2203,19 @@ const kr = (e) => {
2207
2203
  get children() {
2208
2204
  var t = xr();
2209
2205
  return U(t, "input", n, !0), b((r) => {
2210
- var a = e.config.placeholder, o = e.config.required;
2211
- return a !== r.e && u(t, "placeholder", r.e = a), o !== r.t && (t.required = r.t = o), r;
2206
+ var a = e.config.placeholder, o = e.config.required, i = e.config.disabled;
2207
+ return a !== r.e && d(t, "placeholder", r.e = a), o !== r.t && (t.required = r.t = o), i !== r.a && (t.disabled = r.a = i), r;
2212
2208
  }, {
2213
2209
  e: void 0,
2214
- t: void 0
2210
+ t: void 0,
2211
+ a: void 0
2215
2212
  }), b(() => t.value = e.value === void 0 ? "" : e.value), t;
2216
2213
  }
2217
2214
  });
2218
2215
  };
2219
2216
  T(["input"]);
2220
2217
  var Sr = /* @__PURE__ */ w("<div class=echo-input-error>Invalid input type"), Cr = /* @__PURE__ */ w("<div class=echo-input-error>Unsupported input type: ");
2221
- const $r = (e) => f(D, {
2218
+ const $r = (e) => g(D, {
2222
2219
  get when() {
2223
2220
  return e.config.type;
2224
2221
  },
@@ -2227,7 +2224,7 @@ const $r = (e) => f(D, {
2227
2224
  return Sr();
2228
2225
  },
2229
2226
  get children() {
2230
- return f(ht, {
2227
+ return g(ht, {
2231
2228
  get fallback() {
2232
2229
  return (() => {
2233
2230
  var n = Cr();
@@ -2235,29 +2232,26 @@ const $r = (e) => f(D, {
2235
2232
  })();
2236
2233
  },
2237
2234
  get children() {
2238
- return [f(ne, {
2235
+ return [g(ne, {
2239
2236
  get when() {
2240
2237
  return e.config.type === "text";
2241
2238
  },
2242
2239
  get children() {
2243
- return f(kr, {
2244
- get config() {
2245
- return e.config;
2246
- },
2240
+ return g(kr, ae(e, {
2247
2241
  get value() {
2248
2242
  return e.value;
2249
2243
  },
2250
- get onChange() {
2251
- return e.onChange;
2244
+ get config() {
2245
+ return e.config;
2252
2246
  }
2253
- });
2247
+ }));
2254
2248
  }
2255
- }), f(ne, {
2249
+ }), g(ne, {
2256
2250
  get when() {
2257
2251
  return e.config.type === "textarea";
2258
2252
  },
2259
2253
  get children() {
2260
- return f(st, {
2254
+ return g(st, {
2261
2255
  get config() {
2262
2256
  return e.config;
2263
2257
  },
@@ -2269,12 +2263,12 @@ const $r = (e) => f(D, {
2269
2263
  }
2270
2264
  });
2271
2265
  }
2272
- }), f(ne, {
2266
+ }), g(ne, {
2273
2267
  get when() {
2274
2268
  return e.config.type === "radio";
2275
2269
  },
2276
2270
  get children() {
2277
- return f(vr, {
2271
+ return g(vr, {
2278
2272
  get config() {
2279
2273
  return e.config;
2280
2274
  },
@@ -2286,12 +2280,12 @@ const $r = (e) => f(D, {
2286
2280
  }
2287
2281
  });
2288
2282
  }
2289
- }), f(ne, {
2283
+ }), g(ne, {
2290
2284
  get when() {
2291
2285
  return e.config.type === "checkbox";
2292
2286
  },
2293
2287
  get children() {
2294
- return f(fr, {
2288
+ return g(gr, {
2295
2289
  get config() {
2296
2290
  return e.config;
2297
2291
  },
@@ -2303,12 +2297,12 @@ const $r = (e) => f(D, {
2303
2297
  }
2304
2298
  });
2305
2299
  }
2306
- }), f(ne, {
2300
+ }), g(ne, {
2307
2301
  get when() {
2308
2302
  return e.config.type === "select";
2309
2303
  },
2310
2304
  get children() {
2311
- return f(pr, {
2305
+ return g(yr, {
2312
2306
  get config() {
2313
2307
  return e.config;
2314
2308
  },
@@ -2369,7 +2363,7 @@ const $r = (e) => f(D, {
2369
2363
  timeInfo: Tr(),
2370
2364
  console: Yt()
2371
2365
  });
2372
- var Or = /* @__PURE__ */ w("<fieldset class=echo-input-options><legend class=visually-hidden>Additional Information"), Mr = /* @__PURE__ */ w('<section class=echo-feedback data-hide-when-drawing=true role=dialog aria-label="Feedback Form"><form class=echo-feedback-content aria-label="Submit Feedback"><header class=echo-feedback-header><h3 class=echo-feedback-title id=feedback-form-title></h3><div class=echo-feedback-header-actions role=toolbar aria-label="Form controls"></div></header><fieldset class=echo-input-options><legend class=visually-hidden>Feedback Message');
2366
+ var Or = /* @__PURE__ */ w("<fieldset class=echo-input-options-wrapper><legend class=visually-hidden>Additional Information"), Mr = /* @__PURE__ */ w('<section class=echo-feedback data-hide-when-drawing=true role=dialog aria-label="Feedback Form"><form class=echo-feedback-content aria-label="Submit Feedback"><header class=echo-feedback-header><h3 class=echo-feedback-title id=feedback-form-title></h3><div class=echo-feedback-header-actions role=toolbar aria-label="Form controls"></div></header><fieldset class=echo-input-options-wrapper><legend class=visually-hidden>Feedback Message</legend></fieldset><footer class=echo-feedback-footer>');
2373
2367
  const Ar = () => {
2374
2368
  const e = $(), n = async (a) => {
2375
2369
  a.preventDefault();
@@ -2389,14 +2383,16 @@ const Ar = () => {
2389
2383
  isMinimized: !1
2390
2384
  });
2391
2385
  };
2392
- return Y(() => {
2386
+ return ee(() => {
2393
2387
  e.widget.state.isOpen && requestAnimationFrame(() => {
2394
2388
  var a;
2395
2389
  (a = document.querySelector(".echo-input-field")) == null || a.focus();
2396
2390
  });
2397
2391
  }), (() => {
2398
2392
  var a = Mr(), o = a.firstChild, i = o.firstChild, l = i.firstChild, s = l.nextSibling, c = i.nextSibling;
2399
- return c.firstChild, a.$$click = () => e.feedback.state.isMinimized && r(), o.addEventListener("submit", n), v(l, () => e.widget.state.text.feedbackForm.title), v(s, f(W, {
2393
+ c.firstChild;
2394
+ var u = c.nextSibling;
2395
+ return a.$$click = () => e.feedback.state.isMinimized && r(), o.addEventListener("submit", n), v(l, () => e.widget.state.text.feedbackForm.title), v(s, g(_, {
2400
2396
  type: "button",
2401
2397
  title: "Hide form",
2402
2398
  variant: "secondary",
@@ -2404,11 +2400,11 @@ const Ar = () => {
2404
2400
  onClick: t,
2405
2401
  "aria-label": "Minimize feedback form",
2406
2402
  get children() {
2407
- return f(yn, {
2403
+ return g(pn, {
2408
2404
  size: 20
2409
2405
  });
2410
2406
  }
2411
- }), null), v(s, f(W, {
2407
+ }), null), v(s, g(_, {
2412
2408
  type: "button",
2413
2409
  title: "Close form",
2414
2410
  variant: "secondary",
@@ -2418,11 +2414,11 @@ const Ar = () => {
2418
2414
  }),
2419
2415
  "aria-label": "Close feedback form",
2420
2416
  get children() {
2421
- return f(xe, {
2417
+ return g(xe, {
2422
2418
  size: 20
2423
2419
  });
2424
2420
  }
2425
- }), null), v(c, f(st, {
2421
+ }), null), v(c, g(st, {
2426
2422
  get config() {
2427
2423
  return {
2428
2424
  type: "textarea",
@@ -2435,35 +2431,35 @@ const Ar = () => {
2435
2431
  get value() {
2436
2432
  return e.feedback.state.message;
2437
2433
  },
2438
- onChange: (d) => e.feedback.setState({
2439
- message: d
2434
+ onChange: (h) => e.feedback.setState({
2435
+ message: h
2440
2436
  })
2441
- }), null), v(o, f(D, {
2437
+ }), null), v(o, g(D, {
2442
2438
  get when() {
2443
- var d;
2444
- return (d = e.widget.state.customInputs) == null ? void 0 : d.length;
2439
+ var h;
2440
+ return (h = e.widget.state.customInputs) == null ? void 0 : h.length;
2445
2441
  },
2446
2442
  get children() {
2447
- var d = Or();
2448
- return d.firstChild, v(d, f(_, {
2443
+ var h = Or();
2444
+ return h.firstChild, v(h, g(W, {
2449
2445
  get each() {
2450
2446
  return e.widget.state.customInputs;
2451
2447
  },
2452
- children: (h) => f($r, {
2453
- config: h,
2448
+ children: (f) => g($r, {
2449
+ config: f,
2454
2450
  get value() {
2455
- return e.feedback.state.customInputValues[h.id];
2451
+ return e.feedback.state.customInputValues[f.id];
2456
2452
  },
2457
- onChange: (g) => e.feedback.setState({
2453
+ onChange: (m) => e.feedback.setState({
2458
2454
  customInputValues: {
2459
2455
  ...e.feedback.state.customInputValues,
2460
- [h.id]: g
2456
+ [f.id]: m
2461
2457
  }
2462
2458
  })
2463
2459
  })
2464
- }), null), d;
2460
+ }), null), h;
2465
2461
  }
2466
- }), null), v(o, f(W, {
2462
+ }), u), v(u, g(_, {
2467
2463
  type: "submit",
2468
2464
  variant: "primary",
2469
2465
  size: "lg",
@@ -2474,9 +2470,9 @@ const Ar = () => {
2474
2470
  get children() {
2475
2471
  return e.widget.state.text.feedbackForm.submitButton;
2476
2472
  }
2477
- }), null), b((d) => {
2478
- var h = e.feedback.state.isMinimized, g = e.feedback.state.isMinimized ? "pointer" : "default", m = !e.feedback.state.isMinimized;
2479
- return h !== d.e && u(a, "data-minimized", d.e = h), g !== d.t && ((d.t = g) != null ? a.style.setProperty("cursor", g) : a.style.removeProperty("cursor")), m !== d.a && u(a, "aria-expanded", d.a = m), d;
2473
+ })), b((h) => {
2474
+ var f = e.feedback.state.isMinimized, m = e.feedback.state.isMinimized ? "pointer" : "default", p = !e.feedback.state.isMinimized;
2475
+ return f !== h.e && d(a, "data-minimized", h.e = f), m !== h.t && ((h.t = m) != null ? a.style.setProperty("cursor", m) : a.style.removeProperty("cursor")), p !== h.a && d(a, "aria-expanded", h.a = p), h;
2480
2476
  }, {
2481
2477
  e: void 0,
2482
2478
  t: void 0,
@@ -2486,21 +2482,21 @@ const Ar = () => {
2486
2482
  };
2487
2483
  T(["click"]);
2488
2484
  var Dr = /* @__PURE__ */ w("<style>"), Fr = /* @__PURE__ */ w("<div class=echo-launcher>"), Lr = /* @__PURE__ */ w("<dialog class=echo-overlay>"), jr = /* @__PURE__ */ w("<div class=echo-root>");
2489
- const Nr = (e) => f(Ot, {
2485
+ const Nr = (e) => g(Ot, {
2490
2486
  useShadow: !0,
2491
2487
  get mount() {
2492
2488
  return document.body;
2493
2489
  },
2494
2490
  get children() {
2495
- return f(cn, ge(e, {
2491
+ return g(cn, ae(e, {
2496
2492
  get children() {
2497
- return f(Wr, {
2493
+ return g(_r, {
2498
2494
  get children() {
2499
- return [f(qr, {
2495
+ return [g(qr, {
2500
2496
  get primaryColor() {
2501
2497
  return e.primaryColor;
2502
2498
  }
2503
- }), f(Vr, {})];
2499
+ }), g(Vr, {})];
2504
2500
  }
2505
2501
  });
2506
2502
  }
@@ -2508,11 +2504,11 @@ const Nr = (e) => f(Ot, {
2508
2504
  }
2509
2505
  }), qr = (e) => {
2510
2506
  const [n, t] = A("");
2511
- return Y(() => {
2507
+ return ee(() => {
2512
2508
  const r = `
2513
2509
  .echo-root {
2514
2510
  --primary-color: ${e.primaryColor};
2515
- --primary-text-color: ${_t(e.primaryColor)};
2511
+ --primary-text-color: ${Wt(e.primaryColor)};
2516
2512
  }
2517
2513
  `;
2518
2514
  t(r);
@@ -2522,22 +2518,21 @@ const Nr = (e) => f(Ot, {
2522
2518
  })();
2523
2519
  }, Vr = () => {
2524
2520
  const e = $();
2525
- return Y(() => {
2526
- }), [(() => {
2521
+ return [(() => {
2527
2522
  var n = Fr();
2528
- return v(n, f(Rn, {}), null), v(n, f(Qn, {}), null), v(n, f(Gn, {}), null), b(() => u(n, "data-hidden", e.widget.state.isOpen)), n;
2529
- })(), f(Br, {
2523
+ return v(n, g(Rn, {}), null), v(n, g(Qn, {}), null), v(n, g(Gn, {}), null), b(() => d(n, "data-hidden", e.widget.state.isOpen)), n;
2524
+ })(), g(Br, {
2530
2525
  get children() {
2531
- return [f(Ar, {}), f(Fn, {}), f(ar, {})];
2526
+ return [g(Ar, {}), g(Fn, {}), g(ar, {})];
2532
2527
  }
2533
2528
  })];
2534
2529
  }, Br = (e) => {
2535
2530
  const [n, t] = A(), r = $(), a = dn(() => n());
2536
- return Y(() => {
2531
+ return ee(() => {
2537
2532
  n() && r.widget.setState({
2538
2533
  dimensions: a()
2539
2534
  });
2540
- }), Y(() => {
2535
+ }), ee(() => {
2541
2536
  var o, i;
2542
2537
  r.widget.state.isOpen ? (o = n()) == null || o.showModal() : (i = n()) == null || i.close();
2543
2538
  }), (() => {
@@ -2546,18 +2541,18 @@ const Nr = (e) => f(Ot, {
2546
2541
  isOpen: !1
2547
2542
  })), V(t, o), v(o, () => e.children), b((i) => {
2548
2543
  var l = `${a().height}px`, s = `${a().width}px`, c = !r.widget.state.isOpen;
2549
- return l !== i.e && ((i.e = l) != null ? o.style.setProperty("height", l) : o.style.removeProperty("height")), s !== i.t && ((i.t = s) != null ? o.style.setProperty("width", s) : o.style.removeProperty("width")), c !== i.a && u(o, "data-hidden", i.a = c), i;
2544
+ return l !== i.e && ((i.e = l) != null ? o.style.setProperty("height", l) : o.style.removeProperty("height")), s !== i.t && ((i.t = s) != null ? o.style.setProperty("width", s) : o.style.removeProperty("width")), c !== i.a && d(o, "data-hidden", i.a = c), i;
2550
2545
  }, {
2551
2546
  e: void 0,
2552
2547
  t: void 0,
2553
2548
  a: void 0
2554
2549
  }), o;
2555
2550
  })();
2556
- }, Wr = (e) => {
2551
+ }, _r = (e) => {
2557
2552
  const n = $();
2558
2553
  return un({
2559
2554
  onUrlChange: (t) => n.methods.handlePageChange(t)
2560
- }), pe(() => {
2555
+ }), ye(() => {
2561
2556
  Ht(), Jt((t) => {
2562
2557
  if (n.widget.state.isOpen && t.type === "keydown")
2563
2558
  switch (t.key) {
@@ -2570,9 +2565,9 @@ const Nr = (e) => f(Ot, {
2570
2565
  Ut(), Zt();
2571
2566
  }), (() => {
2572
2567
  var t = jr();
2573
- return v(t, () => e.children), b(() => u(t, "data-drawing", n.drawing.state.isDrawing)), t;
2568
+ return v(t, () => e.children), b(() => d(t, "data-drawing", n.drawing.state.isDrawing)), t;
2574
2569
  })();
2575
- }, _r = {
2570
+ }, Wr = {
2576
2571
  welcomeMessage: {
2577
2572
  text: "Click here to leave feedback",
2578
2573
  closeAriaLabel: "Close welcome message"
@@ -2608,9 +2603,9 @@ function Yr(e) {
2608
2603
  onSubmit: r,
2609
2604
  textConfig: a = {},
2610
2605
  customInputs: o = []
2611
- } = e, i = Ke(_r, a), l = document.createElement("div");
2606
+ } = e, i = Ke(Wr, a), l = document.createElement("div");
2612
2607
  l.id = "echo-container", document.body.appendChild(l);
2613
- const s = kt(() => f(Nr, {
2608
+ const s = kt(() => g(Nr, {
2614
2609
  position: n,
2615
2610
  primaryColor: t,
2616
2611
  textConfig: i,