@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 +308 -299
- package/dist/echo.umd.js +4 -4
- package/dist/style.css +1 -1
- package/package.json +1 -1
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
|
2
|
-
import
|
3
|
-
const
|
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
|
-
...
|
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,
|
127
|
-
for (; ++h < a && h < o && !((m = c.get(n[h])) == null || m !== d +
|
128
|
-
|
129
|
-
if (
|
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
|
-
|
163
|
+
ce(e) || (t == null ? e.removeAttribute(n) : e.setAttribute(n, t));
|
164
164
|
}
|
165
165
|
function St(e, n, t) {
|
166
|
-
|
166
|
+
ce(e) || (t ? e.setAttribute(n, "") : e.removeAttribute(n));
|
167
167
|
}
|
168
168
|
function Re(e, n) {
|
169
|
-
|
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 =
|
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
|
215
|
-
b((a) =>
|
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
|
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
|
251
|
-
r && e.removeEventListener(
|
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
|
254
|
-
r && e.removeEventListener(
|
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
|
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(
|
259
|
+
e.removeEventListener(g, y);
|
260
260
|
}
|
261
|
-
(m || t) && (U(e,
|
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 (
|
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
|
312
|
-
const o =
|
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 =
|
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 (
|
346
|
-
return b(() => 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
|
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 =
|
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 =
|
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, () =>
|
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)),
|
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),
|
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
|
-
},
|
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
|
-
},
|
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
|
-
}),
|
523
|
+
}), ie(K, r), Xe();
|
524
524
|
} catch (t) {
|
525
525
|
console.warn("Failed to save page state:", t);
|
526
526
|
}
|
527
|
-
},
|
527
|
+
}, Te = (e) => {
|
528
528
|
try {
|
529
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],
|
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
|
-
},
|
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),
|
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
|
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
|
581
|
+
function se(e, n = /* @__PURE__ */ new Set()) {
|
582
582
|
let t, r, a, o;
|
583
|
-
if (t = e != null && e[
|
584
|
-
if (!
|
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 =
|
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 =
|
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
|
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
|
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 ===
|
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
|
-
|
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 ===
|
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 =
|
627
|
+
const r = ve(e, Z), a = r[n];
|
628
628
|
let o = a ? a() : e[n];
|
629
|
-
if (n ===
|
629
|
+
if (n === Z || n === j || n === "__proto__") return o;
|
630
630
|
if (!a) {
|
631
631
|
const i = Object.getOwnPropertyDescriptor(e, n);
|
632
|
-
|
632
|
+
$e() && (typeof o != "function" || e.hasOwnProperty(n)) && !(i && i.get) && (o = le(r, n, o)());
|
633
633
|
}
|
634
|
-
return
|
634
|
+
return me(o) ? tt(o) : o;
|
635
635
|
},
|
636
636
|
has(e, n) {
|
637
|
-
return n ===
|
637
|
+
return n === ze || n === R || n === Fe || n === Z || n === j || n === "__proto__" ? !0 : ($e() && le(ve(e, j), n)(), n in e);
|
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
|
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 =
|
653
|
-
if ((l =
|
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 =
|
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
|
-
|
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 =
|
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 &&
|
672
|
+
e[t] !== a && be(e, t, a);
|
673
673
|
}
|
674
|
-
|
674
|
+
be(e, "length", r);
|
675
675
|
} else rt(e, n);
|
676
676
|
}
|
677
|
-
function
|
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
|
-
|
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) &&
|
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
|
-
|
693
|
+
oe(e, [h].concat(n), t);
|
694
694
|
return;
|
695
695
|
} else if (n.length > 1) {
|
696
|
-
|
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 =
|
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
|
705
|
-
const 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]) :
|
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,
|
739
|
-
const
|
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
|
-
},
|
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
|
-
}),
|
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
|
-
}),
|
782
|
-
}, console.log =
|
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),
|
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
|
-
},
|
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(" ")}`,
|
816
|
-
let
|
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
|
-
|
818
|
+
we.call(e, n, t, r);
|
819
819
|
}, Xt = (e, n, t, r) => {
|
820
|
-
|
821
|
-
},
|
822
|
-
|
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
|
-
|
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
|
-
|
827
|
-
|
828
|
-
|
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
|
-
|
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
|
-
|
844
|
+
pe(() => {
|
835
845
|
r == null || r(), o ? Gt(window, n, t) : window.addEventListener(n, t);
|
836
|
-
}),
|
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
|
-
|
851
|
+
pe(() => {
|
842
852
|
a == null || a(), i.observe(n, t);
|
843
|
-
}),
|
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
|
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] =
|
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 =
|
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,
|
904
|
-
c.cursor = We(h,
|
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 =
|
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
|
945
|
-
if (
|
946
|
-
i.startDrag(d), i.updateDragOffset(
|
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 =
|
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,
|
957
|
-
...
|
958
|
-
points:
|
959
|
-
x:
|
960
|
-
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
|
-
} :
|
963
|
-
o({ shapes:
|
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 =
|
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
|
981
|
-
|
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
|
-
(
|
1037
|
+
(g, m) => (g[m.id] = m.defaultValue ?? (m.type === "checkbox" ? [] : ""), g),
|
1028
1038
|
{}
|
1029
|
-
)) || {}, o =
|
1039
|
+
)) || {}, o = Te(n), i = (o == null ? void 0 : o.feedback.customInputValues) || {}, l = {
|
1030
1040
|
...a,
|
1031
1041
|
...i
|
1032
|
-
}, [s, c] =
|
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: (
|
1043
|
-
const y = "isCapturing" in
|
1044
|
-
!y && !s.hasUserInteracted && c({ hasUserInteracted: !0 }), c(
|
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] =
|
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 =
|
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 =
|
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
|
1184
|
+
return f(at.Provider, {
|
1175
1185
|
value: n,
|
1176
1186
|
get children() {
|
1177
1187
|
return e.children;
|
1178
1188
|
}
|
1179
1189
|
});
|
1180
|
-
},
|
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 =
|
1222
|
+
let n = Pe();
|
1213
1223
|
const t = () => {
|
1214
|
-
const r =
|
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
|
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
|
-
},
|
1254
|
-
const e =
|
1263
|
+
}, Ce = (e) => vn[e] || "Primary", bn = () => {
|
1264
|
+
const e = $();
|
1255
1265
|
return (() => {
|
1256
|
-
var n =
|
1257
|
-
return u(t, "aria-expanded", !1), v(a,
|
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 =
|
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 ${
|
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: ${
|
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
|
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 =
|
1426
|
+
const e = $(), n = Object.values(B);
|
1417
1427
|
return (() => {
|
1418
1428
|
var t = Mn(), r = t.firstChild;
|
1419
|
-
return v(t,
|
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,
|
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,
|
1451
|
+
}), r), v(t, f(bn, {}), r), r.$$click = () => e.drawing.setState({
|
1442
1452
|
shapes: []
|
1443
|
-
}, !0), v(r,
|
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 =
|
1453
|
-
return
|
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 =
|
1509
|
+
const e = $();
|
1500
1510
|
let n;
|
1501
|
-
const [t, r] = A(
|
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 =
|
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
|
1542
|
-
window.location.href =
|
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 =
|
1557
|
+
const y = ke();
|
1548
1558
|
r(y), e.widget.setState({
|
1549
1559
|
pagesCount: y.length
|
1550
1560
|
});
|
1551
|
-
},
|
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
|
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
|
1564
|
-
return typeof
|
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
|
1581
|
+
return f(xe, {
|
1572
1582
|
size: 20
|
1573
1583
|
});
|
1574
1584
|
}
|
1575
|
-
}), null), v(
|
1585
|
+
}), null), v(E, f(_, {
|
1576
1586
|
get each() {
|
1577
1587
|
return t();
|
1578
1588
|
},
|
1579
|
-
children: (
|
1580
|
-
const p =
|
1589
|
+
children: (C) => {
|
1590
|
+
const p = k(() => C.path === a());
|
1581
1591
|
return (() => {
|
1582
|
-
var P = _n(), z = P.firstChild,
|
1583
|
-
return v(
|
1584
|
-
var I =
|
1585
|
-
return () => I() &&
|
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(
|
1599
|
+
onClick: () => d(C.path, C.state.latestQuery),
|
1590
1600
|
get children() {
|
1591
|
-
return
|
1601
|
+
return f(Vn, {});
|
1592
1602
|
}
|
1593
1603
|
});
|
1594
|
-
})(), null), v(q,
|
1604
|
+
})(), null), v(q, f(W, {
|
1595
1605
|
class: "echo-stored-feedback-delete",
|
1596
1606
|
variant: "secondary",
|
1597
1607
|
size: "sm",
|
1598
|
-
onClick: () => h(
|
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 =
|
1602
|
-
return Me !== I.e && Re(P, I.e = Me), Ae !== I.t && u(
|
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(
|
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 =
|
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
|
-
}),
|
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,
|
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 =
|
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,
|
1662
|
-
return h !== d.e && u(c, "data-hidden", d.e = h),
|
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
|
-
})(),
|
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 =
|
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,
|
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
|
1711
|
+
return f(xe, {
|
1702
1712
|
size: 20
|
1703
1713
|
});
|
1704
1714
|
}
|
1705
1715
|
}), a), v(a, (() => {
|
1706
|
-
var s =
|
1707
|
-
return () => s() ?
|
1716
|
+
var s = k(() => e.widget.state.notification.type === "success");
|
1717
|
+
return () => s() ? f(zn, {
|
1708
1718
|
size: 32
|
1709
1719
|
}) : (() => {
|
1710
|
-
var c =
|
1711
|
-
return () => c() ?
|
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 =
|
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 =
|
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,
|
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 -
|
1771
|
-
y: Math.max(c.height + h, Math.min(window.innerHeight - h, d.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,
|
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
|
1792
|
+
return f(it, {
|
1783
1793
|
size: 20
|
1784
1794
|
});
|
1785
1795
|
}
|
1786
1796
|
})), b((d) => {
|
1787
|
-
var
|
1788
|
-
var h = !l(),
|
1789
|
-
return h !== d.e && (s.hidden = d.e = h),
|
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 =
|
1808
|
+
const e = $(), n = G("welcome_message_shown", !1), t = (a) => {
|
1800
1809
|
a.stopPropagation(), e.widget.setState({
|
1801
1810
|
welcomeMessageIsClosing: !0
|
1802
|
-
}),
|
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
|
-
}),
|
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,
|
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 =
|
1828
|
-
return [
|
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
|
1842
|
+
return f(nr, ge(e, {
|
1834
1843
|
get isSelected() {
|
1835
1844
|
return n();
|
1836
1845
|
}
|
1837
1846
|
}));
|
1838
1847
|
}
|
1839
|
-
}),
|
1848
|
+
}), f(D, {
|
1840
1849
|
get when() {
|
1841
1850
|
return e.type === "path";
|
1842
1851
|
},
|
1843
1852
|
get children() {
|
1844
|
-
return
|
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 =
|
1853
|
-
return
|
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,
|
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),
|
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 =
|
1887
|
-
return
|
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)" : ""}`,
|
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),
|
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 =
|
1928
|
+
const e = $();
|
1920
1929
|
let n;
|
1921
|
-
return
|
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
|
-
}),
|
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,
|
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,
|
1950
|
+
}, v(r, f(_, {
|
1942
1951
|
get each() {
|
1943
1952
|
return e.drawing.state.shapes;
|
1944
1953
|
},
|
1945
|
-
children: (i) =>
|
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,
|
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
|
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
|
2016
|
+
const ue = (e) => (() => {
|
2008
2017
|
var n = ir();
|
2009
2018
|
return v(n, (() => {
|
2010
|
-
var t =
|
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 =
|
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
|
-
} =
|
2025
|
-
return
|
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
|
2065
|
+
const fr = (e) => {
|
2057
2066
|
const {
|
2058
2067
|
handleCheckboxChange: n,
|
2059
2068
|
getCheckboxValue: t
|
2060
|
-
} =
|
2061
|
-
return
|
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,
|
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
|
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
|
-
} =
|
2087
|
-
return
|
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 =
|
2096
|
-
return v(t,
|
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
|
-
} =
|
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,
|
2121
|
-
|
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
|
-
}),
|
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(),
|
2140
|
-
typeof
|
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
|
2144
|
-
typeof
|
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,
|
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,
|
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 = (
|
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 !==
|
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
|
2171
|
-
return typeof
|
2172
|
-
var P = t(), z = !e.value,
|
2173
|
-
return P !== p.e && u(
|
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
|
-
} =
|
2191
|
-
return
|
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) =>
|
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
|
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 [
|
2238
|
+
return [f(ne, {
|
2230
2239
|
get when() {
|
2231
2240
|
return e.config.type === "text";
|
2232
2241
|
},
|
2233
2242
|
get children() {
|
2234
|
-
return
|
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
|
-
}),
|
2255
|
+
}), f(ne, {
|
2247
2256
|
get when() {
|
2248
2257
|
return e.config.type === "textarea";
|
2249
2258
|
},
|
2250
2259
|
get children() {
|
2251
|
-
return
|
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
|
-
}),
|
2272
|
+
}), f(ne, {
|
2264
2273
|
get when() {
|
2265
2274
|
return e.config.type === "radio";
|
2266
2275
|
},
|
2267
2276
|
get children() {
|
2268
|
-
return
|
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
|
-
}),
|
2289
|
+
}), f(ne, {
|
2281
2290
|
get when() {
|
2282
2291
|
return e.config.type === "checkbox";
|
2283
2292
|
},
|
2284
2293
|
get children() {
|
2285
|
-
return
|
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
|
-
}),
|
2306
|
+
}), f(ne, {
|
2298
2307
|
get when() {
|
2299
2308
|
return e.config.type === "select";
|
2300
2309
|
},
|
2301
2310
|
get children() {
|
2302
|
-
return
|
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 =
|
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,
|
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
|
2407
|
+
return f(yn, {
|
2399
2408
|
size: 20
|
2400
2409
|
});
|
2401
2410
|
}
|
2402
|
-
}), null), v(s,
|
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
|
2421
|
+
return f(xe, {
|
2413
2422
|
size: 20
|
2414
2423
|
});
|
2415
2424
|
}
|
2416
|
-
}), null), v(c,
|
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,
|
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,
|
2448
|
+
return d.firstChild, v(d, f(_, {
|
2440
2449
|
get each() {
|
2441
2450
|
return e.widget.state.customInputs;
|
2442
2451
|
},
|
2443
|
-
children: (h) =>
|
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: (
|
2457
|
+
onChange: (g) => e.feedback.setState({
|
2449
2458
|
customInputValues: {
|
2450
2459
|
...e.feedback.state.customInputValues,
|
2451
|
-
[h.id]:
|
2460
|
+
[h.id]: g
|
2452
2461
|
}
|
2453
2462
|
})
|
2454
2463
|
})
|
2455
2464
|
}), null), d;
|
2456
2465
|
}
|
2457
|
-
}), null), v(o,
|
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,
|
2470
|
-
return h !== d.e && u(a, "data-minimized", d.e = h),
|
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) =>
|
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
|
2495
|
+
return f(cn, ge(e, {
|
2487
2496
|
get children() {
|
2488
|
-
return
|
2497
|
+
return f(Wr, {
|
2489
2498
|
get children() {
|
2490
|
-
return [
|
2499
|
+
return [f(qr, {
|
2491
2500
|
get primaryColor() {
|
2492
2501
|
return e.primaryColor;
|
2493
2502
|
}
|
2494
|
-
}),
|
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 =
|
2524
|
+
const e = $();
|
2516
2525
|
return Y(() => {
|
2517
2526
|
}), [(() => {
|
2518
2527
|
var n = Fr();
|
2519
|
-
return v(n,
|
2520
|
-
})(),
|
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 [
|
2531
|
+
return [f(Ar, {}), f(Fn, {}), f(ar, {})];
|
2523
2532
|
}
|
2524
2533
|
})];
|
2525
2534
|
}, Br = (e) => {
|
2526
|
-
const [n, t] = A(), r =
|
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 =
|
2557
|
+
const n = $();
|
2549
2558
|
return un({
|
2550
2559
|
onUrlChange: (t) => n.methods.handlePageChange(t)
|
2551
|
-
}),
|
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
|
-
}),
|
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
|
2600
|
+
let fe = null;
|
2592
2601
|
function Yr(e) {
|
2593
|
-
|
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(() =>
|
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(),
|
2620
|
+
s(), l.remove(), fe = null;
|
2612
2621
|
};
|
2613
2622
|
return window.addEventListener("unload", c, {
|
2614
2623
|
once: !0
|
2615
|
-
}),
|
2624
|
+
}), fe = c, c;
|
2616
2625
|
} catch (n) {
|
2617
2626
|
throw console.error("Echo initialization failed:", n), n;
|
2618
2627
|
}
|