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