@contember/echo 0.0.33-beta.5 → 0.0.33-beta.6
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 +59 -42
- package/dist/echo.umd.js +3 -3
- package/package.json +1 -1
package/dist/echo.es.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { sharedConfig as L, createRoot as Ye, createRenderEffect as b, untrack as Ke, getOwner as Le, createEffect as H, runWithOwner as dt, createMemo as k, createSignal as T, onCleanup as te, $PROXY as Y, $TRACK as Ne, getListener as Pe, batch as ut, onMount as ke, createContext as ht, createComponent as g, useContext as gt, For as B, Show as
|
1
|
+
import { sharedConfig as L, createRoot as Ye, createRenderEffect as b, untrack as Ke, getOwner as Le, createEffect as H, runWithOwner as dt, createMemo as k, createSignal as T, onCleanup as te, $PROXY as Y, $TRACK as Ne, getListener as Pe, batch as ut, onMount as ke, createContext as ht, createComponent as g, useContext as gt, For as B, Show as F, mergeProps as ie, Switch as ft, Match as ne } from "solid-js";
|
2
2
|
import mt from "html2canvas-pro";
|
3
3
|
const vt = [
|
4
4
|
"allowfullscreen",
|
@@ -189,7 +189,7 @@ function Et(e, n, t = {}) {
|
|
189
189
|
}
|
190
190
|
return t;
|
191
191
|
}
|
192
|
-
function
|
192
|
+
function O(e, n, t) {
|
193
193
|
if (!n) return t ? d(e, "style") : n;
|
194
194
|
const r = e.style;
|
195
195
|
if (typeof n == "string") return r.cssText = n;
|
@@ -241,7 +241,7 @@ function qe(e, n, t) {
|
|
241
241
|
}
|
242
242
|
function Re(e, n, t, r, a, o, i) {
|
243
243
|
let l, s, c, u, h;
|
244
|
-
if (n === "style") return
|
244
|
+
if (n === "style") return O(e, t, r);
|
245
245
|
if (n === "classList") return Et(e, t, r);
|
246
246
|
if (t === r) return r;
|
247
247
|
if (n === "ref")
|
@@ -735,7 +735,7 @@ const V = {
|
|
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
|
}, Ut = (e) => _t(e) < 0.5 ? "#FFFFFF" : "#000000";
|
738
|
-
let j = [],
|
738
|
+
let j = [], A = null, Q = null, ee = null;
|
739
739
|
const $e = (e, n) => (...t) => {
|
740
740
|
const r = (o) => {
|
741
741
|
if (typeof o == "string") return o;
|
@@ -760,7 +760,7 @@ const $e = (e, n) => (...t) => {
|
|
760
760
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
761
761
|
}), j.length > 1e3 && (j = j.slice(-1e3)), n.apply(console, t);
|
762
762
|
}, Ht = () => {
|
763
|
-
|
763
|
+
A || (A = {
|
764
764
|
log: console.log,
|
765
765
|
warn: console.warn,
|
766
766
|
error: console.error
|
@@ -779,7 +779,7 @@ Location: ${n}:${t}:${r}`,
|
|
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
781
|
}), ee && ee(e);
|
782
|
-
}, console.log = $e("log",
|
782
|
+
}, console.log = $e("log", A.log), console.warn = $e("warn", A.warn), console.error = $e("error", A.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
|
j.push({
|
785
785
|
type: "error",
|
@@ -789,7 +789,7 @@ Location: ${t}:${r}:${a}`,
|
|
789
789
|
});
|
790
790
|
}));
|
791
791
|
}, Yt = () => {
|
792
|
-
|
792
|
+
A && (console.log = A.log, console.warn = A.warn, console.error = A.error, A = null), Q && (window.onerror = Q, Q = null), ee && (window.onunhandledrejection = ee, ee = null), window.removeEventListener("error", () => {
|
793
793
|
}), j = [];
|
794
794
|
}, Kt = () => [...j], Gt = () => {
|
795
795
|
var e;
|
@@ -854,7 +854,7 @@ const re = /* @__PURE__ */ new WeakMap(), Jt = (e) => {
|
|
854
854
|
});
|
855
855
|
}, Qt = () => {
|
856
856
|
xe && (window.EventTarget.prototype.addEventListener = be, window.EventTarget.prototype.removeEventListener = J, xe = !1, ae = null);
|
857
|
-
},
|
857
|
+
}, D = (e) => {
|
858
858
|
const { event: n, callback: t, onMount: r, onCleanup: a } = e;
|
859
859
|
ke(() => {
|
860
860
|
r == null || r(), window.addEventListener(n, t);
|
@@ -1222,7 +1222,7 @@ const re = /* @__PURE__ */ new WeakMap(), Jt = (e) => {
|
|
1222
1222
|
}));
|
1223
1223
|
});
|
1224
1224
|
};
|
1225
|
-
return
|
1225
|
+
return D({
|
1226
1226
|
event: "resize",
|
1227
1227
|
callback: r,
|
1228
1228
|
onMount: r
|
@@ -1241,7 +1241,7 @@ const re = /* @__PURE__ */ new WeakMap(), Jt = (e) => {
|
|
1241
1241
|
const r = Te();
|
1242
1242
|
r !== n && (n = r, e(r));
|
1243
1243
|
};
|
1244
|
-
|
1244
|
+
D({ event: "popstate", callback: t }), D({ event: "pushstate", callback: t }), D({ event: "replacestate", callback: t }), Ae({
|
1245
1245
|
target: document.documentElement,
|
1246
1246
|
options: {
|
1247
1247
|
childList: !0,
|
@@ -1314,7 +1314,7 @@ const pn = (e) => (() => {
|
|
1314
1314
|
var n = yn();
|
1315
1315
|
return b((t) => {
|
1316
1316
|
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;
|
1317
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1317
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = O(n, c, t.s), t;
|
1318
1318
|
}, {
|
1319
1319
|
e: void 0,
|
1320
1320
|
t: void 0,
|
@@ -1330,7 +1330,7 @@ const kn = (e) => (() => {
|
|
1330
1330
|
var n = xn(), t = n.firstChild;
|
1331
1331
|
return b((r) => {
|
1332
1332
|
var a = e.size ?? 24, o = e.size ?? 24, i = e.class, l = e.style, s = e.fill ?? "currentColor";
|
1333
|
-
return a !== r.e && d(n, "width", r.e = a), o !== r.t && d(n, "height", r.t = o), i !== r.a && d(n, "class", r.a = i), r.o =
|
1333
|
+
return a !== r.e && d(n, "width", r.e = a), o !== r.t && d(n, "height", r.t = o), i !== r.a && d(n, "class", r.a = i), r.o = O(n, l, r.o), s !== r.i && d(t, "fill", r.i = s), r;
|
1334
1334
|
}, {
|
1335
1335
|
e: void 0,
|
1336
1336
|
t: void 0,
|
@@ -1344,7 +1344,7 @@ const Cn = (e) => (() => {
|
|
1344
1344
|
var n = Sn();
|
1345
1345
|
return b((t) => {
|
1346
1346
|
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;
|
1347
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1347
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = O(n, c, t.s), t;
|
1348
1348
|
}, {
|
1349
1349
|
e: void 0,
|
1350
1350
|
t: void 0,
|
@@ -1360,7 +1360,7 @@ const En = (e) => (() => {
|
|
1360
1360
|
var n = $n();
|
1361
1361
|
return b((t) => {
|
1362
1362
|
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;
|
1363
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1363
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = O(n, c, t.s), t;
|
1364
1364
|
}, {
|
1365
1365
|
e: void 0,
|
1366
1366
|
t: void 0,
|
@@ -1376,7 +1376,7 @@ const lt = (e) => (() => {
|
|
1376
1376
|
var n = Pn();
|
1377
1377
|
return b((t) => {
|
1378
1378
|
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;
|
1379
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1379
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = O(n, c, t.s), t;
|
1380
1380
|
}, {
|
1381
1381
|
e: void 0,
|
1382
1382
|
t: void 0,
|
@@ -1392,7 +1392,7 @@ const Tn = (e) => (() => {
|
|
1392
1392
|
var n = zn();
|
1393
1393
|
return b((t) => {
|
1394
1394
|
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;
|
1395
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1395
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = O(n, c, t.s), t;
|
1396
1396
|
}, {
|
1397
1397
|
e: void 0,
|
1398
1398
|
t: void 0,
|
@@ -1408,7 +1408,7 @@ const On = (e) => (() => {
|
|
1408
1408
|
var n = In();
|
1409
1409
|
return b((t) => {
|
1410
1410
|
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;
|
1411
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1411
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = O(n, c, t.s), t;
|
1412
1412
|
}, {
|
1413
1413
|
e: void 0,
|
1414
1414
|
t: void 0,
|
@@ -1424,7 +1424,7 @@ const Se = (e) => (() => {
|
|
1424
1424
|
var n = Mn();
|
1425
1425
|
return b((t) => {
|
1426
1426
|
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;
|
1427
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1427
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = O(n, c, t.s), t;
|
1428
1428
|
}, {
|
1429
1429
|
e: void 0,
|
1430
1430
|
t: void 0,
|
@@ -1477,7 +1477,7 @@ I(["click"]);
|
|
1477
1477
|
var Nn = /* @__PURE__ */ w("<div class=echo-drawing-tooltip data-hide-when-drawing=true>");
|
1478
1478
|
const jn = () => {
|
1479
1479
|
const e = $(), n = k(() => e.drawing.state.showTooltip && e.drawing.state.mousePosition.y && e.drawing.state.mousePosition.x && e.widget.state.isOpen && !Gt());
|
1480
|
-
return g(
|
1480
|
+
return g(F, {
|
1481
1481
|
get when() {
|
1482
1482
|
return n();
|
1483
1483
|
},
|
@@ -1510,7 +1510,7 @@ const Vn = (e) => (() => {
|
|
1510
1510
|
var n = Rn();
|
1511
1511
|
return b((t) => {
|
1512
1512
|
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;
|
1513
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1513
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = O(n, c, t.s), t;
|
1514
1514
|
}, {
|
1515
1515
|
e: void 0,
|
1516
1516
|
t: void 0,
|
@@ -1542,10 +1542,10 @@ const Un = () => {
|
|
1542
1542
|
}, c = () => {
|
1543
1543
|
o(window.location.pathname);
|
1544
1544
|
};
|
1545
|
-
|
1545
|
+
D({
|
1546
1546
|
event: "echo-storage-change",
|
1547
1547
|
callback: s
|
1548
|
-
}),
|
1548
|
+
}), D({
|
1549
1549
|
event: "popstate",
|
1550
1550
|
callback: c
|
1551
1551
|
}), Ae({
|
@@ -1557,10 +1557,10 @@ const Un = () => {
|
|
1557
1557
|
callback: () => {
|
1558
1558
|
o(window.location.pathname);
|
1559
1559
|
}
|
1560
|
-
}),
|
1560
|
+
}), D({
|
1561
1561
|
event: "keydown",
|
1562
1562
|
callback: i
|
1563
|
-
}),
|
1563
|
+
}), D({
|
1564
1564
|
event: "click",
|
1565
1565
|
callback: l
|
1566
1566
|
});
|
@@ -1580,7 +1580,7 @@ const Un = () => {
|
|
1580
1580
|
const y = m.split("/");
|
1581
1581
|
return y.length <= 4 ? m : `/${y[1]}/.../${y[y.length - 1]}`;
|
1582
1582
|
};
|
1583
|
-
return g(
|
1583
|
+
return g(F, {
|
1584
1584
|
get when() {
|
1585
1585
|
return e.widget.state.isStoredFeedbackOpen;
|
1586
1586
|
},
|
@@ -1608,8 +1608,8 @@ const Un = () => {
|
|
1608
1608
|
return (() => {
|
1609
1609
|
var P = _n(), z = P.firstChild, x = z.firstChild, _ = x.nextSibling, q = z.nextSibling;
|
1610
1610
|
return v(x, () => f(C.path)), v(_, () => C.state.feedback.message), v(q, (() => {
|
1611
|
-
var
|
1612
|
-
return () =>
|
1611
|
+
var M = k(() => !p());
|
1612
|
+
return () => M() && g(W, {
|
1613
1613
|
class: "echo-stored-feedback-link",
|
1614
1614
|
variant: "secondary",
|
1615
1615
|
size: "sm",
|
@@ -1624,16 +1624,16 @@ const Un = () => {
|
|
1624
1624
|
size: "sm",
|
1625
1625
|
onClick: () => h(C.path),
|
1626
1626
|
children: "Delete"
|
1627
|
-
}), null), b((
|
1627
|
+
}), null), b((M) => {
|
1628
1628
|
var De = `echo-stored-feedback-item ${p() ? "echo-stored-feedback-item-current" : ""}`, Fe = C.path;
|
1629
|
-
return De !==
|
1629
|
+
return De !== M.e && Ge(P, M.e = De), Fe !== M.t && d(x, "title", M.t = Fe), M;
|
1630
1630
|
}, {
|
1631
1631
|
e: void 0,
|
1632
1632
|
t: void 0
|
1633
1633
|
}), P;
|
1634
1634
|
})();
|
1635
1635
|
}
|
1636
|
-
}), null), v(E, g(
|
1636
|
+
}), null), v(E, g(F, {
|
1637
1637
|
get when() {
|
1638
1638
|
return t().length === 0;
|
1639
1639
|
},
|
@@ -1760,7 +1760,7 @@ const Zn = () => {
|
|
1760
1760
|
x: window.scrollX,
|
1761
1761
|
y: window.scrollY
|
1762
1762
|
});
|
1763
|
-
|
1763
|
+
D({
|
1764
1764
|
event: "scroll",
|
1765
1765
|
callback: () => {
|
1766
1766
|
r({
|
@@ -1851,7 +1851,7 @@ I(["click", "keydown"]);
|
|
1851
1851
|
var tr = /* @__PURE__ */ w("<svg><rect class=echo-shape fill=transparent vector-effect=non-scaling-stroke role=img></svg>", !1, !0), nr = /* @__PURE__ */ w("<svg><path class=echo-shape fill=none vector-effect=non-scaling-stroke stroke-linecap=round role=img></svg>", !1, !0);
|
1852
1852
|
const He = (e) => {
|
1853
1853
|
const n = k(() => e.id === e.selectedShapeId);
|
1854
|
-
return [g(
|
1854
|
+
return [g(F, {
|
1855
1855
|
get when() {
|
1856
1856
|
return e.type === "rectangle";
|
1857
1857
|
},
|
@@ -1862,7 +1862,7 @@ const He = (e) => {
|
|
1862
1862
|
}
|
1863
1863
|
}));
|
1864
1864
|
}
|
1865
|
-
}), g(
|
1865
|
+
}), g(F, {
|
1866
1866
|
get when() {
|
1867
1867
|
return e.type === "path";
|
1868
1868
|
},
|
@@ -1876,7 +1876,7 @@ const He = (e) => {
|
|
1876
1876
|
})];
|
1877
1877
|
}, rr = (e) => {
|
1878
1878
|
const n = k(() => it(e.points));
|
1879
|
-
return g(
|
1879
|
+
return g(F, {
|
1880
1880
|
get when() {
|
1881
1881
|
return n();
|
1882
1882
|
},
|
@@ -1910,7 +1910,7 @@ const He = (e) => {
|
|
1910
1910
|
});
|
1911
1911
|
}, or = (e) => {
|
1912
1912
|
const n = k(() => Xt(e.points));
|
1913
|
-
return g(
|
1913
|
+
return g(F, {
|
1914
1914
|
get when() {
|
1915
1915
|
return n();
|
1916
1916
|
},
|
@@ -2148,7 +2148,7 @@ const xr = (e) => {
|
|
2148
2148
|
}, c = () => {
|
2149
2149
|
r(!t());
|
2150
2150
|
};
|
2151
|
-
return
|
2151
|
+
return D({
|
2152
2152
|
event: "mousedown",
|
2153
2153
|
callback: (h) => {
|
2154
2154
|
if (!t() || !a) return;
|
@@ -2170,7 +2170,7 @@ const xr = (e) => {
|
|
2170
2170
|
typeof S == "function" ? R(S, f) : o = f, v(m, () => {
|
2171
2171
|
var p;
|
2172
2172
|
return ((p = l()) == null ? void 0 : p.label) || e.config.placeholder;
|
2173
|
-
}), v(h, g(
|
2173
|
+
}), v(h, g(F, {
|
2174
2174
|
get when() {
|
2175
2175
|
return t();
|
2176
2176
|
},
|
@@ -2195,8 +2195,8 @@ const xr = (e) => {
|
|
2195
2195
|
}), y);
|
2196
2196
|
var C = i;
|
2197
2197
|
return typeof C == "function" ? R(C, y) : i = y, b((p) => {
|
2198
|
-
var P = t(), z = !e.value, x = e.config.required, _ = t(), q = e.config.required,
|
2199
|
-
return P !== p.e && d(f, "data-open", p.e = P), z !== p.t && d(f, "data-placeholder", p.t = z), x !== p.a && d(f, "data-required", p.a = x), _ !== p.o && d(f, "aria-expanded", p.o = _), q !== p.i && d(f, "aria-required", p.i = q),
|
2198
|
+
var P = t(), z = !e.value, x = e.config.required, _ = t(), q = e.config.required, M = e.config.required;
|
2199
|
+
return P !== p.e && d(f, "data-open", p.e = P), z !== p.t && d(f, "data-placeholder", p.t = z), x !== p.a && d(f, "data-required", p.a = x), _ !== p.o && d(f, "aria-expanded", p.o = _), q !== p.i && d(f, "aria-required", p.i = q), M !== p.n && (y.required = p.n = M), p;
|
2200
2200
|
}, {
|
2201
2201
|
e: void 0,
|
2202
2202
|
t: void 0,
|
@@ -2236,7 +2236,7 @@ const Sr = (e) => {
|
|
2236
2236
|
};
|
2237
2237
|
I(["input"]);
|
2238
2238
|
var Cr = /* @__PURE__ */ w("<div class=echo-input-error>Invalid input type"), $r = /* @__PURE__ */ w("<div class=echo-input-error>Unsupported input type: ");
|
2239
|
-
const Er = (e) => g(
|
2239
|
+
const Er = (e) => g(F, {
|
2240
2240
|
get when() {
|
2241
2241
|
return e.config.type;
|
2242
2242
|
},
|
@@ -2455,7 +2455,7 @@ const Dr = () => {
|
|
2455
2455
|
onChange: (h) => e.feedback.setState({
|
2456
2456
|
message: h
|
2457
2457
|
})
|
2458
|
-
}), null), v(o, g(
|
2458
|
+
}), null), v(o, g(F, {
|
2459
2459
|
get when() {
|
2460
2460
|
var h;
|
2461
2461
|
return (h = e.widget.state.customInputs) == null ? void 0 : h.length;
|
@@ -2548,7 +2548,24 @@ const qr = (e) => {
|
|
2548
2548
|
const e = $();
|
2549
2549
|
return [(() => {
|
2550
2550
|
var n = Lr();
|
2551
|
-
return v(n, g(Kn, {}), null), v(n, g(er, {}), null), v(n, g(Xn, {}), null), b(() =>
|
2551
|
+
return v(n, g(Kn, {}), null), v(n, g(er, {}), null), v(n, g(Xn, {}), null), b((t) => {
|
2552
|
+
var r = {
|
2553
|
+
...e.widget.state.position.includes("top") ? {
|
2554
|
+
top: "var(--spacing-xl)"
|
2555
|
+
} : {
|
2556
|
+
bottom: "var(--spacing-xl)"
|
2557
|
+
},
|
2558
|
+
...e.widget.state.position.includes("left") ? {
|
2559
|
+
left: "var(--spacing-xl)"
|
2560
|
+
} : {
|
2561
|
+
right: "var(--spacing-xl)"
|
2562
|
+
}
|
2563
|
+
}, a = e.widget.state.isOpen;
|
2564
|
+
return t.e = O(n, r, t.e), a !== t.t && d(n, "data-hidden", t.t = a), t;
|
2565
|
+
}, {
|
2566
|
+
e: void 0,
|
2567
|
+
t: void 0
|
2568
|
+
}), n;
|
2552
2569
|
})(), g(Wr, {
|
2553
2570
|
get children() {
|
2554
2571
|
return [g(Dr, {}), g(Ln, {}), g(ir, {})];
|
package/dist/echo.umd.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
(function(A,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("solid-js"),require("html2canvas-pro")):typeof define=="function"&&define.amd?define(["exports","solid-js","html2canvas-pro"],c):(A=typeof globalThis<"u"?globalThis:A||self,c(A.Echo={},A.Solid,A["html2canvas-pro"]))})(this,function(A,c,Xe){"use strict";const Ke=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected"],Ge=new Set(["className","value","readOnly","formNoValidate","isMap","noModule","playsInline",...Ke]),Ze=new Set(["innerHTML","textContent","innerText","children"]),Qe=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),Je=Object.assign(Object.create(null),{class:"className",formnovalidate:{$:"formNoValidate",BUTTON:1,INPUT:1},ismap:{$:"isMap",IMG:1},nomodule:{$:"noModule",SCRIPT:1},playsinline:{$:"playsInline",VIDEO:1},readonly:{$:"readOnly",INPUT:1,TEXTAREA:1}});function et(e,n){const t=Je[e];return typeof t=="object"?t[n]?t.$:void 0:t}const tt=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]);function nt(e,n,t){let r=t.length,o=n.length,a=r,i=0,l=0,s=n[o-1].nextSibling,d=null;for(;i<o||l<a;){if(n[i]===t[l]){i++,l++;continue}for(;n[o-1]===t[a-1];)o--,a--;if(o===i){const h=a<r?l?t[l-1].nextSibling:t[a-l]:s;for(;l<a;)e.insertBefore(t[l++],h)}else if(a===l)for(;i<o;)(!d||!d.has(n[i]))&&n[i].remove(),i++;else if(n[i]===t[a-1]&&t[l]===n[o-1]){const h=n[--o].nextSibling;e.insertBefore(t[l++],n[i++].nextSibling),e.insertBefore(t[--a],h),n[o]=t[a]}else{if(!d){d=new Map;let f=l;for(;f<a;)d.set(t[f],f++)}const h=d.get(n[i]);if(h!=null)if(l<h&&h<a){let f=i,g=1,m;for(;++f<o&&f<a&&!((m=d.get(n[f]))==null||m!==h+g);)g++;if(g>h-l){const w=n[i];for(;l<h;)e.insertBefore(t[l++],w)}else e.replaceChild(t[l++],n[i++])}else i++;else n[i++].remove()}}}const ke="_$DX_DELEGATE";function rt(e,n,t,r={}){let o;return c.createRoot(a=>{o=a,n===document?e():v(n,e(),n.firstChild?null:void 0,t)},r.owner),()=>{o(),n.textContent=""}}function b(e,n,t){let r;const o=()=>{const i=document.createElement("template");return i.innerHTML=e,t?i.content.firstChild.firstChild:i.content.firstChild},a=n?()=>c.untrack(()=>document.importNode(r||(r=o()),!0)):()=>(r||(r=o())).cloneNode(!0);return a.cloneNode=a,a}function E(e,n=window.document){const t=n[ke]||(n[ke]=new Set);for(let r=0,o=e.length;r<o;r++){const a=e[r];t.has(a)||(t.add(a),n.addEventListener(a,lt))}}function u(e,n,t){X(e)||(t==null?e.removeAttribute(n):e.setAttribute(n,t))}function at(e,n,t){X(e)||(t?e.setAttribute(n,""):e.removeAttribute(n))}function Ce(e,n){X(e)||(n==null?e.removeAttribute("class"):e.className=n)}function N(e,n,t,r){if(r)Array.isArray(t)?(e[`$$${n}`]=t[0],e[`$$${n}Data`]=t[1]):e[`$$${n}`]=t;else if(Array.isArray(t)){const o=t[0];e.addEventListener(n,t[0]=a=>o.call(e,t[1],a))}else e.addEventListener(n,t,typeof t!="function"&&t)}function ot(e,n,t={}){const r=Object.keys(n||{}),o=Object.keys(t);let a,i;for(a=0,i=o.length;a<i;a++){const l=o[a];!l||l==="undefined"||n[l]||(Se(e,l,!1),delete t[l])}for(a=0,i=r.length;a<i;a++){const l=r[a],s=!!n[l];!l||l==="undefined"||t[l]===s||!s||(Se(e,l,!0),t[l]=s)}return t}function z(e,n,t){if(!n)return t?u(e,"style"):n;const r=e.style;if(typeof n=="string")return r.cssText=n;typeof t=="string"&&(r.cssText=t=void 0),t||(t={}),n||(n={});let o,a;for(a in t)n[a]==null&&r.removeProperty(a),delete t[a];for(a in n)o=n[a],o!==t[a]&&(r.setProperty(a,o),t[a]=o);return t}function it(e,n={},t,r){const o={};return c.createRenderEffect(()=>o.children=K(e,n.children,o.children)),c.createRenderEffect(()=>typeof n.ref=="function"&&D(n.ref,e)),c.createRenderEffect(()=>ct(e,n,t,!0,o,!0)),o}function D(e,n,t){return c.untrack(()=>e(n,t))}function v(e,n,t,r){if(t!==void 0&&!r&&(r=[]),typeof n!="function")return K(e,n,r,t);c.createRenderEffect(o=>K(e,n(),o,t),r)}function ct(e,n,t,r,o={},a=!1){n||(n={});for(const i in o)if(!(i in n)){if(i==="children")continue;o[i]=Ee(e,i,null,o[i],t,a,n)}for(const i in n){if(i==="children")continue;const l=n[i];o[i]=Ee(e,i,l,o[i],t,a,n)}}function X(e){return!!c.sharedConfig.context&&!c.sharedConfig.done&&(!e||e.isConnected)}function st(e){return e.toLowerCase().replace(/-([a-z])/g,(n,t)=>t.toUpperCase())}function Se(e,n,t){const r=n.trim().split(/\s+/);for(let o=0,a=r.length;o<a;o++)e.classList.toggle(r[o],t)}function Ee(e,n,t,r,o,a,i){let l,s,d,h,f;if(n==="style")return z(e,t,r);if(n==="classList")return ot(e,t,r);if(t===r)return r;if(n==="ref")a||t(e);else if(n.slice(0,3)==="on:"){const g=n.slice(3);r&&e.removeEventListener(g,r,typeof r!="function"&&r),t&&e.addEventListener(g,t,typeof t!="function"&&t)}else if(n.slice(0,10)==="oncapture:"){const g=n.slice(10);r&&e.removeEventListener(g,r,!0),t&&e.addEventListener(g,t,!0)}else if(n.slice(0,2)==="on"){const g=n.slice(2).toLowerCase(),m=tt.has(g);if(!m&&r){const w=Array.isArray(r)?r[0]:r;e.removeEventListener(g,w)}(m||t)&&(N(e,g,t,m),m&&E([g]))}else if(n.slice(0,5)==="attr:")u(e,n.slice(5),t);else if(n.slice(0,5)==="bool:")at(e,n.slice(5),t);else if((f=n.slice(0,5)==="prop:")||(d=Ze.has(n))||(h=et(n,e.tagName))||(s=Ge.has(n))||(l=e.nodeName.includes("-")||"is"in i)){if(f)n=n.slice(5),s=!0;else if(X(e))return t;n==="class"||n==="className"?Ce(e,t):l&&!s&&!d?e[st(n)]=t:e[h||n]=t}else u(e,Qe[n]||n,t);return t}function lt(e){if(c.sharedConfig.registry&&c.sharedConfig.events&&c.sharedConfig.events.find(([s,d])=>d===e))return;let n=e.target;const t=`$$${e.type}`,r=e.target,o=e.currentTarget,a=s=>Object.defineProperty(e,"target",{configurable:!0,value:s}),i=()=>{const s=n[t];if(s&&!n.disabled){const d=n[`${t}Data`];if(d!==void 0?s.call(n,d,e):s.call(n,e),e.cancelBubble)return}return n.host&&typeof n.host!="string"&&!n.host._$host&&n.contains(e.target)&&a(n.host),!0},l=()=>{for(;i()&&(n=n._$host||n.parentNode||n.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return n||document}}),c.sharedConfig.registry&&!c.sharedConfig.done&&(c.sharedConfig.done=_$HY.done=!0),e.composedPath){const s=e.composedPath();a(s[0]);for(let d=0;d<s.length-2&&(n=s[d],!!i());d++){if(n._$host){n=n._$host,l();break}if(n.parentNode===o)break}}else l();a(r)}function K(e,n,t,r,o){const a=X(e);if(a){!t&&(t=[...e.childNodes]);let s=[];for(let d=0;d<t.length;d++){const h=t[d];h.nodeType===8&&h.data.slice(0,2)==="!$"?h.remove():s.push(h)}t=s}for(;typeof t=="function";)t=t();if(n===t)return t;const i=typeof n,l=r!==void 0;if(e=l&&t[0]&&t[0].parentNode||e,i==="string"||i==="number"){if(a||i==="number"&&(n=n.toString(),n===t))return t;if(l){let s=t[0];s&&s.nodeType===3?s.data!==n&&(s.data=n):s=document.createTextNode(n),t=B(e,t,r,s)}else t!==""&&typeof t=="string"?t=e.firstChild.data=n:t=e.textContent=n}else if(n==null||i==="boolean"){if(a)return t;t=B(e,t,r)}else{if(i==="function")return c.createRenderEffect(()=>{let s=n();for(;typeof s=="function";)s=s();t=K(e,s,t,r)}),()=>t;if(Array.isArray(n)){const s=[],d=t&&Array.isArray(t);if(fe(s,n,t,o))return c.createRenderEffect(()=>t=K(e,s,t,r,!0)),()=>t;if(a){if(!s.length)return t;if(r===void 0)return t=[...e.childNodes];let h=s[0];if(h.parentNode!==e)return t;const f=[h];for(;(h=h.nextSibling)!==r;)f.push(h);return t=f}if(s.length===0){if(t=B(e,t,r),l)return t}else d?t.length===0?$e(e,s,r):nt(e,t,s):(t&&B(e),$e(e,s));t=s}else if(n.nodeType){if(a&&n.parentNode)return t=l?[n]:n;if(Array.isArray(t)){if(l)return t=B(e,t,r,n);B(e,t,null,n)}else t==null||t===""||!e.firstChild?e.appendChild(n):e.replaceChild(n,e.firstChild);t=n}}return t}function fe(e,n,t,r){let o=!1;for(let a=0,i=n.length;a<i;a++){let l=n[a],s=t&&t[e.length],d;if(!(l==null||l===!0||l===!1))if((d=typeof l)=="object"&&l.nodeType)e.push(l);else if(Array.isArray(l))o=fe(e,l,s)||o;else if(d==="function")if(r){for(;typeof l=="function";)l=l();o=fe(e,Array.isArray(l)?l:[l],Array.isArray(s)?s:[s])||o}else e.push(l),o=!0;else{const h=String(l);s&&s.nodeType===3&&s.data===h?e.push(s):e.push(document.createTextNode(h))}}return o}function $e(e,n,t=null){for(let r=0,o=n.length;r<o;r++)e.insertBefore(n[r],t)}function B(e,n,t,r){if(t===void 0)return e.textContent="";const o=r||document.createTextNode("");if(n.length){let a=!1;for(let i=n.length-1;i>=0;i--){const l=n[i];if(o!==l){const s=l.parentNode===e;!a&&!i?s?e.replaceChild(o,l):e.insertBefore(o,t):s&&l.remove()}else a=!0}}else e.insertBefore(o,t);return[o]}const dt="http://www.w3.org/2000/svg";function ut(e,n=!1){return n?document.createElementNS(dt,e):document.createElement(e)}function ht(e){const{useShadow:n}=e,t=document.createTextNode(""),r=()=>e.mount||document.body,o=c.getOwner();let a,i=!!c.sharedConfig.context;return c.createEffect(()=>{i&&(c.getOwner().user=i=!1),a||(a=c.runWithOwner(o,()=>c.createMemo(()=>e.children)));const l=r();if(l instanceof HTMLHeadElement){const[s,d]=c.createSignal(!1),h=()=>d(!0);c.createRoot(f=>v(l,()=>s()?f():a(),null)),c.onCleanup(h)}else{const s=ut(e.isSVG?"g":"div",e.isSVG),d=n&&s.attachShadow?s.attachShadow({mode:"open"}):s;Object.defineProperty(s,"_$host",{get(){return t.parentNode},configurable:!0}),v(d,a),l.appendChild(s),e.ref&&e.ref(s),c.onCleanup(()=>l.removeChild(s))}},void 0,{render:!i}),t}const ft=5e3,gt=e=>{let n=null;const t=()=>{n!==null&&(window.clearTimeout(n),n=null)};return{show:r=>{t(),e.setState({notification:{...r,show:!0}}),n=window.setTimeout(()=>{e.setState({notification:{...r,show:!1}}),n=null},ft)},clear:()=>{t(),e.setState({notification:{show:!1,type:null,message:null}})}}},Pe=(e,n)=>{if(!n)return e;const t={...e};for(const r in n)n[r]&&typeof n[r]=="object"&&!Array.isArray(n[r])?t[r]=Pe(e[r],n[r]):t[r]=n[r];return t},mt=(e,n)=>{let t;return(...r)=>{clearTimeout(t),t=window.setTimeout(()=>e(...r),n)}},vt="echo_",q="echo-pages",ze=e=>{if(!e||e==="/")return"/";const n=e.split("/");return n.length<=4?e:`/${n[1]}/.../${n[n.length-1]}`},Me=()=>{window.dispatchEvent(new Event("echo-storage-change"))},Te=e=>`${vt}${e}`,V=(e,n)=>{try{const t=localStorage.getItem(Te(e));return t?JSON.parse(t):n}catch{return n}},G=(e,n)=>{try{localStorage.setItem(Te(e),JSON.stringify(n))}catch(t){console.warn("Failed to save to localStorage:",t)}},ge=()=>{const e=window.location.pathname||"/",n=window.location.search;return`${e}${n}`},bt=(e,n)=>{try{if(!n.feedback.hasUserInteracted&&n.drawing.shapes.length<1)return;const t={message:n.feedback.message,customInputValues:n.feedback.customInputValues},r=V(q,{}),o=ze(e);(t||n.drawing.shapes.length>0)&&(r[o]={...r[o]||{},...t?{feedback:t}:{},drawing:{shapes:n.drawing.shapes}}),G(q,r),Me()}catch(t){console.warn("Failed to save page state:",t)}},me=e=>{try{return V(q,{})[e]}catch(n){console.error("Failed to load page state:",n);return}},Oe=e=>{try{const n=V(q,{});delete n[e],G(q,n),Me()}catch(n){console.error("Failed to clear page state:",n)}},Ie=()=>{try{const e=V(q,{});return Object.keys(e).length}catch(e){return console.error("Failed to get stored pages count:",e),0}},ve=()=>{try{const e=V(q,{});return Object.entries(e).map(([n,t])=>({path:ze(n),state:t}))}catch(e){return console.error("Failed to get stored pages:",e),[]}},wt=e=>mt((n,t,r=!1)=>{(!r||t.feedback.message.trim().length>0||t.drawing.shapes.length>0)&&(bt(n,t),e.setState({pagesCount:Ie()}))},1e3),be=Symbol("store-raw"),Y=Symbol("store-node"),I=Symbol("store-has"),Re=Symbol("store-self");function Ae(e){let n=e[c.$PROXY];if(!n&&(Object.defineProperty(e,c.$PROXY,{value:n=new Proxy(e,xt)}),!Array.isArray(e))){const t=Object.keys(e),r=Object.getOwnPropertyDescriptors(e);for(let o=0,a=t.length;o<a;o++){const i=t[o];r[i].get&&Object.defineProperty(e,i,{enumerable:r[i].enumerable,get:r[i].get.bind(n)})}}return n}function oe(e){let n;return e!=null&&typeof e=="object"&&(e[c.$PROXY]||!(n=Object.getPrototypeOf(e))||n===Object.prototype||Array.isArray(e))}function Z(e,n=new Set){let t,r,o,a;if(t=e!=null&&e[be])return t;if(!oe(e)||n.has(e))return e;if(Array.isArray(e)){Object.isFrozen(e)?e=e.slice(0):n.add(e);for(let i=0,l=e.length;i<l;i++)o=e[i],(r=Z(o,n))!==o&&(e[i]=r)}else{Object.isFrozen(e)?e=Object.assign({},e):n.add(e);const i=Object.keys(e),l=Object.getOwnPropertyDescriptors(e);for(let s=0,d=i.length;s<d;s++)a=i[s],!l[a].get&&(o=e[a],(r=Z(o,n))!==o&&(e[a]=r))}return e}function ie(e,n){let t=e[n];return t||Object.defineProperty(e,n,{value:t=Object.create(null)}),t}function Q(e,n,t){if(e[n])return e[n];const[r,o]=c.createSignal(t,{equals:!1,internal:!0});return r.$=o,e[n]=r}function pt(e,n){const t=Reflect.getOwnPropertyDescriptor(e,n);return!t||t.get||!t.configurable||n===c.$PROXY||n===Y||(delete t.value,delete t.writable,t.get=()=>e[c.$PROXY][n]),t}function De(e){c.getListener()&&Q(ie(e,Y),Re)()}function yt(e){return De(e),Reflect.ownKeys(e)}const xt={get(e,n,t){if(n===be)return e;if(n===c.$PROXY)return t;if(n===c.$TRACK)return De(e),t;const r=ie(e,Y),o=r[n];let a=o?o():e[n];if(n===Y||n===I||n==="__proto__")return a;if(!o){const i=Object.getOwnPropertyDescriptor(e,n);c.getListener()&&(typeof a!="function"||e.hasOwnProperty(n))&&!(i&&i.get)&&(a=Q(r,n,a)())}return oe(a)?Ae(a):a},has(e,n){return n===be||n===c.$PROXY||n===c.$TRACK||n===Y||n===I||n==="__proto__"?!0:(c.getListener()&&Q(ie(e,I),n)(),n in e)},set(){return!0},deleteProperty(){return!0},ownKeys:yt,getOwnPropertyDescriptor:pt};function ce(e,n,t,r=!1){if(!r&&e[n]===t)return;const o=e[n],a=e.length;t===void 0?(delete e[n],e[I]&&e[I][n]&&o!==void 0&&e[I][n].$()):(e[n]=t,e[I]&&e[I][n]&&o===void 0&&e[I][n].$());let i=ie(e,Y),l;if((l=Q(i,n,o))&&l.$(()=>t),Array.isArray(e)&&e.length!==a){for(let s=e.length;s<a;s++)(l=i[s])&&l.$();(l=Q(i,"length",a))&&l.$(e.length)}(l=i[Re])&&l.$()}function Fe(e,n){const t=Object.keys(n);for(let r=0;r<t.length;r+=1){const o=t[r];ce(e,o,n[o])}}function kt(e,n){if(typeof n=="function"&&(n=n(e)),n=Z(n),Array.isArray(n)){if(e===n)return;let t=0,r=n.length;for(;t<r;t++){const o=n[t];e[t]!==o&&ce(e,t,o)}ce(e,"length",r)}else Fe(e,n)}function J(e,n,t=[]){let r,o=e;if(n.length>1){r=n.shift();const i=typeof r,l=Array.isArray(e);if(Array.isArray(r)){for(let s=0;s<r.length;s++)J(e,[r[s]].concat(n),t);return}else if(l&&i==="function"){for(let s=0;s<e.length;s++)r(e[s],s)&&J(e,[s].concat(n),t);return}else if(l&&i==="object"){const{from:s=0,to:d=e.length-1,by:h=1}=r;for(let f=s;f<=d;f+=h)J(e,[f].concat(n),t);return}else if(n.length>1){J(e[r],n,[r].concat(t));return}o=e[r],t=[r].concat(t)}let a=n[0];typeof a=="function"&&(a=a(o,t),a===o)||r===void 0&&a==null||(a=Z(a),r===void 0||oe(o)&&oe(a)&&!Array.isArray(a)?Fe(o,a):ce(e,r,a))}function we(...[e,n]){const t=Z(e||{}),r=Array.isArray(t),o=Ae(t);function a(...i){c.batch(()=>{r&&i.length===1?kt(t,i[0]):J(t,i)})}return[o,a]}const F={rectangle:{id:"rectangle",label:"Highlight",getCursor:()=>"crosshair",strokeWidth:2,opacity:{selected:1,default:1}},path:{id:"path",label:"Pen",getCursor:e=>`url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48" fill="none" stroke="${e.replace("#","%23")}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="24" cy="24" r="8"/></svg>') 24 24, auto`,strokeWidth:6,opacity:{selected:.6,default:1}}},Ct=e=>{const n=e.replace("#",""),t=Number.parseInt(n.slice(0,2),16)/255,r=Number.parseInt(n.slice(2,2),16)/255,o=Number.parseInt(n.slice(4,2),16)/255;return .2126*t+.7152*r+.0722*o},St=e=>Ct(e)<.5?"#FFFFFF":"#000000";let R=[],M=null,_=null,U=null;const pe=(e,n)=>(...t)=>{const r=a=>{if(typeof a=="string")return a;if(a instanceof Error)return a.stack||a.message;try{const i=new WeakSet;return JSON.stringify(a,(s,d)=>{if(typeof d=="object"&&d!==null){if(d instanceof Node)return`[${d.nodeName} Element]`;if(i.has(d))return"[Circular Reference]";i.add(d)}return d})}catch{return"[Unable to stringify value]"}},o=t.map(r).join(" ");R.push({type:e,message:o,timestamp:new Date().toISOString()}),R.length>1e3&&(R=R.slice(-1e3)),n.apply(console,t)},Et=()=>{M||(M={log:console.log,warn:console.warn,error:console.error},_=window.onerror,U=window.onunhandledrejection,window.onerror=(e,n,t,r,o)=>{const a=(o==null?void 0:o.stack)||(o==null?void 0:o.message)||e;return R.push({type:"error",message:`Uncaught Error: ${a}
|
1
|
+
(function(A,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("solid-js"),require("html2canvas-pro")):typeof define=="function"&&define.amd?define(["exports","solid-js","html2canvas-pro"],c):(A=typeof globalThis<"u"?globalThis:A||self,c(A.Echo={},A.Solid,A["html2canvas-pro"]))})(this,function(A,c,Xe){"use strict";const Ke=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected"],Ge=new Set(["className","value","readOnly","formNoValidate","isMap","noModule","playsInline",...Ke]),Ze=new Set(["innerHTML","textContent","innerText","children"]),Qe=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),Je=Object.assign(Object.create(null),{class:"className",formnovalidate:{$:"formNoValidate",BUTTON:1,INPUT:1},ismap:{$:"isMap",IMG:1},nomodule:{$:"noModule",SCRIPT:1},playsinline:{$:"playsInline",VIDEO:1},readonly:{$:"readOnly",INPUT:1,TEXTAREA:1}});function et(e,n){const t=Je[e];return typeof t=="object"?t[n]?t.$:void 0:t}const tt=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]);function nt(e,n,t){let r=t.length,o=n.length,a=r,i=0,l=0,s=n[o-1].nextSibling,d=null;for(;i<o||l<a;){if(n[i]===t[l]){i++,l++;continue}for(;n[o-1]===t[a-1];)o--,a--;if(o===i){const h=a<r?l?t[l-1].nextSibling:t[a-l]:s;for(;l<a;)e.insertBefore(t[l++],h)}else if(a===l)for(;i<o;)(!d||!d.has(n[i]))&&n[i].remove(),i++;else if(n[i]===t[a-1]&&t[l]===n[o-1]){const h=n[--o].nextSibling;e.insertBefore(t[l++],n[i++].nextSibling),e.insertBefore(t[--a],h),n[o]=t[a]}else{if(!d){d=new Map;let f=l;for(;f<a;)d.set(t[f],f++)}const h=d.get(n[i]);if(h!=null)if(l<h&&h<a){let f=i,g=1,m;for(;++f<o&&f<a&&!((m=d.get(n[f]))==null||m!==h+g);)g++;if(g>h-l){const b=n[i];for(;l<h;)e.insertBefore(t[l++],b)}else e.replaceChild(t[l++],n[i++])}else i++;else n[i++].remove()}}}const ke="_$DX_DELEGATE";function rt(e,n,t,r={}){let o;return c.createRoot(a=>{o=a,n===document?e():v(n,e(),n.firstChild?null:void 0,t)},r.owner),()=>{o(),n.textContent=""}}function w(e,n,t){let r;const o=()=>{const i=document.createElement("template");return i.innerHTML=e,t?i.content.firstChild.firstChild:i.content.firstChild},a=n?()=>c.untrack(()=>document.importNode(r||(r=o()),!0)):()=>(r||(r=o())).cloneNode(!0);return a.cloneNode=a,a}function E(e,n=window.document){const t=n[ke]||(n[ke]=new Set);for(let r=0,o=e.length;r<o;r++){const a=e[r];t.has(a)||(t.add(a),n.addEventListener(a,lt))}}function u(e,n,t){X(e)||(t==null?e.removeAttribute(n):e.setAttribute(n,t))}function at(e,n,t){X(e)||(t?e.setAttribute(n,""):e.removeAttribute(n))}function Ce(e,n){X(e)||(n==null?e.removeAttribute("class"):e.className=n)}function N(e,n,t,r){if(r)Array.isArray(t)?(e[`$$${n}`]=t[0],e[`$$${n}Data`]=t[1]):e[`$$${n}`]=t;else if(Array.isArray(t)){const o=t[0];e.addEventListener(n,t[0]=a=>o.call(e,t[1],a))}else e.addEventListener(n,t,typeof t!="function"&&t)}function ot(e,n,t={}){const r=Object.keys(n||{}),o=Object.keys(t);let a,i;for(a=0,i=o.length;a<i;a++){const l=o[a];!l||l==="undefined"||n[l]||(Se(e,l,!1),delete t[l])}for(a=0,i=r.length;a<i;a++){const l=r[a],s=!!n[l];!l||l==="undefined"||t[l]===s||!s||(Se(e,l,!0),t[l]=s)}return t}function $(e,n,t){if(!n)return t?u(e,"style"):n;const r=e.style;if(typeof n=="string")return r.cssText=n;typeof t=="string"&&(r.cssText=t=void 0),t||(t={}),n||(n={});let o,a;for(a in t)n[a]==null&&r.removeProperty(a),delete t[a];for(a in n)o=n[a],o!==t[a]&&(r.setProperty(a,o),t[a]=o);return t}function it(e,n={},t,r){const o={};return c.createRenderEffect(()=>o.children=K(e,n.children,o.children)),c.createRenderEffect(()=>typeof n.ref=="function"&&D(n.ref,e)),c.createRenderEffect(()=>ct(e,n,t,!0,o,!0)),o}function D(e,n,t){return c.untrack(()=>e(n,t))}function v(e,n,t,r){if(t!==void 0&&!r&&(r=[]),typeof n!="function")return K(e,n,r,t);c.createRenderEffect(o=>K(e,n(),o,t),r)}function ct(e,n,t,r,o={},a=!1){n||(n={});for(const i in o)if(!(i in n)){if(i==="children")continue;o[i]=Ee(e,i,null,o[i],t,a,n)}for(const i in n){if(i==="children")continue;const l=n[i];o[i]=Ee(e,i,l,o[i],t,a,n)}}function X(e){return!!c.sharedConfig.context&&!c.sharedConfig.done&&(!e||e.isConnected)}function st(e){return e.toLowerCase().replace(/-([a-z])/g,(n,t)=>t.toUpperCase())}function Se(e,n,t){const r=n.trim().split(/\s+/);for(let o=0,a=r.length;o<a;o++)e.classList.toggle(r[o],t)}function Ee(e,n,t,r,o,a,i){let l,s,d,h,f;if(n==="style")return $(e,t,r);if(n==="classList")return ot(e,t,r);if(t===r)return r;if(n==="ref")a||t(e);else if(n.slice(0,3)==="on:"){const g=n.slice(3);r&&e.removeEventListener(g,r,typeof r!="function"&&r),t&&e.addEventListener(g,t,typeof t!="function"&&t)}else if(n.slice(0,10)==="oncapture:"){const g=n.slice(10);r&&e.removeEventListener(g,r,!0),t&&e.addEventListener(g,t,!0)}else if(n.slice(0,2)==="on"){const g=n.slice(2).toLowerCase(),m=tt.has(g);if(!m&&r){const b=Array.isArray(r)?r[0]:r;e.removeEventListener(g,b)}(m||t)&&(N(e,g,t,m),m&&E([g]))}else if(n.slice(0,5)==="attr:")u(e,n.slice(5),t);else if(n.slice(0,5)==="bool:")at(e,n.slice(5),t);else if((f=n.slice(0,5)==="prop:")||(d=Ze.has(n))||(h=et(n,e.tagName))||(s=Ge.has(n))||(l=e.nodeName.includes("-")||"is"in i)){if(f)n=n.slice(5),s=!0;else if(X(e))return t;n==="class"||n==="className"?Ce(e,t):l&&!s&&!d?e[st(n)]=t:e[h||n]=t}else u(e,Qe[n]||n,t);return t}function lt(e){if(c.sharedConfig.registry&&c.sharedConfig.events&&c.sharedConfig.events.find(([s,d])=>d===e))return;let n=e.target;const t=`$$${e.type}`,r=e.target,o=e.currentTarget,a=s=>Object.defineProperty(e,"target",{configurable:!0,value:s}),i=()=>{const s=n[t];if(s&&!n.disabled){const d=n[`${t}Data`];if(d!==void 0?s.call(n,d,e):s.call(n,e),e.cancelBubble)return}return n.host&&typeof n.host!="string"&&!n.host._$host&&n.contains(e.target)&&a(n.host),!0},l=()=>{for(;i()&&(n=n._$host||n.parentNode||n.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return n||document}}),c.sharedConfig.registry&&!c.sharedConfig.done&&(c.sharedConfig.done=_$HY.done=!0),e.composedPath){const s=e.composedPath();a(s[0]);for(let d=0;d<s.length-2&&(n=s[d],!!i());d++){if(n._$host){n=n._$host,l();break}if(n.parentNode===o)break}}else l();a(r)}function K(e,n,t,r,o){const a=X(e);if(a){!t&&(t=[...e.childNodes]);let s=[];for(let d=0;d<t.length;d++){const h=t[d];h.nodeType===8&&h.data.slice(0,2)==="!$"?h.remove():s.push(h)}t=s}for(;typeof t=="function";)t=t();if(n===t)return t;const i=typeof n,l=r!==void 0;if(e=l&&t[0]&&t[0].parentNode||e,i==="string"||i==="number"){if(a||i==="number"&&(n=n.toString(),n===t))return t;if(l){let s=t[0];s&&s.nodeType===3?s.data!==n&&(s.data=n):s=document.createTextNode(n),t=B(e,t,r,s)}else t!==""&&typeof t=="string"?t=e.firstChild.data=n:t=e.textContent=n}else if(n==null||i==="boolean"){if(a)return t;t=B(e,t,r)}else{if(i==="function")return c.createRenderEffect(()=>{let s=n();for(;typeof s=="function";)s=s();t=K(e,s,t,r)}),()=>t;if(Array.isArray(n)){const s=[],d=t&&Array.isArray(t);if(fe(s,n,t,o))return c.createRenderEffect(()=>t=K(e,s,t,r,!0)),()=>t;if(a){if(!s.length)return t;if(r===void 0)return t=[...e.childNodes];let h=s[0];if(h.parentNode!==e)return t;const f=[h];for(;(h=h.nextSibling)!==r;)f.push(h);return t=f}if(s.length===0){if(t=B(e,t,r),l)return t}else d?t.length===0?$e(e,s,r):nt(e,t,s):(t&&B(e),$e(e,s));t=s}else if(n.nodeType){if(a&&n.parentNode)return t=l?[n]:n;if(Array.isArray(t)){if(l)return t=B(e,t,r,n);B(e,t,null,n)}else t==null||t===""||!e.firstChild?e.appendChild(n):e.replaceChild(n,e.firstChild);t=n}}return t}function fe(e,n,t,r){let o=!1;for(let a=0,i=n.length;a<i;a++){let l=n[a],s=t&&t[e.length],d;if(!(l==null||l===!0||l===!1))if((d=typeof l)=="object"&&l.nodeType)e.push(l);else if(Array.isArray(l))o=fe(e,l,s)||o;else if(d==="function")if(r){for(;typeof l=="function";)l=l();o=fe(e,Array.isArray(l)?l:[l],Array.isArray(s)?s:[s])||o}else e.push(l),o=!0;else{const h=String(l);s&&s.nodeType===3&&s.data===h?e.push(s):e.push(document.createTextNode(h))}}return o}function $e(e,n,t=null){for(let r=0,o=n.length;r<o;r++)e.insertBefore(n[r],t)}function B(e,n,t,r){if(t===void 0)return e.textContent="";const o=r||document.createTextNode("");if(n.length){let a=!1;for(let i=n.length-1;i>=0;i--){const l=n[i];if(o!==l){const s=l.parentNode===e;!a&&!i?s?e.replaceChild(o,l):e.insertBefore(o,t):s&&l.remove()}else a=!0}}else e.insertBefore(o,t);return[o]}const dt="http://www.w3.org/2000/svg";function ut(e,n=!1){return n?document.createElementNS(dt,e):document.createElement(e)}function ht(e){const{useShadow:n}=e,t=document.createTextNode(""),r=()=>e.mount||document.body,o=c.getOwner();let a,i=!!c.sharedConfig.context;return c.createEffect(()=>{i&&(c.getOwner().user=i=!1),a||(a=c.runWithOwner(o,()=>c.createMemo(()=>e.children)));const l=r();if(l instanceof HTMLHeadElement){const[s,d]=c.createSignal(!1),h=()=>d(!0);c.createRoot(f=>v(l,()=>s()?f():a(),null)),c.onCleanup(h)}else{const s=ut(e.isSVG?"g":"div",e.isSVG),d=n&&s.attachShadow?s.attachShadow({mode:"open"}):s;Object.defineProperty(s,"_$host",{get(){return t.parentNode},configurable:!0}),v(d,a),l.appendChild(s),e.ref&&e.ref(s),c.onCleanup(()=>l.removeChild(s))}},void 0,{render:!i}),t}const ft=5e3,gt=e=>{let n=null;const t=()=>{n!==null&&(window.clearTimeout(n),n=null)};return{show:r=>{t(),e.setState({notification:{...r,show:!0}}),n=window.setTimeout(()=>{e.setState({notification:{...r,show:!1}}),n=null},ft)},clear:()=>{t(),e.setState({notification:{show:!1,type:null,message:null}})}}},Pe=(e,n)=>{if(!n)return e;const t={...e};for(const r in n)n[r]&&typeof n[r]=="object"&&!Array.isArray(n[r])?t[r]=Pe(e[r],n[r]):t[r]=n[r];return t},mt=(e,n)=>{let t;return(...r)=>{clearTimeout(t),t=window.setTimeout(()=>e(...r),n)}},vt="echo_",q="echo-pages",ze=e=>{if(!e||e==="/")return"/";const n=e.split("/");return n.length<=4?e:`/${n[1]}/.../${n[n.length-1]}`},Me=()=>{window.dispatchEvent(new Event("echo-storage-change"))},Te=e=>`${vt}${e}`,V=(e,n)=>{try{const t=localStorage.getItem(Te(e));return t?JSON.parse(t):n}catch{return n}},G=(e,n)=>{try{localStorage.setItem(Te(e),JSON.stringify(n))}catch(t){console.warn("Failed to save to localStorage:",t)}},ge=()=>{const e=window.location.pathname||"/",n=window.location.search;return`${e}${n}`},wt=(e,n)=>{try{if(!n.feedback.hasUserInteracted&&n.drawing.shapes.length<1)return;const t={message:n.feedback.message,customInputValues:n.feedback.customInputValues},r=V(q,{}),o=ze(e);(t||n.drawing.shapes.length>0)&&(r[o]={...r[o]||{},...t?{feedback:t}:{},drawing:{shapes:n.drawing.shapes}}),G(q,r),Me()}catch(t){console.warn("Failed to save page state:",t)}},me=e=>{try{return V(q,{})[e]}catch(n){console.error("Failed to load page state:",n);return}},Oe=e=>{try{const n=V(q,{});delete n[e],G(q,n),Me()}catch(n){console.error("Failed to clear page state:",n)}},Ie=()=>{try{const e=V(q,{});return Object.keys(e).length}catch(e){return console.error("Failed to get stored pages count:",e),0}},ve=()=>{try{const e=V(q,{});return Object.entries(e).map(([n,t])=>({path:ze(n),state:t}))}catch(e){return console.error("Failed to get stored pages:",e),[]}},bt=e=>mt((n,t,r=!1)=>{(!r||t.feedback.message.trim().length>0||t.drawing.shapes.length>0)&&(wt(n,t),e.setState({pagesCount:Ie()}))},1e3),we=Symbol("store-raw"),Y=Symbol("store-node"),I=Symbol("store-has"),Re=Symbol("store-self");function Ae(e){let n=e[c.$PROXY];if(!n&&(Object.defineProperty(e,c.$PROXY,{value:n=new Proxy(e,xt)}),!Array.isArray(e))){const t=Object.keys(e),r=Object.getOwnPropertyDescriptors(e);for(let o=0,a=t.length;o<a;o++){const i=t[o];r[i].get&&Object.defineProperty(e,i,{enumerable:r[i].enumerable,get:r[i].get.bind(n)})}}return n}function oe(e){let n;return e!=null&&typeof e=="object"&&(e[c.$PROXY]||!(n=Object.getPrototypeOf(e))||n===Object.prototype||Array.isArray(e))}function Z(e,n=new Set){let t,r,o,a;if(t=e!=null&&e[we])return t;if(!oe(e)||n.has(e))return e;if(Array.isArray(e)){Object.isFrozen(e)?e=e.slice(0):n.add(e);for(let i=0,l=e.length;i<l;i++)o=e[i],(r=Z(o,n))!==o&&(e[i]=r)}else{Object.isFrozen(e)?e=Object.assign({},e):n.add(e);const i=Object.keys(e),l=Object.getOwnPropertyDescriptors(e);for(let s=0,d=i.length;s<d;s++)a=i[s],!l[a].get&&(o=e[a],(r=Z(o,n))!==o&&(e[a]=r))}return e}function ie(e,n){let t=e[n];return t||Object.defineProperty(e,n,{value:t=Object.create(null)}),t}function Q(e,n,t){if(e[n])return e[n];const[r,o]=c.createSignal(t,{equals:!1,internal:!0});return r.$=o,e[n]=r}function pt(e,n){const t=Reflect.getOwnPropertyDescriptor(e,n);return!t||t.get||!t.configurable||n===c.$PROXY||n===Y||(delete t.value,delete t.writable,t.get=()=>e[c.$PROXY][n]),t}function De(e){c.getListener()&&Q(ie(e,Y),Re)()}function yt(e){return De(e),Reflect.ownKeys(e)}const xt={get(e,n,t){if(n===we)return e;if(n===c.$PROXY)return t;if(n===c.$TRACK)return De(e),t;const r=ie(e,Y),o=r[n];let a=o?o():e[n];if(n===Y||n===I||n==="__proto__")return a;if(!o){const i=Object.getOwnPropertyDescriptor(e,n);c.getListener()&&(typeof a!="function"||e.hasOwnProperty(n))&&!(i&&i.get)&&(a=Q(r,n,a)())}return oe(a)?Ae(a):a},has(e,n){return n===we||n===c.$PROXY||n===c.$TRACK||n===Y||n===I||n==="__proto__"?!0:(c.getListener()&&Q(ie(e,I),n)(),n in e)},set(){return!0},deleteProperty(){return!0},ownKeys:yt,getOwnPropertyDescriptor:pt};function ce(e,n,t,r=!1){if(!r&&e[n]===t)return;const o=e[n],a=e.length;t===void 0?(delete e[n],e[I]&&e[I][n]&&o!==void 0&&e[I][n].$()):(e[n]=t,e[I]&&e[I][n]&&o===void 0&&e[I][n].$());let i=ie(e,Y),l;if((l=Q(i,n,o))&&l.$(()=>t),Array.isArray(e)&&e.length!==a){for(let s=e.length;s<a;s++)(l=i[s])&&l.$();(l=Q(i,"length",a))&&l.$(e.length)}(l=i[Re])&&l.$()}function Fe(e,n){const t=Object.keys(n);for(let r=0;r<t.length;r+=1){const o=t[r];ce(e,o,n[o])}}function kt(e,n){if(typeof n=="function"&&(n=n(e)),n=Z(n),Array.isArray(n)){if(e===n)return;let t=0,r=n.length;for(;t<r;t++){const o=n[t];e[t]!==o&&ce(e,t,o)}ce(e,"length",r)}else Fe(e,n)}function J(e,n,t=[]){let r,o=e;if(n.length>1){r=n.shift();const i=typeof r,l=Array.isArray(e);if(Array.isArray(r)){for(let s=0;s<r.length;s++)J(e,[r[s]].concat(n),t);return}else if(l&&i==="function"){for(let s=0;s<e.length;s++)r(e[s],s)&&J(e,[s].concat(n),t);return}else if(l&&i==="object"){const{from:s=0,to:d=e.length-1,by:h=1}=r;for(let f=s;f<=d;f+=h)J(e,[f].concat(n),t);return}else if(n.length>1){J(e[r],n,[r].concat(t));return}o=e[r],t=[r].concat(t)}let a=n[0];typeof a=="function"&&(a=a(o,t),a===o)||r===void 0&&a==null||(a=Z(a),r===void 0||oe(o)&&oe(a)&&!Array.isArray(a)?Fe(o,a):ce(e,r,a))}function be(...[e,n]){const t=Z(e||{}),r=Array.isArray(t),o=Ae(t);function a(...i){c.batch(()=>{r&&i.length===1?kt(t,i[0]):J(t,i)})}return[o,a]}const F={rectangle:{id:"rectangle",label:"Highlight",getCursor:()=>"crosshair",strokeWidth:2,opacity:{selected:1,default:1}},path:{id:"path",label:"Pen",getCursor:e=>`url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48" fill="none" stroke="${e.replace("#","%23")}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="24" cy="24" r="8"/></svg>') 24 24, auto`,strokeWidth:6,opacity:{selected:.6,default:1}}},Ct=e=>{const n=e.replace("#",""),t=Number.parseInt(n.slice(0,2),16)/255,r=Number.parseInt(n.slice(2,2),16)/255,o=Number.parseInt(n.slice(4,2),16)/255;return .2126*t+.7152*r+.0722*o},St=e=>Ct(e)<.5?"#FFFFFF":"#000000";let R=[],M=null,_=null,U=null;const pe=(e,n)=>(...t)=>{const r=a=>{if(typeof a=="string")return a;if(a instanceof Error)return a.stack||a.message;try{const i=new WeakSet;return JSON.stringify(a,(s,d)=>{if(typeof d=="object"&&d!==null){if(d instanceof Node)return`[${d.nodeName} Element]`;if(i.has(d))return"[Circular Reference]";i.add(d)}return d})}catch{return"[Unable to stringify value]"}},o=t.map(r).join(" ");R.push({type:e,message:o,timestamp:new Date().toISOString()}),R.length>1e3&&(R=R.slice(-1e3)),n.apply(console,t)},Et=()=>{M||(M={log:console.log,warn:console.warn,error:console.error},_=window.onerror,U=window.onunhandledrejection,window.onerror=(e,n,t,r,o)=>{const a=(o==null?void 0:o.stack)||(o==null?void 0:o.message)||e;return R.push({type:"error",message:`Uncaught Error: ${a}
|
2
2
|
Location: ${n}:${t}:${r}`,timestamp:new Date().toISOString()}),_?_(e,n,t,r,o):!1},window.onunhandledrejection=e=>{const n=e.reason;R.push({type:"error",message:`Unhandled Promise Rejection: ${(n==null?void 0:n.stack)||(n==null?void 0:n.message)||n}`,timestamp:new Date().toISOString()}),U&&U(e)},console.log=pe("log",M.log),console.warn=pe("warn",M.warn),console.error=pe("error",M.error),window.addEventListener("error",e=>{const{message:n,filename:t,lineno:r,colno:o,error:a}=e,i=(a==null?void 0:a.stack)||(a==null?void 0:a.message)||n;R.push({type:"error",message:`Uncaught Error: ${i}
|
3
|
-
Location: ${t}:${r}:${o}`,timestamp:new Date().toISOString()})}))},$t=()=>{M&&(console.log=M.log,console.warn=M.warn,console.error=M.error,M=null),_&&(window.onerror=_,_=null),U&&(window.onunhandledrejection=U,U=null),window.removeEventListener("error",()=>{}),R=[]},Pt=()=>[...R],zt=()=>{var e;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)},se=(e,{useClientCoords:n=!1}={})=>{const r=typeof TouchEvent<"u"&&e instanceof TouchEvent?e.touches[0]:null;return{x:r?n?r.clientX:r.pageX:n?e.clientX:e.pageX,y:r?n?r.clientY:r.pageY:n?e.clientY:e.pageY}},Le=(e,n)=>{const t=n.x-e.x,r=n.y-e.y;return Math.sqrt(t*t+r*r)},je=e=>{if(e.length!==2)return null;const[n,t]=e;return{x:Math.min(n.x,t.x),y:Math.min(n.y,t.y),width:Math.abs(t.x-n.x),height:Math.abs(t.y-n.y)}},Mt=e=>e.length<2?null:`M ${e[0].x} ${e[0].y} ${e.slice(1).map(n=>`L ${n.x} ${n.y}`).join(" ")}`,le=window.EventTarget.prototype.addEventListener,H=window.EventTarget.prototype.removeEventListener;let de=!1,ee=null;const te=new WeakMap,Tt=e=>{ee=e},ne=e=>{if(!ee||!e)return!1;if(e===ee)return!0;const n=e.getRootNode();if(n&&n.nodeName==="#document"){const r=n.querySelector("#top-layer");if(r!=null&&r.contains(e))return!0}let t=e;for(;t;){if(t.getRootNode()===ee)return!0;t=t.parentNode}return!1},Ot=e=>{de||(de=!0,window.EventTarget.prototype.addEventListener=function(n,t,r){if(!t||typeof t!="function")return le.call(this,n,t,r);if(!(this instanceof Node&&!ne(this)))return le.call(this,n,t,r);const a=Rt(t,e);te.has(this)||te.set(this,new Map),te.get(this).set(t,a),le.call(this,n,a,r)},window.EventTarget.prototype.removeEventListener=function(n,t,r){if(!t||typeof this!="object")return H.call(this,n,t,r);if(this instanceof Node&&ne(this))return H.call(this,n,t,r);const a=te.get(this);if(!a)return H.call(this,n,t,r);const i=a.get(t);i?(H.call(this,n,i,r),a.delete(t),a.size===0&&te.delete(this)):H.call(this,n,t,r)})},It=()=>{de&&(window.EventTarget.prototype.addEventListener=le,window.EventTarget.prototype.removeEventListener=H,de=!1,ee=null)},T=e=>{const{event:n,callback:t,onMount:r,onCleanup:o}=e;c.onMount(()=>{r==null||r(),window.addEventListener(n,t)}),c.onCleanup(()=>{o==null||o(),window.removeEventListener(n,t)})},ye=e=>{const{target:n,options:t,callback:r,onMount:o,onCleanup:a}=e,i=new MutationObserver(r);c.onMount(()=>{o==null||o(),i.observe(n,t)}),c.onCleanup(()=>{a==null||a(),i.disconnect()})},Rt=(e,n)=>function(t){(!(t.target instanceof Node)||!ne(t.target))&&n(t),e.call(this,t)},At=e=>e.hasAttribute("data-hide-when-drawing"),Dt=async()=>{var e;try{const n=document.createElement("style");document.head.appendChild(n),(e=n.sheet)==null||e.insertRule("body > div:last-child img { display: inline-block; }");const t=await Xe(document.body,{logging:!1,useCORS:!0,scale:window.devicePixelRatio,allowTaint:!0,ignoreElements:r=>At(r)});return n.remove(),t.toDataURL("image/png")}catch(n){console.error("Failed to capture screenshot:",n);return}},Ft=(e,n,t)=>{let r=`M0 0 H${e.width} V${e.height} H0 Z`;if(n.length===2){const[o,a]=n;r+=` M${o.x} ${o.y} h${a.x-o.x} v${a.y-o.y} h${o.x-a.x} v${o.y-a.y}`}for(const o of t)if(o.type==="rectangle"){const[a,i]=o.points;r+=` M${a.x} ${a.y} h${i.x-a.x} v${i.y-a.y} h${a.x-i.x} v${a.y-i.y}`}return r},Lt=e=>{if(typeof e!="object"||e===null)throw new Error("Echo initialization failed: options must be an object");if(typeof e.onSubmit!="function")throw new Error("Echo initialization failed: onSubmit must be a function");if(e.primaryColor&&!/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(e.primaryColor))throw new Error("Echo initialization failed: primaryColor must be a valid hex color")},Ne=5,qe=(e,n)=>F[e].getCursor(n),jt=(e,n,t)=>{var l,s;const[r,o]=we({isDrawing:!1,currentPoints:[],selectedShapeId:null,selectedTool:"rectangle",showTooltip:!0,mousePosition:{x:0,y:0},selectedColor:e.primaryColor,shapes:((s=(l=me(n))==null?void 0:l.drawing)==null?void 0:s.shapes)||[],hasDrawn:!1,isDragging:!1,dragStartPos:null,initialClickPos:null,dragOffset:null,cursor:qe("rectangle",e.primaryColor)}),a=(d,h=!1)=>{if(d.selectedTool||d.selectedColor){const f=d.selectedTool||r.selectedTool,g=d.selectedColor||r.selectedColor;d.cursor=qe(f,g)}o(d),t==null||t(d,h)},i={startDrawing:d=>{a({isDrawing:!0,currentPoints:[d],selectedShapeId:null})},updateDrawing:d=>{r.selectedTool==="rectangle"?a({currentPoints:[r.currentPoints[0],d]}):r.selectedTool==="path"&&a({currentPoints:[...r.currentPoints,d]})},finishDrawing:()=>{if(r.currentPoints.length>=2){const d={id:Math.random().toString(36).substring(2),type:r.selectedTool,color:r.selectedColor,points:r.currentPoints};a({shapes:[...r.shapes,d]})}a({isDrawing:!1,currentPoints:[]})},handleShapeClick:d=>{},handleStart:d=>{if(d instanceof MouseEvent){const f=d.target;if(!f.classList.contains("echo-drawing-layer-mask")&&!f.classList.contains("echo-shape"))return}const h=se(d);if(d.target instanceof SVGElement&&d.target.classList.contains("echo-shape")){const f=d.target.dataset.shapeId;if(f&&r.selectedShapeId===f){const g=r.shapes.find(m=>m.id===f);if(g){i.startDrag(h),i.updateDragOffset(g,h);return}}}i.setInitialClick(h)},handleMove:d=>{const h=se(d,{useClientCoords:!0}),f=se(d);if(a({mousePosition:h}),r.isDragging&&r.selectedShapeId&&r.dragStartPos&&r.shapes.find(m=>m.id===r.selectedShapeId)){const m=f.x-r.dragStartPos.x,w=f.y-r.dragStartPos.y,S=r.shapes.map(k=>k.id===r.selectedShapeId?{...k,points:k.points.map(C=>({x:C.x+m,y:C.y+w}))}:k);a({shapes:S}),i.startDrag(f);return}if(r.initialClickPos&&!r.isDrawing){Le(r.initialClickPos,f)>=Ne&&i.startDrawing(r.initialClickPos);return}r.isDrawing&&i.updateDrawing(f)},handleEnd:d=>{if(r.isDragging){i.stopDrag();return}if(r.initialClickPos&&!r.isDrawing){const h=se(d);if(Le(r.initialClickPos,h)<Ne&&d.target instanceof SVGElement&&d.target.classList.contains("echo-shape")){const g=d.target.dataset.shapeId;g&&a({selectedShapeId:g})}}i.setInitialClick(null),i.finishDrawing()},handleEnter:d=>{d.target===d.currentTarget&&!r.hasDrawn&&a({showTooltip:!0})},handleLeave:d=>{d.target===d.currentTarget&&a({showTooltip:!1})},startDrag:d=>{a({isDragging:!0,dragStartPos:d})},stopDrag:()=>{a({isDragging:!1,dragStartPos:null,dragOffset:null})},setInitialClick:d=>{a({initialClickPos:d})},updateDragOffset:(d,h)=>{a({dragOffset:{x:h.x-d.points[0].x,y:h.y-d.points[0].y}})}};return{state:r,setState:a,methods:i}},Nt=(e,n,t,r)=>{var f;const o=(r==null?void 0:r.reduce((g,m)=>(g[m.id]=m.defaultValue??(m.type==="checkbox"?[]:""),g),{}))||{},a=me(n),i=(a==null?void 0:a.feedback.customInputValues)||{},l={...o,...i},[s,d]=we({message:((f=a==null?void 0:a.feedback)==null?void 0:f.message)||"",screenshot:void 0,isCapturing:!1,isMinimized:!1,customInputValues:l,hasUserInteracted:!1});return{state:s,setState:(g,m=!1)=>{const w="isCapturing"in g||"isMinimized"in g||m;!w&&!s.hasUserInteracted&&d({hasUserInteracted:!0}),d(g),(s.hasUserInteracted||w)&&(t==null||t(g,m))}}},qt=(e,n)=>{const[t,r]=we({text:e.textConfig,isOpen:!1,primaryColor:e.primaryColor,notification:{show:!1,type:null,message:null},dimensions:{width:document.documentElement.clientWidth,height:document.documentElement.scrollHeight},isStoredFeedbackOpen:!1,pagesCount:Ie(),welcomeMessageIsClosing:!1,position:e.position,customInputs:e.customInputs,disableMinimization:e.disableMinimization});return{state:t,setState:r}},Ve=e=>{var n;return((n=e.customInputs)==null?void 0:n.reduce((t,r)=>(t[r.id]=r.defaultValue??(r.type==="checkbox"?[]:""),t),{}))||{}},Vt=e=>{let n=ge();const t=qt(e),r=wt(t),o=gt(t),a=Nt(e,n,(d,h)=>{r(n,{feedback:{...a.state,...d},drawing:i.state},h)},e.customInputs),i=jt(e,n,(d,h)=>{r(n,{feedback:a.state,drawing:{...i.state,...d}},h)}),l=d=>{n=d;const h=me(n),f={...Ve(e),...h==null?void 0:h.feedback.customInputValues};a.setState({message:(h==null?void 0:h.feedback.message)||"",customInputValues:f,hasUserInteracted:!1}),i.setState({shapes:(h==null?void 0:h.drawing.shapes)||[]})},s=()=>{Oe(n);const d={feedback:{message:"",screenshot:void 0,isCapturing:!1,isMinimized:!1,hasUserInteracted:!1,customInputValues:Ve(e)},drawing:{isDrawing:!1,currentPoints:[],shapes:[],selectedShapeId:null,selectedTool:"rectangle",selectedColor:e.primaryColor,showTooltip:!0,mousePosition:{x:0,y:0},hasDrawn:!1,isDragging:!1,dragStartPos:null,initialClickPos:null,dragOffset:null,cursor:i.state.cursor},widget:{isOpen:!1}};a.setState(d.feedback,!0),i.setState(d.drawing,!0),t.setState(d.widget)};return{feedback:a,drawing:i,widget:t,methods:{reset:s,handlePageChange:l,submit:async d=>{t.setState({isOpen:!1});try{const h=await e.onSubmit(d);return h instanceof Response&&!h.ok?(o.show({type:"error",message:"Submission failed"}),h):(s(),o.show({type:"success",message:"Feedback submitted"}),h)}catch{o.show({type:"error",message:"Submission failed"})}}}}},We=c.createContext(),Wt=e=>{const n=Vt({primaryColor:e.primaryColor,onSubmit:e.onSubmit,textConfig:e.textConfig,position:e.position,customInputs:e.customInputs,disableMinimization:e.disableMinimization});return c.createComponent(We.Provider,{value:n,get children(){return e.children}})},x=()=>{const e=c.useContext(We);if(!e)throw new Error("useEchoStore must be used within EchoProvider");return e},Bt=e=>{const[n,t]=c.createSignal({width:document.documentElement.clientWidth,height:document.documentElement.scrollHeight}),r=()=>{requestAnimationFrame(()=>{const o=e();o&&(o.style.height="0px",o.style.height=`${document.documentElement.scrollHeight}px`,t({width:document.documentElement.clientWidth,height:document.documentElement.scrollHeight}))})};return T({event:"resize",callback:r,onMount:r}),ye({target:document.documentElement,options:{childList:!0,subtree:!0,attributes:!0},callback:r}),n},Yt=({onUrlChange:e})=>{let n=ge();const t=()=>{const r=ge();r!==n&&(n=r,e(r))};T({event:"popstate",callback:t}),T({event:"pushstate",callback:t}),T({event:"replacestate",callback:t}),ye({target:document.documentElement,options:{childList:!0,subtree:!0},callback:t})},_t=`*,*:before,*:after{box-sizing:border-box}.echo-root{position:absolute;top:0;left:0;z-index:var(--z-root);isolation:isolate;pointer-events:none;--z-root: 999999;--z-launcher: 2;--z-overlay: 1;--z-drawing-toolbar: 3;--z-drawing-tooltip: 3;--z-shape-actions: 3;--z-notification: 2;--z-welcome-message: 2;--z-widget-button: 2;--z-feedback-form: 4;--primary-color: #000;--primary-text-color: #fff;--error-color: #f44336;--success-color: var(--primary-color);--text-dark: #1a1a1a;--text-medium: #333;--text-light: #666;--text-lighter: #999;--border-color: rgba(0, 0, 0, .1);--border-color-light: rgba(0, 0, 0, .05);--border-color-medium: rgba(0, 0, 0, .08);--background-color: #fff;--primary-color-lighter: color-mix(in srgb, var(--primary-color) 100%, white 40%);--primary-color-lightest: color-mix(in srgb, var(--primary-color) 7%, white 100%);--hover-color: color-mix(in srgb, var(--primary-color) 80%, #fff);--shadow-color-dark: rgba(0, 0, 0, .6);--shadow-color-light: rgba(255, 255, 255, .1);--shadow-color-medium: rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px;--shadow-md: 0 4px 10px;--shadow-lg: 0 10px 20px;--shadow-black-sm: var(--shadow-sm) rgba(0, 0, 0, .5);--shadow-black-md: var(--shadow-md) rgba(0, 0, 0, .5);--shadow-black-lg: var(--shadow-lg) rgba(0, 0, 0, .5);--shadow-black-lightened-sm: var(--shadow-sm) var(--shadow-color-medium);--shadow-black-lightened-md: var(--shadow-md) var(--shadow-color-medium);--shadow-black-lightened-lg: var(--shadow-lg) var(--shadow-color-medium);--shadow-primary-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color) 60%, transparent 80%);--shadow-primary-md: var(--shadow-md) color-mix(in srgb, var(--primary-color) 50%, transparent 80%);--shadow-primary-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color) 40%, transparent 80%);--shadow-primary-lighter-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color-lighter) 70%, transparent 80%);--shadow-primary-lighter-md: var(--shadow-md) color-mix(in srgb, var(--primary-color-lighter) 60%, transparent 80%);--shadow-primary-lighter-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color-lighter) 50%, transparent 80%);--shadow-primary-lightest-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color-lightest) 70%, transparent 80%);--shadow-primary-lightest-md: var(--shadow-md) color-mix(in srgb, var(--primary-color-lightest) 60%, transparent 80%);--shadow-primary-lightest-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color-lightest) 50%, transparent 80%);--shadow-combined-sm: var(--shadow-primary-sm), var(--shadow-black-lightened-sm);--shadow-combined-md: var(--shadow-primary-md), var(--shadow-black-lightened-md);--shadow-combined-lg: var(--shadow-primary-lg), var(--shadow-black-lightened-lg);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-xs: .8125rem;--font-sm: .875rem;--font-base: .9375rem;--font-md: 1rem;--font-lg: 1.125rem;--duration-fast: .1s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .4s;--duration-slowest: .6s;--ease-default: ease;--ease-in-out: ease-in-out;--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.16, 1, .3, 1)}.echo-stored-feedback{position:absolute;display:flex;flex-direction:column;bottom:calc(100% + var(--spacing-lg));right:0;width:320px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-black-lightened-lg);animation:slideUpFade var(--duration-base) var(--ease-smooth);z-index:calc(var(--z-widget-button) + 1);transform-origin:bottom right;transition:all var(--duration-base) var(--ease-smooth)}.echo-stored-feedback-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.echo-stored-feedback-header h3{margin:0;font-size:var(--font-md);font-weight:600}.echo-stored-feedback-list{max-height:400px;overflow-y:auto;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-stored-feedback-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color-light);transition:all var(--duration-base) var(--ease-smooth);background:#fff;position:relative}.echo-stored-feedback-item:hover{background:var(--primary-color-lightest)}.echo-stored-feedback-item-current{background:var(--primary-color-lightest);padding-left:calc(var(--spacing-lg) - 3px)}.echo-stored-feedback-item-current:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary-color);border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.echo-stored-feedback-item:last-child{border-bottom:none;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-stored-feedback-item:last-child.echo-stored-feedback-item-current:before{border-bottom-left-radius:var(--radius-lg)}.echo-stored-feedback-content{flex:1;min-width:0;margin-right:var(--spacing-md)}.echo-stored-feedback-path{font-size:var(--font-sm);font-weight:500;color:var(--text-medium);margin-bottom:var(--spacing-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.echo-stored-feedback-preview{font-size:var(--font-xs);color:var(--text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.echo-stored-feedback-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.echo-stored-feedback-link{color:var(--text-light)}.echo-stored-feedback-link:hover{color:var(--primary-color)}.echo-stored-feedback-delete{color:var(--text-light);font-size:var(--font-xs);padding:var(--spacing-xs) var(--spacing-md)}.echo-stored-feedback-delete:hover{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 10%,transparent)}.echo-stored-feedback-empty{padding:var(--spacing-3xl) var(--spacing-lg);text-align:center;color:var(--text-light);font-size:var(--font-sm);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-launcher{position:fixed;z-index:var(--z-launcher);bottom:var(--spacing-xl);right:var(--spacing-xl);pointer-events:none}.echo-overlay{position:absolute;top:0;left:0;margin:0;padding:0;max-width:none;max-height:none;border:3px solid var(--primary-color);background:transparent}.echo-overlay::backdrop{background:transparent}[data-hidden=true],[data-hidden=false]{transition:opacity var(--duration-slow) var(--ease-in-out),visibility var(--duration-slow) var(--ease-in-out)}[data-hidden=true]{opacity:0;visibility:hidden;pointer-events:none}[data-hidden=false]{opacity:1;visibility:visible;pointer-events:auto;user-select:none;-webkit-user-select:none}.echo-launcher-button{z-index:var(--z-widget-button);position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;background:radial-gradient(circle at 40% 40%,var(--primary-color) 0%,var(--primary-color-lighter) 65%,var(--primary-color-lighter) 100%);border:none;border-radius:var(--radius-full);width:48px;height:48px;box-shadow:var(--shadow-black-md);transition:all var(--duration-slow) var(--ease-default),transform var(--duration-slower) var(--ease-smooth),opacity var(--duration-slow) var(--ease-in-out);will-change:transform}.echo-launcher-button:hover{box-shadow:var(--shadow-black-lg);transform:translateY(-2px)}.echo-launcher-button:active{transform:scale(.95)}.echo-launcher-button-count{position:absolute;top:calc(-1 * var(--spacing-xs));left:calc(-1 * var(--spacing-xs));background:var(--primary-color-lightest);color:var(--primary-color-lighter);border-radius:var(--radius-md);min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-black-sm);padding:0 var(--spacing-xs);font-weight:600;pointer-events:auto;cursor:pointer;transform-origin:center center;animation:popIn var(--duration-slow) var(--ease-bounce);transition:transform var(--duration-base) var(--ease-default)}.echo-launcher-button-count:hover{transform:scale(1.1)}.echo-feedback{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);width:min(calc(100vw - var(--spacing-xl) * 2),24rem);max-height:calc(100vh - var(--spacing-xl) * 2);z-index:var(--z-feedback-form);box-shadow:var(--shadow-black-lightened-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);background:var(--background-color);border-radius:var(--radius-lg);overflow-y:auto;will-change:transform;padding:0 var(--spacing-lg)}.echo-feedback[data-minimized=true]{transition:transform .4s var(--ease-default),box-shadow .4s var(--ease-default);transform:translate(calc(100% - 48px),calc(100% - 48px));box-shadow:0 8px 16px #0003}.echo-feedback[data-minimized=true]:hover{cursor:pointer;transform:translate(calc(100% - 48px),calc(100% - 48px)) rotate(-2deg) scale(1.1);box-shadow:0 12px 24px #00000040}.echo-feedback[data-minimized=false]{transition:transform .4s var(--ease-smooth),box-shadow .4s var(--ease-smooth);transform:translate(0)}.echo-feedback[style*=transition]{pointer-events:none}.echo-feedback-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.echo-feedback-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0;background-color:var(--background-color);position:sticky;top:0;z-index:1}.echo-feedback-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0;background-color:var(--background-color);position:sticky;bottom:0;z-index:1}.echo-feedback-title{font-size:var(--font-lg);font-weight:600;color:var(--text-dark);margin:0}.echo-feedback-header-actions{display:flex;gap:var(--spacing-xs);margin:calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) 0}[data-hide-when-drawing=true]{opacity:1;visibility:visible;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}[data-drawing=true] [data-hide-when-drawing=true]{opacity:0;visibility:hidden;pointer-events:none;user-select:none;-webkit-user-select:none}.echo-drawing-layer,.echo-drawing-layer-container{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;user-select:none;-webkit-user-select:none}.echo-drawing-layer-container svg{pointer-events:auto}.echo-drawing-toolbar{position:fixed;top:var(--spacing-xl);left:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:var(--z-drawing-toolbar);opacity:1;transition:opacity var(--duration-base) var(--ease-default)}.echo-drawing-toolbar-button{width:50px;height:50px;border-radius:var(--radius-full);border:2px solid #ddd;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:all var(--duration-base) var(--ease-default);box-shadow:var(--shadow-black-sm);position:relative}.echo-drawing-toolbar-icon{width:25px;height:25px;color:var(--primary-color);transition:color var(--duration-base) var(--ease-default)}.echo-drawing-toolbar-button:hover{transform:scale(1.05);border-color:var(--hover-color)}.echo-drawing-toolbar-button[data-selected=true]{background:var(--primary-color-lightest);border-color:var(--primary-color)}.echo-color-selector{position:relative}.echo-color-selector:hover .echo-drawing-toolbar-button{border-top-right-radius:0;border-bottom-right-radius:0;transform:scale(1.05);border-right-color:transparent;background:rgba(var(--primary-color),.9);border-color:var(--hover-color)}.echo-color-swatch-wrapper{position:absolute;left:calc(100% - 2px);top:50%;transform:translateY(-50%);height:52.5px;padding-right:var(--spacing-sm);display:none}.echo-color-selector:hover .echo-color-swatch-wrapper{display:block}.echo-color-swatch{height:100%;background:#fff;border-radius:var(--radius-md);border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--spacing-sm);padding-left:var(--spacing-md);box-shadow:var(--shadow-black-sm);display:flex;align-items:center;gap:var(--spacing-sm);border:2px solid #ddd;border-left:none}.echo-color-selector:hover .echo-color-swatch{border-color:var(--hover-color)}.echo-color-swatch-button{width:24px;height:24px;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;padding:0;transition:transform var(--duration-base) var(--ease-default)}.echo-color-swatch-button:hover{transform:scale(1.1)}.echo-color-swatch-button[data-selected=true]{border-color:var(--primary-color)}.echo-drawing-tooltip{display:flex;text-wrap:nowrap;position:fixed;background:#fff;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-combined-sm);font-size:var(--font-sm);color:var(--primary-color);z-index:var(--z-drawing-tooltip);pointer-events:none;animation:slideDownFade var(--duration-slow) var(--ease-default);border:1px solid var(--primary-color);background:var(--primary-color-lightest)}.echo-shape-actions{position:fixed;z-index:var(--z-shape-actions);display:flex;gap:var(--spacing-xs);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-combined-md);transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-sm)));animation:popInSlideDown var(--duration-fast) var(--ease-default);cursor:default;pointer-events:auto;padding:var(--spacing-xs);border:1px solid var(--primary-color)}.echo-shape-actions-divider{width:1px;margin:var(--spacing-sm) 0;background:var(--border-color);pointer-events:none}.echo-shape-actions[hidden]{display:none}.echo-notification{position:absolute;z-index:var(--z-notification);bottom:70px;right:0;width:300px;padding:var(--spacing-2xl);border-radius:var(--radius-lg);font-size:var(--font-md);font-weight:500;box-shadow:var(--shadow-combined-md);background:#fff;border:1px solid var(--primary-color);transform-origin:bottom right;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl);opacity:1;pointer-events:auto;transition:all var(--duration-base) var(--ease-smooth)}.echo-notification:not([data-empty=true]){animation:popInSlideUp var(--duration-slower) var(--ease-spring)}.echo-notification[data-empty=true]{opacity:0;pointer-events:none;transform:translateY(var(--spacing-sm)) scale(.95);transition:none}.echo-notification-hide{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:24px;height:24px;padding:var(--spacing-xs);border:none;background:transparent;color:var(--text-light);opacity:.7;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-bounce);flex-shrink:0}.echo-notification-hide:hover{opacity:1;background:var(--primary-color-lightest);transform:scale(1.1);color:var(--primary-color)}.echo-notification-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;transform:scale(1.5);background:var(--primary-color-lightest);padding:var(--spacing-md);border-radius:var(--radius-full);margin-top:var(--spacing-md);transition:all var(--duration-base) var(--ease-bounce)}.echo-notification[data-type=success]{border-color:var(--success-color)}.echo-notification[data-type=success] .echo-notification-icon{color:var(--success-color)}.echo-notification[data-type=error]{border-color:var(--error-color)}.echo-notification[data-type=error] .echo-notification-icon{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 10%,white)}.echo-notification-content{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 12px}.echo-notification-title{font-size:1rem;font-weight:600;color:#1a1a1a}.echo-notification-message{font-size:.875rem;font-weight:400;color:#666;line-height:1.4;max-width:100%}@media (max-width: 768px){.echo-notification{right:0;width:calc(100vw - 40px);height:auto;min-height:180px;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:.9375rem;padding:20px;gap:16px;bottom:calc(100% + 20px)}.echo-notification-icon{transform:scale(1.3);padding:10px;margin-top:8px}.echo-notification-title{font-size:.9375rem}.echo-notification-message{font-size:.8125rem}}.echo-welcome-message{display:flex;align-items:center;gap:var(--spacing-xs);position:fixed;z-index:var(--z-welcome-message);background:var(--primary-color-lightest);border:1px solid var(--primary-color);color:var(--primary-color);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);font-size:var(--font-sm);font-weight:500;box-shadow:var(--shadow-combined-md);opacity:1;transform:translateY(0) scale(1);transition:all var(--duration-slow) var(--ease-smooth);animation:bounceIn var(--duration-slowest) var(--ease-bounce);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;cursor:pointer;text-align:left}.echo-welcome-message:hover{transform:translateY(-2px) scale(1.02);background:var(--primary-color-lightest);box-shadow:var(--shadow-combined-lg)}.echo-welcome-message:active{transform:translateY(0) scale(.98)}.echo-welcome-message-close{width:20px;height:20px;padding:2px;margin-left:var(--spacing-xs);border:none;background:transparent;opacity:.7;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-default)}.echo-welcome-message-close:hover{opacity:1;background:var(--shadow-color-light);transform:scale(1.1)}.echo-welcome-message-close:active{transform:scale(.95)}.echo-welcome-message:after{content:"";position:absolute;bottom:-4px;right:17px;width:16px;height:16px;background:inherit;transform:rotate(45deg);border-radius:var(--radius-xs);border:1px solid var(--primary-color);z-index:-2}.echo-welcome-message:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--primary-color-lightest);z-index:-1;border-radius:var(--radius-lg)}.echo-welcome-message-pulsar{content:"";display:inline-block;width:6px;height:6px;background:var(--primary-color);border-radius:50%;margin-right:8px;animation:pulse 1.5s var(--ease-in-out) infinite}.echo-button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all var(--duration-base) var(--ease-default);line-height:1}.echo-button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.echo-button-primary{background:var(--primary-color);color:#fff}.echo-button-primary:hover{background:var(--hover-color);transform:translateY(-1px)}.echo-button-primary:active{transform:translateY(0)}.echo-button-secondary{background:transparent;color:var(--text-light)}.echo-button-secondary:hover{background-color:var(--primary-color-lightest);color:var(--primary-color)}.echo-button-xs{padding:var(--spacing-xs);font-size:var(--font-xs)}.echo-button-sm{padding:var(--spacing-xs);font-size:var(--font-sm)}.echo-button-md{padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-base)}.echo-button-lg{padding:var(--spacing-md) var(--spacing-3xl);font-size:var(--font-md)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(var(--spacing-sm))}to{opacity:1;transform:translateY(0)}}@keyframes slideDownFade{0%{opacity:0;transform:translateY(calc(-1 * var(--spacing-sm)))}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes popInSlideUp{0%{opacity:0;transform:translateY(var(--spacing-sm)) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes popInSlideDown{0%{opacity:0;transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-xs))) scale(.95)}to{opacity:1;transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-sm))) scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:translateY(var(--spacing-xl)) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}to{transform:scale(1);opacity:1}}.echo-inputs{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.echo-input{display:flex;flex-direction:column;gap:.5rem}.echo-input-label{font-size:.875rem;font-weight:500;color:var(--text-color)}.echo-input-required{color:#dc2626;margin-left:.25rem}.echo-input-field{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default)}.echo-input-field:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-input-field:disabled{opacity:.5}.echo-input-field::placeholder{color:var(--text-lighter)}textarea.echo-input-field{resize:vertical;max-width:100%;max-height:20rem;box-sizing:border-box}select.echo-input-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding-right:2.5rem;cursor:pointer}.echo-input-options-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xl);border:none;margin:0;padding:0}.echo-input-options{display:flex;flex-direction:column;gap:var(--spacing-sm);border:none;margin:0;padding:0}.echo-input-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--duration-base) var(--ease-default)}.echo-input-option:hover{background:var(--primary-color-lightest)}.echo-input-option input[type=radio],.echo-input-option input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;width:18px;height:18px;border:1px solid var(--border-color);background-color:#fff;display:grid;place-content:center;cursor:pointer;transition:all var(--duration-base) var(--ease-default)}.echo-input-option input[type=radio]{border-radius:50%}.echo-input-option input[type=radio]:before{content:"";width:10px;height:10px;border-radius:50%;transform:scale(0);transition:transform var(--duration-base) var(--ease-default);background-color:var(--primary-color)}.echo-input-option input[type=radio]:checked:before{transform:scale(1)}.echo-input-option input[type=checkbox]{border-radius:var(--radius-sm)}.echo-input-option input[type=checkbox]:before{content:"";width:12px;height:12px;transform:scale(0);transition:all var(--duration-base) var(--ease-default);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.echo-input-option input[type=checkbox]:checked{background-color:var(--primary-color-lighter);border-color:var(--primary-color-lighter)}.echo-input-option input[type=checkbox]:checked:before{transform:scale(1)}.echo-input-option input[type=radio]:hover,.echo-input-option input[type=checkbox]:hover{border-color:var(--primary-color-lighter)}.echo-input-option input[type=radio]:focus,.echo-input-option input[type=checkbox]:focus{outline:none;border-color:var(--primary-color-lighter);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-input-option input[type=radio]:checked,.echo-input-option input[type=checkbox]:checked{border-color:var(--primary-color-lighter)}.echo-input-option span{font-size:var(--font-sm);color:var(--text-medium);-webkit-user-select:none;user-select:none}.echo-select{position:relative;width:100%}.echo-select-trigger{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default);cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:.5rem;outline:none}.echo-select-trigger[data-placeholder=true]{color:var(--text-lighter)}.echo-select-trigger:hover{border-color:var(--border-color-medium)}.echo-select-trigger:focus,.echo-select-trigger[data-open=true]{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-select-arrow{flex-shrink:0;transition:transform var(--duration-base) var(--ease-default)}.echo-select-trigger[data-open=true] .echo-select-arrow{transform:rotate(180deg)}.echo-select-dropdown{position:absolute;top:calc(100% + .25rem);left:0;right:0;background:#fff;border:1px solid var(--border-color-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-black-lightened-md);max-height:15rem;overflow-y:auto;z-index:10;animation:slideDownFade var(--duration-base) var(--ease-default);padding:var(--spacing-xs)}.echo-select-option{width:100%;padding:.5rem .75rem;background:none;border:none;text-align:left;color:var(--text-medium);font-size:var(--font-sm);cursor:pointer;transition:all var(--duration-base) var(--ease-default);outline:none;border-radius:var(--radius-sm)}.echo-select-option:hover{background:var(--primary-color-lightest)}.echo-select-option:focus{background:var(--primary-color-lightest);box-shadow:0 0 0 1px var(--primary-color) inset}.echo-select-option[data-selected=true]{background:var(--primary-color-lightest);color:var(--primary-color);font-weight:500}select.echo-input-field{display:none}.visually-hidden{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}`;var Ut=b('<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>'),Ht=b("<button class=echo-color-swatch-button role=option>");const Xt=["#ff6b6b","#69db7c","#74c0fc","#ffd43b","#da77f2","#66d9e8","#ffa94d","#e599f7"],Kt={"#ff6b6b":"Soft Red","#69db7c":"Soft Green","#74c0fc":"Soft Blue","#ffd43b":"Soft Yellow","#da77f2":"Soft Purple","#66d9e8":"Soft Cyan","#ffa94d":"Soft Orange","#e599f7":"Soft Pink"},xe=e=>Kt[e]||"Primary",Gt=()=>{const e=x();return(()=>{var n=Ut(),t=n.firstChild,r=t.nextSibling,o=r.firstChild;return u(t,"aria-expanded",!1),v(o,c.createComponent(c.For,{get each(){return[e.widget.state.primaryColor,...Xt]},children:a=>(()=>{var i=Ht();return i.$$click=()=>e.drawing.setState({selectedColor:a}),a!=null?i.style.setProperty("background-color",a):i.style.removeProperty("background-color"),c.createRenderEffect(l=>{var s=`Select ${xe(a)} color`,d=e.drawing.state.selectedColor===a,h=`${xe(a)} color`,f=e.drawing.state.selectedColor===a;return s!==l.e&&u(i,"title",l.e=s),d!==l.t&&u(i,"data-selected",l.t=d),h!==l.a&&u(i,"aria-label",l.a=h),f!==l.o&&u(i,"aria-selected",l.o=f),l},{e:void 0,t:void 0,a:void 0,o:void 0}),i})()})),c.createRenderEffect(a=>{var i=`Current color: ${xe(e.drawing.state.selectedColor)}`,l=e.drawing.state.selectedColor;return i!==a.e&&u(t,"aria-label",a.e=i),l!==a.t&&((a.t=l)!=null?t.style.setProperty("background-color",l):t.style.removeProperty("background-color")),a},{e:void 0,t:void 0}),n})()};E(["click"]);var Zt=b('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="m9 18 6-6-6-6">');const Qt=e=>(()=>{var n=Zt();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=z(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var Jt=b('<svg viewBox="0 0 64 66"fill=none><path d="M59.716 36.936L54.9 33l-6.17 5.108a77.278 77.278 0 00-12.744 13.469l-3.637 4.914-3.778-5.017a83.719 83.719 0 00-13.956-14.538L9.799 33l2.86-2.332A104.39 104.39 0 0030.1 12.5l2.24-2.98 1.736 2.298a111.905 111.905 0 0018.608 19.384l2.206 1.81 2.861-2.333a104.13 104.13 0 005.297-4.641C59.978 11.294 47.409.26 32.349.26 14.997.26.92 14.923.92 33c0 18.076 14.077 32.74 31.43 32.74 15.102 0 27.715-11.103 30.73-25.892a75.808 75.808 0 00-3.375-2.912h.011z">');const en=e=>(()=>{var n=Jt(),t=n.firstChild;return c.createRenderEffect(r=>{var o=e.size??24,a=e.size??24,i=e.class,l=e.style,s=e.fill??"currentColor";return o!==r.e&&u(n,"width",r.e=o),a!==r.t&&u(n,"height",r.t=a),i!==r.a&&u(n,"class",r.a=i),r.o=z(n,l,r.o),s!==r.i&&u(t,"fill",r.i=s),r},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),n})();var tn=b('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2">');const nn=e=>(()=>{var n=tn();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=z(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var rn=b('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z">');const an=e=>(()=>{var n=rn();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=z(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var on=b('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1=10 x2=10 y1=11 y2=17></line><line x1=14 x2=14 y1=11 y2=17>');const Be=e=>(()=>{var n=on();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=z(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var cn=b('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><circle cx=12 cy=12 r=10></circle><path d="m9 12 2 2 4-4">');const sn=e=>(()=>{var n=cn();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=z(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var ln=b('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><circle cx=12 cy=12 r=10></circle><path d="m15 9-6 6"></path><path d="m9 9 6 6">');const dn=e=>(()=>{var n=ln();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=z(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var un=b('<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">');const ue=e=>(()=>{var n=un();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=z(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var hn=b('<div class=echo-drawing-toolbar data-hide-when-drawing=true role=toolbar aria-label="Drawing Tools"><button class=echo-drawing-toolbar-button title="Clear drawings"aria-label="Clear all drawings"role=button>'),fn=b("<button class=echo-drawing-toolbar-button role=button>");const gn={rectangle:nn,path:an},mn=()=>{const e=x(),n=Object.values(F);return(()=>{var t=hn(),r=t.firstChild;return v(t,c.createComponent(c.For,{each:n,children:o=>{const a=gn[o.id];return(()=>{var i=fn();return i.$$click=()=>e.drawing.setState({selectedTool:o.id}),v(i,c.createComponent(a,{class:"echo-drawing-toolbar-icon","aria-hidden":"true"})),c.createRenderEffect(l=>{var s=o.label,d=e.drawing.state.selectedTool===o.id,h=o.label,f=e.drawing.state.selectedTool===o.id;return s!==l.e&&u(i,"title",l.e=s),d!==l.t&&u(i,"data-selected",l.t=d),h!==l.a&&u(i,"aria-label",l.a=h),f!==l.o&&u(i,"aria-pressed",l.o=f),l},{e:void 0,t:void 0,a:void 0,o:void 0}),i})()}}),r),v(t,c.createComponent(Gt,{}),r),r.$$click=()=>e.drawing.setState({shapes:[]},!0),v(r,c.createComponent(Be,{class:"echo-drawing-toolbar-icon","aria-hidden":"true"})),t})()};E(["click"]);var vn=b("<div class=echo-drawing-tooltip data-hide-when-drawing=true>");const bn=()=>{const e=x(),n=c.createMemo(()=>e.drawing.state.showTooltip&&e.drawing.state.mousePosition.y&&e.drawing.state.mousePosition.x&&e.widget.state.isOpen&&!zt());return c.createComponent(c.Show,{get when(){return n()},get children(){var t=vn();return v(t,()=>e.widget.state.text.drawingTooltip.text),c.createRenderEffect(r=>{var o=`${e.drawing.state.mousePosition.y+20}px`,a=`${e.drawing.state.mousePosition.x+10}px`;return o!==r.e&&((r.e=o)!=null?t.style.setProperty("top",o):t.style.removeProperty("top")),a!==r.t&&((r.t=a)!=null?t.style.setProperty("left",a):t.style.removeProperty("left")),r},{e:void 0,t:void 0}),t}})};var wn=b("<button>");const L=e=>{const n=()=>e.variant||"primary",t=()=>e.size||"md";return(()=>{var r=wn();return it(r,c.mergeProps(e,{get class(){return`echo-button echo-button-${n()} echo-button-${t()} ${e.class}`}}),!1),r})()};var pn=b('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1=10 y1=14 x2=21 y2=3>');const yn=e=>(()=>{var n=pn();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=z(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var xn=b("<div class=echo-stored-feedback-empty>No unsubmitted feedback"),kn=b("<div class=echo-stored-feedback><div class=echo-stored-feedback-header><h3>Unsubmitted Feedback</h3></div><div class=echo-stored-feedback-list>"),Cn=b("<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>");const Sn=()=>{const e=x();let n;const[t,r]=c.createSignal(ve()),[o,a]=c.createSignal(window.location.pathname),i=m=>{m.key==="Escape"&&e.widget.state.isStoredFeedbackOpen&&e.widget.setState({isStoredFeedbackOpen:!1})},l=m=>{if(!e.widget.state.isStoredFeedbackOpen||!n)return;m.composedPath().includes(n)||e.widget.setState({isStoredFeedbackOpen:!1})},s=()=>{const m=ve();r(m),e.widget.setState({pagesCount:m.length})},d=()=>{a(window.location.pathname)};T({event:"echo-storage-change",callback:s}),T({event:"popstate",callback:d}),ye({target:document.documentElement,options:{childList:!0,subtree:!0},callback:()=>{a(window.location.pathname)}}),T({event:"keydown",callback:i}),T({event:"click",callback:l});const h=(m,w)=>{const S=w?`${m}${w}`:m;window.location.href=S,e.widget.setState({isStoredFeedbackOpen:!1})},f=m=>{o()===m&&e.methods.reset(),Oe(m);const w=ve();r(w),e.widget.setState({pagesCount:w.length})},g=m=>{if(m==="/")return"/";const w=m.split("/");return w.length<=4?m:`/${w[1]}/.../${w[w.length-1]}`};return c.createComponent(c.Show,{get when(){return e.widget.state.isStoredFeedbackOpen},get children(){var m=kn(),w=m.firstChild;w.firstChild;var S=w.nextSibling,k=n;return typeof k=="function"?D(k,m):n=m,v(w,c.createComponent(L,{variant:"secondary",size:"sm",onClick:()=>e.widget.setState({isStoredFeedbackOpen:!1}),get children(){return c.createComponent(ue,{size:20})}}),null),v(S,c.createComponent(c.For,{get each(){return t()},children:C=>{const p=c.createMemo(()=>C.path===o());return(()=>{var $=Cn(),P=$.firstChild,y=P.firstChild,W=y.nextSibling,j=P.nextSibling;return v(y,()=>g(C.path)),v(W,()=>C.state.feedback.message),v(j,(()=>{var O=c.createMemo(()=>!p());return()=>O()&&c.createComponent(L,{class:"echo-stored-feedback-link",variant:"secondary",size:"sm",onClick:()=>h(C.path,C.state.latestQuery),get children(){return c.createComponent(yn,{})}})})(),null),v(j,c.createComponent(L,{class:"echo-stored-feedback-delete",variant:"secondary",size:"sm",onClick:()=>f(C.path),children:"Delete"}),null),c.createRenderEffect(O=>{var Ue=`echo-stored-feedback-item ${p()?"echo-stored-feedback-item-current":""}`,He=C.path;return Ue!==O.e&&Ce($,O.e=Ue),He!==O.t&&u(y,"title",O.t=He),O},{e:void 0,t:void 0}),$})()}}),null),v(S,c.createComponent(c.Show,{get when(){return t().length===0},get children(){return xn()}}),null),m}})};var En=b('<button class=echo-launcher-button aria-label="Open feedback form"role=button>'),$n=b("<span class=echo-launcher-button-count role=button tabindex=0>");const Pn=()=>{const e=x(),[n,t]=c.createSignal(!1);let r;const o=()=>{r&&window.clearTimeout(r),!e.widget.state.disableMinimization&&(r=window.setTimeout(()=>{const d=V("welcome_message_shown",!1);!e.widget.state.isOpen&&!e.widget.state.isStoredFeedbackOpen&&d&&t(!0)},4e3))},a=()=>{t(!1)},i=()=>{o()},l=d=>{e.widget.setState({isOpen:!e.widget.state.isOpen}),e.widget.setState({welcomeMessageIsClosing:!0}),G("welcome_message_shown",!0)};c.createEffect(()=>{e.widget.state.isOpen||(t(!1),e.widget.state.disableMinimization||o()),e.widget.state.isStoredFeedbackOpen&&t(!1)});const s=d=>{d.stopPropagation(),e.widget.setState({isStoredFeedbackOpen:!e.widget.state.isStoredFeedbackOpen}),t(!1)};return[(()=>{var d=En();return d.addEventListener("pointerleave",i),d.addEventListener("pointerenter",a),d.$$click=l,v(d,c.createComponent(en,{stroke:"white",fill:"#ffffff","aria-hidden":"true"}),null),v(d,(()=>{var h=c.createMemo(()=>e.widget.state.pagesCount>0);return()=>h()&&(()=>{var f=$n();return f.$$click=s,v(f,()=>e.widget.state.pagesCount),c.createRenderEffect(()=>u(f,"aria-label",`View ${e.widget.state.pagesCount} stored feedback items`)),f})()})(),null),c.createRenderEffect(h=>{var f=e.widget.state.isOpen,g=`translateX(${n()?"45px":"0"})`,m=e.widget.state.isOpen;return f!==h.e&&u(d,"data-hidden",h.e=f),g!==h.t&&((h.t=g)!=null?d.style.setProperty("transform",g):d.style.removeProperty("transform")),m!==h.a&&u(d,"aria-expanded",h.a=m),h},{e:void 0,t:void 0,a:void 0}),d})(),c.createComponent(Sn,{})]};E(["click"]);var zn=b("<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>");const Mn=()=>{const e=x(),n=()=>{e.widget.setState({notification:{...e.widget.state.notification,show:!1}})},t=()=>{switch(e.widget.state.notification.type){case"success":return e.widget.state.text.notification.successTitle;case"error":return e.widget.state.text.notification.errorTitle;default:return""}};return(()=>{var r=zn(),o=r.firstChild,a=o.nextSibling,i=a.firstChild,l=i.nextSibling;return v(r,c.createComponent(L,{class:"echo-notification-hide",variant:"secondary",size:"sm",onClick:n,get title(){return e.widget.state.text.notification.hideTitle},get children(){return c.createComponent(ue,{size:20})}}),o),v(o,(()=>{var s=c.createMemo(()=>e.widget.state.notification.type==="success");return()=>s()?c.createComponent(sn,{size:32}):(()=>{var d=c.createMemo(()=>e.widget.state.notification.type==="error");return()=>d()?c.createComponent(dn,{size:32}):null})()})()),v(i,t),v(l,()=>{var s;return(s=e.widget.state.notification)==null?void 0:s.message}),c.createRenderEffect(s=>{var d=e.widget.state.notification.type,h=!e.widget.state.notification.type,f=!e.widget.state.notification.show;return d!==s.e&&u(r,"data-type",s.e=d),h!==s.t&&u(r,"data-empty",s.t=h),f!==s.a&&u(r,"data-hidden",s.a=f),s},{e:void 0,t:void 0,a:void 0}),r})()};var Tn=b("<div class=echo-shape-actions data-hide-when-drawing=true>");const On=()=>{const e=x();let n;const[t,r]=c.createSignal({x:window.scrollX,y:window.scrollY});T({event:"scroll",callback:()=>{r({x:window.scrollX,y:window.scrollY})}});const a=()=>{e.drawing.state.selectedShapeId&&e.drawing.setState({shapes:e.drawing.state.shapes.filter(s=>s.id!==e.drawing.state.selectedShapeId),selectedShapeId:null})},i=c.createMemo(()=>e.drawing.state.selectedShapeId?e.drawing.state.shapes.find(s=>s.id===e.drawing.state.selectedShapeId):null),l=c.createMemo(()=>{const s=i(),d=n==null?void 0:n.getBoundingClientRect();if(!s||!d)return null;let h=null;if(s.type==="rectangle"){const m=je(s.points);if(!m)return null;h={x:m.x+m.width/2,y:m.y}}else if(s.type==="path"&&s.points.length>0)h={x:s.points[0].x,y:s.points[0].y};else return null;const f=8,g=t();return{x:Math.max(d.width/2+f,Math.min(window.innerWidth-d.width/2-f,h.x-g.x)),y:Math.max(d.height+f,Math.min(window.innerHeight-f,h.y-g.y))}});return(()=>{var s=Tn(),d=n;return typeof d=="function"?D(d,s):n=s,s.style.setProperty("top","0"),s.style.setProperty("left","0"),v(s,c.createComponent(L,{onClick:a,size:"sm",variant:"secondary",title:"Delete shape",get children(){return c.createComponent(Be,{size:20})}})),c.createRenderEffect(h=>{var m,w;var f=!l(),g=`translate(calc(${(m=l())==null?void 0:m.x}px - 50%), calc(${(w=l())==null?void 0:w.y}px - 125%))`;return f!==h.e&&(s.hidden=h.e=f),g!==h.t&&((h.t=g)!=null?s.style.setProperty("transform",g):s.style.removeProperty("transform")),h},{e:void 0,t:void 0}),s})()};var In=b("<button class=echo-welcome-message><span class=echo-welcome-message-pulsar></span><div class=echo-welcome-message-close role=button tabindex=0>");const Rn=()=>{const e=x(),n=V("welcome_message_shown",!1),t=o=>{o.stopPropagation(),e.widget.setState({welcomeMessageIsClosing:!0}),G("welcome_message_shown",!0)},r=()=>{e.widget.setState({isOpen:!0}),e.widget.setState({welcomeMessageIsClosing:!0}),G("welcome_message_shown",!0)};return n?null:(()=>{var o=In(),a=o.firstChild,i=a.nextSibling;return o.$$click=r,o.style.setProperty("bottom","80px"),o.style.setProperty("right","20px"),v(o,()=>e.widget.state.text.welcomeMessage.text,i),i.$$keydown=l=>l.key==="Enter"&&t(l),i.$$click=t,v(i,c.createComponent(ue,{size:16,strokeWidth:3})),c.createRenderEffect(l=>{var s=e.widget.state.welcomeMessageIsClosing,d=e.widget.state.text.welcomeMessage.closeAriaLabel;return s!==l.e&&u(o,"data-hidden",l.e=s),d!==l.t&&u(i,"aria-label",l.t=d),l},{e:void 0,t:void 0}),o})()};E(["click","keydown"]);var An=b("<svg><rect class=echo-shape fill=transparent vector-effect=non-scaling-stroke role=img></svg>",!1,!0),Dn=b("<svg><path class=echo-shape fill=none vector-effect=non-scaling-stroke stroke-linecap=round role=img></svg>",!1,!0);const Ye=e=>{const n=c.createMemo(()=>e.id===e.selectedShapeId);return[c.createComponent(c.Show,{get when(){return e.type==="rectangle"},get children(){return c.createComponent(Fn,c.mergeProps(e,{get isSelected(){return n()}}))}}),c.createComponent(c.Show,{get when(){return e.type==="path"},get children(){return c.createComponent(Ln,c.mergeProps(e,{get isSelected(){return n()}}))}})]},Fn=e=>{const n=c.createMemo(()=>je(e.points));return c.createComponent(c.Show,{get when(){return n()},get children(){var t=An();return t.$$keydown=r=>{var o;return r.key==="Enter"&&((o=e.onShapeClick)==null?void 0:o.call(e,e.id))},t.$$click=()=>{var r;return(r=e.onShapeClick)==null?void 0:r.call(e,e.id)},c.createRenderEffect(r=>{var o=e.id,a=e.isSelected,i=n().x,l=n().y,s=n().width,d=n().height,h=e.color,f=F.rectangle.strokeWidth,g=e.isSelected?F.rectangle.opacity.selected:F.rectangle.opacity.default,m=e.isSelected?"5,5":"none",w=e.isSelected?"move":"pointer",S=`Rectangle shape ${e.isSelected?"(selected)":""}`,k=e.onShapeClick?0:-1;return o!==r.e&&u(t,"data-shape-id",r.e=o),a!==r.t&&u(t,"data-selected",r.t=a),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),d!==r.n&&u(t,"height",r.n=d),h!==r.s&&u(t,"stroke",r.s=h),f!==r.h&&u(t,"stroke-width",r.h=f),g!==r.r&&u(t,"opacity",r.r=g),m!==r.d&&u(t,"stroke-dasharray",r.d=m),w!==r.l&&u(t,"cursor",r.l=w),S!==r.u&&u(t,"aria-label",r.u=S),k!==r.c&&u(t,"tabindex",r.c=k),r},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0}),t}})},Ln=e=>{const n=c.createMemo(()=>Mt(e.points));return c.createComponent(c.Show,{get when(){return n()},get children(){var t=Dn();return t.$$keydown=r=>{var o;return r.key==="Enter"&&((o=e.onShapeClick)==null?void 0:o.call(e,e.id))},t.$$click=()=>{var r;return(r=e.onShapeClick)==null?void 0:r.call(e,e.id)},c.createRenderEffect(r=>{var o=e.id,a=e.isSelected,i=n(),l=e.color,s=F.path.strokeWidth,d=e.isSelected?F.path.opacity.selected:F.path.opacity.default,h=e.isSelected?"move":"pointer",f=`Freehand shape ${e.isSelected?"(selected)":""}`,g=e.onShapeClick?0:-1;return o!==r.e&&u(t,"data-shape-id",r.e=o),a!==r.t&&u(t,"data-selected",r.t=a),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),d!==r.n&&u(t,"opacity",r.n=d),h!==r.s&&u(t,"cursor",r.s=h),f!==r.h&&u(t,"aria-label",r.h=f),g!==r.r&&u(t,"tabindex",r.r=g),r},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),t}})};E(["click","keydown"]);var jn=b('<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>');const Nn=()=>{const e=x();let n;return c.onMount(()=>{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,{passive:!1}),n==null||n.addEventListener("touchend",e.drawing.methods.handleEnd)}),c.onCleanup(()=>{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)}),(()=>{var t=jn(),r=t.firstChild,o=r.firstChild,a=n;return typeof a=="function"?D(a,t):n=t,v(t,c.createComponent(bn,{}),r),v(t,c.createComponent(On,{}),r),N(r,"touchend",e.drawing.methods.handleLeave,!0),N(r,"mouseleave",e.drawing.methods.handleLeave),N(r,"mouseenter",e.drawing.methods.handleEnter),r.$$touchmove=i=>{i.preventDefault(),e.drawing.methods.handleMove(i)},N(r,"mousemove",e.drawing.methods.handleMove,!0),r.$$touchstart=i=>{i.preventDefault(),e.drawing.methods.handleStart(i),e.drawing.methods.handleEnter(i),e.drawing.setState({showTooltip:!1,hasDrawn:!0})},r.$$mousedown=i=>{e.drawing.methods.handleStart(i),e.drawing.setState({showTooltip:!1,hasDrawn:!0})},v(r,c.createComponent(c.For,{get each(){return e.drawing.state.shapes},children:i=>c.createComponent(Ye,{get id(){return i.id},get type(){return i.type},get color(){return i.color},get points(){return i.points},get selectedShapeId(){return e.drawing.state.selectedShapeId},get onShapeClick(){return e.drawing.methods.handleShapeClick}})}),null),v(r,c.createComponent(Ye,{id:"temp",get type(){return e.drawing.state.selectedTool},get color(){return e.drawing.state.selectedColor},get points(){return e.drawing.state.currentPoints},get selectedShapeId(){return e.drawing.state.selectedShapeId}}),null),c.createRenderEffect(i=>{var l=e.drawing.state.cursor,s=Ft({width:e.widget.state.dimensions.width,height:e.widget.state.dimensions.height},e.drawing.state.currentPoints,e.drawing.state.shapes);return l!==i.e&&((i.e=l)!=null?t.style.setProperty("cursor",l):t.style.removeProperty("cursor")),s!==i.t&&u(o,"d",i.t=s),i},{e:void 0,t:void 0}),t})()};E(["mousedown","touchstart","mousemove","touchmove","touchend"]);const re=e=>({handleTextChange:a=>{const i=a.target;e(i.value)},handleSelectChange:a=>{e(a)},handleCheckboxChange:(a,i,l)=>{const s=l?[...a,i]:a.filter(d=>d!==i);e(s)},getCheckboxValue:a=>Array.isArray(a)?a:[]});var qn=b("<div class=echo-input role=group>"),Vn=b("<label class=echo-input-label><span>"),Wn=b('<span class=echo-input-required aria-label="Required field">*');const ae=e=>(()=>{var n=qn();return v(n,(()=>{var t=c.createMemo(()=>!!e.label);return()=>t()&&(()=>{var r=Vn(),o=r.firstChild;return v(o,()=>e.label),v(r,(()=>{var a=c.createMemo(()=>!!e.required);return()=>a()&&Wn()})(),null),r})()})(),null),v(n,()=>e.children,null),n})();var Bn=b("<textarea class=echo-input-field rows=5>"),Yn=b("<div class=visually-hidden>");const _e=e=>{const{handleTextChange:n}=re(e.onChange);return c.createComponent(ae,{get label(){return e.config.label},get required(){return e.config.required},get children(){return[(()=>{var t=Bn();return N(t,"input",n,!0),c.createRenderEffect(r=>{var o=e.config.id,a=e.config.placeholder,i=e.config.required,l=e.config.label||e.config.placeholder,s=e.config.required,d=e.value==="",h=`${e.config.id}-description`;return o!==r.e&&u(t,"id",r.e=o),a!==r.t&&u(t,"placeholder",r.t=a),i!==r.a&&(t.required=r.a=i),l!==r.o&&u(t,"aria-label",r.o=l),s!==r.i&&u(t,"aria-required",r.i=s),d!==r.n&&u(t,"aria-invalid",r.n=d),h!==r.s&&u(t,"aria-describedby",r.s=h),r},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),c.createRenderEffect(()=>t.value=e.value===void 0?"":e.value),t})(),(()=>{var t=Yn();return v(t,()=>e.config.placeholder),c.createRenderEffect(()=>u(t,"id",`${e.config.id}-description`)),t})()]}})};E(["input"]);var _n=b("<fieldset class=echo-input-options role=group>"),Un=b("<label class=echo-input-option><input type=checkbox><span>");const Hn=e=>{const{handleCheckboxChange:n,getCheckboxValue:t}=re(e.onChange),r=()=>t(e.value),o=()=>r().length>0;return c.createComponent(ae,{get label(){return e.config.label},get required(){return e.config.required},get children(){var a=_n();return v(a,c.createComponent(c.For,{get each(){return e.config.options},children:(i,l)=>(()=>{var s=Un(),d=s.firstChild,h=d.nextSibling;return d.addEventListener("change",f=>n(r(),i.value,f.currentTarget.checked)),v(h,()=>i.label),c.createRenderEffect(()=>d.required=e.config.required&&!o()&&l()===0),c.createRenderEffect(()=>d.value=i.value),c.createRenderEffect(()=>d.checked=r().includes(i.value)),s})()})),c.createRenderEffect(()=>u(a,"aria-required",e.config.required)),a}})};var Xn=b("<fieldset class=echo-input-options role=radiogroup>"),Kn=b("<label class=echo-input-option><input type=radio><span>");const Gn=e=>{const{handleSelectChange:n}=re(e.onChange);return c.createComponent(ae,{get label(){return e.config.label},get required(){return e.config.required},get children(){var t=Xn();return v(t,c.createComponent(c.For,{get each(){return e.config.options},children:r=>(()=>{var o=Kn(),a=o.firstChild,i=a.nextSibling;return a.addEventListener("change",()=>n(r.value)),v(i,()=>r.label),c.createRenderEffect(l=>{var s=e.config.id,d=e.config.required;return s!==l.e&&u(a,"name",l.e=s),d!==l.t&&(a.required=l.t=d),l},{e:void 0,t:void 0}),c.createRenderEffect(()=>a.value=r.value),c.createRenderEffect(()=>a.checked=e.value===r.value),o})()})),c.createRenderEffect(()=>u(t,"aria-required",e.config.required)),t}})};var Zn=b("<div class=echo-select-dropdown role=listbox>"),Qn=b('<div class=echo-select><button type=button class=echo-select-trigger aria-haspopup=listbox><span></span><svg class=echo-select-arrow width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="m6 9 6 6 6-6"></path></svg></button><input type=text class=visually-hidden aria-hidden=true>'),Jn=b("<button type=button class=echo-select-option role=option>");const er=e=>{const{handleSelectChange:n}=re(e.onChange),[t,r]=c.createSignal(!1);let o,a,i;const l=()=>e.config.options.find(f=>f.value===(e.value===void 0?"":e.value)),s=(f,g)=>{g.stopPropagation(),f.value===e.value?e.config.required||n(""):n(f.value),r(!1)},d=()=>{r(!t())};return T({event:"mousedown",callback:f=>{if(!t()||!o)return;f.composedPath().includes(o)||r(!1)}}),c.createComponent(ae,{get label(){return e.config.label},get required(){return e.config.required},get children(){var f=Qn(),g=f.firstChild,m=g.firstChild,w=g.nextSibling,S=o;typeof S=="function"?D(S,f):o=f,g.$$click=p=>{p.stopPropagation(),d()};var k=a;typeof k=="function"?D(k,g):a=g,v(m,()=>{var p;return((p=l())==null?void 0:p.label)||e.config.placeholder}),v(f,c.createComponent(c.Show,{get when(){return t()},get children(){var p=Zn();return v(p,c.createComponent(c.For,{get each(){return e.config.options},children:$=>(()=>{var P=Jn();return P.$$click=y=>s($,y),v(P,()=>$.label),c.createRenderEffect(y=>{var W=$.value===e.value,j=$.value===e.value;return W!==y.e&&u(P,"aria-selected",y.e=W),j!==y.t&&u(P,"data-selected",y.t=j),y},{e:void 0,t:void 0}),P})()})),p}}),w);var C=i;return typeof C=="function"?D(C,w):i=w,c.createRenderEffect(p=>{var $=t(),P=!e.value,y=e.config.required,W=t(),j=e.config.required,O=e.config.required;return $!==p.e&&u(g,"data-open",p.e=$),P!==p.t&&u(g,"data-placeholder",p.t=P),y!==p.a&&u(g,"data-required",p.a=y),W!==p.o&&u(g,"aria-expanded",p.o=W),j!==p.i&&u(g,"aria-required",p.i=j),O!==p.n&&(w.required=p.n=O),p},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),c.createRenderEffect(()=>w.value=e.value===void 0?"":e.value),f}})};E(["click"]);var tr=b("<input type=text class=echo-input-field>");const nr=e=>{const{handleTextChange:n}=re(e.onChange);return c.createComponent(ae,{get label(){return e.config.label},get required(){return e.config.required},get children(){var t=tr();return N(t,"input",n,!0),c.createRenderEffect(r=>{var o=e.config.placeholder,a=e.config.required,i=e.config.disabled;return o!==r.e&&u(t,"placeholder",r.e=o),a!==r.t&&(t.required=r.t=a),i!==r.a&&(t.disabled=r.a=i),r},{e:void 0,t:void 0,a:void 0}),c.createRenderEffect(()=>t.value=e.value===void 0?"":e.value),t}})};E(["input"]);var rr=b("<div class=echo-input-error>Invalid input type"),ar=b("<div class=echo-input-error>Unsupported input type: ");const or=e=>c.createComponent(c.Show,{get when(){return e.config.type},keyed:!0,get fallback(){return rr()},get children(){return c.createComponent(c.Switch,{get fallback(){return(()=>{var n=ar();return n.firstChild,v(n,()=>e.config.type,null),n})()},get children(){return[c.createComponent(c.Match,{get when(){return e.config.type==="text"},get children(){return c.createComponent(nr,c.mergeProps(e,{get value(){return e.value},get config(){return e.config}}))}}),c.createComponent(c.Match,{get when(){return e.config.type==="textarea"},get children(){return c.createComponent(_e,{get config(){return e.config},get value(){return e.value},get onChange(){return e.onChange}})}}),c.createComponent(c.Match,{get when(){return e.config.type==="radio"},get children(){return c.createComponent(Gn,{get config(){return e.config},get value(){return e.value},get onChange(){return e.onChange}})}}),c.createComponent(c.Match,{get when(){return e.config.type==="checkbox"},get children(){return c.createComponent(Hn,{get config(){return e.config},get value(){return e.value},get onChange(){return e.onChange}})}}),c.createComponent(c.Match,{get when(){return e.config.type==="select"},get children(){return c.createComponent(er,{get config(){return e.config},get value(){return e.value},get onChange(){return e.onChange}})}})]}})}}),ir=()=>{const e=navigator.connection;return{effectiveType:e==null?void 0:e.effectiveType,downlink:e==null?void 0:e.downlink,rtt:e==null?void 0:e.rtt,saveData:e==null?void 0:e.saveData}},cr=()=>({width:window.innerWidth,height:window.innerHeight,screenWidth:window.screen.width,screenHeight:window.screen.height,language:navigator.language,languages:navigator.languages,doNotTrack:navigator.doNotTrack,cookiesEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,maxTouchPoints:navigator.maxTouchPoints,colorDepth:window.screen.colorDepth,pixelRatio:window.devicePixelRatio,availableWidth:window.screen.availWidth,availableHeight:window.screen.availHeight}),sr=()=>{const e=new URL(window.location.href),n={};return e.searchParams.forEach((t,r)=>{n[r]=t}),{url:e.href,origin:e.origin,pathname:e.pathname,searchParams:n,referrer:document.referrer}},lr=()=>({timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,localDateTime:new Date().toISOString()}),dr=()=>({userAgent:navigator.userAgent,browserInfo:cr(),networkInfo:ir(),locationInfo:sr(),timeInfo:lr(),console:Pt()});var ur=b("<fieldset class=echo-input-options-wrapper><legend class=visually-hidden>Additional Information"),hr=b('<section class=echo-feedback data-hide-when-drawing=true role=dialog aria-label="Feedback Form"><form class=echo-feedback-content aria-label="Submit Feedback"><header class=echo-feedback-header><h3 class=echo-feedback-title id=feedback-form-title></h3><div class=echo-feedback-header-actions role=toolbar aria-label="Form controls"></div></header><fieldset class=echo-input-options-wrapper><legend class=visually-hidden>Feedback Message</legend></fieldset><footer class=echo-feedback-footer>');const fr=()=>{const e=x(),n=async o=>{o.preventDefault();const a=await Dt(),i={message:e.feedback.state.message,screenshot:a,metadata:dr(),customInputs:e.feedback.state.customInputValues};e.methods.submit(i)},t=o=>{o.stopPropagation(),e.feedback.setState({isMinimized:!0})},r=()=>{e.feedback.setState({isMinimized:!1})};return c.createEffect(()=>{e.widget.state.isOpen&&requestAnimationFrame(()=>{var o;(o=document.querySelector(".echo-input-field"))==null||o.focus()})}),(()=>{var o=hr(),a=o.firstChild,i=a.firstChild,l=i.firstChild,s=l.nextSibling,d=i.nextSibling;d.firstChild;var h=d.nextSibling;return o.$$click=()=>e.feedback.state.isMinimized&&r(),a.addEventListener("submit",n),v(l,()=>e.widget.state.text.feedbackForm.title),v(s,c.createComponent(L,{type:"button",title:"Hide form",variant:"secondary",size:"sm",onClick:t,"aria-label":"Minimize feedback form",get children(){return c.createComponent(Qt,{size:20})}}),null),v(s,c.createComponent(L,{type:"button",title:"Close form",variant:"secondary",size:"sm",onClick:()=>e.widget.setState({isOpen:!1}),"aria-label":"Close feedback form",get children(){return c.createComponent(ue,{size:20})}}),null),v(d,c.createComponent(_e,{get config(){return{type:"textarea",id:"message",placeholder:e.widget.state.text.feedbackForm.placeholder,label:"Feedback Message",required:!0}},get value(){return e.feedback.state.message},onChange:f=>e.feedback.setState({message:f})}),null),v(a,c.createComponent(c.Show,{get when(){var f;return(f=e.widget.state.customInputs)==null?void 0:f.length},get children(){var f=ur();return f.firstChild,v(f,c.createComponent(c.For,{get each(){return e.widget.state.customInputs},children:g=>c.createComponent(or,{config:g,get value(){return e.feedback.state.customInputValues[g.id]},onChange:m=>e.feedback.setState({customInputValues:{...e.feedback.state.customInputValues,[g.id]:m}})})}),null),f}}),h),v(h,c.createComponent(L,{type:"submit",variant:"primary",size:"lg",style:{width:"100%"},"aria-label":"Submit feedback",get children(){return e.widget.state.text.feedbackForm.submitButton}})),c.createRenderEffect(f=>{var g=e.feedback.state.isMinimized,m=e.feedback.state.isMinimized?"pointer":"default",w=!e.feedback.state.isMinimized;return g!==f.e&&u(o,"data-minimized",f.e=g),m!==f.t&&((f.t=m)!=null?o.style.setProperty("cursor",m):o.style.removeProperty("cursor")),w!==f.a&&u(o,"aria-expanded",f.a=w),f},{e:void 0,t:void 0,a:void 0}),o})()};E(["click"]);var gr=b("<style>"),mr=b("<div class=echo-launcher>"),vr=b("<dialog class=echo-overlay>"),br=b("<div class=echo-root>");const wr=e=>{const[n,t]=c.createSignal();return c.createEffect(()=>{const r=n();r&&Tt(r.shadowRoot)}),c.createComponent(ht,{ref:t,useShadow:!0,get mount(){return document.body},get children(){return c.createComponent(Wt,c.mergeProps(e,{get children(){return c.createComponent(kr,{get children(){return[c.createComponent(pr,{get primaryColor(){return e.primaryColor}}),c.createComponent(yr,{})]}})}}))}})},pr=e=>{const[n,t]=c.createSignal("");return c.createEffect(()=>{const r=`
|
3
|
+
Location: ${t}:${r}:${o}`,timestamp:new Date().toISOString()})}))},$t=()=>{M&&(console.log=M.log,console.warn=M.warn,console.error=M.error,M=null),_&&(window.onerror=_,_=null),U&&(window.onunhandledrejection=U,U=null),window.removeEventListener("error",()=>{}),R=[]},Pt=()=>[...R],zt=()=>{var e;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)},se=(e,{useClientCoords:n=!1}={})=>{const r=typeof TouchEvent<"u"&&e instanceof TouchEvent?e.touches[0]:null;return{x:r?n?r.clientX:r.pageX:n?e.clientX:e.pageX,y:r?n?r.clientY:r.pageY:n?e.clientY:e.pageY}},Le=(e,n)=>{const t=n.x-e.x,r=n.y-e.y;return Math.sqrt(t*t+r*r)},je=e=>{if(e.length!==2)return null;const[n,t]=e;return{x:Math.min(n.x,t.x),y:Math.min(n.y,t.y),width:Math.abs(t.x-n.x),height:Math.abs(t.y-n.y)}},Mt=e=>e.length<2?null:`M ${e[0].x} ${e[0].y} ${e.slice(1).map(n=>`L ${n.x} ${n.y}`).join(" ")}`,le=window.EventTarget.prototype.addEventListener,H=window.EventTarget.prototype.removeEventListener;let de=!1,ee=null;const te=new WeakMap,Tt=e=>{ee=e},ne=e=>{if(!ee||!e)return!1;if(e===ee)return!0;const n=e.getRootNode();if(n&&n.nodeName==="#document"){const r=n.querySelector("#top-layer");if(r!=null&&r.contains(e))return!0}let t=e;for(;t;){if(t.getRootNode()===ee)return!0;t=t.parentNode}return!1},Ot=e=>{de||(de=!0,window.EventTarget.prototype.addEventListener=function(n,t,r){if(!t||typeof t!="function")return le.call(this,n,t,r);if(!(this instanceof Node&&!ne(this)))return le.call(this,n,t,r);const a=Rt(t,e);te.has(this)||te.set(this,new Map),te.get(this).set(t,a),le.call(this,n,a,r)},window.EventTarget.prototype.removeEventListener=function(n,t,r){if(!t||typeof this!="object")return H.call(this,n,t,r);if(this instanceof Node&&ne(this))return H.call(this,n,t,r);const a=te.get(this);if(!a)return H.call(this,n,t,r);const i=a.get(t);i?(H.call(this,n,i,r),a.delete(t),a.size===0&&te.delete(this)):H.call(this,n,t,r)})},It=()=>{de&&(window.EventTarget.prototype.addEventListener=le,window.EventTarget.prototype.removeEventListener=H,de=!1,ee=null)},T=e=>{const{event:n,callback:t,onMount:r,onCleanup:o}=e;c.onMount(()=>{r==null||r(),window.addEventListener(n,t)}),c.onCleanup(()=>{o==null||o(),window.removeEventListener(n,t)})},ye=e=>{const{target:n,options:t,callback:r,onMount:o,onCleanup:a}=e,i=new MutationObserver(r);c.onMount(()=>{o==null||o(),i.observe(n,t)}),c.onCleanup(()=>{a==null||a(),i.disconnect()})},Rt=(e,n)=>function(t){(!(t.target instanceof Node)||!ne(t.target))&&n(t),e.call(this,t)},At=e=>e.hasAttribute("data-hide-when-drawing"),Dt=async()=>{var e;try{const n=document.createElement("style");document.head.appendChild(n),(e=n.sheet)==null||e.insertRule("body > div:last-child img { display: inline-block; }");const t=await Xe(document.body,{logging:!1,useCORS:!0,scale:window.devicePixelRatio,allowTaint:!0,ignoreElements:r=>At(r)});return n.remove(),t.toDataURL("image/png")}catch(n){console.error("Failed to capture screenshot:",n);return}},Ft=(e,n,t)=>{let r=`M0 0 H${e.width} V${e.height} H0 Z`;if(n.length===2){const[o,a]=n;r+=` M${o.x} ${o.y} h${a.x-o.x} v${a.y-o.y} h${o.x-a.x} v${o.y-a.y}`}for(const o of t)if(o.type==="rectangle"){const[a,i]=o.points;r+=` M${a.x} ${a.y} h${i.x-a.x} v${i.y-a.y} h${a.x-i.x} v${a.y-i.y}`}return r},Lt=e=>{if(typeof e!="object"||e===null)throw new Error("Echo initialization failed: options must be an object");if(typeof e.onSubmit!="function")throw new Error("Echo initialization failed: onSubmit must be a function");if(e.primaryColor&&!/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(e.primaryColor))throw new Error("Echo initialization failed: primaryColor must be a valid hex color")},Ne=5,qe=(e,n)=>F[e].getCursor(n),jt=(e,n,t)=>{var l,s;const[r,o]=be({isDrawing:!1,currentPoints:[],selectedShapeId:null,selectedTool:"rectangle",showTooltip:!0,mousePosition:{x:0,y:0},selectedColor:e.primaryColor,shapes:((s=(l=me(n))==null?void 0:l.drawing)==null?void 0:s.shapes)||[],hasDrawn:!1,isDragging:!1,dragStartPos:null,initialClickPos:null,dragOffset:null,cursor:qe("rectangle",e.primaryColor)}),a=(d,h=!1)=>{if(d.selectedTool||d.selectedColor){const f=d.selectedTool||r.selectedTool,g=d.selectedColor||r.selectedColor;d.cursor=qe(f,g)}o(d),t==null||t(d,h)},i={startDrawing:d=>{a({isDrawing:!0,currentPoints:[d],selectedShapeId:null})},updateDrawing:d=>{r.selectedTool==="rectangle"?a({currentPoints:[r.currentPoints[0],d]}):r.selectedTool==="path"&&a({currentPoints:[...r.currentPoints,d]})},finishDrawing:()=>{if(r.currentPoints.length>=2){const d={id:Math.random().toString(36).substring(2),type:r.selectedTool,color:r.selectedColor,points:r.currentPoints};a({shapes:[...r.shapes,d]})}a({isDrawing:!1,currentPoints:[]})},handleShapeClick:d=>{},handleStart:d=>{if(d instanceof MouseEvent){const f=d.target;if(!f.classList.contains("echo-drawing-layer-mask")&&!f.classList.contains("echo-shape"))return}const h=se(d);if(d.target instanceof SVGElement&&d.target.classList.contains("echo-shape")){const f=d.target.dataset.shapeId;if(f&&r.selectedShapeId===f){const g=r.shapes.find(m=>m.id===f);if(g){i.startDrag(h),i.updateDragOffset(g,h);return}}}i.setInitialClick(h)},handleMove:d=>{const h=se(d,{useClientCoords:!0}),f=se(d);if(a({mousePosition:h}),r.isDragging&&r.selectedShapeId&&r.dragStartPos&&r.shapes.find(m=>m.id===r.selectedShapeId)){const m=f.x-r.dragStartPos.x,b=f.y-r.dragStartPos.y,S=r.shapes.map(k=>k.id===r.selectedShapeId?{...k,points:k.points.map(C=>({x:C.x+m,y:C.y+b}))}:k);a({shapes:S}),i.startDrag(f);return}if(r.initialClickPos&&!r.isDrawing){Le(r.initialClickPos,f)>=Ne&&i.startDrawing(r.initialClickPos);return}r.isDrawing&&i.updateDrawing(f)},handleEnd:d=>{if(r.isDragging){i.stopDrag();return}if(r.initialClickPos&&!r.isDrawing){const h=se(d);if(Le(r.initialClickPos,h)<Ne&&d.target instanceof SVGElement&&d.target.classList.contains("echo-shape")){const g=d.target.dataset.shapeId;g&&a({selectedShapeId:g})}}i.setInitialClick(null),i.finishDrawing()},handleEnter:d=>{d.target===d.currentTarget&&!r.hasDrawn&&a({showTooltip:!0})},handleLeave:d=>{d.target===d.currentTarget&&a({showTooltip:!1})},startDrag:d=>{a({isDragging:!0,dragStartPos:d})},stopDrag:()=>{a({isDragging:!1,dragStartPos:null,dragOffset:null})},setInitialClick:d=>{a({initialClickPos:d})},updateDragOffset:(d,h)=>{a({dragOffset:{x:h.x-d.points[0].x,y:h.y-d.points[0].y}})}};return{state:r,setState:a,methods:i}},Nt=(e,n,t,r)=>{var f;const o=(r==null?void 0:r.reduce((g,m)=>(g[m.id]=m.defaultValue??(m.type==="checkbox"?[]:""),g),{}))||{},a=me(n),i=(a==null?void 0:a.feedback.customInputValues)||{},l={...o,...i},[s,d]=be({message:((f=a==null?void 0:a.feedback)==null?void 0:f.message)||"",screenshot:void 0,isCapturing:!1,isMinimized:!1,customInputValues:l,hasUserInteracted:!1});return{state:s,setState:(g,m=!1)=>{const b="isCapturing"in g||"isMinimized"in g||m;!b&&!s.hasUserInteracted&&d({hasUserInteracted:!0}),d(g),(s.hasUserInteracted||b)&&(t==null||t(g,m))}}},qt=(e,n)=>{const[t,r]=be({text:e.textConfig,isOpen:!1,primaryColor:e.primaryColor,notification:{show:!1,type:null,message:null},dimensions:{width:document.documentElement.clientWidth,height:document.documentElement.scrollHeight},isStoredFeedbackOpen:!1,pagesCount:Ie(),welcomeMessageIsClosing:!1,position:e.position,customInputs:e.customInputs,disableMinimization:e.disableMinimization});return{state:t,setState:r}},Ve=e=>{var n;return((n=e.customInputs)==null?void 0:n.reduce((t,r)=>(t[r.id]=r.defaultValue??(r.type==="checkbox"?[]:""),t),{}))||{}},Vt=e=>{let n=ge();const t=qt(e),r=bt(t),o=gt(t),a=Nt(e,n,(d,h)=>{r(n,{feedback:{...a.state,...d},drawing:i.state},h)},e.customInputs),i=jt(e,n,(d,h)=>{r(n,{feedback:a.state,drawing:{...i.state,...d}},h)}),l=d=>{n=d;const h=me(n),f={...Ve(e),...h==null?void 0:h.feedback.customInputValues};a.setState({message:(h==null?void 0:h.feedback.message)||"",customInputValues:f,hasUserInteracted:!1}),i.setState({shapes:(h==null?void 0:h.drawing.shapes)||[]})},s=()=>{Oe(n);const d={feedback:{message:"",screenshot:void 0,isCapturing:!1,isMinimized:!1,hasUserInteracted:!1,customInputValues:Ve(e)},drawing:{isDrawing:!1,currentPoints:[],shapes:[],selectedShapeId:null,selectedTool:"rectangle",selectedColor:e.primaryColor,showTooltip:!0,mousePosition:{x:0,y:0},hasDrawn:!1,isDragging:!1,dragStartPos:null,initialClickPos:null,dragOffset:null,cursor:i.state.cursor},widget:{isOpen:!1}};a.setState(d.feedback,!0),i.setState(d.drawing,!0),t.setState(d.widget)};return{feedback:a,drawing:i,widget:t,methods:{reset:s,handlePageChange:l,submit:async d=>{t.setState({isOpen:!1});try{const h=await e.onSubmit(d);return h instanceof Response&&!h.ok?(o.show({type:"error",message:"Submission failed"}),h):(s(),o.show({type:"success",message:"Feedback submitted"}),h)}catch{o.show({type:"error",message:"Submission failed"})}}}}},We=c.createContext(),Wt=e=>{const n=Vt({primaryColor:e.primaryColor,onSubmit:e.onSubmit,textConfig:e.textConfig,position:e.position,customInputs:e.customInputs,disableMinimization:e.disableMinimization});return c.createComponent(We.Provider,{value:n,get children(){return e.children}})},x=()=>{const e=c.useContext(We);if(!e)throw new Error("useEchoStore must be used within EchoProvider");return e},Bt=e=>{const[n,t]=c.createSignal({width:document.documentElement.clientWidth,height:document.documentElement.scrollHeight}),r=()=>{requestAnimationFrame(()=>{const o=e();o&&(o.style.height="0px",o.style.height=`${document.documentElement.scrollHeight}px`,t({width:document.documentElement.clientWidth,height:document.documentElement.scrollHeight}))})};return T({event:"resize",callback:r,onMount:r}),ye({target:document.documentElement,options:{childList:!0,subtree:!0,attributes:!0},callback:r}),n},Yt=({onUrlChange:e})=>{let n=ge();const t=()=>{const r=ge();r!==n&&(n=r,e(r))};T({event:"popstate",callback:t}),T({event:"pushstate",callback:t}),T({event:"replacestate",callback:t}),ye({target:document.documentElement,options:{childList:!0,subtree:!0},callback:t})},_t=`*,*:before,*:after{box-sizing:border-box}.echo-root{position:absolute;top:0;left:0;z-index:var(--z-root);isolation:isolate;pointer-events:none;--z-root: 999999;--z-launcher: 2;--z-overlay: 1;--z-drawing-toolbar: 3;--z-drawing-tooltip: 3;--z-shape-actions: 3;--z-notification: 2;--z-welcome-message: 2;--z-widget-button: 2;--z-feedback-form: 4;--primary-color: #000;--primary-text-color: #fff;--error-color: #f44336;--success-color: var(--primary-color);--text-dark: #1a1a1a;--text-medium: #333;--text-light: #666;--text-lighter: #999;--border-color: rgba(0, 0, 0, .1);--border-color-light: rgba(0, 0, 0, .05);--border-color-medium: rgba(0, 0, 0, .08);--background-color: #fff;--primary-color-lighter: color-mix(in srgb, var(--primary-color) 100%, white 40%);--primary-color-lightest: color-mix(in srgb, var(--primary-color) 7%, white 100%);--hover-color: color-mix(in srgb, var(--primary-color) 80%, #fff);--shadow-color-dark: rgba(0, 0, 0, .6);--shadow-color-light: rgba(255, 255, 255, .1);--shadow-color-medium: rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px;--shadow-md: 0 4px 10px;--shadow-lg: 0 10px 20px;--shadow-black-sm: var(--shadow-sm) rgba(0, 0, 0, .5);--shadow-black-md: var(--shadow-md) rgba(0, 0, 0, .5);--shadow-black-lg: var(--shadow-lg) rgba(0, 0, 0, .5);--shadow-black-lightened-sm: var(--shadow-sm) var(--shadow-color-medium);--shadow-black-lightened-md: var(--shadow-md) var(--shadow-color-medium);--shadow-black-lightened-lg: var(--shadow-lg) var(--shadow-color-medium);--shadow-primary-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color) 60%, transparent 80%);--shadow-primary-md: var(--shadow-md) color-mix(in srgb, var(--primary-color) 50%, transparent 80%);--shadow-primary-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color) 40%, transparent 80%);--shadow-primary-lighter-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color-lighter) 70%, transparent 80%);--shadow-primary-lighter-md: var(--shadow-md) color-mix(in srgb, var(--primary-color-lighter) 60%, transparent 80%);--shadow-primary-lighter-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color-lighter) 50%, transparent 80%);--shadow-primary-lightest-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color-lightest) 70%, transparent 80%);--shadow-primary-lightest-md: var(--shadow-md) color-mix(in srgb, var(--primary-color-lightest) 60%, transparent 80%);--shadow-primary-lightest-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color-lightest) 50%, transparent 80%);--shadow-combined-sm: var(--shadow-primary-sm), var(--shadow-black-lightened-sm);--shadow-combined-md: var(--shadow-primary-md), var(--shadow-black-lightened-md);--shadow-combined-lg: var(--shadow-primary-lg), var(--shadow-black-lightened-lg);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-xs: .8125rem;--font-sm: .875rem;--font-base: .9375rem;--font-md: 1rem;--font-lg: 1.125rem;--duration-fast: .1s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .4s;--duration-slowest: .6s;--ease-default: ease;--ease-in-out: ease-in-out;--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.16, 1, .3, 1)}.echo-stored-feedback{position:absolute;display:flex;flex-direction:column;bottom:calc(100% + var(--spacing-lg));right:0;width:320px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-black-lightened-lg);animation:slideUpFade var(--duration-base) var(--ease-smooth);z-index:calc(var(--z-widget-button) + 1);transform-origin:bottom right;transition:all var(--duration-base) var(--ease-smooth)}.echo-stored-feedback-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.echo-stored-feedback-header h3{margin:0;font-size:var(--font-md);font-weight:600}.echo-stored-feedback-list{max-height:400px;overflow-y:auto;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-stored-feedback-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color-light);transition:all var(--duration-base) var(--ease-smooth);background:#fff;position:relative}.echo-stored-feedback-item:hover{background:var(--primary-color-lightest)}.echo-stored-feedback-item-current{background:var(--primary-color-lightest);padding-left:calc(var(--spacing-lg) - 3px)}.echo-stored-feedback-item-current:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary-color);border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.echo-stored-feedback-item:last-child{border-bottom:none;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-stored-feedback-item:last-child.echo-stored-feedback-item-current:before{border-bottom-left-radius:var(--radius-lg)}.echo-stored-feedback-content{flex:1;min-width:0;margin-right:var(--spacing-md)}.echo-stored-feedback-path{font-size:var(--font-sm);font-weight:500;color:var(--text-medium);margin-bottom:var(--spacing-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.echo-stored-feedback-preview{font-size:var(--font-xs);color:var(--text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.echo-stored-feedback-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.echo-stored-feedback-link{color:var(--text-light)}.echo-stored-feedback-link:hover{color:var(--primary-color)}.echo-stored-feedback-delete{color:var(--text-light);font-size:var(--font-xs);padding:var(--spacing-xs) var(--spacing-md)}.echo-stored-feedback-delete:hover{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 10%,transparent)}.echo-stored-feedback-empty{padding:var(--spacing-3xl) var(--spacing-lg);text-align:center;color:var(--text-light);font-size:var(--font-sm);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-launcher{position:fixed;z-index:var(--z-launcher);bottom:var(--spacing-xl);right:var(--spacing-xl);pointer-events:none}.echo-overlay{position:absolute;top:0;left:0;margin:0;padding:0;max-width:none;max-height:none;border:3px solid var(--primary-color);background:transparent}.echo-overlay::backdrop{background:transparent}[data-hidden=true],[data-hidden=false]{transition:opacity var(--duration-slow) var(--ease-in-out),visibility var(--duration-slow) var(--ease-in-out)}[data-hidden=true]{opacity:0;visibility:hidden;pointer-events:none}[data-hidden=false]{opacity:1;visibility:visible;pointer-events:auto;user-select:none;-webkit-user-select:none}.echo-launcher-button{z-index:var(--z-widget-button);position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;background:radial-gradient(circle at 40% 40%,var(--primary-color) 0%,var(--primary-color-lighter) 65%,var(--primary-color-lighter) 100%);border:none;border-radius:var(--radius-full);width:48px;height:48px;box-shadow:var(--shadow-black-md);transition:all var(--duration-slow) var(--ease-default),transform var(--duration-slower) var(--ease-smooth),opacity var(--duration-slow) var(--ease-in-out);will-change:transform}.echo-launcher-button:hover{box-shadow:var(--shadow-black-lg);transform:translateY(-2px)}.echo-launcher-button:active{transform:scale(.95)}.echo-launcher-button-count{position:absolute;top:calc(-1 * var(--spacing-xs));left:calc(-1 * var(--spacing-xs));background:var(--primary-color-lightest);color:var(--primary-color-lighter);border-radius:var(--radius-md);min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-black-sm);padding:0 var(--spacing-xs);font-weight:600;pointer-events:auto;cursor:pointer;transform-origin:center center;animation:popIn var(--duration-slow) var(--ease-bounce);transition:transform var(--duration-base) var(--ease-default)}.echo-launcher-button-count:hover{transform:scale(1.1)}.echo-feedback{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);width:min(calc(100vw - var(--spacing-xl) * 2),24rem);max-height:calc(100vh - var(--spacing-xl) * 2);z-index:var(--z-feedback-form);box-shadow:var(--shadow-black-lightened-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);background:var(--background-color);border-radius:var(--radius-lg);overflow-y:auto;will-change:transform;padding:0 var(--spacing-lg)}.echo-feedback[data-minimized=true]{transition:transform .4s var(--ease-default),box-shadow .4s var(--ease-default);transform:translate(calc(100% - 48px),calc(100% - 48px));box-shadow:0 8px 16px #0003}.echo-feedback[data-minimized=true]:hover{cursor:pointer;transform:translate(calc(100% - 48px),calc(100% - 48px)) rotate(-2deg) scale(1.1);box-shadow:0 12px 24px #00000040}.echo-feedback[data-minimized=false]{transition:transform .4s var(--ease-smooth),box-shadow .4s var(--ease-smooth);transform:translate(0)}.echo-feedback[style*=transition]{pointer-events:none}.echo-feedback-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.echo-feedback-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0;background-color:var(--background-color);position:sticky;top:0;z-index:1}.echo-feedback-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0;background-color:var(--background-color);position:sticky;bottom:0;z-index:1}.echo-feedback-title{font-size:var(--font-lg);font-weight:600;color:var(--text-dark);margin:0}.echo-feedback-header-actions{display:flex;gap:var(--spacing-xs);margin:calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) 0}[data-hide-when-drawing=true]{opacity:1;visibility:visible;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}[data-drawing=true] [data-hide-when-drawing=true]{opacity:0;visibility:hidden;pointer-events:none;user-select:none;-webkit-user-select:none}.echo-drawing-layer,.echo-drawing-layer-container{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;user-select:none;-webkit-user-select:none}.echo-drawing-layer-container svg{pointer-events:auto}.echo-drawing-toolbar{position:fixed;top:var(--spacing-xl);left:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:var(--z-drawing-toolbar);opacity:1;transition:opacity var(--duration-base) var(--ease-default)}.echo-drawing-toolbar-button{width:50px;height:50px;border-radius:var(--radius-full);border:2px solid #ddd;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:all var(--duration-base) var(--ease-default);box-shadow:var(--shadow-black-sm);position:relative}.echo-drawing-toolbar-icon{width:25px;height:25px;color:var(--primary-color);transition:color var(--duration-base) var(--ease-default)}.echo-drawing-toolbar-button:hover{transform:scale(1.05);border-color:var(--hover-color)}.echo-drawing-toolbar-button[data-selected=true]{background:var(--primary-color-lightest);border-color:var(--primary-color)}.echo-color-selector{position:relative}.echo-color-selector:hover .echo-drawing-toolbar-button{border-top-right-radius:0;border-bottom-right-radius:0;transform:scale(1.05);border-right-color:transparent;background:rgba(var(--primary-color),.9);border-color:var(--hover-color)}.echo-color-swatch-wrapper{position:absolute;left:calc(100% - 2px);top:50%;transform:translateY(-50%);height:52.5px;padding-right:var(--spacing-sm);display:none}.echo-color-selector:hover .echo-color-swatch-wrapper{display:block}.echo-color-swatch{height:100%;background:#fff;border-radius:var(--radius-md);border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--spacing-sm);padding-left:var(--spacing-md);box-shadow:var(--shadow-black-sm);display:flex;align-items:center;gap:var(--spacing-sm);border:2px solid #ddd;border-left:none}.echo-color-selector:hover .echo-color-swatch{border-color:var(--hover-color)}.echo-color-swatch-button{width:24px;height:24px;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;padding:0;transition:transform var(--duration-base) var(--ease-default)}.echo-color-swatch-button:hover{transform:scale(1.1)}.echo-color-swatch-button[data-selected=true]{border-color:var(--primary-color)}.echo-drawing-tooltip{display:flex;text-wrap:nowrap;position:fixed;background:#fff;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-combined-sm);font-size:var(--font-sm);color:var(--primary-color);z-index:var(--z-drawing-tooltip);pointer-events:none;animation:slideDownFade var(--duration-slow) var(--ease-default);border:1px solid var(--primary-color);background:var(--primary-color-lightest)}.echo-shape-actions{position:fixed;z-index:var(--z-shape-actions);display:flex;gap:var(--spacing-xs);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-combined-md);transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-sm)));animation:popInSlideDown var(--duration-fast) var(--ease-default);cursor:default;pointer-events:auto;padding:var(--spacing-xs);border:1px solid var(--primary-color)}.echo-shape-actions-divider{width:1px;margin:var(--spacing-sm) 0;background:var(--border-color);pointer-events:none}.echo-shape-actions[hidden]{display:none}.echo-notification{position:absolute;z-index:var(--z-notification);bottom:70px;right:0;width:300px;padding:var(--spacing-2xl);border-radius:var(--radius-lg);font-size:var(--font-md);font-weight:500;box-shadow:var(--shadow-combined-md);background:#fff;border:1px solid var(--primary-color);transform-origin:bottom right;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl);opacity:1;pointer-events:auto;transition:all var(--duration-base) var(--ease-smooth)}.echo-notification:not([data-empty=true]){animation:popInSlideUp var(--duration-slower) var(--ease-spring)}.echo-notification[data-empty=true]{opacity:0;pointer-events:none;transform:translateY(var(--spacing-sm)) scale(.95);transition:none}.echo-notification-hide{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:24px;height:24px;padding:var(--spacing-xs);border:none;background:transparent;color:var(--text-light);opacity:.7;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-bounce);flex-shrink:0}.echo-notification-hide:hover{opacity:1;background:var(--primary-color-lightest);transform:scale(1.1);color:var(--primary-color)}.echo-notification-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;transform:scale(1.5);background:var(--primary-color-lightest);padding:var(--spacing-md);border-radius:var(--radius-full);margin-top:var(--spacing-md);transition:all var(--duration-base) var(--ease-bounce)}.echo-notification[data-type=success]{border-color:var(--success-color)}.echo-notification[data-type=success] .echo-notification-icon{color:var(--success-color)}.echo-notification[data-type=error]{border-color:var(--error-color)}.echo-notification[data-type=error] .echo-notification-icon{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 10%,white)}.echo-notification-content{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 12px}.echo-notification-title{font-size:1rem;font-weight:600;color:#1a1a1a}.echo-notification-message{font-size:.875rem;font-weight:400;color:#666;line-height:1.4;max-width:100%}@media (max-width: 768px){.echo-notification{right:0;width:calc(100vw - 40px);height:auto;min-height:180px;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:.9375rem;padding:20px;gap:16px;bottom:calc(100% + 20px)}.echo-notification-icon{transform:scale(1.3);padding:10px;margin-top:8px}.echo-notification-title{font-size:.9375rem}.echo-notification-message{font-size:.8125rem}}.echo-welcome-message{display:flex;align-items:center;gap:var(--spacing-xs);position:fixed;z-index:var(--z-welcome-message);background:var(--primary-color-lightest);border:1px solid var(--primary-color);color:var(--primary-color);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);font-size:var(--font-sm);font-weight:500;box-shadow:var(--shadow-combined-md);opacity:1;transform:translateY(0) scale(1);transition:all var(--duration-slow) var(--ease-smooth);animation:bounceIn var(--duration-slowest) var(--ease-bounce);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;cursor:pointer;text-align:left}.echo-welcome-message:hover{transform:translateY(-2px) scale(1.02);background:var(--primary-color-lightest);box-shadow:var(--shadow-combined-lg)}.echo-welcome-message:active{transform:translateY(0) scale(.98)}.echo-welcome-message-close{width:20px;height:20px;padding:2px;margin-left:var(--spacing-xs);border:none;background:transparent;opacity:.7;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-default)}.echo-welcome-message-close:hover{opacity:1;background:var(--shadow-color-light);transform:scale(1.1)}.echo-welcome-message-close:active{transform:scale(.95)}.echo-welcome-message:after{content:"";position:absolute;bottom:-4px;right:17px;width:16px;height:16px;background:inherit;transform:rotate(45deg);border-radius:var(--radius-xs);border:1px solid var(--primary-color);z-index:-2}.echo-welcome-message:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--primary-color-lightest);z-index:-1;border-radius:var(--radius-lg)}.echo-welcome-message-pulsar{content:"";display:inline-block;width:6px;height:6px;background:var(--primary-color);border-radius:50%;margin-right:8px;animation:pulse 1.5s var(--ease-in-out) infinite}.echo-button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all var(--duration-base) var(--ease-default);line-height:1}.echo-button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.echo-button-primary{background:var(--primary-color);color:#fff}.echo-button-primary:hover{background:var(--hover-color);transform:translateY(-1px)}.echo-button-primary:active{transform:translateY(0)}.echo-button-secondary{background:transparent;color:var(--text-light)}.echo-button-secondary:hover{background-color:var(--primary-color-lightest);color:var(--primary-color)}.echo-button-xs{padding:var(--spacing-xs);font-size:var(--font-xs)}.echo-button-sm{padding:var(--spacing-xs);font-size:var(--font-sm)}.echo-button-md{padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-base)}.echo-button-lg{padding:var(--spacing-md) var(--spacing-3xl);font-size:var(--font-md)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(var(--spacing-sm))}to{opacity:1;transform:translateY(0)}}@keyframes slideDownFade{0%{opacity:0;transform:translateY(calc(-1 * var(--spacing-sm)))}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes popInSlideUp{0%{opacity:0;transform:translateY(var(--spacing-sm)) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes popInSlideDown{0%{opacity:0;transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-xs))) scale(.95)}to{opacity:1;transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-sm))) scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:translateY(var(--spacing-xl)) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}to{transform:scale(1);opacity:1}}.echo-inputs{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.echo-input{display:flex;flex-direction:column;gap:.5rem}.echo-input-label{font-size:.875rem;font-weight:500;color:var(--text-color)}.echo-input-required{color:#dc2626;margin-left:.25rem}.echo-input-field{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default)}.echo-input-field:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-input-field:disabled{opacity:.5}.echo-input-field::placeholder{color:var(--text-lighter)}textarea.echo-input-field{resize:vertical;max-width:100%;max-height:20rem;box-sizing:border-box}select.echo-input-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding-right:2.5rem;cursor:pointer}.echo-input-options-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xl);border:none;margin:0;padding:0}.echo-input-options{display:flex;flex-direction:column;gap:var(--spacing-sm);border:none;margin:0;padding:0}.echo-input-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--duration-base) var(--ease-default)}.echo-input-option:hover{background:var(--primary-color-lightest)}.echo-input-option input[type=radio],.echo-input-option input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;width:18px;height:18px;border:1px solid var(--border-color);background-color:#fff;display:grid;place-content:center;cursor:pointer;transition:all var(--duration-base) var(--ease-default)}.echo-input-option input[type=radio]{border-radius:50%}.echo-input-option input[type=radio]:before{content:"";width:10px;height:10px;border-radius:50%;transform:scale(0);transition:transform var(--duration-base) var(--ease-default);background-color:var(--primary-color)}.echo-input-option input[type=radio]:checked:before{transform:scale(1)}.echo-input-option input[type=checkbox]{border-radius:var(--radius-sm)}.echo-input-option input[type=checkbox]:before{content:"";width:12px;height:12px;transform:scale(0);transition:all var(--duration-base) var(--ease-default);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.echo-input-option input[type=checkbox]:checked{background-color:var(--primary-color-lighter);border-color:var(--primary-color-lighter)}.echo-input-option input[type=checkbox]:checked:before{transform:scale(1)}.echo-input-option input[type=radio]:hover,.echo-input-option input[type=checkbox]:hover{border-color:var(--primary-color-lighter)}.echo-input-option input[type=radio]:focus,.echo-input-option input[type=checkbox]:focus{outline:none;border-color:var(--primary-color-lighter);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-input-option input[type=radio]:checked,.echo-input-option input[type=checkbox]:checked{border-color:var(--primary-color-lighter)}.echo-input-option span{font-size:var(--font-sm);color:var(--text-medium);-webkit-user-select:none;user-select:none}.echo-select{position:relative;width:100%}.echo-select-trigger{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default);cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:.5rem;outline:none}.echo-select-trigger[data-placeholder=true]{color:var(--text-lighter)}.echo-select-trigger:hover{border-color:var(--border-color-medium)}.echo-select-trigger:focus,.echo-select-trigger[data-open=true]{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-select-arrow{flex-shrink:0;transition:transform var(--duration-base) var(--ease-default)}.echo-select-trigger[data-open=true] .echo-select-arrow{transform:rotate(180deg)}.echo-select-dropdown{position:absolute;top:calc(100% + .25rem);left:0;right:0;background:#fff;border:1px solid var(--border-color-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-black-lightened-md);max-height:15rem;overflow-y:auto;z-index:10;animation:slideDownFade var(--duration-base) var(--ease-default);padding:var(--spacing-xs)}.echo-select-option{width:100%;padding:.5rem .75rem;background:none;border:none;text-align:left;color:var(--text-medium);font-size:var(--font-sm);cursor:pointer;transition:all var(--duration-base) var(--ease-default);outline:none;border-radius:var(--radius-sm)}.echo-select-option:hover{background:var(--primary-color-lightest)}.echo-select-option:focus{background:var(--primary-color-lightest);box-shadow:0 0 0 1px var(--primary-color) inset}.echo-select-option[data-selected=true]{background:var(--primary-color-lightest);color:var(--primary-color);font-weight:500}select.echo-input-field{display:none}.visually-hidden{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}`;var Ut=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>'),Ht=w("<button class=echo-color-swatch-button role=option>");const Xt=["#ff6b6b","#69db7c","#74c0fc","#ffd43b","#da77f2","#66d9e8","#ffa94d","#e599f7"],Kt={"#ff6b6b":"Soft Red","#69db7c":"Soft Green","#74c0fc":"Soft Blue","#ffd43b":"Soft Yellow","#da77f2":"Soft Purple","#66d9e8":"Soft Cyan","#ffa94d":"Soft Orange","#e599f7":"Soft Pink"},xe=e=>Kt[e]||"Primary",Gt=()=>{const e=x();return(()=>{var n=Ut(),t=n.firstChild,r=t.nextSibling,o=r.firstChild;return u(t,"aria-expanded",!1),v(o,c.createComponent(c.For,{get each(){return[e.widget.state.primaryColor,...Xt]},children:a=>(()=>{var i=Ht();return i.$$click=()=>e.drawing.setState({selectedColor:a}),a!=null?i.style.setProperty("background-color",a):i.style.removeProperty("background-color"),c.createRenderEffect(l=>{var s=`Select ${xe(a)} color`,d=e.drawing.state.selectedColor===a,h=`${xe(a)} color`,f=e.drawing.state.selectedColor===a;return s!==l.e&&u(i,"title",l.e=s),d!==l.t&&u(i,"data-selected",l.t=d),h!==l.a&&u(i,"aria-label",l.a=h),f!==l.o&&u(i,"aria-selected",l.o=f),l},{e:void 0,t:void 0,a:void 0,o:void 0}),i})()})),c.createRenderEffect(a=>{var i=`Current color: ${xe(e.drawing.state.selectedColor)}`,l=e.drawing.state.selectedColor;return i!==a.e&&u(t,"aria-label",a.e=i),l!==a.t&&((a.t=l)!=null?t.style.setProperty("background-color",l):t.style.removeProperty("background-color")),a},{e:void 0,t:void 0}),n})()};E(["click"]);var Zt=w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="m9 18 6-6-6-6">');const Qt=e=>(()=>{var n=Zt();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=$(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var Jt=w('<svg viewBox="0 0 64 66"fill=none><path d="M59.716 36.936L54.9 33l-6.17 5.108a77.278 77.278 0 00-12.744 13.469l-3.637 4.914-3.778-5.017a83.719 83.719 0 00-13.956-14.538L9.799 33l2.86-2.332A104.39 104.39 0 0030.1 12.5l2.24-2.98 1.736 2.298a111.905 111.905 0 0018.608 19.384l2.206 1.81 2.861-2.333a104.13 104.13 0 005.297-4.641C59.978 11.294 47.409.26 32.349.26 14.997.26.92 14.923.92 33c0 18.076 14.077 32.74 31.43 32.74 15.102 0 27.715-11.103 30.73-25.892a75.808 75.808 0 00-3.375-2.912h.011z">');const en=e=>(()=>{var n=Jt(),t=n.firstChild;return c.createRenderEffect(r=>{var o=e.size??24,a=e.size??24,i=e.class,l=e.style,s=e.fill??"currentColor";return o!==r.e&&u(n,"width",r.e=o),a!==r.t&&u(n,"height",r.t=a),i!==r.a&&u(n,"class",r.a=i),r.o=$(n,l,r.o),s!==r.i&&u(t,"fill",r.i=s),r},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),n})();var tn=w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2">');const nn=e=>(()=>{var n=tn();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=$(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var rn=w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z">');const an=e=>(()=>{var n=rn();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=$(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var on=w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1=10 x2=10 y1=11 y2=17></line><line x1=14 x2=14 y1=11 y2=17>');const Be=e=>(()=>{var n=on();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=$(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var cn=w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><circle cx=12 cy=12 r=10></circle><path d="m9 12 2 2 4-4">');const sn=e=>(()=>{var n=cn();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=$(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var ln=w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><circle cx=12 cy=12 r=10></circle><path d="m15 9-6 6"></path><path d="m9 9 6 6">');const dn=e=>(()=>{var n=ln();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=$(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var un=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">');const ue=e=>(()=>{var n=un();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=$(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var hn=w('<div class=echo-drawing-toolbar data-hide-when-drawing=true role=toolbar aria-label="Drawing Tools"><button class=echo-drawing-toolbar-button title="Clear drawings"aria-label="Clear all drawings"role=button>'),fn=w("<button class=echo-drawing-toolbar-button role=button>");const gn={rectangle:nn,path:an},mn=()=>{const e=x(),n=Object.values(F);return(()=>{var t=hn(),r=t.firstChild;return v(t,c.createComponent(c.For,{each:n,children:o=>{const a=gn[o.id];return(()=>{var i=fn();return i.$$click=()=>e.drawing.setState({selectedTool:o.id}),v(i,c.createComponent(a,{class:"echo-drawing-toolbar-icon","aria-hidden":"true"})),c.createRenderEffect(l=>{var s=o.label,d=e.drawing.state.selectedTool===o.id,h=o.label,f=e.drawing.state.selectedTool===o.id;return s!==l.e&&u(i,"title",l.e=s),d!==l.t&&u(i,"data-selected",l.t=d),h!==l.a&&u(i,"aria-label",l.a=h),f!==l.o&&u(i,"aria-pressed",l.o=f),l},{e:void 0,t:void 0,a:void 0,o:void 0}),i})()}}),r),v(t,c.createComponent(Gt,{}),r),r.$$click=()=>e.drawing.setState({shapes:[]},!0),v(r,c.createComponent(Be,{class:"echo-drawing-toolbar-icon","aria-hidden":"true"})),t})()};E(["click"]);var vn=w("<div class=echo-drawing-tooltip data-hide-when-drawing=true>");const wn=()=>{const e=x(),n=c.createMemo(()=>e.drawing.state.showTooltip&&e.drawing.state.mousePosition.y&&e.drawing.state.mousePosition.x&&e.widget.state.isOpen&&!zt());return c.createComponent(c.Show,{get when(){return n()},get children(){var t=vn();return v(t,()=>e.widget.state.text.drawingTooltip.text),c.createRenderEffect(r=>{var o=`${e.drawing.state.mousePosition.y+20}px`,a=`${e.drawing.state.mousePosition.x+10}px`;return o!==r.e&&((r.e=o)!=null?t.style.setProperty("top",o):t.style.removeProperty("top")),a!==r.t&&((r.t=a)!=null?t.style.setProperty("left",a):t.style.removeProperty("left")),r},{e:void 0,t:void 0}),t}})};var bn=w("<button>");const L=e=>{const n=()=>e.variant||"primary",t=()=>e.size||"md";return(()=>{var r=bn();return it(r,c.mergeProps(e,{get class(){return`echo-button echo-button-${n()} echo-button-${t()} ${e.class}`}}),!1),r})()};var pn=w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1=10 y1=14 x2=21 y2=3>');const yn=e=>(()=>{var n=pn();return c.createRenderEffect(t=>{var r=e.size??24,o=e.size??24,a=e.fill??"none",i=e.stroke??"currentColor",l=e.strokeWidth??2,s=e.class,d=e.style;return r!==t.e&&u(n,"width",t.e=r),o!==t.t&&u(n,"height",t.t=o),a!==t.a&&u(n,"fill",t.a=a),i!==t.o&&u(n,"stroke",t.o=i),l!==t.i&&u(n,"stroke-width",t.i=l),s!==t.n&&u(n,"class",t.n=s),t.s=$(n,d,t.s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})();var xn=w("<div class=echo-stored-feedback-empty>No unsubmitted feedback"),kn=w("<div class=echo-stored-feedback><div class=echo-stored-feedback-header><h3>Unsubmitted Feedback</h3></div><div class=echo-stored-feedback-list>"),Cn=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>");const Sn=()=>{const e=x();let n;const[t,r]=c.createSignal(ve()),[o,a]=c.createSignal(window.location.pathname),i=m=>{m.key==="Escape"&&e.widget.state.isStoredFeedbackOpen&&e.widget.setState({isStoredFeedbackOpen:!1})},l=m=>{if(!e.widget.state.isStoredFeedbackOpen||!n)return;m.composedPath().includes(n)||e.widget.setState({isStoredFeedbackOpen:!1})},s=()=>{const m=ve();r(m),e.widget.setState({pagesCount:m.length})},d=()=>{a(window.location.pathname)};T({event:"echo-storage-change",callback:s}),T({event:"popstate",callback:d}),ye({target:document.documentElement,options:{childList:!0,subtree:!0},callback:()=>{a(window.location.pathname)}}),T({event:"keydown",callback:i}),T({event:"click",callback:l});const h=(m,b)=>{const S=b?`${m}${b}`:m;window.location.href=S,e.widget.setState({isStoredFeedbackOpen:!1})},f=m=>{o()===m&&e.methods.reset(),Oe(m);const b=ve();r(b),e.widget.setState({pagesCount:b.length})},g=m=>{if(m==="/")return"/";const b=m.split("/");return b.length<=4?m:`/${b[1]}/.../${b[b.length-1]}`};return c.createComponent(c.Show,{get when(){return e.widget.state.isStoredFeedbackOpen},get children(){var m=kn(),b=m.firstChild;b.firstChild;var S=b.nextSibling,k=n;return typeof k=="function"?D(k,m):n=m,v(b,c.createComponent(L,{variant:"secondary",size:"sm",onClick:()=>e.widget.setState({isStoredFeedbackOpen:!1}),get children(){return c.createComponent(ue,{size:20})}}),null),v(S,c.createComponent(c.For,{get each(){return t()},children:C=>{const p=c.createMemo(()=>C.path===o());return(()=>{var P=Cn(),z=P.firstChild,y=z.firstChild,W=y.nextSibling,j=z.nextSibling;return v(y,()=>g(C.path)),v(W,()=>C.state.feedback.message),v(j,(()=>{var O=c.createMemo(()=>!p());return()=>O()&&c.createComponent(L,{class:"echo-stored-feedback-link",variant:"secondary",size:"sm",onClick:()=>h(C.path,C.state.latestQuery),get children(){return c.createComponent(yn,{})}})})(),null),v(j,c.createComponent(L,{class:"echo-stored-feedback-delete",variant:"secondary",size:"sm",onClick:()=>f(C.path),children:"Delete"}),null),c.createRenderEffect(O=>{var Ue=`echo-stored-feedback-item ${p()?"echo-stored-feedback-item-current":""}`,He=C.path;return Ue!==O.e&&Ce(P,O.e=Ue),He!==O.t&&u(y,"title",O.t=He),O},{e:void 0,t:void 0}),P})()}}),null),v(S,c.createComponent(c.Show,{get when(){return t().length===0},get children(){return xn()}}),null),m}})};var En=w('<button class=echo-launcher-button aria-label="Open feedback form"role=button>'),$n=w("<span class=echo-launcher-button-count role=button tabindex=0>");const Pn=()=>{const e=x(),[n,t]=c.createSignal(!1);let r;const o=()=>{r&&window.clearTimeout(r),!e.widget.state.disableMinimization&&(r=window.setTimeout(()=>{const d=V("welcome_message_shown",!1);!e.widget.state.isOpen&&!e.widget.state.isStoredFeedbackOpen&&d&&t(!0)},4e3))},a=()=>{t(!1)},i=()=>{o()},l=d=>{e.widget.setState({isOpen:!e.widget.state.isOpen}),e.widget.setState({welcomeMessageIsClosing:!0}),G("welcome_message_shown",!0)};c.createEffect(()=>{e.widget.state.isOpen||(t(!1),e.widget.state.disableMinimization||o()),e.widget.state.isStoredFeedbackOpen&&t(!1)});const s=d=>{d.stopPropagation(),e.widget.setState({isStoredFeedbackOpen:!e.widget.state.isStoredFeedbackOpen}),t(!1)};return[(()=>{var d=En();return d.addEventListener("pointerleave",i),d.addEventListener("pointerenter",a),d.$$click=l,v(d,c.createComponent(en,{stroke:"white",fill:"#ffffff","aria-hidden":"true"}),null),v(d,(()=>{var h=c.createMemo(()=>e.widget.state.pagesCount>0);return()=>h()&&(()=>{var f=$n();return f.$$click=s,v(f,()=>e.widget.state.pagesCount),c.createRenderEffect(()=>u(f,"aria-label",`View ${e.widget.state.pagesCount} stored feedback items`)),f})()})(),null),c.createRenderEffect(h=>{var f=e.widget.state.isOpen,g=`translateX(${n()?"45px":"0"})`,m=e.widget.state.isOpen;return f!==h.e&&u(d,"data-hidden",h.e=f),g!==h.t&&((h.t=g)!=null?d.style.setProperty("transform",g):d.style.removeProperty("transform")),m!==h.a&&u(d,"aria-expanded",h.a=m),h},{e:void 0,t:void 0,a:void 0}),d})(),c.createComponent(Sn,{})]};E(["click"]);var zn=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>");const Mn=()=>{const e=x(),n=()=>{e.widget.setState({notification:{...e.widget.state.notification,show:!1}})},t=()=>{switch(e.widget.state.notification.type){case"success":return e.widget.state.text.notification.successTitle;case"error":return e.widget.state.text.notification.errorTitle;default:return""}};return(()=>{var r=zn(),o=r.firstChild,a=o.nextSibling,i=a.firstChild,l=i.nextSibling;return v(r,c.createComponent(L,{class:"echo-notification-hide",variant:"secondary",size:"sm",onClick:n,get title(){return e.widget.state.text.notification.hideTitle},get children(){return c.createComponent(ue,{size:20})}}),o),v(o,(()=>{var s=c.createMemo(()=>e.widget.state.notification.type==="success");return()=>s()?c.createComponent(sn,{size:32}):(()=>{var d=c.createMemo(()=>e.widget.state.notification.type==="error");return()=>d()?c.createComponent(dn,{size:32}):null})()})()),v(i,t),v(l,()=>{var s;return(s=e.widget.state.notification)==null?void 0:s.message}),c.createRenderEffect(s=>{var d=e.widget.state.notification.type,h=!e.widget.state.notification.type,f=!e.widget.state.notification.show;return d!==s.e&&u(r,"data-type",s.e=d),h!==s.t&&u(r,"data-empty",s.t=h),f!==s.a&&u(r,"data-hidden",s.a=f),s},{e:void 0,t:void 0,a:void 0}),r})()};var Tn=w("<div class=echo-shape-actions data-hide-when-drawing=true>");const On=()=>{const e=x();let n;const[t,r]=c.createSignal({x:window.scrollX,y:window.scrollY});T({event:"scroll",callback:()=>{r({x:window.scrollX,y:window.scrollY})}});const a=()=>{e.drawing.state.selectedShapeId&&e.drawing.setState({shapes:e.drawing.state.shapes.filter(s=>s.id!==e.drawing.state.selectedShapeId),selectedShapeId:null})},i=c.createMemo(()=>e.drawing.state.selectedShapeId?e.drawing.state.shapes.find(s=>s.id===e.drawing.state.selectedShapeId):null),l=c.createMemo(()=>{const s=i(),d=n==null?void 0:n.getBoundingClientRect();if(!s||!d)return null;let h=null;if(s.type==="rectangle"){const m=je(s.points);if(!m)return null;h={x:m.x+m.width/2,y:m.y}}else if(s.type==="path"&&s.points.length>0)h={x:s.points[0].x,y:s.points[0].y};else return null;const f=8,g=t();return{x:Math.max(d.width/2+f,Math.min(window.innerWidth-d.width/2-f,h.x-g.x)),y:Math.max(d.height+f,Math.min(window.innerHeight-f,h.y-g.y))}});return(()=>{var s=Tn(),d=n;return typeof d=="function"?D(d,s):n=s,s.style.setProperty("top","0"),s.style.setProperty("left","0"),v(s,c.createComponent(L,{onClick:a,size:"sm",variant:"secondary",title:"Delete shape",get children(){return c.createComponent(Be,{size:20})}})),c.createRenderEffect(h=>{var m,b;var f=!l(),g=`translate(calc(${(m=l())==null?void 0:m.x}px - 50%), calc(${(b=l())==null?void 0:b.y}px - 125%))`;return f!==h.e&&(s.hidden=h.e=f),g!==h.t&&((h.t=g)!=null?s.style.setProperty("transform",g):s.style.removeProperty("transform")),h},{e:void 0,t:void 0}),s})()};var In=w("<button class=echo-welcome-message><span class=echo-welcome-message-pulsar></span><div class=echo-welcome-message-close role=button tabindex=0>");const Rn=()=>{const e=x(),n=V("welcome_message_shown",!1),t=o=>{o.stopPropagation(),e.widget.setState({welcomeMessageIsClosing:!0}),G("welcome_message_shown",!0)},r=()=>{e.widget.setState({isOpen:!0}),e.widget.setState({welcomeMessageIsClosing:!0}),G("welcome_message_shown",!0)};return n?null:(()=>{var o=In(),a=o.firstChild,i=a.nextSibling;return o.$$click=r,o.style.setProperty("bottom","80px"),o.style.setProperty("right","20px"),v(o,()=>e.widget.state.text.welcomeMessage.text,i),i.$$keydown=l=>l.key==="Enter"&&t(l),i.$$click=t,v(i,c.createComponent(ue,{size:16,strokeWidth:3})),c.createRenderEffect(l=>{var s=e.widget.state.welcomeMessageIsClosing,d=e.widget.state.text.welcomeMessage.closeAriaLabel;return s!==l.e&&u(o,"data-hidden",l.e=s),d!==l.t&&u(i,"aria-label",l.t=d),l},{e:void 0,t:void 0}),o})()};E(["click","keydown"]);var An=w("<svg><rect class=echo-shape fill=transparent vector-effect=non-scaling-stroke role=img></svg>",!1,!0),Dn=w("<svg><path class=echo-shape fill=none vector-effect=non-scaling-stroke stroke-linecap=round role=img></svg>",!1,!0);const Ye=e=>{const n=c.createMemo(()=>e.id===e.selectedShapeId);return[c.createComponent(c.Show,{get when(){return e.type==="rectangle"},get children(){return c.createComponent(Fn,c.mergeProps(e,{get isSelected(){return n()}}))}}),c.createComponent(c.Show,{get when(){return e.type==="path"},get children(){return c.createComponent(Ln,c.mergeProps(e,{get isSelected(){return n()}}))}})]},Fn=e=>{const n=c.createMemo(()=>je(e.points));return c.createComponent(c.Show,{get when(){return n()},get children(){var t=An();return t.$$keydown=r=>{var o;return r.key==="Enter"&&((o=e.onShapeClick)==null?void 0:o.call(e,e.id))},t.$$click=()=>{var r;return(r=e.onShapeClick)==null?void 0:r.call(e,e.id)},c.createRenderEffect(r=>{var o=e.id,a=e.isSelected,i=n().x,l=n().y,s=n().width,d=n().height,h=e.color,f=F.rectangle.strokeWidth,g=e.isSelected?F.rectangle.opacity.selected:F.rectangle.opacity.default,m=e.isSelected?"5,5":"none",b=e.isSelected?"move":"pointer",S=`Rectangle shape ${e.isSelected?"(selected)":""}`,k=e.onShapeClick?0:-1;return o!==r.e&&u(t,"data-shape-id",r.e=o),a!==r.t&&u(t,"data-selected",r.t=a),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),d!==r.n&&u(t,"height",r.n=d),h!==r.s&&u(t,"stroke",r.s=h),f!==r.h&&u(t,"stroke-width",r.h=f),g!==r.r&&u(t,"opacity",r.r=g),m!==r.d&&u(t,"stroke-dasharray",r.d=m),b!==r.l&&u(t,"cursor",r.l=b),S!==r.u&&u(t,"aria-label",r.u=S),k!==r.c&&u(t,"tabindex",r.c=k),r},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0}),t}})},Ln=e=>{const n=c.createMemo(()=>Mt(e.points));return c.createComponent(c.Show,{get when(){return n()},get children(){var t=Dn();return t.$$keydown=r=>{var o;return r.key==="Enter"&&((o=e.onShapeClick)==null?void 0:o.call(e,e.id))},t.$$click=()=>{var r;return(r=e.onShapeClick)==null?void 0:r.call(e,e.id)},c.createRenderEffect(r=>{var o=e.id,a=e.isSelected,i=n(),l=e.color,s=F.path.strokeWidth,d=e.isSelected?F.path.opacity.selected:F.path.opacity.default,h=e.isSelected?"move":"pointer",f=`Freehand shape ${e.isSelected?"(selected)":""}`,g=e.onShapeClick?0:-1;return o!==r.e&&u(t,"data-shape-id",r.e=o),a!==r.t&&u(t,"data-selected",r.t=a),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),d!==r.n&&u(t,"opacity",r.n=d),h!==r.s&&u(t,"cursor",r.s=h),f!==r.h&&u(t,"aria-label",r.h=f),g!==r.r&&u(t,"tabindex",r.r=g),r},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),t}})};E(["click","keydown"]);var jn=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>');const Nn=()=>{const e=x();let n;return c.onMount(()=>{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,{passive:!1}),n==null||n.addEventListener("touchend",e.drawing.methods.handleEnd)}),c.onCleanup(()=>{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)}),(()=>{var t=jn(),r=t.firstChild,o=r.firstChild,a=n;return typeof a=="function"?D(a,t):n=t,v(t,c.createComponent(wn,{}),r),v(t,c.createComponent(On,{}),r),N(r,"touchend",e.drawing.methods.handleLeave,!0),N(r,"mouseleave",e.drawing.methods.handleLeave),N(r,"mouseenter",e.drawing.methods.handleEnter),r.$$touchmove=i=>{i.preventDefault(),e.drawing.methods.handleMove(i)},N(r,"mousemove",e.drawing.methods.handleMove,!0),r.$$touchstart=i=>{i.preventDefault(),e.drawing.methods.handleStart(i),e.drawing.methods.handleEnter(i),e.drawing.setState({showTooltip:!1,hasDrawn:!0})},r.$$mousedown=i=>{e.drawing.methods.handleStart(i),e.drawing.setState({showTooltip:!1,hasDrawn:!0})},v(r,c.createComponent(c.For,{get each(){return e.drawing.state.shapes},children:i=>c.createComponent(Ye,{get id(){return i.id},get type(){return i.type},get color(){return i.color},get points(){return i.points},get selectedShapeId(){return e.drawing.state.selectedShapeId},get onShapeClick(){return e.drawing.methods.handleShapeClick}})}),null),v(r,c.createComponent(Ye,{id:"temp",get type(){return e.drawing.state.selectedTool},get color(){return e.drawing.state.selectedColor},get points(){return e.drawing.state.currentPoints},get selectedShapeId(){return e.drawing.state.selectedShapeId}}),null),c.createRenderEffect(i=>{var l=e.drawing.state.cursor,s=Ft({width:e.widget.state.dimensions.width,height:e.widget.state.dimensions.height},e.drawing.state.currentPoints,e.drawing.state.shapes);return l!==i.e&&((i.e=l)!=null?t.style.setProperty("cursor",l):t.style.removeProperty("cursor")),s!==i.t&&u(o,"d",i.t=s),i},{e:void 0,t:void 0}),t})()};E(["mousedown","touchstart","mousemove","touchmove","touchend"]);const re=e=>({handleTextChange:a=>{const i=a.target;e(i.value)},handleSelectChange:a=>{e(a)},handleCheckboxChange:(a,i,l)=>{const s=l?[...a,i]:a.filter(d=>d!==i);e(s)},getCheckboxValue:a=>Array.isArray(a)?a:[]});var qn=w("<div class=echo-input role=group>"),Vn=w("<label class=echo-input-label><span>"),Wn=w('<span class=echo-input-required aria-label="Required field">*');const ae=e=>(()=>{var n=qn();return v(n,(()=>{var t=c.createMemo(()=>!!e.label);return()=>t()&&(()=>{var r=Vn(),o=r.firstChild;return v(o,()=>e.label),v(r,(()=>{var a=c.createMemo(()=>!!e.required);return()=>a()&&Wn()})(),null),r})()})(),null),v(n,()=>e.children,null),n})();var Bn=w("<textarea class=echo-input-field rows=5>"),Yn=w("<div class=visually-hidden>");const _e=e=>{const{handleTextChange:n}=re(e.onChange);return c.createComponent(ae,{get label(){return e.config.label},get required(){return e.config.required},get children(){return[(()=>{var t=Bn();return N(t,"input",n,!0),c.createRenderEffect(r=>{var o=e.config.id,a=e.config.placeholder,i=e.config.required,l=e.config.label||e.config.placeholder,s=e.config.required,d=e.value==="",h=`${e.config.id}-description`;return o!==r.e&&u(t,"id",r.e=o),a!==r.t&&u(t,"placeholder",r.t=a),i!==r.a&&(t.required=r.a=i),l!==r.o&&u(t,"aria-label",r.o=l),s!==r.i&&u(t,"aria-required",r.i=s),d!==r.n&&u(t,"aria-invalid",r.n=d),h!==r.s&&u(t,"aria-describedby",r.s=h),r},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),c.createRenderEffect(()=>t.value=e.value===void 0?"":e.value),t})(),(()=>{var t=Yn();return v(t,()=>e.config.placeholder),c.createRenderEffect(()=>u(t,"id",`${e.config.id}-description`)),t})()]}})};E(["input"]);var _n=w("<fieldset class=echo-input-options role=group>"),Un=w("<label class=echo-input-option><input type=checkbox><span>");const Hn=e=>{const{handleCheckboxChange:n,getCheckboxValue:t}=re(e.onChange),r=()=>t(e.value),o=()=>r().length>0;return c.createComponent(ae,{get label(){return e.config.label},get required(){return e.config.required},get children(){var a=_n();return v(a,c.createComponent(c.For,{get each(){return e.config.options},children:(i,l)=>(()=>{var s=Un(),d=s.firstChild,h=d.nextSibling;return d.addEventListener("change",f=>n(r(),i.value,f.currentTarget.checked)),v(h,()=>i.label),c.createRenderEffect(()=>d.required=e.config.required&&!o()&&l()===0),c.createRenderEffect(()=>d.value=i.value),c.createRenderEffect(()=>d.checked=r().includes(i.value)),s})()})),c.createRenderEffect(()=>u(a,"aria-required",e.config.required)),a}})};var Xn=w("<fieldset class=echo-input-options role=radiogroup>"),Kn=w("<label class=echo-input-option><input type=radio><span>");const Gn=e=>{const{handleSelectChange:n}=re(e.onChange);return c.createComponent(ae,{get label(){return e.config.label},get required(){return e.config.required},get children(){var t=Xn();return v(t,c.createComponent(c.For,{get each(){return e.config.options},children:r=>(()=>{var o=Kn(),a=o.firstChild,i=a.nextSibling;return a.addEventListener("change",()=>n(r.value)),v(i,()=>r.label),c.createRenderEffect(l=>{var s=e.config.id,d=e.config.required;return s!==l.e&&u(a,"name",l.e=s),d!==l.t&&(a.required=l.t=d),l},{e:void 0,t:void 0}),c.createRenderEffect(()=>a.value=r.value),c.createRenderEffect(()=>a.checked=e.value===r.value),o})()})),c.createRenderEffect(()=>u(t,"aria-required",e.config.required)),t}})};var Zn=w("<div class=echo-select-dropdown role=listbox>"),Qn=w('<div class=echo-select><button type=button class=echo-select-trigger aria-haspopup=listbox><span></span><svg class=echo-select-arrow width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="m6 9 6 6 6-6"></path></svg></button><input type=text class=visually-hidden aria-hidden=true>'),Jn=w("<button type=button class=echo-select-option role=option>");const er=e=>{const{handleSelectChange:n}=re(e.onChange),[t,r]=c.createSignal(!1);let o,a,i;const l=()=>e.config.options.find(f=>f.value===(e.value===void 0?"":e.value)),s=(f,g)=>{g.stopPropagation(),f.value===e.value?e.config.required||n(""):n(f.value),r(!1)},d=()=>{r(!t())};return T({event:"mousedown",callback:f=>{if(!t()||!o)return;f.composedPath().includes(o)||r(!1)}}),c.createComponent(ae,{get label(){return e.config.label},get required(){return e.config.required},get children(){var f=Qn(),g=f.firstChild,m=g.firstChild,b=g.nextSibling,S=o;typeof S=="function"?D(S,f):o=f,g.$$click=p=>{p.stopPropagation(),d()};var k=a;typeof k=="function"?D(k,g):a=g,v(m,()=>{var p;return((p=l())==null?void 0:p.label)||e.config.placeholder}),v(f,c.createComponent(c.Show,{get when(){return t()},get children(){var p=Zn();return v(p,c.createComponent(c.For,{get each(){return e.config.options},children:P=>(()=>{var z=Jn();return z.$$click=y=>s(P,y),v(z,()=>P.label),c.createRenderEffect(y=>{var W=P.value===e.value,j=P.value===e.value;return W!==y.e&&u(z,"aria-selected",y.e=W),j!==y.t&&u(z,"data-selected",y.t=j),y},{e:void 0,t:void 0}),z})()})),p}}),b);var C=i;return typeof C=="function"?D(C,b):i=b,c.createRenderEffect(p=>{var P=t(),z=!e.value,y=e.config.required,W=t(),j=e.config.required,O=e.config.required;return P!==p.e&&u(g,"data-open",p.e=P),z!==p.t&&u(g,"data-placeholder",p.t=z),y!==p.a&&u(g,"data-required",p.a=y),W!==p.o&&u(g,"aria-expanded",p.o=W),j!==p.i&&u(g,"aria-required",p.i=j),O!==p.n&&(b.required=p.n=O),p},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),c.createRenderEffect(()=>b.value=e.value===void 0?"":e.value),f}})};E(["click"]);var tr=w("<input type=text class=echo-input-field>");const nr=e=>{const{handleTextChange:n}=re(e.onChange);return c.createComponent(ae,{get label(){return e.config.label},get required(){return e.config.required},get children(){var t=tr();return N(t,"input",n,!0),c.createRenderEffect(r=>{var o=e.config.placeholder,a=e.config.required,i=e.config.disabled;return o!==r.e&&u(t,"placeholder",r.e=o),a!==r.t&&(t.required=r.t=a),i!==r.a&&(t.disabled=r.a=i),r},{e:void 0,t:void 0,a:void 0}),c.createRenderEffect(()=>t.value=e.value===void 0?"":e.value),t}})};E(["input"]);var rr=w("<div class=echo-input-error>Invalid input type"),ar=w("<div class=echo-input-error>Unsupported input type: ");const or=e=>c.createComponent(c.Show,{get when(){return e.config.type},keyed:!0,get fallback(){return rr()},get children(){return c.createComponent(c.Switch,{get fallback(){return(()=>{var n=ar();return n.firstChild,v(n,()=>e.config.type,null),n})()},get children(){return[c.createComponent(c.Match,{get when(){return e.config.type==="text"},get children(){return c.createComponent(nr,c.mergeProps(e,{get value(){return e.value},get config(){return e.config}}))}}),c.createComponent(c.Match,{get when(){return e.config.type==="textarea"},get children(){return c.createComponent(_e,{get config(){return e.config},get value(){return e.value},get onChange(){return e.onChange}})}}),c.createComponent(c.Match,{get when(){return e.config.type==="radio"},get children(){return c.createComponent(Gn,{get config(){return e.config},get value(){return e.value},get onChange(){return e.onChange}})}}),c.createComponent(c.Match,{get when(){return e.config.type==="checkbox"},get children(){return c.createComponent(Hn,{get config(){return e.config},get value(){return e.value},get onChange(){return e.onChange}})}}),c.createComponent(c.Match,{get when(){return e.config.type==="select"},get children(){return c.createComponent(er,{get config(){return e.config},get value(){return e.value},get onChange(){return e.onChange}})}})]}})}}),ir=()=>{const e=navigator.connection;return{effectiveType:e==null?void 0:e.effectiveType,downlink:e==null?void 0:e.downlink,rtt:e==null?void 0:e.rtt,saveData:e==null?void 0:e.saveData}},cr=()=>({width:window.innerWidth,height:window.innerHeight,screenWidth:window.screen.width,screenHeight:window.screen.height,language:navigator.language,languages:navigator.languages,doNotTrack:navigator.doNotTrack,cookiesEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,maxTouchPoints:navigator.maxTouchPoints,colorDepth:window.screen.colorDepth,pixelRatio:window.devicePixelRatio,availableWidth:window.screen.availWidth,availableHeight:window.screen.availHeight}),sr=()=>{const e=new URL(window.location.href),n={};return e.searchParams.forEach((t,r)=>{n[r]=t}),{url:e.href,origin:e.origin,pathname:e.pathname,searchParams:n,referrer:document.referrer}},lr=()=>({timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,localDateTime:new Date().toISOString()}),dr=()=>({userAgent:navigator.userAgent,browserInfo:cr(),networkInfo:ir(),locationInfo:sr(),timeInfo:lr(),console:Pt()});var ur=w("<fieldset class=echo-input-options-wrapper><legend class=visually-hidden>Additional Information"),hr=w('<section class=echo-feedback data-hide-when-drawing=true role=dialog aria-label="Feedback Form"><form class=echo-feedback-content aria-label="Submit Feedback"><header class=echo-feedback-header><h3 class=echo-feedback-title id=feedback-form-title></h3><div class=echo-feedback-header-actions role=toolbar aria-label="Form controls"></div></header><fieldset class=echo-input-options-wrapper><legend class=visually-hidden>Feedback Message</legend></fieldset><footer class=echo-feedback-footer>');const fr=()=>{const e=x(),n=async o=>{o.preventDefault();const a=await Dt(),i={message:e.feedback.state.message,screenshot:a,metadata:dr(),customInputs:e.feedback.state.customInputValues};e.methods.submit(i)},t=o=>{o.stopPropagation(),e.feedback.setState({isMinimized:!0})},r=()=>{e.feedback.setState({isMinimized:!1})};return c.createEffect(()=>{e.widget.state.isOpen&&requestAnimationFrame(()=>{var o;(o=document.querySelector(".echo-input-field"))==null||o.focus()})}),(()=>{var o=hr(),a=o.firstChild,i=a.firstChild,l=i.firstChild,s=l.nextSibling,d=i.nextSibling;d.firstChild;var h=d.nextSibling;return o.$$click=()=>e.feedback.state.isMinimized&&r(),a.addEventListener("submit",n),v(l,()=>e.widget.state.text.feedbackForm.title),v(s,c.createComponent(L,{type:"button",title:"Hide form",variant:"secondary",size:"sm",onClick:t,"aria-label":"Minimize feedback form",get children(){return c.createComponent(Qt,{size:20})}}),null),v(s,c.createComponent(L,{type:"button",title:"Close form",variant:"secondary",size:"sm",onClick:()=>e.widget.setState({isOpen:!1}),"aria-label":"Close feedback form",get children(){return c.createComponent(ue,{size:20})}}),null),v(d,c.createComponent(_e,{get config(){return{type:"textarea",id:"message",placeholder:e.widget.state.text.feedbackForm.placeholder,label:"Feedback Message",required:!0}},get value(){return e.feedback.state.message},onChange:f=>e.feedback.setState({message:f})}),null),v(a,c.createComponent(c.Show,{get when(){var f;return(f=e.widget.state.customInputs)==null?void 0:f.length},get children(){var f=ur();return f.firstChild,v(f,c.createComponent(c.For,{get each(){return e.widget.state.customInputs},children:g=>c.createComponent(or,{config:g,get value(){return e.feedback.state.customInputValues[g.id]},onChange:m=>e.feedback.setState({customInputValues:{...e.feedback.state.customInputValues,[g.id]:m}})})}),null),f}}),h),v(h,c.createComponent(L,{type:"submit",variant:"primary",size:"lg",style:{width:"100%"},"aria-label":"Submit feedback",get children(){return e.widget.state.text.feedbackForm.submitButton}})),c.createRenderEffect(f=>{var g=e.feedback.state.isMinimized,m=e.feedback.state.isMinimized?"pointer":"default",b=!e.feedback.state.isMinimized;return g!==f.e&&u(o,"data-minimized",f.e=g),m!==f.t&&((f.t=m)!=null?o.style.setProperty("cursor",m):o.style.removeProperty("cursor")),b!==f.a&&u(o,"aria-expanded",f.a=b),f},{e:void 0,t:void 0,a:void 0}),o})()};E(["click"]);var gr=w("<style>"),mr=w("<div class=echo-launcher>"),vr=w("<dialog class=echo-overlay>"),wr=w("<div class=echo-root>");const br=e=>{const[n,t]=c.createSignal();return c.createEffect(()=>{const r=n();r&&Tt(r.shadowRoot)}),c.createComponent(ht,{ref:t,useShadow:!0,get mount(){return document.body},get children(){return c.createComponent(Wt,c.mergeProps(e,{get children(){return c.createComponent(kr,{get children(){return[c.createComponent(pr,{get primaryColor(){return e.primaryColor}}),c.createComponent(yr,{})]}})}}))}})},pr=e=>{const[n,t]=c.createSignal("");return c.createEffect(()=>{const r=`
|
4
4
|
.echo-root {
|
5
5
|
--primary-color: ${e.primaryColor};
|
6
6
|
--primary-text-color: ${St(e.primaryColor)};
|
7
7
|
}
|
8
|
-
`;t(r)}),(()=>{var r=gr();return v(r,_t,null),v(r,n,null),r})()},yr=()=>{const e=x();return[(()=>{var n=mr();return v(n,c.createComponent(Pn,{}),null),v(n,c.createComponent(Rn,{}),null),v(n,c.createComponent(Mn,{}),null),c.createRenderEffect(()
|
8
|
+
`;t(r)}),(()=>{var r=gr();return v(r,_t,null),v(r,n,null),r})()},yr=()=>{const e=x();return[(()=>{var n=mr();return v(n,c.createComponent(Pn,{}),null),v(n,c.createComponent(Rn,{}),null),v(n,c.createComponent(Mn,{}),null),c.createRenderEffect(t=>{var r={...e.widget.state.position.includes("top")?{top:"var(--spacing-xl)"}:{bottom:"var(--spacing-xl)"},...e.widget.state.position.includes("left")?{left:"var(--spacing-xl)"}:{right:"var(--spacing-xl)"}},o=e.widget.state.isOpen;return t.e=$(n,r,t.e),o!==t.t&&u(n,"data-hidden",t.t=o),t},{e:void 0,t:void 0}),n})(),c.createComponent(xr,{get children(){return[c.createComponent(fr,{}),c.createComponent(mn,{}),c.createComponent(Nn,{})]}})]},xr=e=>{const[n,t]=c.createSignal(),r=x(),o=Bt(()=>n());return c.createEffect(()=>{n()&&r.widget.setState({dimensions:o()})}),c.createEffect(()=>{var a,i;r.widget.state.isOpen?(a=n())==null||a.showModal():(i=n())==null||i.close()}),(()=>{var a=vr();return a.addEventListener("close",()=>r.widget.setState({isOpen:!1})),D(t,a),v(a,()=>e.children),c.createRenderEffect(i=>{var l=`${o().height}px`,s=`${o().width}px`,d=!r.widget.state.isOpen;return l!==i.e&&((i.e=l)!=null?a.style.setProperty("height",l):a.style.removeProperty("height")),s!==i.t&&((i.t=s)!=null?a.style.setProperty("width",s):a.style.removeProperty("width")),d!==i.a&&u(a,"data-hidden",i.a=d),i},{e:void 0,t:void 0,a:void 0}),a})()},kr=e=>{const n=x();return Yt({onUrlChange:t=>n.methods.handlePageChange(t)}),c.onMount(()=>{Et(),Ot(t=>{t.target instanceof Document||t.target instanceof Window||t.target instanceof Element&&t.target.shadowRoot&&ne(t.target.shadowRoot)||t.target instanceof Node&&ne(t.target)})}),c.onCleanup(()=>{$t(),It()}),(()=>{var t=wr();return v(t,()=>e.children),c.createRenderEffect(()=>u(t,"data-drawing",n.drawing.state.isDrawing)),t})()},Cr={welcomeMessage:{text:"Click here to leave feedback",closeAriaLabel:"Close welcome message"},feedbackForm:{title:"Send Feedback",placeholder:"What's on your mind? We'd love to hear your feedback...",screenshotAlt:"Screenshot Preview",submitButton:"Send Feedback",minimizeTitle:"Minimize",expandTitle:"Expand",closeTitle:"Close",showFormTitle:"Show Feedback Form"},notification:{successTitle:"Thank you for your feedback!",errorTitle:"Something went wrong.",errorMessage:"Failed to send feedback. Please try again.",hideTitle:"Hide notification"},drawingTooltip:{text:"Click & drag to draw"}};let he=null;function Sr(e){he&&(console.warn("Echo widget is already initialized. Cleaning up previous instance..."),he());try{Lt(e);const{position:n="bottom-right",primaryColor:t="#6227dc",onSubmit:r,textConfig:o={},customInputs:a=[],disableMinimization:i=!1}=e,l=Pe(Cr,o),s=document.createElement("div");document.body.appendChild(s);const d=rt(()=>c.createComponent(br,{position:n,primaryColor:t,textConfig:l,onSubmit:r,customInputs:a,disableMinimization:i}),s);s.remove();const h=()=>{d(),he=null};return window.addEventListener("unload",h,{once:!0}),he=h,h}catch(n){throw console.error("Echo initialization failed:",n),n}}A.initEcho=Sr,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})});
|