@contember/echo 0.0.29 → 0.0.31

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 S, createSignal as A, onCleanup as ee, $PROXY as R, $TRACK as Fe, getListener as Ce, batch as ct, onMount as ye, createContext as dt, createComponent as g, useContext as ut, For as _, Show as D, mergeProps as ge, Switch as ht, Match as te } from "solid-js";
2
- import gt from "html2canvas";
3
- const ft = [
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 = [
4
4
  "allowfullscreen",
5
5
  "async",
6
6
  "autofocus",
@@ -34,7 +34,7 @@ const ft = [
34
34
  "isMap",
35
35
  "noModule",
36
36
  "playsInline",
37
- ...ft
37
+ ...gt
38
38
  ]), vt = /* @__PURE__ */ new Set([
39
39
  "innerHTML",
40
40
  "textContent",
@@ -123,10 +123,10 @@ function xt(e, n, t) {
123
123
  const d = c.get(n[i]);
124
124
  if (d != null)
125
125
  if (l < d && d < o) {
126
- let h = i, f = 1, m;
127
- for (; ++h < a && h < o && !((m = c.get(n[h])) == null || m !== d + f); )
128
- f++;
129
- if (f > d - l) {
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
130
  const y = n[i];
131
131
  for (; l < d; ) e.insertBefore(t[l++], y);
132
132
  } else e.replaceChild(t[l++], n[i++]);
@@ -160,13 +160,13 @@ function T(e, n = window.document) {
160
160
  }
161
161
  }
162
162
  function u(e, n, t) {
163
- le(e) || (t == null ? e.removeAttribute(n) : e.setAttribute(n, t));
163
+ ce(e) || (t == null ? e.removeAttribute(n) : e.setAttribute(n, t));
164
164
  }
165
165
  function St(e, n, t) {
166
- le(e) || (t ? e.setAttribute(n, "") : e.removeAttribute(n));
166
+ ce(e) || (t ? e.setAttribute(n, "") : e.removeAttribute(n));
167
167
  }
168
168
  function Re(e, n) {
169
- le(e) || (n == null ? e.removeAttribute("class") : e.className = n);
169
+ ce(e) || (n == null ? e.removeAttribute("class") : e.className = n);
170
170
  }
171
171
  function U(e, n, t, r) {
172
172
  if (r)
@@ -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 = oe(e, n.children, a.children)
207
+ () => a.children = ae(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 oe(e, n, r, t);
215
- b((a) => oe(e, n(), a, 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);
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 le(e) {
231
+ function ce(e) {
232
232
  return !!L.context && !L.done && (!e || e.isConnected);
233
233
  }
234
234
  function Pt(e) {
@@ -247,18 +247,18 @@ function Ne(e, n, t, r, a, o, i) {
247
247
  if (n === "ref")
248
248
  o || t(e);
249
249
  else if (n.slice(0, 3) === "on:") {
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);
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);
252
252
  } else if (n.slice(0, 10) === "oncapture:") {
253
- const f = n.slice(10);
254
- r && e.removeEventListener(f, r, !0), t && e.addEventListener(f, t, !0);
253
+ const g = n.slice(10);
254
+ r && e.removeEventListener(g, r, !0), t && e.addEventListener(g, t, !0);
255
255
  } else if (n.slice(0, 2) === "on") {
256
- const f = n.slice(2).toLowerCase(), m = pt.has(f);
256
+ const g = n.slice(2).toLowerCase(), m = pt.has(g);
257
257
  if (!m && r) {
258
258
  const y = Array.isArray(r) ? r[0] : r;
259
- e.removeEventListener(f, y);
259
+ e.removeEventListener(g, y);
260
260
  }
261
- (m || t) && (U(e, f, t, m), m && T([f]));
261
+ (m || t) && (U(e, g, t, m), m && T([g]));
262
262
  } else if (n.slice(0, 5) === "attr:")
263
263
  u(e, n.slice(5), t);
264
264
  else if (n.slice(0, 5) === "bool:")
@@ -266,7 +266,7 @@ function Ne(e, n, t, r, a, o, i) {
266
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)) {
267
267
  if (h)
268
268
  n = n.slice(5), s = !0;
269
- else if (le(e)) return t;
269
+ else if (ce(e)) return t;
270
270
  n === "class" || n === "className" ? Re(e, t) : l && !s && !c ? e[Pt(n)] = t : e[d || n] = t;
271
271
  } else
272
272
  u(e, bt[n] || n, t);
@@ -308,8 +308,8 @@ function zt(e) {
308
308
  } else l();
309
309
  o(r);
310
310
  }
311
- function oe(e, n, t, r, a) {
312
- const o = le(e);
311
+ function ae(e, n, t, r, a) {
312
+ const o = ce(e);
313
313
  if (o) {
314
314
  !t && (t = [...e.childNodes]);
315
315
  let s = [];
@@ -338,12 +338,12 @@ function oe(e, n, t, r, a) {
338
338
  return b(() => {
339
339
  let s = n();
340
340
  for (; typeof s == "function"; ) s = s();
341
- t = oe(e, s, t, r);
341
+ t = ae(e, s, t, r);
342
342
  }), () => t;
343
343
  if (Array.isArray(n)) {
344
344
  const s = [], c = t && Array.isArray(t);
345
- if ($e(s, n, t, a))
346
- return b(() => t = oe(e, s, t, r, !0)), () => t;
345
+ if (Ee(s, n, t, a))
346
+ return b(() => t = ae(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];
@@ -368,18 +368,18 @@ function oe(e, n, t, r, a) {
368
368
  }
369
369
  return t;
370
370
  }
371
- function $e(e, n, t, r) {
371
+ function Ee(e, n, t, r) {
372
372
  let a = !1;
373
373
  for (let o = 0, i = n.length; o < i; o++) {
374
374
  let l = n[o], s = t && t[e.length], c;
375
375
  if (!(l == null || l === !0 || l === !1)) if ((c = typeof l) == "object" && l.nodeType)
376
376
  e.push(l);
377
377
  else if (Array.isArray(l))
378
- a = $e(e, l, s) || a;
378
+ a = Ee(e, l, s) || a;
379
379
  else if (c === "function")
380
380
  if (r) {
381
381
  for (; typeof l == "function"; ) l = l();
382
- a = $e(
382
+ a = Ee(
383
383
  e,
384
384
  Array.isArray(l) ? l : [l],
385
385
  Array.isArray(s) ? s : [s]
@@ -420,11 +420,11 @@ function Ot(e) {
420
420
  let o, i = !!L.context;
421
421
  return Y(
422
422
  () => {
423
- i && (De().user = i = !1), o || (o = lt(a, () => S(() => e.children)));
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
426
  const [s, c] = A(!1), d = () => c(!0);
427
- Ue((h) => v(l, () => s() ? h() : o(), null)), ee(d);
427
+ Ue((h) => v(l, () => s() ? h() : o(), null)), te(d);
428
428
  } else {
429
429
  const s = It(e.isSVG ? "g" : "div", e.isSVG), c = n && s.attachShadow ? s.attachShadow({
430
430
  mode: "open"
@@ -434,7 +434,7 @@ function Ot(e) {
434
434
  return t.parentNode;
435
435
  },
436
436
  configurable: !0
437
- }), v(c, o), l.appendChild(s), e.ref && e.ref(s), ee(() => l.removeChild(s));
437
+ }), v(c, o), l.appendChild(s), e.ref && e.ref(s), te(() => l.removeChild(s));
438
438
  }
439
439
  },
440
440
  void 0,
@@ -498,13 +498,13 @@ const Mt = 5e3, At = (e) => {
498
498
  } catch {
499
499
  return n;
500
500
  }
501
- }, ae = (e, n) => {
501
+ }, ie = (e, n) => {
502
502
  try {
503
503
  localStorage.setItem(Je(e), JSON.stringify(n));
504
504
  } catch (t) {
505
505
  console.warn("Failed to save to localStorage:", t);
506
506
  }
507
- }, Ee = () => {
507
+ }, Pe = () => {
508
508
  const e = window.location.pathname || "/", n = window.location.search;
509
509
  return `${e}${n}`;
510
510
  }, Lt = (e, n) => {
@@ -520,11 +520,11 @@ const Mt = 5e3, At = (e) => {
520
520
  drawing: {
521
521
  shapes: n.drawing.shapes
522
522
  }
523
- }), ae(K, r), Xe();
523
+ }), ie(K, r), Xe();
524
524
  } catch (t) {
525
525
  console.warn("Failed to save page state:", t);
526
526
  }
527
- }, ze = (e) => {
527
+ }, Te = (e) => {
528
528
  try {
529
529
  return G(K, {})[e];
530
530
  } catch (n) {
@@ -534,7 +534,7 @@ const Mt = 5e3, At = (e) => {
534
534
  }, Ze = (e) => {
535
535
  try {
536
536
  const n = G(K, {});
537
- delete n[e], ae(K, n), Xe();
537
+ delete n[e], ie(K, n), Xe();
538
538
  } catch (n) {
539
539
  console.error("Failed to clear page state:", n);
540
540
  }
@@ -545,7 +545,7 @@ const Mt = 5e3, At = (e) => {
545
545
  } catch (e) {
546
546
  return console.error("Failed to get stored pages count:", e), 0;
547
547
  }
548
- }, xe = () => {
548
+ }, ke = () => {
549
549
  try {
550
550
  const e = G(K, {});
551
551
  return Object.entries(e).map(([n, t]) => ({
@@ -557,7 +557,7 @@ 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), Pe = Symbol("store-raw"), J = Symbol("store-node"), j = Symbol("store-has"), et = Symbol("store-self");
560
+ }, 1e3), ze = Symbol("store-raw"), Z = Symbol("store-node"), j = Symbol("store-has"), et = Symbol("store-self");
561
561
  function tt(e) {
562
562
  let n = e[R];
563
563
  if (!n && (Object.defineProperty(e, R, {
@@ -574,33 +574,33 @@ function tt(e) {
574
574
  }
575
575
  return n;
576
576
  }
577
- function fe(e) {
577
+ function me(e) {
578
578
  let n;
579
579
  return e != null && typeof e == "object" && (e[R] || !(n = Object.getPrototypeOf(e)) || n === Object.prototype || Array.isArray(e));
580
580
  }
581
- function ie(e, n = /* @__PURE__ */ new Set()) {
581
+ function se(e, n = /* @__PURE__ */ new Set()) {
582
582
  let t, r, a, o;
583
- if (t = e != null && e[Pe]) return t;
584
- if (!fe(e) || n.has(e)) return e;
583
+ if (t = e != null && e[ze]) return t;
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 = ie(a, n)) !== a && (e[i] = r);
588
+ a = e[i], (r = se(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 = ie(a, n)) !== a && (e[o] = r));
593
+ o = i[s], !l[o].get && (a = e[o], (r = se(a, n)) !== a && (e[o] = r));
594
594
  }
595
595
  return e;
596
596
  }
597
- function me(e, n) {
597
+ function ve(e, n) {
598
598
  let t = e[n];
599
599
  return t || Object.defineProperty(e, n, {
600
600
  value: t = /* @__PURE__ */ Object.create(null)
601
601
  }), t;
602
602
  }
603
- function se(e, n, t) {
603
+ function le(e, n, t) {
604
604
  if (e[n]) return e[n];
605
605
  const [r, a] = A(t, {
606
606
  equals: !1,
@@ -610,31 +610,31 @@ function se(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 === J || (delete t.value, delete t.writable, t.get = () => e[R][n]), t;
613
+ return !t || t.get || !t.configurable || n === R || n === Z || (delete t.value, delete t.writable, t.get = () => e[R][n]), t;
614
614
  }
615
615
  function nt(e) {
616
- Ce() && se(me(e, J), et)();
616
+ $e() && le(ve(e, Z), et)();
617
617
  }
618
618
  function qt(e) {
619
619
  return nt(e), Reflect.ownKeys(e);
620
620
  }
621
621
  const Vt = {
622
622
  get(e, n, t) {
623
- if (n === Pe) return e;
623
+ if (n === ze) return e;
624
624
  if (n === R) return t;
625
625
  if (n === Fe)
626
626
  return nt(e), t;
627
- const r = me(e, J), a = r[n];
627
+ const r = ve(e, Z), a = r[n];
628
628
  let o = a ? a() : e[n];
629
- if (n === J || n === j || n === "__proto__") return o;
629
+ if (n === Z || n === j || n === "__proto__") return o;
630
630
  if (!a) {
631
631
  const i = Object.getOwnPropertyDescriptor(e, n);
632
- Ce() && (typeof o != "function" || e.hasOwnProperty(n)) && !(i && i.get) && (o = se(r, n, o)());
632
+ $e() && (typeof o != "function" || e.hasOwnProperty(n)) && !(i && i.get) && (o = le(r, n, o)());
633
633
  }
634
- return fe(o) ? tt(o) : o;
634
+ return me(o) ? tt(o) : o;
635
635
  },
636
636
  has(e, n) {
637
- return n === Pe || n === R || n === Fe || n === J || n === j || n === "__proto__" ? !0 : (Ce() && se(me(e, j), n)(), n in e);
637
+ return n === ze || n === R || n === Fe || n === Z || n === j || n === "__proto__" ? !0 : ($e() && le(ve(e, j), n)(), n in e);
638
638
  },
639
639
  set() {
640
640
  return !0;
@@ -645,14 +645,14 @@ const Vt = {
645
645
  ownKeys: qt,
646
646
  getOwnPropertyDescriptor: Nt
647
647
  };
648
- function ve(e, n, t, r = !1) {
648
+ 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 = me(e, J), l;
653
- if ((l = se(i, n, a)) && l.$(() => t), Array.isArray(e) && e.length !== o) {
652
+ let i = ve(e, Z), l;
653
+ if ((l = le(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 = se(i, "length", o)) && l.$(e.length);
655
+ (l = le(i, "length", o)) && l.$(e.length);
656
656
  }
657
657
  (l = i[et]) && l.$();
658
658
  }
@@ -660,52 +660,52 @@ function rt(e, n) {
660
660
  const t = Object.keys(n);
661
661
  for (let r = 0; r < t.length; r += 1) {
662
662
  const a = t[r];
663
- ve(e, a, n[a]);
663
+ be(e, a, n[a]);
664
664
  }
665
665
  }
666
666
  function Bt(e, n) {
667
- if (typeof n == "function" && (n = n(e)), n = ie(n), Array.isArray(n)) {
667
+ if (typeof n == "function" && (n = n(e)), n = se(n), Array.isArray(n)) {
668
668
  if (e === n) return;
669
669
  let t = 0, r = n.length;
670
670
  for (; t < r; t++) {
671
671
  const a = n[t];
672
- e[t] !== a && ve(e, t, a);
672
+ e[t] !== a && be(e, t, a);
673
673
  }
674
- ve(e, "length", r);
674
+ be(e, "length", r);
675
675
  } else rt(e, n);
676
676
  }
677
- function re(e, n, t = []) {
677
+ function oe(e, n, t = []) {
678
678
  let r, a = e;
679
679
  if (n.length > 1) {
680
680
  r = n.shift();
681
681
  const i = typeof r, l = Array.isArray(e);
682
682
  if (Array.isArray(r)) {
683
683
  for (let s = 0; s < r.length; s++)
684
- re(e, [r[s]].concat(n), t);
684
+ oe(e, [r[s]].concat(n), t);
685
685
  return;
686
686
  } else if (l && i === "function") {
687
687
  for (let s = 0; s < e.length; s++)
688
- r(e[s], s) && re(e, [s].concat(n), t);
688
+ r(e[s], s) && oe(e, [s].concat(n), t);
689
689
  return;
690
690
  } else if (l && i === "object") {
691
691
  const { from: s = 0, to: c = e.length - 1, by: d = 1 } = r;
692
692
  for (let h = s; h <= c; h += d)
693
- re(e, [h].concat(n), t);
693
+ oe(e, [h].concat(n), t);
694
694
  return;
695
695
  } else if (n.length > 1) {
696
- re(e[r], n, [r].concat(t));
696
+ oe(e[r], n, [r].concat(t));
697
697
  return;
698
698
  }
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 = ie(o), r === void 0 || fe(a) && fe(o) && !Array.isArray(o) ? rt(a, o) : ve(e, r, o));
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));
703
703
  }
704
- function Te(...[e, n]) {
705
- const t = ie(e || {}), r = Array.isArray(t), a = tt(t);
704
+ function Ie(...[e, n]) {
705
+ const t = se(e || {}), r = Array.isArray(t), a = tt(t);
706
706
  function o(...i) {
707
707
  ct(() => {
708
- r && i.length === 1 ? Bt(t, i[0]) : re(t, i);
708
+ r && i.length === 1 ? Bt(t, i[0]) : oe(t, i);
709
709
  });
710
710
  }
711
711
  return [a, o];
@@ -735,8 +735,8 @@ const B = {
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
737
  }, _t = (e) => Wt(e) < 0.5 ? "#FFFFFF" : "#000000";
738
- let N = [], O = null, Z = null, Q = null;
739
- const ke = (e, n) => (...t) => {
738
+ let N = [], O = null, Q = null, ee = null;
739
+ const Se = (e, n) => (...t) => {
740
740
  const r = (o) => {
741
741
  if (typeof o == "string") return o;
742
742
  if (o instanceof Error) return o.stack || o.message;
@@ -764,22 +764,22 @@ const ke = (e, n) => (...t) => {
764
764
  log: console.log,
765
765
  warn: console.warn,
766
766
  error: console.error
767
- }, Z = window.onerror, Q = window.onunhandledrejection, window.onerror = (e, n, t, r, a) => {
767
+ }, Q = window.onerror, ee = 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
- }), Z ? Z(e, n, t, r, a) : !1;
774
+ }), Q ? Q(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
- }), Q && Q(e);
782
- }, console.log = ke("log", O.log), console.warn = ke("warn", O.warn), console.error = ke("error", O.error), window.addEventListener("error", (e) => {
781
+ }), ee && ee(e);
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({
785
785
  type: "error",
@@ -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), Z && (window.onerror = Z, Z = null), Q && (window.onunhandledrejection = Q, Q = null), window.removeEventListener("error", () => {
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", () => {
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
- }, ue = (e, { useClientCoords: n = !1 } = {}) => {
797
+ }, he = (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,35 +812,45 @@ 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(" ")}`, Ie = window.EventTarget.prototype.addEventListener, be = window.EventTarget.prototype.removeEventListener;
816
- let we = !1;
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
817
  const Gt = (e, n, t, r) => {
818
- Ie.call(e, n, t, r);
818
+ we.call(e, n, t, r);
819
819
  }, Xt = (e, n, t, r) => {
820
- be.call(e, n, t, r);
821
- }, ne = /* @__PURE__ */ new WeakMap(), Jt = (e) => {
822
- we || (we = !0, window.EventTarget.prototype.addEventListener = function(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")
824
+ return we.call(this, n, t, r);
823
825
  const a = Qt(t, e);
824
- ne.has(this) || ne.set(this, /* @__PURE__ */ new WeakMap()), ne.get(this).set(t, a), Ie.call(this, n, a, r);
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);
825
829
  }, window.EventTarget.prototype.removeEventListener = function(n, t, r) {
826
- var o, i;
827
- const a = (o = ne.get(this)) == null ? void 0 : o.get(t);
828
- a ? (be.call(this, n, a, r), (i = ne.get(this)) == null || i.delete(t)) : be.call(this, n, t, r);
830
+ if (!this || typeof this != "object")
831
+ return J.call(this, n, t, r);
832
+ const a = re.get(this);
833
+ if (!a) {
834
+ J.call(this, n, t, r);
835
+ return;
836
+ }
837
+ 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);
829
839
  });
830
840
  }, Zt = () => {
831
- we && (window.EventTarget.prototype.addEventListener = Ie, window.EventTarget.prototype.removeEventListener = be, we = !1);
841
+ ye && (window.EventTarget.prototype.addEventListener = we, window.EventTarget.prototype.removeEventListener = J, ye = !1);
832
842
  }, M = (e) => {
833
843
  const { event: n, callback: t, onMount: r, onCleanup: a, useOriginal: o = !0 } = e;
834
- ye(() => {
844
+ pe(() => {
835
845
  r == null || r(), o ? Gt(window, n, t) : window.addEventListener(n, t);
836
- }), ee(() => {
846
+ }), te(() => {
837
847
  a == null || a(), o ? Xt(window, n, t) : window.removeEventListener(n, t);
838
848
  });
839
849
  }, Oe = (e) => {
840
850
  const { target: n, options: t, callback: r, onMount: a, onCleanup: o } = e, i = new MutationObserver(r);
841
- ye(() => {
851
+ pe(() => {
842
852
  a == null || a(), i.observe(n, t);
843
- }), ee(() => {
853
+ }), te(() => {
844
854
  o == null || o(), i.disconnect();
845
855
  });
846
856
  }, Qt = (e, n) => function(t) {
@@ -850,7 +860,7 @@ const Gt = (e, n, t, r) => {
850
860
  try {
851
861
  const n = document.createElement("style");
852
862
  document.head.appendChild(n), (e = n.sheet) == null || e.insertRule("body > div:last-child img { display: inline-block; }");
853
- const t = await gt(document.body, {
863
+ const t = await ft(document.body, {
854
864
  logging: !1,
855
865
  useCORS: !0,
856
866
  scale: window.devicePixelRatio,
@@ -883,7 +893,7 @@ const Gt = (e, n, t, r) => {
883
893
  throw new Error("Echo initialization failed: primaryColor must be a valid hex color");
884
894
  }, Be = 5, We = (e, n) => B[e].getCursor(n), on = (e, n, t) => {
885
895
  var l, s;
886
- const [r, a] = Te({
896
+ const [r, a] = Ie({
887
897
  isDrawing: !1,
888
898
  currentPoints: [],
889
899
  selectedShapeId: null,
@@ -891,7 +901,7 @@ const Gt = (e, n, t, r) => {
891
901
  showTooltip: !0,
892
902
  mousePosition: { x: 0, y: 0 },
893
903
  selectedColor: e.primaryColor,
894
- shapes: ((s = (l = ze(n)) == null ? void 0 : l.drawing) == null ? void 0 : s.shapes) || [],
904
+ shapes: ((s = (l = Te(n)) == null ? void 0 : l.drawing) == null ? void 0 : s.shapes) || [],
895
905
  hasDrawn: !1,
896
906
  isDragging: !1,
897
907
  dragStartPos: null,
@@ -900,8 +910,8 @@ const Gt = (e, n, t, r) => {
900
910
  cursor: We("rectangle", e.primaryColor)
901
911
  }), o = (c, d = !1) => {
902
912
  if (c.selectedTool || c.selectedColor) {
903
- const h = c.selectedTool || r.selectedTool, f = c.selectedColor || r.selectedColor;
904
- c.cursor = We(h, f);
913
+ const h = c.selectedTool || r.selectedTool, g = c.selectedColor || r.selectedColor;
914
+ c.cursor = We(h, g);
905
915
  }
906
916
  a(c), t == null || t(c, d);
907
917
  }, i = {
@@ -937,13 +947,13 @@ const Gt = (e, n, t, r) => {
937
947
  if (!h.classList.contains("echo-drawing-layer-mask") && !h.classList.contains("echo-shape"))
938
948
  return;
939
949
  }
940
- const d = ue(c);
950
+ const d = he(c);
941
951
  if (c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
942
952
  const h = c.target.dataset.shapeId;
943
953
  if (h && r.selectedShapeId === h) {
944
- const f = r.shapes.find((m) => m.id === h);
945
- if (f) {
946
- i.startDrag(d), i.updateDragOffset(f, d);
954
+ const g = r.shapes.find((m) => m.id === h);
955
+ if (g) {
956
+ i.startDrag(d), i.updateDragOffset(g, d);
947
957
  return;
948
958
  }
949
959
  }
@@ -951,16 +961,16 @@ const Gt = (e, n, t, r) => {
951
961
  i.setInitialClick(d);
952
962
  },
953
963
  handleMove: (c) => {
954
- const d = ue(c, { useClientCoords: !0 }), h = ue(c);
964
+ const d = he(c, { useClientCoords: !0 }), h = he(c);
955
965
  if (o({ mousePosition: d }), r.isDragging && r.selectedShapeId && r.dragStartPos && r.shapes.find((m) => m.id === r.selectedShapeId)) {
956
- const m = h.x - r.dragStartPos.x, y = h.y - r.dragStartPos.y, x = r.shapes.map((C) => C.id === r.selectedShapeId ? {
957
- ...C,
958
- points: C.points.map(($) => ({
959
- x: $.x + m,
960
- y: $.y + y
966
+ const m = h.x - r.dragStartPos.x, y = h.y - r.dragStartPos.y, E = r.shapes.map((S) => S.id === r.selectedShapeId ? {
967
+ ...S,
968
+ points: S.points.map((C) => ({
969
+ x: C.x + m,
970
+ y: C.y + y
961
971
  }))
962
- } : C);
963
- o({ shapes: x }), i.startDrag(h);
972
+ } : S);
973
+ o({ shapes: E }), i.startDrag(h);
964
974
  return;
965
975
  }
966
976
  if (r.initialClickPos && !r.isDrawing) {
@@ -975,10 +985,10 @@ const Gt = (e, n, t, r) => {
975
985
  return;
976
986
  }
977
987
  if (r.initialClickPos && !r.isDrawing) {
978
- const d = ue(c);
988
+ const d = he(c);
979
989
  if (Ve(r.initialClickPos, d) < Be && c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
980
- const f = c.target.dataset.shapeId;
981
- f && o({ selectedShapeId: f });
990
+ const g = c.target.dataset.shapeId;
991
+ g && o({ selectedShapeId: g });
982
992
  }
983
993
  }
984
994
  i.setInitialClick(null), i.finishDrawing();
@@ -1024,12 +1034,12 @@ const Gt = (e, n, t, r) => {
1024
1034
  }, an = (e, n, t, r) => {
1025
1035
  var h;
1026
1036
  const a = (r == null ? void 0 : r.reduce(
1027
- (f, m) => (f[m.id] = m.defaultValue ?? (m.type === "checkbox" ? [] : ""), f),
1037
+ (g, m) => (g[m.id] = m.defaultValue ?? (m.type === "checkbox" ? [] : ""), g),
1028
1038
  {}
1029
- )) || {}, o = ze(n), i = (o == null ? void 0 : o.feedback.customInputValues) || {}, l = {
1039
+ )) || {}, o = Te(n), i = (o == null ? void 0 : o.feedback.customInputValues) || {}, l = {
1030
1040
  ...a,
1031
1041
  ...i
1032
- }, [s, c] = Te({
1042
+ }, [s, c] = Ie({
1033
1043
  message: ((h = o == null ? void 0 : o.feedback) == null ? void 0 : h.message) || "",
1034
1044
  screenshot: void 0,
1035
1045
  isCapturing: !1,
@@ -1039,13 +1049,13 @@ const Gt = (e, n, t, r) => {
1039
1049
  });
1040
1050
  return {
1041
1051
  state: s,
1042
- setState: (f, m = !1) => {
1043
- const y = "isCapturing" in f || "isMinimized" in f || m;
1044
- !y && !s.hasUserInteracted && c({ hasUserInteracted: !0 }), c(f), (s.hasUserInteracted || y) && (t == null || t(f, m));
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));
1045
1055
  }
1046
1056
  };
1047
1057
  }, sn = (e, n) => {
1048
- const [t, r] = Te({
1058
+ const [t, r] = Ie({
1049
1059
  text: e.textConfig,
1050
1060
  isOpen: !1,
1051
1061
  primaryColor: e.primaryColor,
@@ -1075,7 +1085,7 @@ const Gt = (e, n, t, r) => {
1075
1085
  {}
1076
1086
  )) || {};
1077
1087
  }, ln = (e) => {
1078
- let n = Ee();
1088
+ let n = Pe();
1079
1089
  const t = sn(e), r = jt(t), a = At(t), o = an(
1080
1090
  e,
1081
1091
  n,
@@ -1101,7 +1111,7 @@ const Gt = (e, n, t, r) => {
1101
1111
  );
1102
1112
  }), l = (c) => {
1103
1113
  n = c;
1104
- const d = ze(n), h = {
1114
+ const d = Te(n), h = {
1105
1115
  ..._e(e),
1106
1116
  ...d == null ? void 0 : d.feedback.customInputValues
1107
1117
  };
@@ -1171,13 +1181,13 @@ const Gt = (e, n, t, r) => {
1171
1181
  position: e.position,
1172
1182
  customInputs: e.customInputs
1173
1183
  });
1174
- return g(at.Provider, {
1184
+ return f(at.Provider, {
1175
1185
  value: n,
1176
1186
  get children() {
1177
1187
  return e.children;
1178
1188
  }
1179
1189
  });
1180
- }, E = () => {
1190
+ }, $ = () => {
1181
1191
  const e = ut(at);
1182
1192
  if (!e)
1183
1193
  throw new Error("useEchoStore must be used within EchoProvider");
@@ -1209,9 +1219,9 @@ const Gt = (e, n, t, r) => {
1209
1219
  callback: r
1210
1220
  }), n;
1211
1221
  }, un = ({ onUrlChange: e }) => {
1212
- let n = Ee();
1222
+ let n = Pe();
1213
1223
  const t = () => {
1214
- const r = Ee();
1224
+ const r = Pe();
1215
1225
  r !== n && (n = r, e(r));
1216
1226
  };
1217
1227
  M({ event: "popstate", callback: t }), M({ event: "pushstate", callback: t }), M({ event: "replacestate", callback: t }), Oe({
@@ -1222,8 +1232,8 @@ const Gt = (e, n, t, r) => {
1222
1232
  },
1223
1233
  callback: t
1224
1234
  });
1225
- }, 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)}.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),left var(--duration-slower) var(--ease-smooth),opacity var(--duration-slow) var(--ease-in-out)}.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}`;
1226
- 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>");
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>");
1227
1237
  const mn = [
1228
1238
  "#ff6b6b",
1229
1239
  // Soft Red
@@ -1250,20 +1260,20 @@ const mn = [
1250
1260
  "#66d9e8": "Soft Cyan",
1251
1261
  "#ffa94d": "Soft Orange",
1252
1262
  "#e599f7": "Soft Pink"
1253
- }, Se = (e) => vn[e] || "Primary", bn = () => {
1254
- const e = E();
1263
+ }, Ce = (e) => vn[e] || "Primary", bn = () => {
1264
+ const e = $();
1255
1265
  return (() => {
1256
- var n = gn(), t = n.firstChild, r = t.nextSibling, a = r.firstChild;
1257
- return u(t, "aria-expanded", !1), v(a, g(_, {
1266
+ var n = fn(), t = n.firstChild, r = t.nextSibling, a = r.firstChild;
1267
+ return u(t, "aria-expanded", !1), v(a, f(_, {
1258
1268
  get each() {
1259
1269
  return [e.widget.state.primaryColor, ...mn];
1260
1270
  },
1261
1271
  children: (o) => (() => {
1262
- var i = fn();
1272
+ var i = gn();
1263
1273
  return i.$$click = () => e.drawing.setState({
1264
1274
  selectedColor: o
1265
1275
  }), o != null ? i.style.setProperty("background-color", o) : i.style.removeProperty("background-color"), b((l) => {
1266
- var s = `Select ${Se(o)} color`, c = e.drawing.state.selectedColor === o, d = `${Se(o)} color`, h = e.drawing.state.selectedColor === o;
1276
+ var s = `Select ${Ce(o)} color`, c = e.drawing.state.selectedColor === o, d = `${Ce(o)} color`, h = e.drawing.state.selectedColor === o;
1267
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;
1268
1278
  }, {
1269
1279
  e: void 0,
@@ -1273,7 +1283,7 @@ const mn = [
1273
1283
  }), i;
1274
1284
  })()
1275
1285
  })), b((o) => {
1276
- var i = `Current color: ${Se(e.drawing.state.selectedColor)}`, l = e.drawing.state.selectedColor;
1286
+ var i = `Current color: ${Ce(e.drawing.state.selectedColor)}`, l = e.drawing.state.selectedColor;
1277
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;
1278
1288
  }, {
1279
1289
  e: void 0,
@@ -1393,7 +1403,7 @@ const In = (e) => (() => {
1393
1403
  }), n;
1394
1404
  })();
1395
1405
  var On = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M18 6 6 18"></path><path d="m6 6 12 12">');
1396
- const pe = (e) => (() => {
1406
+ const xe = (e) => (() => {
1397
1407
  var n = On();
1398
1408
  return b((t) => {
1399
1409
  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;
@@ -1413,10 +1423,10 @@ const Dn = {
1413
1423
  rectangle: Sn,
1414
1424
  path: $n
1415
1425
  }, Fn = () => {
1416
- const e = E(), n = Object.values(B);
1426
+ const e = $(), n = Object.values(B);
1417
1427
  return (() => {
1418
1428
  var t = Mn(), r = t.firstChild;
1419
- return v(t, g(_, {
1429
+ return v(t, f(_, {
1420
1430
  each: n,
1421
1431
  children: (a) => {
1422
1432
  const o = Dn[a.id];
@@ -1424,7 +1434,7 @@ const Dn = {
1424
1434
  var i = An();
1425
1435
  return i.$$click = () => e.drawing.setState({
1426
1436
  selectedTool: a.id
1427
- }), v(i, g(o, {
1437
+ }), v(i, f(o, {
1428
1438
  class: "echo-drawing-toolbar-icon",
1429
1439
  "aria-hidden": "true"
1430
1440
  })), b((l) => {
@@ -1438,9 +1448,9 @@ const Dn = {
1438
1448
  }), i;
1439
1449
  })();
1440
1450
  }
1441
- }), r), v(t, g(bn, {}), r), r.$$click = () => e.drawing.setState({
1451
+ }), r), v(t, f(bn, {}), r), r.$$click = () => e.drawing.setState({
1442
1452
  shapes: []
1443
- }, !0), v(r, g(it, {
1453
+ }, !0), v(r, f(it, {
1444
1454
  class: "echo-drawing-toolbar-icon",
1445
1455
  "aria-hidden": "true"
1446
1456
  })), t;
@@ -1449,8 +1459,8 @@ const Dn = {
1449
1459
  T(["click"]);
1450
1460
  var Ln = /* @__PURE__ */ w("<div class=echo-drawing-tooltip data-hide-when-drawing=true>");
1451
1461
  const jn = () => {
1452
- const e = E(), n = S(() => e.drawing.state.showTooltip && e.drawing.state.mousePosition.y && e.drawing.state.mousePosition.x && e.widget.state.isOpen && !Rt());
1453
- return g(D, {
1462
+ 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, {
1454
1464
  get when() {
1455
1465
  return n();
1456
1466
  },
@@ -1496,9 +1506,9 @@ const Vn = (e) => (() => {
1496
1506
  })();
1497
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>");
1498
1508
  const Hn = () => {
1499
- const e = E();
1509
+ const e = $();
1500
1510
  let n;
1501
- const [t, r] = A(xe()), [a, o] = A(window.location.pathname), i = (m) => {
1511
+ const [t, r] = A(ke()), [a, o] = A(window.location.pathname), i = (m) => {
1502
1512
  m.key === "Escape" && e.widget.state.isStoredFeedbackOpen && e.widget.setState({
1503
1513
  isStoredFeedbackOpen: !1
1504
1514
  });
@@ -1508,7 +1518,7 @@ const Hn = () => {
1508
1518
  isStoredFeedbackOpen: !1
1509
1519
  });
1510
1520
  }, s = () => {
1511
- const m = xe();
1521
+ const m = ke();
1512
1522
  r(m), e.widget.setState({
1513
1523
  pagesCount: m.length
1514
1524
  });
@@ -1538,75 +1548,75 @@ const Hn = () => {
1538
1548
  callback: l
1539
1549
  });
1540
1550
  const d = (m, y) => {
1541
- const x = y ? `${m}${y}` : m;
1542
- window.location.href = x, e.widget.setState({
1551
+ const E = y ? `${m}${y}` : m;
1552
+ window.location.href = E, e.widget.setState({
1543
1553
  isStoredFeedbackOpen: !1
1544
1554
  });
1545
1555
  }, h = (m) => {
1546
1556
  a() === m && e.methods.reset(), Ze(m);
1547
- const y = xe();
1557
+ const y = ke();
1548
1558
  r(y), e.widget.setState({
1549
1559
  pagesCount: y.length
1550
1560
  });
1551
- }, f = (m) => {
1561
+ }, g = (m) => {
1552
1562
  if (m === "/") return "/";
1553
1563
  const y = m.split("/");
1554
1564
  return y.length <= 4 ? m : `/${y[1]}/.../${y[y.length - 1]}`;
1555
1565
  };
1556
- return g(D, {
1566
+ return f(D, {
1557
1567
  get when() {
1558
1568
  return e.widget.state.isStoredFeedbackOpen;
1559
1569
  },
1560
1570
  get children() {
1561
1571
  var m = Wn(), y = m.firstChild;
1562
1572
  y.firstChild;
1563
- var x = y.nextSibling, C = n;
1564
- return typeof C == "function" ? V(C, m) : n = m, v(y, g(W, {
1573
+ var E = y.nextSibling, S = n;
1574
+ return typeof S == "function" ? V(S, m) : n = m, v(y, f(W, {
1565
1575
  variant: "secondary",
1566
1576
  size: "sm",
1567
1577
  onClick: () => e.widget.setState({
1568
1578
  isStoredFeedbackOpen: !1
1569
1579
  }),
1570
1580
  get children() {
1571
- return g(pe, {
1581
+ return f(xe, {
1572
1582
  size: 20
1573
1583
  });
1574
1584
  }
1575
- }), null), v(x, g(_, {
1585
+ }), null), v(E, f(_, {
1576
1586
  get each() {
1577
1587
  return t();
1578
1588
  },
1579
- children: ($) => {
1580
- const p = S(() => $.path === a());
1589
+ children: (C) => {
1590
+ const p = k(() => C.path === a());
1581
1591
  return (() => {
1582
- var P = _n(), z = P.firstChild, k = z.firstChild, H = k.nextSibling, q = z.nextSibling;
1583
- return v(k, () => f($.path)), v(H, () => $.state.feedback.message), v(q, (() => {
1584
- var I = S(() => !p());
1585
- return () => I() && g(W, {
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, {
1586
1596
  class: "echo-stored-feedback-link",
1587
1597
  variant: "secondary",
1588
1598
  size: "sm",
1589
- onClick: () => d($.path, $.state.latestQuery),
1599
+ onClick: () => d(C.path, C.state.latestQuery),
1590
1600
  get children() {
1591
- return g(Vn, {});
1601
+ return f(Vn, {});
1592
1602
  }
1593
1603
  });
1594
- })(), null), v(q, g(W, {
1604
+ })(), null), v(q, f(W, {
1595
1605
  class: "echo-stored-feedback-delete",
1596
1606
  variant: "secondary",
1597
1607
  size: "sm",
1598
- onClick: () => h($.path),
1608
+ onClick: () => h(C.path),
1599
1609
  children: "Delete"
1600
1610
  }), null), b((I) => {
1601
- var Me = `echo-stored-feedback-item ${p() ? "echo-stored-feedback-item-current" : ""}`, Ae = $.path;
1602
- return Me !== I.e && Re(P, I.e = Me), Ae !== I.t && u(k, "title", I.t = Ae), 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;
1603
1613
  }, {
1604
1614
  e: void 0,
1605
1615
  t: void 0
1606
1616
  }), P;
1607
1617
  })();
1608
1618
  }
1609
- }), null), v(x, g(D, {
1619
+ }), null), v(E, f(D, {
1610
1620
  get when() {
1611
1621
  return t().length === 0;
1612
1622
  },
@@ -1619,7 +1629,7 @@ const Hn = () => {
1619
1629
  };
1620
1630
  var Un = /* @__PURE__ */ w('<button class=echo-launcher-button aria-label="Open feedback form"role=button>'), Yn = /* @__PURE__ */ w("<span class=echo-launcher-button-count role=button tabindex=0>");
1621
1631
  const Rn = () => {
1622
- const e = E(), [n, t] = A(!1);
1632
+ const e = $(), [n, t] = A(!1);
1623
1633
  let r;
1624
1634
  const a = () => {
1625
1635
  r && window.clearTimeout(r), r = window.setTimeout(() => {
@@ -1635,7 +1645,7 @@ const Rn = () => {
1635
1645
  isOpen: !e.widget.state.isOpen
1636
1646
  }), e.widget.setState({
1637
1647
  welcomeMessageIsClosing: !0
1638
- }), ae("welcome_message_shown", !0);
1648
+ }), ie("welcome_message_shown", !0);
1639
1649
  };
1640
1650
  Y(() => {
1641
1651
  e.widget.state.isOpen || (t(!1), a()), e.widget.state.isStoredFeedbackOpen && t(!1);
@@ -1647,30 +1657,30 @@ const Rn = () => {
1647
1657
  };
1648
1658
  return [(() => {
1649
1659
  var c = Un();
1650
- return c.addEventListener("pointerleave", i), c.addEventListener("pointerenter", o), c.$$click = l, v(c, g(xn, {
1660
+ return c.addEventListener("pointerleave", i), c.addEventListener("pointerenter", o), c.$$click = l, v(c, f(xn, {
1651
1661
  stroke: "white",
1652
1662
  fill: "#ffffff",
1653
1663
  "aria-hidden": "true"
1654
1664
  }), null), v(c, (() => {
1655
- var d = S(() => e.widget.state.pagesCount > 0);
1665
+ var d = k(() => e.widget.state.pagesCount > 0);
1656
1666
  return () => d() && (() => {
1657
1667
  var h = Yn();
1658
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;
1659
1669
  })();
1660
1670
  })(), null), b((d) => {
1661
- var h = e.widget.state.isOpen, f = n() ? "45px" : "0", m = e.widget.state.isOpen;
1662
- return h !== d.e && u(c, "data-hidden", d.e = h), f !== d.t && ((d.t = f) != null ? c.style.setProperty("left", f) : c.style.removeProperty("left")), m !== d.a && u(c, "aria-expanded", d.a = m), 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;
1663
1673
  }, {
1664
1674
  e: void 0,
1665
1675
  t: void 0,
1666
1676
  a: void 0
1667
1677
  }), c;
1668
- })(), g(Hn, {})];
1678
+ })(), f(Hn, {})];
1669
1679
  };
1670
1680
  T(["click"]);
1671
1681
  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>");
1672
1682
  const Gn = () => {
1673
- const e = E(), n = () => {
1683
+ const e = $(), n = () => {
1674
1684
  e.widget.setState({
1675
1685
  notification: {
1676
1686
  ...e.widget.state.notification,
@@ -1689,7 +1699,7 @@ const Gn = () => {
1689
1699
  };
1690
1700
  return (() => {
1691
1701
  var r = Kn(), a = r.firstChild, o = a.nextSibling, i = o.firstChild, l = i.nextSibling;
1692
- return v(r, g(W, {
1702
+ return v(r, f(W, {
1693
1703
  class: "echo-notification-hide",
1694
1704
  variant: "secondary",
1695
1705
  size: "sm",
@@ -1698,17 +1708,17 @@ const Gn = () => {
1698
1708
  return e.widget.state.text.notification.hideTitle;
1699
1709
  },
1700
1710
  get children() {
1701
- return g(pe, {
1711
+ return f(xe, {
1702
1712
  size: 20
1703
1713
  });
1704
1714
  }
1705
1715
  }), a), v(a, (() => {
1706
- var s = S(() => e.widget.state.notification.type === "success");
1707
- return () => s() ? g(zn, {
1716
+ var s = k(() => e.widget.state.notification.type === "success");
1717
+ return () => s() ? f(zn, {
1708
1718
  size: 32
1709
1719
  }) : (() => {
1710
- var c = S(() => e.widget.state.notification.type === "error");
1711
- return () => c() ? g(In, {
1720
+ var c = k(() => e.widget.state.notification.type === "error");
1721
+ return () => c() ? f(In, {
1712
1722
  size: 32
1713
1723
  }) : null;
1714
1724
  })();
@@ -1727,7 +1737,7 @@ const Gn = () => {
1727
1737
  };
1728
1738
  var Xn = /* @__PURE__ */ w("<div class=echo-shape-actions data-hide-when-drawing=true>");
1729
1739
  const Jn = () => {
1730
- const e = E();
1740
+ const e = $();
1731
1741
  let n;
1732
1742
  const [t, r] = A({
1733
1743
  x: window.scrollX,
@@ -1747,7 +1757,7 @@ const Jn = () => {
1747
1757
  shapes: e.drawing.state.shapes.filter((s) => s.id !== e.drawing.state.selectedShapeId),
1748
1758
  selectedShapeId: null
1749
1759
  });
1750
- }, i = S(() => e.drawing.state.selectedShapeId ? e.drawing.state.shapes.find((s) => s.id === e.drawing.state.selectedShapeId) : null), l = S(() => {
1760
+ }, i = k(() => e.drawing.state.selectedShapeId ? e.drawing.state.shapes.find((s) => s.id === e.drawing.state.selectedShapeId) : null), l = k(() => {
1751
1761
  const s = i(), c = n == null ? void 0 : n.getBoundingClientRect();
1752
1762
  if (!s || !c) return null;
1753
1763
  let d = null;
@@ -1765,51 +1775,50 @@ const Jn = () => {
1765
1775
  };
1766
1776
  else
1767
1777
  return null;
1768
- const h = 8, f = t();
1778
+ const h = 8, g = t();
1769
1779
  return {
1770
- x: Math.max(c.width / 2 + h, Math.min(window.innerWidth - c.width / 2 - h, d.x - f.x)),
1771
- y: Math.max(c.height + h, Math.min(window.innerHeight - h, d.y - f.y))
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))
1772
1782
  };
1773
1783
  });
1774
1784
  return (() => {
1775
1785
  var s = Xn(), c = n;
1776
- return typeof c == "function" ? V(c, s) : n = s, v(s, g(W, {
1786
+ return typeof c == "function" ? V(c, s) : n = s, s.style.setProperty("top", "0"), s.style.setProperty("left", "0"), v(s, f(W, {
1777
1787
  onClick: o,
1778
1788
  size: "sm",
1779
1789
  variant: "secondary",
1780
1790
  title: "Delete shape",
1781
1791
  get children() {
1782
- return g(it, {
1792
+ return f(it, {
1783
1793
  size: 20
1784
1794
  });
1785
1795
  }
1786
1796
  })), b((d) => {
1787
- var y, x;
1788
- var h = !l(), f = l() ? `${(y = l()) == null ? void 0 : y.x}px` : "0", m = l() ? `${(x = l()) == null ? void 0 : x.y}px` : "0";
1789
- return h !== d.e && (s.hidden = d.e = h), f !== d.t && ((d.t = f) != null ? s.style.setProperty("left", f) : s.style.removeProperty("left")), m !== d.a && ((d.a = m) != null ? s.style.setProperty("top", m) : s.style.removeProperty("top")), 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;
1790
1800
  }, {
1791
1801
  e: void 0,
1792
- t: void 0,
1793
- a: void 0
1802
+ t: void 0
1794
1803
  }), s;
1795
1804
  })();
1796
1805
  };
1797
1806
  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>");
1798
1807
  const Qn = () => {
1799
- const e = E(), n = G("welcome_message_shown", !1), t = (a) => {
1808
+ const e = $(), n = G("welcome_message_shown", !1), t = (a) => {
1800
1809
  a.stopPropagation(), e.widget.setState({
1801
1810
  welcomeMessageIsClosing: !0
1802
- }), ae("welcome_message_shown", !0);
1811
+ }), ie("welcome_message_shown", !0);
1803
1812
  }, r = () => {
1804
1813
  e.widget.setState({
1805
1814
  isOpen: !0
1806
1815
  }), e.widget.setState({
1807
1816
  welcomeMessageIsClosing: !0
1808
- }), ae("welcome_message_shown", !0);
1817
+ }), ie("welcome_message_shown", !0);
1809
1818
  };
1810
1819
  return n ? null : (() => {
1811
1820
  var a = Zn(), o = a.firstChild, i = o.nextSibling;
1812
- 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(pe, {
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, {
1813
1822
  size: 16,
1814
1823
  strokeWidth: 3
1815
1824
  })), b((l) => {
@@ -1824,24 +1833,24 @@ const Qn = () => {
1824
1833
  T(["click", "keydown"]);
1825
1834
  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);
1826
1835
  const He = (e) => {
1827
- const n = S(() => e.id === e.selectedShapeId);
1828
- return [g(D, {
1836
+ const n = k(() => e.id === e.selectedShapeId);
1837
+ return [f(D, {
1829
1838
  get when() {
1830
1839
  return e.type === "rectangle";
1831
1840
  },
1832
1841
  get children() {
1833
- return g(nr, ge(e, {
1842
+ return f(nr, ge(e, {
1834
1843
  get isSelected() {
1835
1844
  return n();
1836
1845
  }
1837
1846
  }));
1838
1847
  }
1839
- }), g(D, {
1848
+ }), f(D, {
1840
1849
  get when() {
1841
1850
  return e.type === "path";
1842
1851
  },
1843
1852
  get children() {
1844
- return g(rr, ge(e, {
1853
+ return f(rr, ge(e, {
1845
1854
  get isSelected() {
1846
1855
  return n();
1847
1856
  }
@@ -1849,8 +1858,8 @@ const He = (e) => {
1849
1858
  }
1850
1859
  })];
1851
1860
  }, nr = (e) => {
1852
- const n = S(() => ot(e.points));
1853
- return g(D, {
1861
+ const n = k(() => ot(e.points));
1862
+ return f(D, {
1854
1863
  get when() {
1855
1864
  return n();
1856
1865
  },
@@ -1863,8 +1872,8 @@ const He = (e) => {
1863
1872
  var r;
1864
1873
  return (r = e.onShapeClick) == null ? void 0 : r.call(e, e.id);
1865
1874
  }, b((r) => {
1866
- 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, f = e.isSelected ? B.rectangle.opacity.selected : B.rectangle.opacity.default, m = e.isSelected ? "5,5" : "none", y = e.isSelected ? "move" : "pointer", x = `Rectangle shape ${e.isSelected ? "(selected)" : ""}`, C = e.onShapeClick ? 0 : -1;
1867
- 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), f !== r.r && u(t, "opacity", r.r = f), m !== r.d && u(t, "stroke-dasharray", r.d = m), y !== r.l && u(t, "cursor", r.l = y), x !== r.u && u(t, "aria-label", r.u = x), C !== r.c && u(t, "tabindex", r.c = C), 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;
1868
1877
  }, {
1869
1878
  e: void 0,
1870
1879
  t: void 0,
@@ -1883,8 +1892,8 @@ const He = (e) => {
1883
1892
  }
1884
1893
  });
1885
1894
  }, rr = (e) => {
1886
- const n = S(() => Kt(e.points));
1887
- return g(D, {
1895
+ const n = k(() => Kt(e.points));
1896
+ return f(D, {
1888
1897
  get when() {
1889
1898
  return n();
1890
1899
  },
@@ -1897,8 +1906,8 @@ const He = (e) => {
1897
1906
  var r;
1898
1907
  return (r = e.onShapeClick) == null ? void 0 : r.call(e, e.id);
1899
1908
  }, b((r) => {
1900
- 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)" : ""}`, f = e.onShapeClick ? 0 : -1;
1901
- 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), f !== r.r && u(t, "tabindex", r.r = f), 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;
1902
1911
  }, {
1903
1912
  e: void 0,
1904
1913
  t: void 0,
@@ -1916,17 +1925,17 @@ const He = (e) => {
1916
1925
  T(["click", "keydown"]);
1917
1926
  var or = /* @__PURE__ */ w('<div class=echo-drawing-layer-container role=application aria-label="Drawing Canvas"><svg width=100% height=100% class=echo-drawing-layer preserveAspectRatio=none role=img aria-label="Drawing Area"><path class=echo-drawing-layer-mask fill="rgba(33, 43, 55, 1)"fill-opacity=0.2 fill-rule=evenodd aria-hidden=true>');
1918
1927
  const ar = () => {
1919
- const e = E();
1928
+ const e = $();
1920
1929
  let n;
1921
- return ye(() => {
1930
+ return pe(() => {
1922
1931
  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, {
1923
1932
  passive: !1
1924
1933
  }), n == null || n.addEventListener("touchend", e.drawing.methods.handleEnd);
1925
- }), ee(() => {
1934
+ }), te(() => {
1926
1935
  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);
1927
1936
  }), (() => {
1928
1937
  var t = or(), r = t.firstChild, a = r.firstChild, o = n;
1929
- 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) => {
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) => {
1930
1939
  i.preventDefault(), e.drawing.methods.handleMove(i);
1931
1940
  }, U(r, "mousemove", e.drawing.methods.handleMove, !0), r.$$touchstart = (i) => {
1932
1941
  i.preventDefault(), e.drawing.methods.handleStart(i), e.drawing.methods.handleEnter(i), e.drawing.setState({
@@ -1938,11 +1947,11 @@ const ar = () => {
1938
1947
  showTooltip: !1,
1939
1948
  hasDrawn: !0
1940
1949
  });
1941
- }, v(r, g(_, {
1950
+ }, v(r, f(_, {
1942
1951
  get each() {
1943
1952
  return e.drawing.state.shapes;
1944
1953
  },
1945
- children: (i) => g(He, {
1954
+ children: (i) => f(He, {
1946
1955
  get id() {
1947
1956
  return i.id;
1948
1957
  },
@@ -1962,7 +1971,7 @@ const ar = () => {
1962
1971
  return e.drawing.methods.handleShapeClick;
1963
1972
  }
1964
1973
  })
1965
- }), null), v(r, g(He, {
1974
+ }), null), v(r, f(He, {
1966
1975
  id: "temp",
1967
1976
  get type() {
1968
1977
  return e.drawing.state.selectedTool;
@@ -1989,7 +1998,7 @@ const ar = () => {
1989
1998
  })();
1990
1999
  };
1991
2000
  T(["mousedown", "touchstart", "mousemove", "touchmove", "touchend"]);
1992
- const ce = (e) => ({
2001
+ const de = (e) => ({
1993
2002
  handleTextChange: (o) => {
1994
2003
  const i = o.target;
1995
2004
  e(i.value);
@@ -2004,14 +2013,14 @@ const ce = (e) => ({
2004
2013
  getCheckboxValue: (o) => Array.isArray(o) ? o : []
2005
2014
  });
2006
2015
  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">*');
2007
- const de = (e) => (() => {
2016
+ const ue = (e) => (() => {
2008
2017
  var n = ir();
2009
2018
  return v(n, (() => {
2010
- var t = S(() => !!e.label);
2019
+ var t = k(() => !!e.label);
2011
2020
  return () => t() && (() => {
2012
2021
  var r = sr(), a = r.firstChild;
2013
2022
  return v(a, () => e.label), v(r, (() => {
2014
- var o = S(() => !!e.required);
2023
+ var o = k(() => !!e.required);
2015
2024
  return () => o() && lr();
2016
2025
  })(), null), r;
2017
2026
  })();
@@ -2021,8 +2030,8 @@ var cr = /* @__PURE__ */ w("<textarea class=echo-input-field rows=5>"), dr = /*
2021
2030
  const st = (e) => {
2022
2031
  const {
2023
2032
  handleTextChange: n
2024
- } = ce(e.onChange);
2025
- return g(de, {
2033
+ } = de(e.onChange);
2034
+ return f(ue, {
2026
2035
  get label() {
2027
2036
  return e.config.label;
2028
2037
  },
@@ -2053,12 +2062,12 @@ const st = (e) => {
2053
2062
  };
2054
2063
  T(["input"]);
2055
2064
  var ur = /* @__PURE__ */ w("<fieldset class=echo-input-options role=group>"), hr = /* @__PURE__ */ w("<label class=echo-input-option><input type=checkbox><span>");
2056
- const gr = (e) => {
2065
+ const fr = (e) => {
2057
2066
  const {
2058
2067
  handleCheckboxChange: n,
2059
2068
  getCheckboxValue: t
2060
- } = ce(e.onChange), r = () => t(e.value), a = () => r().length > 0;
2061
- return g(de, {
2069
+ } = de(e.onChange), r = () => t(e.value), a = () => r().length > 0;
2070
+ return f(ue, {
2062
2071
  get label() {
2063
2072
  return e.config.label;
2064
2073
  },
@@ -2067,7 +2076,7 @@ const gr = (e) => {
2067
2076
  },
2068
2077
  get children() {
2069
2078
  var o = ur();
2070
- return v(o, g(_, {
2079
+ return v(o, f(_, {
2071
2080
  get each() {
2072
2081
  return e.config.options;
2073
2082
  },
@@ -2079,12 +2088,12 @@ const gr = (e) => {
2079
2088
  }
2080
2089
  });
2081
2090
  };
2082
- var fr = /* @__PURE__ */ w("<fieldset class=echo-input-options role=radiogroup>"), mr = /* @__PURE__ */ w("<label class=echo-input-option><input type=radio><span>");
2091
+ var gr = /* @__PURE__ */ w("<fieldset class=echo-input-options role=radiogroup>"), mr = /* @__PURE__ */ w("<label class=echo-input-option><input type=radio><span>");
2083
2092
  const vr = (e) => {
2084
2093
  const {
2085
2094
  handleSelectChange: n
2086
- } = ce(e.onChange);
2087
- return g(de, {
2095
+ } = de(e.onChange);
2096
+ return f(ue, {
2088
2097
  get label() {
2089
2098
  return e.config.label;
2090
2099
  },
@@ -2092,8 +2101,8 @@ const vr = (e) => {
2092
2101
  return e.config.required;
2093
2102
  },
2094
2103
  get children() {
2095
- var t = fr();
2096
- return v(t, g(_, {
2104
+ var t = gr();
2105
+ return v(t, f(_, {
2097
2106
  get each() {
2098
2107
  return e.config.options;
2099
2108
  },
@@ -2115,10 +2124,10 @@ var br = /* @__PURE__ */ w("<div class=echo-select-dropdown role=listbox>"), wr
2115
2124
  const pr = (e) => {
2116
2125
  const {
2117
2126
  handleSelectChange: n
2118
- } = ce(e.onChange), [t, r] = A(!1);
2127
+ } = de(e.onChange), [t, r] = A(!1);
2119
2128
  let a, o, i;
2120
- const l = () => e.config.options.find((h) => h.value === (e.value === void 0 ? "" : e.value)), s = (h, f) => {
2121
- f.stopPropagation(), h.value === e.value ? e.config.required || n("") : n(h.value), r(!1);
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);
2122
2131
  }, c = () => {
2123
2132
  r(!t());
2124
2133
  };
@@ -2128,7 +2137,7 @@ const pr = (e) => {
2128
2137
  if (!t() || !a) return;
2129
2138
  h.composedPath().includes(a) || r(!1);
2130
2139
  }
2131
- }), g(de, {
2140
+ }), f(ue, {
2132
2141
  get label() {
2133
2142
  return e.config.label;
2134
2143
  },
@@ -2136,29 +2145,29 @@ const pr = (e) => {
2136
2145
  return e.config.required;
2137
2146
  },
2138
2147
  get children() {
2139
- var h = wr(), f = h.firstChild, m = f.firstChild, y = f.nextSibling, x = a;
2140
- typeof x == "function" ? V(x, h) : a = h, f.$$click = (p) => {
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) => {
2141
2150
  p.stopPropagation(), c();
2142
2151
  };
2143
- var C = o;
2144
- typeof C == "function" ? V(C, f) : o = f, v(m, () => {
2152
+ var S = o;
2153
+ typeof S == "function" ? V(S, g) : o = g, v(m, () => {
2145
2154
  var p;
2146
2155
  return ((p = l()) == null ? void 0 : p.label) || e.config.placeholder;
2147
- }), v(h, g(D, {
2156
+ }), v(h, f(D, {
2148
2157
  get when() {
2149
2158
  return t();
2150
2159
  },
2151
2160
  get children() {
2152
2161
  var p = br();
2153
- return v(p, g(_, {
2162
+ return v(p, f(_, {
2154
2163
  get each() {
2155
2164
  return e.config.options;
2156
2165
  },
2157
2166
  children: (P) => (() => {
2158
2167
  var z = yr();
2159
- return z.$$click = (k) => s(P, k), v(z, () => P.label), b((k) => {
2168
+ return z.$$click = (x) => s(P, x), v(z, () => P.label), b((x) => {
2160
2169
  var H = P.value === e.value, q = P.value === e.value;
2161
- return H !== k.e && u(z, "aria-selected", k.e = H), q !== k.t && u(z, "data-selected", k.t = q), k;
2170
+ return H !== x.e && u(z, "aria-selected", x.e = H), q !== x.t && u(z, "data-selected", x.t = q), x;
2162
2171
  }, {
2163
2172
  e: void 0,
2164
2173
  t: void 0
@@ -2167,10 +2176,10 @@ const pr = (e) => {
2167
2176
  })), p;
2168
2177
  }
2169
2178
  }), y);
2170
- var $ = i;
2171
- return typeof $ == "function" ? V($, y) : i = y, b((p) => {
2172
- var P = t(), z = !e.value, k = e.config.required, H = t(), q = e.config.required, I = e.config.required;
2173
- return P !== p.e && u(f, "data-open", p.e = P), z !== p.t && u(f, "data-placeholder", p.t = z), k !== p.a && u(f, "data-required", p.a = k), H !== p.o && u(f, "aria-expanded", p.o = H), q !== p.i && u(f, "aria-required", p.i = q), I !== p.n && (y.required = p.n = I), p;
2179
+ var C = i;
2180
+ return typeof C == "function" ? V(C, y) : i = y, b((p) => {
2181
+ 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;
2174
2183
  }, {
2175
2184
  e: void 0,
2176
2185
  t: void 0,
@@ -2187,8 +2196,8 @@ var xr = /* @__PURE__ */ w("<input type=text class=echo-input-field>");
2187
2196
  const kr = (e) => {
2188
2197
  const {
2189
2198
  handleTextChange: n
2190
- } = ce(e.onChange);
2191
- return g(de, {
2199
+ } = de(e.onChange);
2200
+ return f(ue, {
2192
2201
  get label() {
2193
2202
  return e.config.label;
2194
2203
  },
@@ -2209,7 +2218,7 @@ const kr = (e) => {
2209
2218
  };
2210
2219
  T(["input"]);
2211
2220
  var Sr = /* @__PURE__ */ w("<div class=echo-input-error>Invalid input type"), Cr = /* @__PURE__ */ w("<div class=echo-input-error>Unsupported input type: ");
2212
- const $r = (e) => g(D, {
2221
+ const $r = (e) => f(D, {
2213
2222
  get when() {
2214
2223
  return e.config.type;
2215
2224
  },
@@ -2218,7 +2227,7 @@ const $r = (e) => g(D, {
2218
2227
  return Sr();
2219
2228
  },
2220
2229
  get children() {
2221
- return g(ht, {
2230
+ return f(ht, {
2222
2231
  get fallback() {
2223
2232
  return (() => {
2224
2233
  var n = Cr();
@@ -2226,12 +2235,12 @@ const $r = (e) => g(D, {
2226
2235
  })();
2227
2236
  },
2228
2237
  get children() {
2229
- return [g(te, {
2238
+ return [f(ne, {
2230
2239
  get when() {
2231
2240
  return e.config.type === "text";
2232
2241
  },
2233
2242
  get children() {
2234
- return g(kr, {
2243
+ return f(kr, {
2235
2244
  get config() {
2236
2245
  return e.config;
2237
2246
  },
@@ -2243,12 +2252,12 @@ const $r = (e) => g(D, {
2243
2252
  }
2244
2253
  });
2245
2254
  }
2246
- }), g(te, {
2255
+ }), f(ne, {
2247
2256
  get when() {
2248
2257
  return e.config.type === "textarea";
2249
2258
  },
2250
2259
  get children() {
2251
- return g(st, {
2260
+ return f(st, {
2252
2261
  get config() {
2253
2262
  return e.config;
2254
2263
  },
@@ -2260,12 +2269,12 @@ const $r = (e) => g(D, {
2260
2269
  }
2261
2270
  });
2262
2271
  }
2263
- }), g(te, {
2272
+ }), f(ne, {
2264
2273
  get when() {
2265
2274
  return e.config.type === "radio";
2266
2275
  },
2267
2276
  get children() {
2268
- return g(vr, {
2277
+ return f(vr, {
2269
2278
  get config() {
2270
2279
  return e.config;
2271
2280
  },
@@ -2277,12 +2286,12 @@ const $r = (e) => g(D, {
2277
2286
  }
2278
2287
  });
2279
2288
  }
2280
- }), g(te, {
2289
+ }), f(ne, {
2281
2290
  get when() {
2282
2291
  return e.config.type === "checkbox";
2283
2292
  },
2284
2293
  get children() {
2285
- return g(gr, {
2294
+ return f(fr, {
2286
2295
  get config() {
2287
2296
  return e.config;
2288
2297
  },
@@ -2294,12 +2303,12 @@ const $r = (e) => g(D, {
2294
2303
  }
2295
2304
  });
2296
2305
  }
2297
- }), g(te, {
2306
+ }), f(ne, {
2298
2307
  get when() {
2299
2308
  return e.config.type === "select";
2300
2309
  },
2301
2310
  get children() {
2302
- return g(pr, {
2311
+ return f(pr, {
2303
2312
  get config() {
2304
2313
  return e.config;
2305
2314
  },
@@ -2362,7 +2371,7 @@ const $r = (e) => g(D, {
2362
2371
  });
2363
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');
2364
2373
  const Ar = () => {
2365
- const e = E(), n = async (a) => {
2374
+ const e = $(), n = async (a) => {
2366
2375
  a.preventDefault();
2367
2376
  const o = await tn(), i = {
2368
2377
  message: e.feedback.state.message,
@@ -2387,7 +2396,7 @@ const Ar = () => {
2387
2396
  });
2388
2397
  }), (() => {
2389
2398
  var a = Mr(), o = a.firstChild, i = o.firstChild, l = i.firstChild, s = l.nextSibling, c = i.nextSibling;
2390
- return c.firstChild, a.$$click = () => e.feedback.state.isMinimized && r(), o.addEventListener("submit", n), v(l, () => e.widget.state.text.feedbackForm.title), v(s, g(W, {
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, {
2391
2400
  type: "button",
2392
2401
  title: "Hide form",
2393
2402
  variant: "secondary",
@@ -2395,11 +2404,11 @@ const Ar = () => {
2395
2404
  onClick: t,
2396
2405
  "aria-label": "Minimize feedback form",
2397
2406
  get children() {
2398
- return g(yn, {
2407
+ return f(yn, {
2399
2408
  size: 20
2400
2409
  });
2401
2410
  }
2402
- }), null), v(s, g(W, {
2411
+ }), null), v(s, f(W, {
2403
2412
  type: "button",
2404
2413
  title: "Close form",
2405
2414
  variant: "secondary",
@@ -2409,11 +2418,11 @@ const Ar = () => {
2409
2418
  }),
2410
2419
  "aria-label": "Close feedback form",
2411
2420
  get children() {
2412
- return g(pe, {
2421
+ return f(xe, {
2413
2422
  size: 20
2414
2423
  });
2415
2424
  }
2416
- }), null), v(c, g(st, {
2425
+ }), null), v(c, f(st, {
2417
2426
  get config() {
2418
2427
  return {
2419
2428
  type: "textarea",
@@ -2429,32 +2438,32 @@ const Ar = () => {
2429
2438
  onChange: (d) => e.feedback.setState({
2430
2439
  message: d
2431
2440
  })
2432
- }), null), v(o, g(D, {
2441
+ }), null), v(o, f(D, {
2433
2442
  get when() {
2434
2443
  var d;
2435
2444
  return (d = e.widget.state.customInputs) == null ? void 0 : d.length;
2436
2445
  },
2437
2446
  get children() {
2438
2447
  var d = Or();
2439
- return d.firstChild, v(d, g(_, {
2448
+ return d.firstChild, v(d, f(_, {
2440
2449
  get each() {
2441
2450
  return e.widget.state.customInputs;
2442
2451
  },
2443
- children: (h) => g($r, {
2452
+ children: (h) => f($r, {
2444
2453
  config: h,
2445
2454
  get value() {
2446
2455
  return e.feedback.state.customInputValues[h.id];
2447
2456
  },
2448
- onChange: (f) => e.feedback.setState({
2457
+ onChange: (g) => e.feedback.setState({
2449
2458
  customInputValues: {
2450
2459
  ...e.feedback.state.customInputValues,
2451
- [h.id]: f
2460
+ [h.id]: g
2452
2461
  }
2453
2462
  })
2454
2463
  })
2455
2464
  }), null), d;
2456
2465
  }
2457
- }), null), v(o, g(W, {
2466
+ }), null), v(o, f(W, {
2458
2467
  type: "submit",
2459
2468
  variant: "primary",
2460
2469
  size: "lg",
@@ -2466,8 +2475,8 @@ const Ar = () => {
2466
2475
  return e.widget.state.text.feedbackForm.submitButton;
2467
2476
  }
2468
2477
  }), null), b((d) => {
2469
- var h = e.feedback.state.isMinimized, f = e.feedback.state.isMinimized ? "pointer" : "default", m = !e.feedback.state.isMinimized;
2470
- return h !== d.e && u(a, "data-minimized", d.e = h), f !== d.t && ((d.t = f) != null ? a.style.setProperty("cursor", f) : a.style.removeProperty("cursor")), m !== d.a && u(a, "aria-expanded", d.a = m), 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;
2471
2480
  }, {
2472
2481
  e: void 0,
2473
2482
  t: void 0,
@@ -2477,21 +2486,21 @@ const Ar = () => {
2477
2486
  };
2478
2487
  T(["click"]);
2479
2488
  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>");
2480
- const Nr = (e) => g(Ot, {
2489
+ const Nr = (e) => f(Ot, {
2481
2490
  useShadow: !0,
2482
2491
  get mount() {
2483
2492
  return document.body;
2484
2493
  },
2485
2494
  get children() {
2486
- return g(cn, ge(e, {
2495
+ return f(cn, ge(e, {
2487
2496
  get children() {
2488
- return g(Wr, {
2497
+ return f(Wr, {
2489
2498
  get children() {
2490
- return [g(qr, {
2499
+ return [f(qr, {
2491
2500
  get primaryColor() {
2492
2501
  return e.primaryColor;
2493
2502
  }
2494
- }), g(Vr, {})];
2503
+ }), f(Vr, {})];
2495
2504
  }
2496
2505
  });
2497
2506
  }
@@ -2512,18 +2521,18 @@ const Nr = (e) => g(Ot, {
2512
2521
  return v(r, hn, null), v(r, n, null), r;
2513
2522
  })();
2514
2523
  }, Vr = () => {
2515
- const e = E();
2524
+ const e = $();
2516
2525
  return Y(() => {
2517
2526
  }), [(() => {
2518
2527
  var n = Fr();
2519
- return v(n, g(Rn, {}), null), v(n, g(Qn, {}), null), v(n, g(Gn, {}), null), b(() => u(n, "data-hidden", e.widget.state.isOpen)), n;
2520
- })(), g(Br, {
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, {
2521
2530
  get children() {
2522
- return [g(Ar, {}), g(Fn, {}), g(ar, {})];
2531
+ return [f(Ar, {}), f(Fn, {}), f(ar, {})];
2523
2532
  }
2524
2533
  })];
2525
2534
  }, Br = (e) => {
2526
- const [n, t] = A(), r = E(), a = dn(() => n());
2535
+ const [n, t] = A(), r = $(), a = dn(() => n());
2527
2536
  return Y(() => {
2528
2537
  n() && r.widget.setState({
2529
2538
  dimensions: a()
@@ -2545,10 +2554,10 @@ const Nr = (e) => g(Ot, {
2545
2554
  }), o;
2546
2555
  })();
2547
2556
  }, Wr = (e) => {
2548
- const n = E();
2557
+ const n = $();
2549
2558
  return un({
2550
2559
  onUrlChange: (t) => n.methods.handlePageChange(t)
2551
- }), ye(() => {
2560
+ }), pe(() => {
2552
2561
  Ht(), Jt((t) => {
2553
2562
  if (n.widget.state.isOpen && t.type === "keydown")
2554
2563
  switch (t.key) {
@@ -2557,7 +2566,7 @@ const Nr = (e) => g(Ot, {
2557
2566
  break;
2558
2567
  }
2559
2568
  });
2560
- }), ee(() => {
2569
+ }), te(() => {
2561
2570
  Ut(), Zt();
2562
2571
  }), (() => {
2563
2572
  var t = jr();
@@ -2588,9 +2597,9 @@ const Nr = (e) => g(Ot, {
2588
2597
  text: "Click & drag to draw"
2589
2598
  }
2590
2599
  };
2591
- let he = null;
2600
+ let fe = null;
2592
2601
  function Yr(e) {
2593
- he && (console.warn("Echo widget is already initialized. Cleaning up previous instance..."), he());
2602
+ fe && (console.warn("Echo widget is already initialized. Cleaning up previous instance..."), fe());
2594
2603
  try {
2595
2604
  rn(e);
2596
2605
  const {
@@ -2601,18 +2610,18 @@ function Yr(e) {
2601
2610
  customInputs: o = []
2602
2611
  } = e, i = Ke(_r, a), l = document.createElement("div");
2603
2612
  l.id = "echo-container", document.body.appendChild(l);
2604
- const s = kt(() => g(Nr, {
2613
+ const s = kt(() => f(Nr, {
2605
2614
  position: n,
2606
2615
  primaryColor: t,
2607
2616
  textConfig: i,
2608
2617
  onSubmit: r,
2609
2618
  customInputs: o
2610
2619
  }), l), c = () => {
2611
- s(), l.remove(), he = null;
2620
+ s(), l.remove(), fe = null;
2612
2621
  };
2613
2622
  return window.addEventListener("unload", c, {
2614
2623
  once: !0
2615
- }), he = c, c;
2624
+ }), fe = c, c;
2616
2625
  } catch (n) {
2617
2626
  throw console.error("Echo initialization failed:", n), n;
2618
2627
  }