@contember/echo 0.0.32 → 0.0.33-beta.2
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 +566 -543
- package/dist/echo.umd.js +5 -5
- package/dist/style.css +1 -1
- package/dist/utils/listeners.d.ts +1 -3
- package/dist/utils/monkeyPatch.d.ts +2 -2
- package/package.json +2 -2
package/dist/echo.es.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
import { sharedConfig as L, createRoot as
|
2
|
-
import
|
3
|
-
const
|
1
|
+
import { sharedConfig as L, createRoot as Ye, createRenderEffect as b, untrack as Ke, getOwner as Le, createEffect as H, runWithOwner as dt, createMemo as k, createSignal as T, onCleanup as te, $PROXY as Y, $TRACK as Ne, getListener as Pe, batch as ut, onMount as ke, createContext as ht, createComponent as g, useContext as gt, For as B, Show as D, mergeProps as ie, Switch as ft, Match as ne } from "solid-js";
|
2
|
+
import mt from "html2canvas";
|
3
|
+
const vt = [
|
4
4
|
"allowfullscreen",
|
5
5
|
"async",
|
6
6
|
"autofocus",
|
@@ -26,7 +26,7 @@ const ft = [
|
|
26
26
|
"reversed",
|
27
27
|
"seamless",
|
28
28
|
"selected"
|
29
|
-
],
|
29
|
+
], bt = /* @__PURE__ */ new Set([
|
30
30
|
"className",
|
31
31
|
"value",
|
32
32
|
"readOnly",
|
@@ -34,16 +34,16 @@ const ft = [
|
|
34
34
|
"isMap",
|
35
35
|
"noModule",
|
36
36
|
"playsInline",
|
37
|
-
...
|
38
|
-
]),
|
37
|
+
...vt
|
38
|
+
]), wt = /* @__PURE__ */ new Set([
|
39
39
|
"innerHTML",
|
40
40
|
"textContent",
|
41
41
|
"innerText",
|
42
42
|
"children"
|
43
|
-
]),
|
43
|
+
]), yt = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), {
|
44
44
|
className: "class",
|
45
45
|
htmlFor: "for"
|
46
|
-
}),
|
46
|
+
}), pt = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), {
|
47
47
|
class: "className",
|
48
48
|
formnovalidate: {
|
49
49
|
$: "formNoValidate",
|
@@ -68,11 +68,11 @@ const ft = [
|
|
68
68
|
TEXTAREA: 1
|
69
69
|
}
|
70
70
|
});
|
71
|
-
function
|
72
|
-
const t =
|
71
|
+
function xt(e, n) {
|
72
|
+
const t = pt[e];
|
73
73
|
return typeof t == "object" ? t[n] ? t.$ : void 0 : t;
|
74
74
|
}
|
75
|
-
const
|
75
|
+
const kt = /* @__PURE__ */ new Set([
|
76
76
|
"beforeinput",
|
77
77
|
"click",
|
78
78
|
"dblclick",
|
@@ -96,7 +96,7 @@ const yt = /* @__PURE__ */ new Set([
|
|
96
96
|
"touchmove",
|
97
97
|
"touchstart"
|
98
98
|
]);
|
99
|
-
function
|
99
|
+
function St(e, n, t) {
|
100
100
|
let r = t.length, a = n.length, o = r, i = 0, l = 0, s = n[a - 1].nextSibling, c = null;
|
101
101
|
for (; i < a || l < o; ) {
|
102
102
|
if (n[i] === t[l]) {
|
@@ -127,18 +127,18 @@ function xt(e, n, t) {
|
|
127
127
|
for (; ++h < a && h < o && !((m = c.get(n[h])) == null || m !== u + f); )
|
128
128
|
f++;
|
129
129
|
if (f > u - l) {
|
130
|
-
const
|
131
|
-
for (; l < u; ) e.insertBefore(t[l++],
|
130
|
+
const y = n[i];
|
131
|
+
for (; l < u; ) e.insertBefore(t[l++], y);
|
132
132
|
} else e.replaceChild(t[l++], n[i++]);
|
133
133
|
} else i++;
|
134
134
|
else n[i++].remove();
|
135
135
|
}
|
136
136
|
}
|
137
137
|
}
|
138
|
-
const
|
139
|
-
function
|
138
|
+
const je = "_$DX_DELEGATE";
|
139
|
+
function Ct(e, n, t, r = {}) {
|
140
140
|
let a;
|
141
|
-
return
|
141
|
+
return Ye((o) => {
|
142
142
|
a = o, n === document ? e() : v(n, e(), n.firstChild ? null : void 0, t);
|
143
143
|
}, r.owner), () => {
|
144
144
|
a(), n.textContent = "";
|
@@ -149,24 +149,24 @@ function w(e, n, t) {
|
|
149
149
|
const a = () => {
|
150
150
|
const i = document.createElement("template");
|
151
151
|
return i.innerHTML = e, t ? i.content.firstChild.firstChild : i.content.firstChild;
|
152
|
-
}, o = n ? () =>
|
152
|
+
}, o = n ? () => Ke(() => document.importNode(r || (r = a()), !0)) : () => (r || (r = a())).cloneNode(!0);
|
153
153
|
return o.cloneNode = o, o;
|
154
154
|
}
|
155
|
-
function
|
156
|
-
const t = n[
|
155
|
+
function I(e, n = window.document) {
|
156
|
+
const t = n[je] || (n[je] = /* @__PURE__ */ new Set());
|
157
157
|
for (let r = 0, a = e.length; r < a; r++) {
|
158
158
|
const o = e[r];
|
159
|
-
t.has(o) || (t.add(o), n.addEventListener(o,
|
159
|
+
t.has(o) || (t.add(o), n.addEventListener(o, It));
|
160
160
|
}
|
161
161
|
}
|
162
162
|
function d(e, n, t) {
|
163
|
-
|
163
|
+
he(e) || (t == null ? e.removeAttribute(n) : e.setAttribute(n, t));
|
164
164
|
}
|
165
|
-
function
|
166
|
-
|
165
|
+
function $t(e, n, t) {
|
166
|
+
he(e) || (t ? e.setAttribute(n, "") : e.removeAttribute(n));
|
167
167
|
}
|
168
|
-
function
|
169
|
-
|
168
|
+
function Ge(e, n) {
|
169
|
+
he(e) || (n == null ? e.removeAttribute("class") : e.className = n);
|
170
170
|
}
|
171
171
|
function U(e, n, t, r) {
|
172
172
|
if (r)
|
@@ -176,16 +176,16 @@ function U(e, n, t, r) {
|
|
176
176
|
e.addEventListener(n, t[0] = (o) => a.call(e, t[1], o));
|
177
177
|
} else e.addEventListener(n, t, typeof t != "function" && t);
|
178
178
|
}
|
179
|
-
function
|
179
|
+
function Et(e, n, t = {}) {
|
180
180
|
const r = Object.keys(n || {}), a = Object.keys(t);
|
181
181
|
let o, i;
|
182
182
|
for (o = 0, i = a.length; o < i; o++) {
|
183
183
|
const l = a[o];
|
184
|
-
!l || l === "undefined" || n[l] || (
|
184
|
+
!l || l === "undefined" || n[l] || (qe(e, l, !1), delete t[l]);
|
185
185
|
}
|
186
186
|
for (o = 0, i = r.length; o < i; o++) {
|
187
187
|
const l = r[o], s = !!n[l];
|
188
|
-
!l || l === "undefined" || t[l] === s || !s || (
|
188
|
+
!l || l === "undefined" || t[l] === s || !s || (qe(e, l, !0), t[l] = s);
|
189
189
|
}
|
190
190
|
return t;
|
191
191
|
}
|
@@ -201,48 +201,48 @@ function F(e, n, t) {
|
|
201
201
|
a = n[o], a !== t[o] && (r.setProperty(o, a), t[o] = a);
|
202
202
|
return t;
|
203
203
|
}
|
204
|
-
function
|
204
|
+
function Pt(e, n = {}, t, r) {
|
205
205
|
const a = {};
|
206
206
|
return b(
|
207
|
-
() => a.children =
|
208
|
-
), b(() => typeof n.ref == "function" &&
|
207
|
+
() => a.children = se(e, n.children, a.children)
|
208
|
+
), b(() => typeof n.ref == "function" && R(n.ref, e)), b(() => zt(e, n, t, !0, a, !0)), a;
|
209
209
|
}
|
210
|
-
function
|
211
|
-
return
|
210
|
+
function R(e, n, t) {
|
211
|
+
return Ke(() => 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 se(e, n, r, t);
|
215
|
+
b((a) => se(e, n(), a, t), r);
|
216
216
|
}
|
217
|
-
function
|
217
|
+
function zt(e, n, t, r, a = {}, o = !1) {
|
218
218
|
n || (n = {});
|
219
219
|
for (const i in a)
|
220
220
|
if (!(i in n)) {
|
221
221
|
if (i === "children") continue;
|
222
|
-
a[i] =
|
222
|
+
a[i] = Re(e, i, null, a[i], t, o, n);
|
223
223
|
}
|
224
224
|
for (const i in n) {
|
225
225
|
if (i === "children")
|
226
226
|
continue;
|
227
227
|
const l = n[i];
|
228
|
-
a[i] =
|
228
|
+
a[i] = Re(e, i, l, a[i], t, o, n);
|
229
229
|
}
|
230
230
|
}
|
231
|
-
function
|
231
|
+
function he(e) {
|
232
232
|
return !!L.context && !L.done && (!e || e.isConnected);
|
233
233
|
}
|
234
|
-
function
|
234
|
+
function Tt(e) {
|
235
235
|
return e.toLowerCase().replace(/-([a-z])/g, (n, t) => t.toUpperCase());
|
236
236
|
}
|
237
|
-
function
|
237
|
+
function qe(e, n, t) {
|
238
238
|
const r = n.trim().split(/\s+/);
|
239
239
|
for (let a = 0, o = r.length; a < o; a++)
|
240
240
|
e.classList.toggle(r[a], t);
|
241
241
|
}
|
242
|
-
function
|
242
|
+
function Re(e, n, t, r, a, o, i) {
|
243
243
|
let l, s, c, u, h;
|
244
244
|
if (n === "style") return F(e, t, r);
|
245
|
-
if (n === "classList") return
|
245
|
+
if (n === "classList") return Et(e, t, r);
|
246
246
|
if (t === r) return r;
|
247
247
|
if (n === "ref")
|
248
248
|
o || t(e);
|
@@ -253,26 +253,26 @@ function Ne(e, n, t, r, a, o, i) {
|
|
253
253
|
const f = n.slice(10);
|
254
254
|
r && e.removeEventListener(f, r, !0), t && e.addEventListener(f, t, !0);
|
255
255
|
} else if (n.slice(0, 2) === "on") {
|
256
|
-
const f = n.slice(2).toLowerCase(), m =
|
256
|
+
const f = n.slice(2).toLowerCase(), m = kt.has(f);
|
257
257
|
if (!m && r) {
|
258
|
-
const
|
259
|
-
e.removeEventListener(f,
|
258
|
+
const y = Array.isArray(r) ? r[0] : r;
|
259
|
+
e.removeEventListener(f, y);
|
260
260
|
}
|
261
|
-
(m || t) && (U(e, f, t, m), m &&
|
261
|
+
(m || t) && (U(e, f, t, m), m && I([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
|
-
|
266
|
-
else if ((h = n.slice(0, 5) === "prop:") || (c =
|
265
|
+
$t(e, n.slice(5), t);
|
266
|
+
else if ((h = n.slice(0, 5) === "prop:") || (c = wt.has(n)) || (u = xt(n, e.tagName)) || (s = bt.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" ?
|
269
|
+
else if (he(e)) return t;
|
270
|
+
n === "class" || n === "className" ? Ge(e, t) : l && !s && !c ? e[Tt(n)] = t : e[u || n] = t;
|
271
271
|
} else
|
272
|
-
d(e,
|
272
|
+
d(e, yt[n] || n, t);
|
273
273
|
return t;
|
274
274
|
}
|
275
|
-
function
|
275
|
+
function It(e) {
|
276
276
|
if (L.registry && L.events && L.events.find(([s, c]) => c === e))
|
277
277
|
return;
|
278
278
|
let n = e.target;
|
@@ -308,8 +308,8 @@ function zt(e) {
|
|
308
308
|
} else l();
|
309
309
|
o(r);
|
310
310
|
}
|
311
|
-
function
|
312
|
-
const o =
|
311
|
+
function se(e, n, t, r, a) {
|
312
|
+
const o = he(e);
|
313
313
|
if (o) {
|
314
314
|
!t && (t = [...e.childNodes]);
|
315
315
|
let s = [];
|
@@ -327,23 +327,23 @@ function ie(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 = X(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 = X(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 = se(e, s, t, r);
|
342
342
|
}), () => t;
|
343
343
|
if (Array.isArray(n)) {
|
344
344
|
const s = [], c = t && Array.isArray(t);
|
345
|
-
if (
|
346
|
-
return b(() => t =
|
345
|
+
if (ze(s, n, t, a))
|
346
|
+
return b(() => t = se(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];
|
@@ -354,32 +354,32 @@ function ie(e, n, t, r, a) {
|
|
354
354
|
return t = h;
|
355
355
|
}
|
356
356
|
if (s.length === 0) {
|
357
|
-
if (t =
|
358
|
-
} else c ? t.length === 0 ?
|
357
|
+
if (t = X(e, t, r), l) return t;
|
358
|
+
} else c ? t.length === 0 ? Ve(e, s, r) : St(e, t, s) : (t && X(e), Ve(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 = X(e, t, r, n);
|
364
|
+
X(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
|
}
|
368
368
|
}
|
369
369
|
return t;
|
370
370
|
}
|
371
|
-
function
|
371
|
+
function ze(e, n, t, r) {
|
372
372
|
let a = !1;
|
373
373
|
for (let o = 0, i = n.length; o < i; o++) {
|
374
374
|
let l = n[o], s = t && t[e.length], c;
|
375
375
|
if (!(l == null || l === !0 || l === !1)) if ((c = typeof l) == "object" && l.nodeType)
|
376
376
|
e.push(l);
|
377
377
|
else if (Array.isArray(l))
|
378
|
-
a =
|
378
|
+
a = ze(e, l, s) || a;
|
379
379
|
else if (c === "function")
|
380
380
|
if (r) {
|
381
381
|
for (; typeof l == "function"; ) l = l();
|
382
|
-
a =
|
382
|
+
a = ze(
|
383
383
|
e,
|
384
384
|
Array.isArray(l) ? l : [l],
|
385
385
|
Array.isArray(s) ? s : [s]
|
@@ -393,10 +393,10 @@ function Ee(e, n, t, r) {
|
|
393
393
|
}
|
394
394
|
return a;
|
395
395
|
}
|
396
|
-
function
|
396
|
+
function Ve(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 X(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) {
|
@@ -411,22 +411,22 @@ function G(e, n, t, r) {
|
|
411
411
|
} else e.insertBefore(a, t);
|
412
412
|
return [a];
|
413
413
|
}
|
414
|
-
const
|
415
|
-
function
|
416
|
-
return n ? document.createElementNS(
|
414
|
+
const Ot = "http://www.w3.org/2000/svg";
|
415
|
+
function Mt(e, n = !1) {
|
416
|
+
return n ? document.createElementNS(Ot, e) : document.createElement(e);
|
417
417
|
}
|
418
|
-
function
|
419
|
-
const { useShadow: n } = e, t = document.createTextNode(""), r = () => e.mount || document.body, a =
|
418
|
+
function At(e) {
|
419
|
+
const { useShadow: n } = e, t = document.createTextNode(""), r = () => e.mount || document.body, a = Le();
|
420
420
|
let o, i = !!L.context;
|
421
|
-
return
|
421
|
+
return H(
|
422
422
|
() => {
|
423
|
-
i && (
|
423
|
+
i && (Le().user = i = !1), o || (o = dt(a, () => k(() => e.children)));
|
424
424
|
const l = r();
|
425
425
|
if (l instanceof HTMLHeadElement) {
|
426
|
-
const [s, c] =
|
427
|
-
|
426
|
+
const [s, c] = T(!1), u = () => c(!0);
|
427
|
+
Ye((h) => v(l, () => s() ? h() : o(), null)), te(u);
|
428
428
|
} else {
|
429
|
-
const s =
|
429
|
+
const s = Mt(e.isSVG ? "g" : "div", e.isSVG), c = n && s.attachShadow ? s.attachShadow({
|
430
430
|
mode: "open"
|
431
431
|
}) : s;
|
432
432
|
Object.defineProperty(s, "_$host", {
|
@@ -443,7 +443,7 @@ function Ot(e) {
|
|
443
443
|
}
|
444
444
|
), t;
|
445
445
|
}
|
446
|
-
const
|
446
|
+
const Dt = 5e3, Ft = (e) => {
|
447
447
|
let n = null;
|
448
448
|
const t = () => {
|
449
449
|
n !== null && (window.clearTimeout(n), n = null);
|
@@ -462,7 +462,7 @@ const Mt = 5e3, At = (e) => {
|
|
462
462
|
show: !1
|
463
463
|
}
|
464
464
|
}), n = null;
|
465
|
-
},
|
465
|
+
}, Dt);
|
466
466
|
},
|
467
467
|
clear: () => {
|
468
468
|
t(), e.setState({
|
@@ -474,94 +474,94 @@ const Mt = 5e3, At = (e) => {
|
|
474
474
|
});
|
475
475
|
}
|
476
476
|
};
|
477
|
-
},
|
477
|
+
}, Xe = (e, n) => {
|
478
478
|
if (!n) return e;
|
479
479
|
const t = { ...e };
|
480
480
|
for (const r in n)
|
481
|
-
n[r] && typeof n[r] == "object" && !Array.isArray(n[r]) ? t[r] =
|
481
|
+
n[r] && typeof n[r] == "object" && !Array.isArray(n[r]) ? t[r] = Xe(e[r], n[r]) : t[r] = n[r];
|
482
482
|
return t;
|
483
|
-
},
|
483
|
+
}, Lt = (e, n) => {
|
484
484
|
let t;
|
485
485
|
return (...r) => {
|
486
486
|
clearTimeout(t), t = window.setTimeout(() => e(...r), n);
|
487
487
|
};
|
488
|
-
},
|
488
|
+
}, Nt = "echo_", K = "echo-pages", Je = (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
|
+
}, Ze = () => {
|
493
493
|
window.dispatchEvent(new Event("echo-storage-change"));
|
494
|
-
},
|
494
|
+
}, Qe = (e) => `${Nt}${e}`, G = (e, n) => {
|
495
495
|
try {
|
496
|
-
const t = localStorage.getItem(
|
496
|
+
const t = localStorage.getItem(Qe(e));
|
497
497
|
return t ? JSON.parse(t) : n;
|
498
498
|
} catch {
|
499
499
|
return n;
|
500
500
|
}
|
501
|
-
},
|
501
|
+
}, le = (e, n) => {
|
502
502
|
try {
|
503
|
-
localStorage.setItem(
|
503
|
+
localStorage.setItem(Qe(e), JSON.stringify(n));
|
504
504
|
} catch (t) {
|
505
505
|
console.warn("Failed to save to localStorage:", t);
|
506
506
|
}
|
507
|
-
},
|
507
|
+
}, Te = () => {
|
508
508
|
const e = window.location.pathname || "/", n = window.location.search;
|
509
509
|
return `${e}${n}`;
|
510
|
-
},
|
510
|
+
}, jt = (e, n) => {
|
511
511
|
try {
|
512
512
|
if (!n.feedback.hasUserInteracted && n.drawing.shapes.length < 1) return;
|
513
513
|
const t = {
|
514
514
|
message: n.feedback.message,
|
515
515
|
customInputValues: n.feedback.customInputValues
|
516
|
-
}, r = K
|
516
|
+
}, r = G(K, {}), a = Je(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
|
+
}), le(K, r), Ze();
|
524
524
|
} catch (t) {
|
525
525
|
console.warn("Failed to save page state:", t);
|
526
526
|
}
|
527
|
-
},
|
527
|
+
}, Oe = (e) => {
|
528
528
|
try {
|
529
|
-
return K
|
529
|
+
return G(K, {})[e];
|
530
530
|
} catch (n) {
|
531
531
|
console.error("Failed to load page state:", n);
|
532
532
|
return;
|
533
533
|
}
|
534
|
-
},
|
534
|
+
}, et = (e) => {
|
535
535
|
try {
|
536
|
-
const n = K
|
537
|
-
delete n[e],
|
536
|
+
const n = G(K, {});
|
537
|
+
delete n[e], le(K, n), Ze();
|
538
538
|
} catch (n) {
|
539
539
|
console.error("Failed to clear page state:", n);
|
540
540
|
}
|
541
|
-
},
|
541
|
+
}, tt = () => {
|
542
542
|
try {
|
543
|
-
const e = K
|
543
|
+
const e = G(K, {});
|
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
|
+
}, Ce = () => {
|
549
549
|
try {
|
550
|
-
const e = K
|
550
|
+
const e = G(K, {});
|
551
551
|
return Object.entries(e).map(([n, t]) => ({
|
552
|
-
path:
|
552
|
+
path: Je(n),
|
553
553
|
state: t
|
554
554
|
}));
|
555
555
|
} catch (e) {
|
556
556
|
return console.error("Failed to get stored pages:", e), [];
|
557
557
|
}
|
558
|
-
},
|
559
|
-
(!r || t.feedback.message.trim().length > 0 || t.drawing.shapes.length > 0) && (
|
560
|
-
}, 1e3),
|
561
|
-
function
|
558
|
+
}, qt = (e) => Lt((n, t, r = !1) => {
|
559
|
+
(!r || t.feedback.message.trim().length > 0 || t.drawing.shapes.length > 0) && (jt(n, t), e.setState({ pagesCount: tt() }));
|
560
|
+
}, 1e3), Ie = Symbol("store-raw"), Z = Symbol("store-node"), N = Symbol("store-has"), nt = Symbol("store-self");
|
561
|
+
function rt(e) {
|
562
562
|
let n = e[Y];
|
563
563
|
if (!n && (Object.defineProperty(e, Y, {
|
564
|
-
value: n = new Proxy(e,
|
564
|
+
value: n = new Proxy(e, Wt)
|
565
565
|
}), !Array.isArray(e))) {
|
566
566
|
const t = Object.keys(e), r = Object.getOwnPropertyDescriptors(e);
|
567
567
|
for (let a = 0, o = t.length; a < o; a++) {
|
@@ -574,67 +574,67 @@ function tt(e) {
|
|
574
574
|
}
|
575
575
|
return n;
|
576
576
|
}
|
577
|
-
function
|
577
|
+
function we(e) {
|
578
578
|
let n;
|
579
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 ce(e, n = /* @__PURE__ */ new Set()) {
|
582
582
|
let t, r, a, o;
|
583
|
-
if (t = e != null && e[
|
584
|
-
if (!
|
583
|
+
if (t = e != null && e[Ie]) return t;
|
584
|
+
if (!we(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 = ce(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 = ce(a, n)) !== a && (e[o] = r));
|
594
594
|
}
|
595
595
|
return e;
|
596
596
|
}
|
597
|
-
function
|
597
|
+
function ye(e, n) {
|
598
598
|
let t = e[n];
|
599
599
|
return t || Object.defineProperty(e, n, {
|
600
600
|
value: t = /* @__PURE__ */ Object.create(null)
|
601
601
|
}), t;
|
602
602
|
}
|
603
|
-
function
|
603
|
+
function de(e, n, t) {
|
604
604
|
if (e[n]) return e[n];
|
605
|
-
const [r, a] =
|
605
|
+
const [r, a] = T(t, {
|
606
606
|
equals: !1,
|
607
607
|
internal: !0
|
608
608
|
});
|
609
609
|
return r.$ = a, e[n] = r;
|
610
610
|
}
|
611
|
-
function
|
611
|
+
function Rt(e, n) {
|
612
612
|
const t = Reflect.getOwnPropertyDescriptor(e, n);
|
613
|
-
return !t || t.get || !t.configurable || n === Y || n ===
|
613
|
+
return !t || t.get || !t.configurable || n === Y || n === Z || (delete t.value, delete t.writable, t.get = () => e[Y][n]), t;
|
614
614
|
}
|
615
|
-
function
|
616
|
-
|
615
|
+
function ot(e) {
|
616
|
+
Pe() && de(ye(e, Z), nt)();
|
617
617
|
}
|
618
|
-
function
|
619
|
-
return
|
618
|
+
function Vt(e) {
|
619
|
+
return ot(e), Reflect.ownKeys(e);
|
620
620
|
}
|
621
|
-
const
|
621
|
+
const Wt = {
|
622
622
|
get(e, n, t) {
|
623
|
-
if (n ===
|
623
|
+
if (n === Ie) return e;
|
624
624
|
if (n === Y) return t;
|
625
|
-
if (n ===
|
626
|
-
return
|
627
|
-
const r =
|
625
|
+
if (n === Ne)
|
626
|
+
return ot(e), t;
|
627
|
+
const r = ye(e, Z), a = r[n];
|
628
628
|
let o = a ? a() : e[n];
|
629
|
-
if (n ===
|
629
|
+
if (n === Z || n === N || n === "__proto__") return o;
|
630
630
|
if (!a) {
|
631
631
|
const i = Object.getOwnPropertyDescriptor(e, n);
|
632
|
-
|
632
|
+
Pe() && (typeof o != "function" || e.hasOwnProperty(n)) && !(i && i.get) && (o = de(r, n, o)());
|
633
633
|
}
|
634
|
-
return
|
634
|
+
return we(o) ? rt(o) : o;
|
635
635
|
},
|
636
636
|
has(e, n) {
|
637
|
-
return n ===
|
637
|
+
return n === Ie || n === Y || n === Ne || n === Z || n === N || n === "__proto__" ? !0 : (Pe() && de(ye(e, N), n)(), n in e);
|
638
638
|
},
|
639
639
|
set() {
|
640
640
|
return !0;
|
@@ -642,37 +642,37 @@ const Vt = {
|
|
642
642
|
deleteProperty() {
|
643
643
|
return !0;
|
644
644
|
},
|
645
|
-
ownKeys:
|
646
|
-
getOwnPropertyDescriptor:
|
645
|
+
ownKeys: Vt,
|
646
|
+
getOwnPropertyDescriptor: Rt
|
647
647
|
};
|
648
|
-
function
|
648
|
+
function pe(e, n, t, r = !1) {
|
649
649
|
if (!r && e[n] === t) return;
|
650
650
|
const a = e[n], o = e.length;
|
651
|
-
t === void 0 ? (delete e[n], e[
|
652
|
-
let i =
|
653
|
-
if ((l =
|
651
|
+
t === void 0 ? (delete e[n], e[N] && e[N][n] && a !== void 0 && e[N][n].$()) : (e[n] = t, e[N] && e[N][n] && a === void 0 && e[N][n].$());
|
652
|
+
let i = ye(e, Z), l;
|
653
|
+
if ((l = de(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 = de(i, "length", o)) && l.$(e.length);
|
656
656
|
}
|
657
|
-
(l = i[
|
657
|
+
(l = i[nt]) && l.$();
|
658
658
|
}
|
659
|
-
function
|
659
|
+
function at(e, n) {
|
660
660
|
const t = Object.keys(n);
|
661
661
|
for (let r = 0; r < t.length; r += 1) {
|
662
662
|
const a = t[r];
|
663
|
-
|
663
|
+
pe(e, a, n[a]);
|
664
664
|
}
|
665
665
|
}
|
666
666
|
function Bt(e, n) {
|
667
|
-
if (typeof n == "function" && (n = n(e)), n =
|
667
|
+
if (typeof n == "function" && (n = n(e)), n = ce(n), Array.isArray(n)) {
|
668
668
|
if (e === n) return;
|
669
669
|
let t = 0, r = n.length;
|
670
670
|
for (; t < r; t++) {
|
671
671
|
const a = n[t];
|
672
|
-
e[t] !== a &&
|
672
|
+
e[t] !== a && pe(e, t, a);
|
673
673
|
}
|
674
|
-
|
675
|
-
} else
|
674
|
+
pe(e, "length", r);
|
675
|
+
} else at(e, n);
|
676
676
|
}
|
677
677
|
function oe(e, n, t = []) {
|
678
678
|
let r, a = e;
|
@@ -699,18 +699,18 @@ 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 = ce(o), r === void 0 || we(a) && we(o) && !Array.isArray(o) ? at(a, o) : pe(e, r, o));
|
703
703
|
}
|
704
|
-
function
|
705
|
-
const t =
|
704
|
+
function Me(...[e, n]) {
|
705
|
+
const t = ce(e || {}), r = Array.isArray(t), a = rt(t);
|
706
706
|
function o(...i) {
|
707
|
-
|
707
|
+
ut(() => {
|
708
708
|
r && i.length === 1 ? Bt(t, i[0]) : oe(t, i);
|
709
709
|
});
|
710
710
|
}
|
711
711
|
return [a, o];
|
712
712
|
}
|
713
|
-
const
|
713
|
+
const V = {
|
714
714
|
rectangle: {
|
715
715
|
id: "rectangle",
|
716
716
|
label: "Highlight",
|
@@ -734,9 +734,9 @@ const B = {
|
|
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
|
739
|
-
const
|
737
|
+
}, Ut = (e) => _t(e) < 0.5 ? "#FFFFFF" : "#000000";
|
738
|
+
let j = [], M = null, Q = null, ee = null;
|
739
|
+
const $e = (e, n) => (...t) => {
|
740
740
|
const r = (o) => {
|
741
741
|
if (typeof o == "string") return o;
|
742
742
|
if (o instanceof Error) return o.stack || o.message;
|
@@ -754,56 +754,56 @@ const Se = (e, n) => (...t) => {
|
|
754
754
|
return "[Unable to stringify value]";
|
755
755
|
}
|
756
756
|
}, a = t.map(r).join(" ");
|
757
|
-
|
757
|
+
j.push({
|
758
758
|
type: e,
|
759
759
|
message: a,
|
760
760
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
761
|
-
}),
|
761
|
+
}), j.length > 1e3 && (j = j.slice(-1e3)), n.apply(console, t);
|
762
762
|
}, Ht = () => {
|
763
|
-
|
763
|
+
M || (M = {
|
764
764
|
log: console.log,
|
765
765
|
warn: console.warn,
|
766
766
|
error: console.error
|
767
|
-
},
|
767
|
+
}, Q = window.onerror, ee = window.onunhandledrejection, window.onerror = (e, n, t, r, a) => {
|
768
768
|
const o = (a == null ? void 0 : a.stack) || (a == null ? void 0 : a.message) || e;
|
769
|
-
return
|
769
|
+
return j.push({
|
770
770
|
type: "error",
|
771
771
|
message: `Uncaught Error: ${o}
|
772
772
|
Location: ${n}:${t}:${r}`,
|
773
773
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
774
|
-
}),
|
774
|
+
}), Q ? Q(e, n, t, r, a) : !1;
|
775
775
|
}, window.onunhandledrejection = (e) => {
|
776
776
|
const n = e.reason;
|
777
|
-
|
777
|
+
j.push({
|
778
778
|
type: "error",
|
779
779
|
message: `Unhandled Promise Rejection: ${(n == null ? void 0 : n.stack) || (n == null ? void 0 : n.message) || n}`,
|
780
780
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
781
|
-
}),
|
782
|
-
}, console.log =
|
781
|
+
}), ee && ee(e);
|
782
|
+
}, console.log = $e("log", M.log), console.warn = $e("warn", M.warn), console.error = $e("error", M.error), window.addEventListener("error", (e) => {
|
783
783
|
const { message: n, filename: t, lineno: r, colno: a, error: o } = e, i = (o == null ? void 0 : o.stack) || (o == null ? void 0 : o.message) || n;
|
784
|
-
|
784
|
+
j.push({
|
785
785
|
type: "error",
|
786
786
|
message: `Uncaught Error: ${i}
|
787
787
|
Location: ${t}:${r}:${a}`,
|
788
788
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
789
789
|
});
|
790
790
|
}));
|
791
|
-
},
|
792
|
-
|
793
|
-
}),
|
794
|
-
},
|
791
|
+
}, Yt = () => {
|
792
|
+
M && (console.log = M.log, console.warn = M.warn, console.error = M.error, M = null), Q && (window.onerror = Q, Q = null), ee && (window.onunhandledrejection = ee, ee = null), window.removeEventListener("error", () => {
|
793
|
+
}), j = [];
|
794
|
+
}, Kt = () => [...j], Gt = () => {
|
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
|
+
}, me = (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,
|
801
801
|
y: r ? n ? r.clientY : r.pageY : n ? e.clientY : e.pageY
|
802
802
|
};
|
803
|
-
},
|
803
|
+
}, We = (e, n) => {
|
804
804
|
const t = n.x - e.x, r = n.y - e.y;
|
805
805
|
return Math.sqrt(t * t + r * r);
|
806
|
-
},
|
806
|
+
}, it = (e) => {
|
807
807
|
if (e.length !== 2) return null;
|
808
808
|
const [n, t] = e;
|
809
809
|
return {
|
@@ -812,63 +812,82 @@ 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
|
-
},
|
816
|
-
let
|
817
|
-
const re = /* @__PURE__ */ new WeakMap(),
|
818
|
-
|
819
|
-
},
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
const
|
826
|
-
|
815
|
+
}, Xt = (e) => e.length < 2 ? null : `M ${e[0].x} ${e[0].y} ${e.slice(1).map((n) => `L ${n.x} ${n.y}`).join(" ")}`, be = window.EventTarget.prototype.addEventListener, J = window.EventTarget.prototype.removeEventListener;
|
816
|
+
let xe = !1, ae = null;
|
817
|
+
const re = /* @__PURE__ */ new WeakMap(), Jt = (e) => {
|
818
|
+
ae = e;
|
819
|
+
}, ue = (e) => {
|
820
|
+
if (!ae || !e)
|
821
|
+
return !1;
|
822
|
+
if (e === ae) return !0;
|
823
|
+
const n = e.getRootNode();
|
824
|
+
if (n && n.nodeName === "#document") {
|
825
|
+
const r = n.querySelector("#top-layer");
|
826
|
+
if (r != null && r.contains(e))
|
827
|
+
return !0;
|
828
|
+
}
|
829
|
+
let t = e;
|
830
|
+
for (; t; ) {
|
831
|
+
if (t.getRootNode() === ae)
|
832
|
+
return !0;
|
833
|
+
t = t.parentNode;
|
834
|
+
}
|
835
|
+
return !1;
|
836
|
+
}, Zt = (e) => {
|
837
|
+
xe || (xe = !0, window.EventTarget.prototype.addEventListener = function(n, t, r) {
|
838
|
+
if (!t || typeof t != "function")
|
839
|
+
return be.call(this, n, t, r);
|
840
|
+
if (!(this instanceof Node && !ue(this)))
|
841
|
+
return be.call(this, n, t, r);
|
842
|
+
const o = en(t, e);
|
843
|
+
re.has(this) || re.set(this, /* @__PURE__ */ new Map()), re.get(this).set(t, o), be.call(this, n, o, r);
|
827
844
|
}, window.EventTarget.prototype.removeEventListener = function(n, t, r) {
|
828
845
|
if (!t || typeof this != "object")
|
829
|
-
return
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
846
|
+
return J.call(this, n, t, r);
|
847
|
+
if (this instanceof Node && ue(this))
|
848
|
+
return J.call(this, n, t, r);
|
849
|
+
const o = re.get(this);
|
850
|
+
if (!o)
|
851
|
+
return J.call(this, n, t, r);
|
852
|
+
const i = o.get(t);
|
853
|
+
i ? (J.call(this, n, i, r), o.delete(t), o.size === 0 && re.delete(this)) : J.call(this, n, t, r);
|
835
854
|
});
|
836
|
-
},
|
837
|
-
|
838
|
-
},
|
839
|
-
const { event: n, callback: t, onMount: r, onCleanup: a
|
840
|
-
|
841
|
-
r == null || r(),
|
855
|
+
}, Qt = () => {
|
856
|
+
xe && (window.EventTarget.prototype.addEventListener = be, window.EventTarget.prototype.removeEventListener = J, xe = !1, ae = null);
|
857
|
+
}, A = (e) => {
|
858
|
+
const { event: n, callback: t, onMount: r, onCleanup: a } = e;
|
859
|
+
ke(() => {
|
860
|
+
r == null || r(), window.addEventListener(n, t);
|
842
861
|
}), te(() => {
|
843
|
-
a == null || a(),
|
862
|
+
a == null || a(), window.removeEventListener(n, t);
|
844
863
|
});
|
845
|
-
},
|
864
|
+
}, Ae = (e) => {
|
846
865
|
const { target: n, options: t, callback: r, onMount: a, onCleanup: o } = e, i = new MutationObserver(r);
|
847
|
-
|
866
|
+
ke(() => {
|
848
867
|
a == null || a(), i.observe(n, t);
|
849
868
|
}), te(() => {
|
850
869
|
o == null || o(), i.disconnect();
|
851
870
|
});
|
852
|
-
},
|
853
|
-
|
854
|
-
},
|
871
|
+
}, en = (e, n) => function(t) {
|
872
|
+
(!(t.target instanceof Node) || !ue(t.target)) && n(t), e.call(this, t);
|
873
|
+
}, tn = (e) => e.hasAttribute("data-hide-when-drawing"), nn = async () => {
|
855
874
|
var e;
|
856
875
|
try {
|
857
876
|
const n = document.createElement("style");
|
858
877
|
document.head.appendChild(n), (e = n.sheet) == null || e.insertRule("body > div:last-child img { display: inline-block; }");
|
859
|
-
const t = await
|
878
|
+
const t = await mt(document.body, {
|
860
879
|
logging: !1,
|
861
880
|
useCORS: !0,
|
862
881
|
scale: window.devicePixelRatio,
|
863
882
|
allowTaint: !0,
|
864
|
-
ignoreElements: (r) =>
|
883
|
+
ignoreElements: (r) => tn(r)
|
865
884
|
});
|
866
885
|
return n.remove(), t.toDataURL("image/png");
|
867
886
|
} catch (n) {
|
868
887
|
console.error("Failed to capture screenshot:", n);
|
869
888
|
return;
|
870
889
|
}
|
871
|
-
},
|
890
|
+
}, rn = (e, n, t) => {
|
872
891
|
let r = `M0 0 H${e.width} V${e.height} H0 Z`;
|
873
892
|
if (n.length === 2) {
|
874
893
|
const [a, o] = n;
|
@@ -880,16 +899,16 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
880
899
|
r += ` M${o.x} ${o.y} h${i.x - o.x} v${i.y - o.y} h${o.x - i.x} v${o.y - i.y}`;
|
881
900
|
}
|
882
901
|
return r;
|
883
|
-
},
|
902
|
+
}, on = (e) => {
|
884
903
|
if (typeof e != "object" || e === null)
|
885
904
|
throw new Error("Echo initialization failed: options must be an object");
|
886
905
|
if (typeof e.onSubmit != "function")
|
887
906
|
throw new Error("Echo initialization failed: onSubmit must be a function");
|
888
907
|
if (e.primaryColor && !/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(e.primaryColor))
|
889
908
|
throw new Error("Echo initialization failed: primaryColor must be a valid hex color");
|
890
|
-
}, Be = 5, _e = (e, n) =>
|
909
|
+
}, Be = 5, _e = (e, n) => V[e].getCursor(n), an = (e, n, t) => {
|
891
910
|
var l, s;
|
892
|
-
const [r, a] =
|
911
|
+
const [r, a] = Me({
|
893
912
|
isDrawing: !1,
|
894
913
|
currentPoints: [],
|
895
914
|
selectedShapeId: null,
|
@@ -897,7 +916,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
897
916
|
showTooltip: !0,
|
898
917
|
mousePosition: { x: 0, y: 0 },
|
899
918
|
selectedColor: e.primaryColor,
|
900
|
-
shapes: ((s = (l =
|
919
|
+
shapes: ((s = (l = Oe(n)) == null ? void 0 : l.drawing) == null ? void 0 : s.shapes) || [],
|
901
920
|
hasDrawn: !1,
|
902
921
|
isDragging: !1,
|
903
922
|
dragStartPos: null,
|
@@ -943,7 +962,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
943
962
|
if (!h.classList.contains("echo-drawing-layer-mask") && !h.classList.contains("echo-shape"))
|
944
963
|
return;
|
945
964
|
}
|
946
|
-
const u =
|
965
|
+
const u = me(c);
|
947
966
|
if (c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
|
948
967
|
const h = c.target.dataset.shapeId;
|
949
968
|
if (h && r.selectedShapeId === h) {
|
@@ -957,20 +976,20 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
957
976
|
i.setInitialClick(u);
|
958
977
|
},
|
959
978
|
handleMove: (c) => {
|
960
|
-
const u =
|
979
|
+
const u = me(c, { useClientCoords: !0 }), h = me(c);
|
961
980
|
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,
|
981
|
+
const m = h.x - r.dragStartPos.x, y = h.y - r.dragStartPos.y, E = r.shapes.map((S) => S.id === r.selectedShapeId ? {
|
963
982
|
...S,
|
964
983
|
points: S.points.map((C) => ({
|
965
984
|
x: C.x + m,
|
966
|
-
y: C.y +
|
985
|
+
y: C.y + y
|
967
986
|
}))
|
968
987
|
} : S);
|
969
988
|
o({ shapes: E }), i.startDrag(h);
|
970
989
|
return;
|
971
990
|
}
|
972
991
|
if (r.initialClickPos && !r.isDrawing) {
|
973
|
-
|
992
|
+
We(r.initialClickPos, h) >= Be && i.startDrawing(r.initialClickPos);
|
974
993
|
return;
|
975
994
|
}
|
976
995
|
r.isDrawing && i.updateDrawing(h);
|
@@ -981,8 +1000,8 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
981
1000
|
return;
|
982
1001
|
}
|
983
1002
|
if (r.initialClickPos && !r.isDrawing) {
|
984
|
-
const u =
|
985
|
-
if (
|
1003
|
+
const u = me(c);
|
1004
|
+
if (We(r.initialClickPos, u) < Be && c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
|
986
1005
|
const f = c.target.dataset.shapeId;
|
987
1006
|
f && o({ selectedShapeId: f });
|
988
1007
|
}
|
@@ -1027,15 +1046,15 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1027
1046
|
setState: o,
|
1028
1047
|
methods: i
|
1029
1048
|
};
|
1030
|
-
},
|
1049
|
+
}, sn = (e, n, t, r) => {
|
1031
1050
|
var h;
|
1032
1051
|
const a = (r == null ? void 0 : r.reduce(
|
1033
1052
|
(f, m) => (f[m.id] = m.defaultValue ?? (m.type === "checkbox" ? [] : ""), f),
|
1034
1053
|
{}
|
1035
|
-
)) || {}, o =
|
1054
|
+
)) || {}, o = Oe(n), i = (o == null ? void 0 : o.feedback.customInputValues) || {}, l = {
|
1036
1055
|
...a,
|
1037
1056
|
...i
|
1038
|
-
}, [s, c] =
|
1057
|
+
}, [s, c] = Me({
|
1039
1058
|
message: ((h = o == null ? void 0 : o.feedback) == null ? void 0 : h.message) || "",
|
1040
1059
|
screenshot: void 0,
|
1041
1060
|
isCapturing: !1,
|
@@ -1046,12 +1065,12 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1046
1065
|
return {
|
1047
1066
|
state: s,
|
1048
1067
|
setState: (f, m = !1) => {
|
1049
|
-
const
|
1050
|
-
!
|
1068
|
+
const y = "isCapturing" in f || "isMinimized" in f || m;
|
1069
|
+
!y && !s.hasUserInteracted && c({ hasUserInteracted: !0 }), c(f), (s.hasUserInteracted || y) && (t == null || t(f, m));
|
1051
1070
|
}
|
1052
1071
|
};
|
1053
|
-
},
|
1054
|
-
const [t, r] =
|
1072
|
+
}, ln = (e, n) => {
|
1073
|
+
const [t, r] = Me({
|
1055
1074
|
text: e.textConfig,
|
1056
1075
|
isOpen: !1,
|
1057
1076
|
primaryColor: e.primaryColor,
|
@@ -1065,7 +1084,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1065
1084
|
height: document.documentElement.scrollHeight
|
1066
1085
|
},
|
1067
1086
|
isStoredFeedbackOpen: !1,
|
1068
|
-
pagesCount:
|
1087
|
+
pagesCount: tt(),
|
1069
1088
|
welcomeMessageIsClosing: !1,
|
1070
1089
|
position: e.position,
|
1071
1090
|
customInputs: e.customInputs
|
@@ -1074,15 +1093,15 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1074
1093
|
state: t,
|
1075
1094
|
setState: r
|
1076
1095
|
};
|
1077
|
-
},
|
1096
|
+
}, Ue = (e) => {
|
1078
1097
|
var n;
|
1079
1098
|
return ((n = e.customInputs) == null ? void 0 : n.reduce(
|
1080
1099
|
(t, r) => (t[r.id] = r.defaultValue ?? (r.type === "checkbox" ? [] : ""), t),
|
1081
1100
|
{}
|
1082
1101
|
)) || {};
|
1083
|
-
},
|
1084
|
-
let n =
|
1085
|
-
const t =
|
1102
|
+
}, cn = (e) => {
|
1103
|
+
let n = Te();
|
1104
|
+
const t = ln(e), r = qt(t), a = Ft(t), o = sn(
|
1086
1105
|
e,
|
1087
1106
|
n,
|
1088
1107
|
(c, u) => {
|
@@ -1096,7 +1115,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1096
1115
|
);
|
1097
1116
|
},
|
1098
1117
|
e.customInputs
|
1099
|
-
), i =
|
1118
|
+
), i = an(e, n, (c, u) => {
|
1100
1119
|
r(
|
1101
1120
|
n,
|
1102
1121
|
{
|
@@ -1107,8 +1126,8 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1107
1126
|
);
|
1108
1127
|
}), l = (c) => {
|
1109
1128
|
n = c;
|
1110
|
-
const u =
|
1111
|
-
...
|
1129
|
+
const u = Oe(n), h = {
|
1130
|
+
...Ue(e),
|
1112
1131
|
...u == null ? void 0 : u.feedback.customInputValues
|
1113
1132
|
};
|
1114
1133
|
o.setState({
|
@@ -1119,7 +1138,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1119
1138
|
shapes: (u == null ? void 0 : u.drawing.shapes) || []
|
1120
1139
|
});
|
1121
1140
|
}, s = () => {
|
1122
|
-
|
1141
|
+
et(n);
|
1123
1142
|
const c = {
|
1124
1143
|
feedback: {
|
1125
1144
|
message: "",
|
@@ -1127,7 +1146,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1127
1146
|
isCapturing: !1,
|
1128
1147
|
isMinimized: !1,
|
1129
1148
|
hasUserInteracted: !1,
|
1130
|
-
customInputValues:
|
1149
|
+
customInputValues: Ue(e)
|
1131
1150
|
},
|
1132
1151
|
drawing: {
|
1133
1152
|
isDrawing: !1,
|
@@ -1169,27 +1188,27 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1169
1188
|
}
|
1170
1189
|
}
|
1171
1190
|
};
|
1172
|
-
},
|
1173
|
-
const n =
|
1191
|
+
}, st = ht(), dn = (e) => {
|
1192
|
+
const n = cn({
|
1174
1193
|
primaryColor: e.primaryColor,
|
1175
1194
|
onSubmit: e.onSubmit,
|
1176
1195
|
textConfig: e.textConfig,
|
1177
1196
|
position: e.position,
|
1178
1197
|
customInputs: e.customInputs
|
1179
1198
|
});
|
1180
|
-
return g(
|
1199
|
+
return g(st.Provider, {
|
1181
1200
|
value: n,
|
1182
1201
|
get children() {
|
1183
1202
|
return e.children;
|
1184
1203
|
}
|
1185
1204
|
});
|
1186
1205
|
}, $ = () => {
|
1187
|
-
const e =
|
1206
|
+
const e = gt(st);
|
1188
1207
|
if (!e)
|
1189
1208
|
throw new Error("useEchoStore must be used within EchoProvider");
|
1190
1209
|
return e;
|
1191
|
-
},
|
1192
|
-
const [n, t] =
|
1210
|
+
}, un = (e) => {
|
1211
|
+
const [n, t] = T({
|
1193
1212
|
width: document.documentElement.clientWidth,
|
1194
1213
|
height: document.documentElement.scrollHeight
|
1195
1214
|
}), r = () => {
|
@@ -1201,11 +1220,11 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1201
1220
|
}));
|
1202
1221
|
});
|
1203
1222
|
};
|
1204
|
-
return
|
1223
|
+
return A({
|
1205
1224
|
event: "resize",
|
1206
1225
|
callback: r,
|
1207
1226
|
onMount: r
|
1208
|
-
}),
|
1227
|
+
}), Ae({
|
1209
1228
|
target: document.documentElement,
|
1210
1229
|
options: {
|
1211
1230
|
childList: !0,
|
@@ -1214,13 +1233,13 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1214
1233
|
},
|
1215
1234
|
callback: r
|
1216
1235
|
}), n;
|
1217
|
-
},
|
1218
|
-
let n =
|
1236
|
+
}, hn = ({ onUrlChange: e }) => {
|
1237
|
+
let n = Te();
|
1219
1238
|
const t = () => {
|
1220
|
-
const r =
|
1239
|
+
const r = Te();
|
1221
1240
|
r !== n && (n = r, e(r));
|
1222
1241
|
};
|
1223
|
-
|
1242
|
+
A({ event: "popstate", callback: t }), A({ event: "pushstate", callback: t }), A({ event: "replacestate", callback: t }), Ae({
|
1224
1243
|
target: document.documentElement,
|
1225
1244
|
options: {
|
1226
1245
|
childList: !0,
|
@@ -1228,9 +1247,9 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1228
1247
|
},
|
1229
1248
|
callback: t
|
1230
1249
|
});
|
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
|
1233
|
-
const
|
1250
|
+
}, gn = `*,*:before,*:after{box-sizing:border-box}.echo-root{position:absolute;top:0;left:0;z-index:var(--z-root);isolation:isolate;pointer-events:none;--z-root: 999999;--z-launcher: 2;--z-overlay: 1;--z-drawing-toolbar: 3;--z-drawing-tooltip: 3;--z-shape-actions: 3;--z-notification: 2;--z-welcome-message: 2;--z-widget-button: 2;--z-feedback-form: 4;--primary-color: #000;--primary-text-color: #fff;--error-color: #f44336;--success-color: var(--primary-color);--text-dark: #1a1a1a;--text-medium: #333;--text-light: #666;--text-lighter: #999;--border-color: rgba(0, 0, 0, .1);--border-color-light: rgba(0, 0, 0, .05);--border-color-medium: rgba(0, 0, 0, .08);--background-color: #fff;--primary-color-lighter: color-mix(in srgb, var(--primary-color) 100%, white 40%);--primary-color-lightest: color-mix(in srgb, var(--primary-color) 7%, white 100%);--hover-color: color-mix(in srgb, var(--primary-color) 80%, #fff);--shadow-color-dark: rgba(0, 0, 0, .6);--shadow-color-light: rgba(255, 255, 255, .1);--shadow-color-medium: rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px;--shadow-md: 0 4px 10px;--shadow-lg: 0 10px 20px;--shadow-black-sm: var(--shadow-sm) rgba(0, 0, 0, .5);--shadow-black-md: var(--shadow-md) rgba(0, 0, 0, .5);--shadow-black-lg: var(--shadow-lg) rgba(0, 0, 0, .5);--shadow-black-lightened-sm: var(--shadow-sm) var(--shadow-color-medium);--shadow-black-lightened-md: var(--shadow-md) var(--shadow-color-medium);--shadow-black-lightened-lg: var(--shadow-lg) var(--shadow-color-medium);--shadow-primary-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color) 60%, transparent 80%);--shadow-primary-md: var(--shadow-md) color-mix(in srgb, var(--primary-color) 50%, transparent 80%);--shadow-primary-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color) 40%, transparent 80%);--shadow-primary-lighter-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color-lighter) 70%, transparent 80%);--shadow-primary-lighter-md: var(--shadow-md) color-mix(in srgb, var(--primary-color-lighter) 60%, transparent 80%);--shadow-primary-lighter-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color-lighter) 50%, transparent 80%);--shadow-primary-lightest-sm: var(--shadow-sm) color-mix(in srgb, var(--primary-color-lightest) 70%, transparent 80%);--shadow-primary-lightest-md: var(--shadow-md) color-mix(in srgb, var(--primary-color-lightest) 60%, transparent 80%);--shadow-primary-lightest-lg: var(--shadow-lg) color-mix(in srgb, var(--primary-color-lightest) 50%, transparent 80%);--shadow-combined-sm: var(--shadow-primary-sm), var(--shadow-black-lightened-sm);--shadow-combined-md: var(--shadow-primary-md), var(--shadow-black-lightened-md);--shadow-combined-lg: var(--shadow-primary-lg), var(--shadow-black-lightened-lg);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-xs: .8125rem;--font-sm: .875rem;--font-base: .9375rem;--font-md: 1rem;--font-lg: 1.125rem;--duration-fast: .1s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .4s;--duration-slowest: .6s;--ease-default: ease;--ease-in-out: ease-in-out;--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.16, 1, .3, 1)}.echo-stored-feedback{position:absolute;display:flex;flex-direction:column;bottom:calc(100% + var(--spacing-lg));right:0;width:320px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-black-lightened-lg);animation:slideUpFade var(--duration-base) var(--ease-smooth);z-index:calc(var(--z-widget-button) + 1);transform-origin:bottom right;transition:all var(--duration-base) var(--ease-smooth)}.echo-stored-feedback-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.echo-stored-feedback-header h3{margin:0;font-size:var(--font-md);font-weight:600}.echo-stored-feedback-list{max-height:400px;overflow-y:auto;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-stored-feedback-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color-light);transition:all var(--duration-base) var(--ease-smooth);background:#fff;position:relative}.echo-stored-feedback-item:hover{background:var(--primary-color-lightest)}.echo-stored-feedback-item-current{background:var(--primary-color-lightest);padding-left:calc(var(--spacing-lg) - 3px)}.echo-stored-feedback-item-current:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary-color);border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.echo-stored-feedback-item:last-child{border-bottom:none;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-stored-feedback-item:last-child.echo-stored-feedback-item-current:before{border-bottom-left-radius:var(--radius-lg)}.echo-stored-feedback-content{flex:1;min-width:0;margin-right:var(--spacing-md)}.echo-stored-feedback-path{font-size:var(--font-sm);font-weight:500;color:var(--text-medium);margin-bottom:var(--spacing-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.echo-stored-feedback-preview{font-size:var(--font-xs);color:var(--text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.echo-stored-feedback-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.echo-stored-feedback-link{color:var(--text-light)}.echo-stored-feedback-link:hover{color:var(--primary-color)}.echo-stored-feedback-delete{color:var(--text-light);font-size:var(--font-xs);padding:var(--spacing-xs) var(--spacing-md)}.echo-stored-feedback-delete:hover{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 10%,transparent)}.echo-stored-feedback-empty{padding:var(--spacing-3xl) var(--spacing-lg);text-align:center;color:var(--text-light);font-size:var(--font-sm);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.echo-launcher{position:fixed;z-index:var(--z-launcher);bottom:var(--spacing-xl);right:var(--spacing-xl);pointer-events:none}.echo-overlay{position:absolute;top:0;left:0;margin:0;padding:0;max-width:none;max-height:none;border:3px solid var(--primary-color);background:transparent}.echo-overlay::backdrop{background:transparent}[data-hidden=true],[data-hidden=false]{transition:opacity var(--duration-slow) var(--ease-in-out),visibility var(--duration-slow) var(--ease-in-out)}[data-hidden=true]{opacity:0;visibility:hidden;pointer-events:none}[data-hidden=false]{opacity:1;visibility:visible;pointer-events:auto;user-select:none;-webkit-user-select:none}.echo-launcher-button{z-index:var(--z-widget-button);position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;background:radial-gradient(circle at 40% 40%,var(--primary-color) 0%,var(--primary-color-lighter) 65%,var(--primary-color-lighter) 100%);border:none;border-radius:var(--radius-full);width:48px;height:48px;box-shadow:var(--shadow-black-md);transition:all var(--duration-slow) var(--ease-default),transform var(--duration-slower) var(--ease-smooth),opacity var(--duration-slow) var(--ease-in-out);will-change:transform}.echo-launcher-button:hover{box-shadow:var(--shadow-black-lg);transform:translateY(-2px)}.echo-launcher-button:active{transform:scale(.95)}.echo-launcher-button-count{position:absolute;top:calc(-1 * var(--spacing-xs));left:calc(-1 * var(--spacing-xs));background:var(--primary-color-lightest);color:var(--primary-color-lighter);border-radius:var(--radius-md);min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-black-sm);padding:0 var(--spacing-xs);font-weight:600;pointer-events:auto;cursor:pointer;transform-origin:center center;animation:popIn var(--duration-slow) var(--ease-bounce);transition:transform var(--duration-base) var(--ease-default)}.echo-launcher-button-count:hover{transform:scale(1.1)}.echo-feedback{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);width:min(calc(100vw - var(--spacing-xl) * 2),24rem);max-height:calc(100vh - var(--spacing-xl) * 2);z-index:var(--z-feedback-form);box-shadow:var(--shadow-black-lightened-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);background:var(--background-color);border-radius:var(--radius-lg);overflow-y:auto;will-change:transform;padding:0 var(--spacing-lg)}.echo-feedback[data-minimized=true]{transition:transform .4s var(--ease-default),box-shadow .4s var(--ease-default);transform:translate(calc(100% - 48px),calc(100% - 48px));box-shadow:0 8px 16px #0003}.echo-feedback[data-minimized=true]:hover{cursor:pointer;transform:translate(calc(100% - 48px),calc(100% - 48px)) rotate(-2deg) scale(1.1);box-shadow:0 12px 24px #00000040}.echo-feedback[data-minimized=false]{transition:transform .4s var(--ease-smooth),box-shadow .4s var(--ease-smooth);transform:translate(0)}.echo-feedback[style*=transition]{pointer-events:none}.echo-feedback-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.echo-feedback-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0;background-color:var(--background-color);position:sticky;top:0;z-index:1}.echo-feedback-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0;background-color:var(--background-color);position:sticky;bottom:0;z-index:1}.echo-feedback-title{font-size:var(--font-lg);font-weight:600;color:var(--text-dark);margin:0}.echo-feedback-header-actions{display:flex;gap:var(--spacing-xs);margin:calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) 0}[data-hide-when-drawing=true]{opacity:1;visibility:visible;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}[data-drawing=true] [data-hide-when-drawing=true]{opacity:0;visibility:hidden;pointer-events:none;user-select:none;-webkit-user-select:none}.echo-drawing-layer,.echo-drawing-layer-container{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;user-select:none;-webkit-user-select:none}.echo-drawing-layer-container svg{pointer-events:auto}.echo-drawing-toolbar{position:fixed;top:var(--spacing-xl);left:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:var(--z-drawing-toolbar);opacity:1;transition:opacity var(--duration-base) var(--ease-default)}.echo-drawing-toolbar-button{width:50px;height:50px;border-radius:var(--radius-full);border:2px solid #ddd;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:all var(--duration-base) var(--ease-default);box-shadow:var(--shadow-black-sm);position:relative}.echo-drawing-toolbar-icon{width:25px;height:25px;color:var(--primary-color);transition:color var(--duration-base) var(--ease-default)}.echo-drawing-toolbar-button:hover{transform:scale(1.05);border-color:var(--hover-color)}.echo-drawing-toolbar-button[data-selected=true]{background:var(--primary-color-lightest);border-color:var(--primary-color)}.echo-color-selector{position:relative}.echo-color-selector:hover .echo-drawing-toolbar-button{border-top-right-radius:0;border-bottom-right-radius:0;transform:scale(1.05);border-right-color:transparent;background:rgba(var(--primary-color),.9);border-color:var(--hover-color)}.echo-color-swatch-wrapper{position:absolute;left:calc(100% - 2px);top:50%;transform:translateY(-50%);height:52.5px;padding-right:var(--spacing-sm);display:none}.echo-color-selector:hover .echo-color-swatch-wrapper{display:block}.echo-color-swatch{height:100%;background:#fff;border-radius:var(--radius-md);border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--spacing-sm);padding-left:var(--spacing-md);box-shadow:var(--shadow-black-sm);display:flex;align-items:center;gap:var(--spacing-sm);border:2px solid #ddd;border-left:none}.echo-color-selector:hover .echo-color-swatch{border-color:var(--hover-color)}.echo-color-swatch-button{width:24px;height:24px;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;padding:0;transition:transform var(--duration-base) var(--ease-default)}.echo-color-swatch-button:hover{transform:scale(1.1)}.echo-color-swatch-button[data-selected=true]{border-color:var(--primary-color)}.echo-drawing-tooltip{display:flex;text-wrap:nowrap;position:fixed;background:#fff;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-combined-sm);font-size:var(--font-sm);color:var(--primary-color);z-index:var(--z-drawing-tooltip);pointer-events:none;animation:slideDownFade var(--duration-slow) var(--ease-default);border:1px solid var(--primary-color);background:var(--primary-color-lightest)}.echo-shape-actions{position:fixed;z-index:var(--z-shape-actions);display:flex;gap:var(--spacing-xs);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-combined-md);transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-sm)));animation:popInSlideDown var(--duration-fast) var(--ease-default);cursor:default;pointer-events:auto;padding:var(--spacing-xs);border:1px solid var(--primary-color)}.echo-shape-actions-divider{width:1px;margin:var(--spacing-sm) 0;background:var(--border-color);pointer-events:none}.echo-shape-actions[hidden]{display:none}.echo-notification{position:absolute;z-index:var(--z-notification);bottom:70px;right:0;width:300px;padding:var(--spacing-2xl);border-radius:var(--radius-lg);font-size:var(--font-md);font-weight:500;box-shadow:var(--shadow-combined-md);background:#fff;border:1px solid var(--primary-color);transform-origin:bottom right;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl);opacity:1;pointer-events:auto;transition:all var(--duration-base) var(--ease-smooth)}.echo-notification:not([data-empty=true]){animation:popInSlideUp var(--duration-slower) var(--ease-spring)}.echo-notification[data-empty=true]{opacity:0;pointer-events:none;transform:translateY(var(--spacing-sm)) scale(.95);transition:none}.echo-notification-hide{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:24px;height:24px;padding:var(--spacing-xs);border:none;background:transparent;color:var(--text-light);opacity:.7;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-bounce);flex-shrink:0}.echo-notification-hide:hover{opacity:1;background:var(--primary-color-lightest);transform:scale(1.1);color:var(--primary-color)}.echo-notification-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;transform:scale(1.5);background:var(--primary-color-lightest);padding:var(--spacing-md);border-radius:var(--radius-full);margin-top:var(--spacing-md);transition:all var(--duration-base) var(--ease-bounce)}.echo-notification[data-type=success]{border-color:var(--success-color)}.echo-notification[data-type=success] .echo-notification-icon{color:var(--success-color)}.echo-notification[data-type=error]{border-color:var(--error-color)}.echo-notification[data-type=error] .echo-notification-icon{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 10%,white)}.echo-notification-content{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 12px}.echo-notification-title{font-size:1rem;font-weight:600;color:#1a1a1a}.echo-notification-message{font-size:.875rem;font-weight:400;color:#666;line-height:1.4;max-width:100%}@media (max-width: 768px){.echo-notification{right:0;width:calc(100vw - 40px);height:auto;min-height:180px;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:.9375rem;padding:20px;gap:16px;bottom:calc(100% + 20px)}.echo-notification-icon{transform:scale(1.3);padding:10px;margin-top:8px}.echo-notification-title{font-size:.9375rem}.echo-notification-message{font-size:.8125rem}}.echo-welcome-message{display:flex;align-items:center;gap:var(--spacing-xs);position:fixed;z-index:var(--z-welcome-message);background:var(--primary-color-lightest);border:1px solid var(--primary-color);color:var(--primary-color);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);font-size:var(--font-sm);font-weight:500;box-shadow:var(--shadow-combined-md);opacity:1;transform:translateY(0) scale(1);transition:all var(--duration-slow) var(--ease-smooth);animation:bounceIn var(--duration-slowest) var(--ease-bounce);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;cursor:pointer;text-align:left}.echo-welcome-message:hover{transform:translateY(-2px) scale(1.02);background:var(--primary-color-lightest);box-shadow:var(--shadow-combined-lg)}.echo-welcome-message:active{transform:translateY(0) scale(.98)}.echo-welcome-message-close{width:20px;height:20px;padding:2px;margin-left:var(--spacing-xs);border:none;background:transparent;opacity:.7;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-default)}.echo-welcome-message-close:hover{opacity:1;background:var(--shadow-color-light);transform:scale(1.1)}.echo-welcome-message-close:active{transform:scale(.95)}.echo-welcome-message:after{content:"";position:absolute;bottom:-4px;right:17px;width:16px;height:16px;background:inherit;transform:rotate(45deg);border-radius:var(--radius-xs);border:1px solid var(--primary-color);z-index:-2}.echo-welcome-message:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--primary-color-lightest);z-index:-1;border-radius:var(--radius-lg)}.echo-welcome-message-pulsar{content:"";display:inline-block;width:6px;height:6px;background:var(--primary-color);border-radius:50%;margin-right:8px;animation:pulse 1.5s var(--ease-in-out) infinite}.echo-button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all var(--duration-base) var(--ease-default);line-height:1}.echo-button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.echo-button-primary{background:var(--primary-color);color:#fff}.echo-button-primary:hover{background:var(--hover-color);transform:translateY(-1px)}.echo-button-primary:active{transform:translateY(0)}.echo-button-secondary{background:transparent;color:var(--text-light)}.echo-button-secondary:hover{background-color:var(--primary-color-lightest);color:var(--primary-color)}.echo-button-xs{padding:var(--spacing-xs);font-size:var(--font-xs)}.echo-button-sm{padding:var(--spacing-xs);font-size:var(--font-sm)}.echo-button-md{padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-base)}.echo-button-lg{padding:var(--spacing-md) var(--spacing-3xl);font-size:var(--font-md)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(var(--spacing-sm))}to{opacity:1;transform:translateY(0)}}@keyframes slideDownFade{0%{opacity:0;transform:translateY(calc(-1 * var(--spacing-sm)))}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes popInSlideUp{0%{opacity:0;transform:translateY(var(--spacing-sm)) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes popInSlideDown{0%{opacity:0;transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-xs))) scale(.95)}to{opacity:1;transform:translate(-50%,-100%) translateY(calc(-1 * var(--spacing-sm))) scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:translateY(var(--spacing-xl)) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}to{transform:scale(1);opacity:1}}.echo-inputs{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.echo-input{display:flex;flex-direction:column;gap:.5rem}.echo-input-label{font-size:.875rem;font-weight:500;color:var(--text-color)}.echo-input-required{color:#dc2626;margin-left:.25rem}.echo-input-field{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default)}.echo-input-field:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-input-field:disabled{opacity:.5}.echo-input-field::placeholder{color:var(--text-lighter)}textarea.echo-input-field{resize:vertical;max-width:100%;max-height:20rem;box-sizing:border-box}select.echo-input-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding-right:2.5rem;cursor:pointer}.echo-input-options-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xl);border:none;margin:0;padding:0}.echo-input-options{display:flex;flex-direction:column;gap:var(--spacing-sm);border:none;margin:0;padding:0}.echo-input-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--duration-base) var(--ease-default)}.echo-input-option:hover{background:var(--primary-color-lightest)}.echo-input-option input[type=radio],.echo-input-option input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;width:18px;height:18px;border:1px solid var(--border-color);background-color:#fff;display:grid;place-content:center;cursor:pointer;transition:all var(--duration-base) var(--ease-default)}.echo-input-option input[type=radio]{border-radius:50%}.echo-input-option input[type=radio]:before{content:"";width:10px;height:10px;border-radius:50%;transform:scale(0);transition:transform var(--duration-base) var(--ease-default);background-color:var(--primary-color)}.echo-input-option input[type=radio]:checked:before{transform:scale(1)}.echo-input-option input[type=checkbox]{border-radius:var(--radius-sm)}.echo-input-option input[type=checkbox]:before{content:"";width:12px;height:12px;transform:scale(0);transition:all var(--duration-base) var(--ease-default);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.echo-input-option input[type=checkbox]:checked{background-color:var(--primary-color-lighter);border-color:var(--primary-color-lighter)}.echo-input-option input[type=checkbox]:checked:before{transform:scale(1)}.echo-input-option input[type=radio]:hover,.echo-input-option input[type=checkbox]:hover{border-color:var(--primary-color-lighter)}.echo-input-option input[type=radio]:focus,.echo-input-option input[type=checkbox]:focus{outline:none;border-color:var(--primary-color-lighter);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-input-option input[type=radio]:checked,.echo-input-option input[type=checkbox]:checked{border-color:var(--primary-color-lighter)}.echo-input-option span{font-size:var(--font-sm);color:var(--text-medium);-webkit-user-select:none;user-select:none}.echo-select{position:relative;width:100%}.echo-select-trigger{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;color:var(--text-medium);font-size:var(--font-sm);transition:all var(--duration-base) var(--ease-default);cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:.5rem;outline:none}.echo-select-trigger[data-placeholder=true]{color:var(--text-lighter)}.echo-select-trigger:hover{border-color:var(--border-color-medium)}.echo-select-trigger:focus,.echo-select-trigger[data-open=true]{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.echo-select-arrow{flex-shrink:0;transition:transform var(--duration-base) var(--ease-default)}.echo-select-trigger[data-open=true] .echo-select-arrow{transform:rotate(180deg)}.echo-select-dropdown{position:absolute;top:calc(100% + .25rem);left:0;right:0;background:#fff;border:1px solid var(--border-color-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-black-lightened-md);max-height:15rem;overflow-y:auto;z-index:10;animation:slideDownFade var(--duration-base) var(--ease-default);padding:var(--spacing-xs)}.echo-select-option{width:100%;padding:.5rem .75rem;background:none;border:none;text-align:left;color:var(--text-medium);font-size:var(--font-sm);cursor:pointer;transition:all var(--duration-base) var(--ease-default);outline:none;border-radius:var(--radius-sm)}.echo-select-option:hover{background:var(--primary-color-lightest)}.echo-select-option:focus{background:var(--primary-color-lightest);box-shadow:0 0 0 1px var(--primary-color) inset}.echo-select-option[data-selected=true]{background:var(--primary-color-lightest);color:var(--primary-color);font-weight:500}select.echo-input-field{display:none}.visually-hidden{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}`;
|
1251
|
+
var fn = /* @__PURE__ */ w('<div class=echo-color-selector role=group aria-label="Color Selection"><button class=echo-drawing-toolbar-button title="Current Color"></button><div class=echo-color-swatch-wrapper role=listbox aria-label="Available Colors"><div class=echo-color-swatch>'), mn = /* @__PURE__ */ w("<button class=echo-color-swatch-button role=option>");
|
1252
|
+
const vn = [
|
1234
1253
|
"#ff6b6b",
|
1235
1254
|
// Soft Red
|
1236
1255
|
"#69db7c",
|
@@ -1247,7 +1266,7 @@ const mn = [
|
|
1247
1266
|
// Soft Orange
|
1248
1267
|
"#e599f7"
|
1249
1268
|
// Soft Pink
|
1250
|
-
],
|
1269
|
+
], bn = {
|
1251
1270
|
"#ff6b6b": "Soft Red",
|
1252
1271
|
"#69db7c": "Soft Green",
|
1253
1272
|
"#74c0fc": "Soft Blue",
|
@@ -1256,20 +1275,20 @@ const mn = [
|
|
1256
1275
|
"#66d9e8": "Soft Cyan",
|
1257
1276
|
"#ffa94d": "Soft Orange",
|
1258
1277
|
"#e599f7": "Soft Pink"
|
1259
|
-
},
|
1278
|
+
}, Ee = (e) => bn[e] || "Primary", wn = () => {
|
1260
1279
|
const e = $();
|
1261
1280
|
return (() => {
|
1262
|
-
var n =
|
1263
|
-
return d(t, "aria-expanded", !1), v(a, g(
|
1281
|
+
var n = fn(), t = n.firstChild, r = t.nextSibling, a = r.firstChild;
|
1282
|
+
return d(t, "aria-expanded", !1), v(a, g(B, {
|
1264
1283
|
get each() {
|
1265
|
-
return [e.widget.state.primaryColor, ...
|
1284
|
+
return [e.widget.state.primaryColor, ...vn];
|
1266
1285
|
},
|
1267
1286
|
children: (o) => (() => {
|
1268
|
-
var i =
|
1287
|
+
var i = mn();
|
1269
1288
|
return i.$$click = () => e.drawing.setState({
|
1270
1289
|
selectedColor: o
|
1271
1290
|
}), o != null ? i.style.setProperty("background-color", o) : i.style.removeProperty("background-color"), b((l) => {
|
1272
|
-
var s = `Select ${
|
1291
|
+
var s = `Select ${Ee(o)} color`, c = e.drawing.state.selectedColor === o, u = `${Ee(o)} color`, h = e.drawing.state.selectedColor === o;
|
1273
1292
|
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;
|
1274
1293
|
}, {
|
1275
1294
|
e: void 0,
|
@@ -1279,7 +1298,7 @@ const mn = [
|
|
1279
1298
|
}), i;
|
1280
1299
|
})()
|
1281
1300
|
})), b((o) => {
|
1282
|
-
var i = `Current color: ${
|
1301
|
+
var i = `Current color: ${Ee(e.drawing.state.selectedColor)}`, l = e.drawing.state.selectedColor;
|
1283
1302
|
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;
|
1284
1303
|
}, {
|
1285
1304
|
e: void 0,
|
@@ -1287,10 +1306,10 @@ const mn = [
|
|
1287
1306
|
}), n;
|
1288
1307
|
})();
|
1289
1308
|
};
|
1290
|
-
|
1291
|
-
var
|
1309
|
+
I(["click"]);
|
1310
|
+
var yn = /* @__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">');
|
1292
1311
|
const pn = (e) => (() => {
|
1293
|
-
var n =
|
1312
|
+
var n = yn();
|
1294
1313
|
return b((t) => {
|
1295
1314
|
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;
|
1296
1315
|
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;
|
@@ -1304,9 +1323,9 @@ const pn = (e) => (() => {
|
|
1304
1323
|
s: void 0
|
1305
1324
|
}), n;
|
1306
1325
|
})();
|
1307
|
-
var
|
1308
|
-
const
|
1309
|
-
var n =
|
1326
|
+
var xn = /* @__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">');
|
1327
|
+
const kn = (e) => (() => {
|
1328
|
+
var n = xn(), t = n.firstChild;
|
1310
1329
|
return b((r) => {
|
1311
1330
|
var a = e.size ?? 24, o = e.size ?? 24, i = e.class, l = e.style, s = e.fill ?? "currentColor";
|
1312
1331
|
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;
|
@@ -1318,9 +1337,9 @@ const xn = (e) => (() => {
|
|
1318
1337
|
i: void 0
|
1319
1338
|
}), n;
|
1320
1339
|
})();
|
1321
|
-
var
|
1322
|
-
const
|
1323
|
-
var n =
|
1340
|
+
var Sn = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2">');
|
1341
|
+
const Cn = (e) => (() => {
|
1342
|
+
var n = Sn();
|
1324
1343
|
return b((t) => {
|
1325
1344
|
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;
|
1326
1345
|
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;
|
@@ -1334,9 +1353,9 @@ const Sn = (e) => (() => {
|
|
1334
1353
|
s: void 0
|
1335
1354
|
}), n;
|
1336
1355
|
})();
|
1337
|
-
var
|
1338
|
-
const
|
1339
|
-
var n =
|
1356
|
+
var $n = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z">');
|
1357
|
+
const En = (e) => (() => {
|
1358
|
+
var n = $n();
|
1340
1359
|
return b((t) => {
|
1341
1360
|
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;
|
1342
1361
|
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;
|
@@ -1350,9 +1369,9 @@ const $n = (e) => (() => {
|
|
1350
1369
|
s: void 0
|
1351
1370
|
}), n;
|
1352
1371
|
})();
|
1353
|
-
var
|
1354
|
-
const
|
1355
|
-
var n =
|
1372
|
+
var Pn = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1=10 x2=10 y1=11 y2=17></line><line x1=14 x2=14 y1=11 y2=17>');
|
1373
|
+
const lt = (e) => (() => {
|
1374
|
+
var n = Pn();
|
1356
1375
|
return b((t) => {
|
1357
1376
|
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;
|
1358
1377
|
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;
|
@@ -1366,9 +1385,9 @@ const it = (e) => (() => {
|
|
1366
1385
|
s: void 0
|
1367
1386
|
}), n;
|
1368
1387
|
})();
|
1369
|
-
var
|
1370
|
-
const
|
1371
|
-
var n =
|
1388
|
+
var zn = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><circle cx=12 cy=12 r=10></circle><path d="m9 12 2 2 4-4">');
|
1389
|
+
const Tn = (e) => (() => {
|
1390
|
+
var n = zn();
|
1372
1391
|
return b((t) => {
|
1373
1392
|
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;
|
1374
1393
|
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;
|
@@ -1382,9 +1401,9 @@ const zn = (e) => (() => {
|
|
1382
1401
|
s: void 0
|
1383
1402
|
}), n;
|
1384
1403
|
})();
|
1385
|
-
var
|
1386
|
-
const
|
1387
|
-
var n =
|
1404
|
+
var In = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><circle cx=12 cy=12 r=10></circle><path d="m15 9-6 6"></path><path d="m9 9 6 6">');
|
1405
|
+
const On = (e) => (() => {
|
1406
|
+
var n = In();
|
1388
1407
|
return b((t) => {
|
1389
1408
|
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;
|
1390
1409
|
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;
|
@@ -1398,9 +1417,9 @@ const In = (e) => (() => {
|
|
1398
1417
|
s: void 0
|
1399
1418
|
}), n;
|
1400
1419
|
})();
|
1401
|
-
var
|
1402
|
-
const
|
1403
|
-
var n =
|
1420
|
+
var Mn = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M18 6 6 18"></path><path d="m6 6 12 12">');
|
1421
|
+
const Se = (e) => (() => {
|
1422
|
+
var n = Mn();
|
1404
1423
|
return b((t) => {
|
1405
1424
|
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;
|
1406
1425
|
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;
|
@@ -1414,20 +1433,20 @@ const xe = (e) => (() => {
|
|
1414
1433
|
s: void 0
|
1415
1434
|
}), n;
|
1416
1435
|
})();
|
1417
|
-
var
|
1418
|
-
const
|
1419
|
-
rectangle:
|
1420
|
-
path:
|
1421
|
-
},
|
1422
|
-
const e = $(), n = Object.values(
|
1436
|
+
var An = /* @__PURE__ */ w('<div class=echo-drawing-toolbar data-hide-when-drawing=true role=toolbar aria-label="Drawing Tools"><button class=echo-drawing-toolbar-button title="Clear drawings"aria-label="Clear all drawings"role=button>'), Dn = /* @__PURE__ */ w("<button class=echo-drawing-toolbar-button role=button>");
|
1437
|
+
const Fn = {
|
1438
|
+
rectangle: Cn,
|
1439
|
+
path: En
|
1440
|
+
}, Ln = () => {
|
1441
|
+
const e = $(), n = Object.values(V);
|
1423
1442
|
return (() => {
|
1424
|
-
var t =
|
1425
|
-
return v(t, g(
|
1443
|
+
var t = An(), r = t.firstChild;
|
1444
|
+
return v(t, g(B, {
|
1426
1445
|
each: n,
|
1427
1446
|
children: (a) => {
|
1428
|
-
const o =
|
1447
|
+
const o = Fn[a.id];
|
1429
1448
|
return (() => {
|
1430
|
-
var i =
|
1449
|
+
var i = Dn();
|
1431
1450
|
return i.$$click = () => e.drawing.setState({
|
1432
1451
|
selectedTool: a.id
|
1433
1452
|
}), v(i, g(o, {
|
@@ -1444,24 +1463,24 @@ const Dn = {
|
|
1444
1463
|
}), i;
|
1445
1464
|
})();
|
1446
1465
|
}
|
1447
|
-
}), r), v(t, g(
|
1466
|
+
}), r), v(t, g(wn, {}), r), r.$$click = () => e.drawing.setState({
|
1448
1467
|
shapes: []
|
1449
|
-
}, !0), v(r, g(
|
1468
|
+
}, !0), v(r, g(lt, {
|
1450
1469
|
class: "echo-drawing-toolbar-icon",
|
1451
1470
|
"aria-hidden": "true"
|
1452
1471
|
})), t;
|
1453
1472
|
})();
|
1454
1473
|
};
|
1455
|
-
|
1456
|
-
var
|
1474
|
+
I(["click"]);
|
1475
|
+
var Nn = /* @__PURE__ */ w("<div class=echo-drawing-tooltip data-hide-when-drawing=true>");
|
1457
1476
|
const jn = () => {
|
1458
|
-
const e = $(), n = k(() => e.drawing.state.showTooltip && e.drawing.state.mousePosition.y && e.drawing.state.mousePosition.x && e.widget.state.isOpen && !
|
1477
|
+
const e = $(), n = k(() => e.drawing.state.showTooltip && e.drawing.state.mousePosition.y && e.drawing.state.mousePosition.x && e.widget.state.isOpen && !Gt());
|
1459
1478
|
return g(D, {
|
1460
1479
|
get when() {
|
1461
1480
|
return n();
|
1462
1481
|
},
|
1463
1482
|
get children() {
|
1464
|
-
var t =
|
1483
|
+
var t = Nn();
|
1465
1484
|
return v(t, () => e.widget.state.text.drawingTooltip.text), b((r) => {
|
1466
1485
|
var a = `${e.drawing.state.mousePosition.y + 20}px`, o = `${e.drawing.state.mousePosition.x + 10}px`;
|
1467
1486
|
return a !== r.e && ((r.e = a) != null ? t.style.setProperty("top", a) : t.style.removeProperty("top")), o !== r.t && ((r.t = o) != null ? t.style.setProperty("left", o) : t.style.removeProperty("left")), r;
|
@@ -1472,21 +1491,21 @@ const jn = () => {
|
|
1472
1491
|
}
|
1473
1492
|
});
|
1474
1493
|
};
|
1475
|
-
var
|
1476
|
-
const
|
1494
|
+
var qn = /* @__PURE__ */ w("<button>");
|
1495
|
+
const W = (e) => {
|
1477
1496
|
const n = () => e.variant || "primary", t = () => e.size || "md";
|
1478
1497
|
return (() => {
|
1479
|
-
var r =
|
1480
|
-
return
|
1498
|
+
var r = qn();
|
1499
|
+
return Pt(r, ie(e, {
|
1481
1500
|
get class() {
|
1482
1501
|
return `echo-button echo-button-${n()} echo-button-${t()} ${e.class}`;
|
1483
1502
|
}
|
1484
1503
|
}), !1), r;
|
1485
1504
|
})();
|
1486
1505
|
};
|
1487
|
-
var
|
1506
|
+
var Rn = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"stroke-linecap=round stroke-linejoin=round><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1=10 y1=14 x2=21 y2=3>');
|
1488
1507
|
const Vn = (e) => (() => {
|
1489
|
-
var n =
|
1508
|
+
var n = Rn();
|
1490
1509
|
return b((t) => {
|
1491
1510
|
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;
|
1492
1511
|
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;
|
@@ -1500,11 +1519,11 @@ const Vn = (e) => (() => {
|
|
1500
1519
|
s: void 0
|
1501
1520
|
}), n;
|
1502
1521
|
})();
|
1503
|
-
var
|
1504
|
-
const
|
1522
|
+
var Wn = /* @__PURE__ */ w("<div class=echo-stored-feedback-empty>No unsubmitted feedback"), Bn = /* @__PURE__ */ w("<div class=echo-stored-feedback><div class=echo-stored-feedback-header><h3>Unsubmitted Feedback</h3></div><div class=echo-stored-feedback-list>"), _n = /* @__PURE__ */ w("<div><div class=echo-stored-feedback-content><div class=echo-stored-feedback-path></div><div class=echo-stored-feedback-preview></div></div><div class=echo-stored-feedback-actions>");
|
1523
|
+
const Un = () => {
|
1505
1524
|
const e = $();
|
1506
1525
|
let n;
|
1507
|
-
const [t, r] =
|
1526
|
+
const [t, r] = T(Ce()), [a, o] = T(window.location.pathname), i = (m) => {
|
1508
1527
|
m.key === "Escape" && e.widget.state.isStoredFeedbackOpen && e.widget.setState({
|
1509
1528
|
isStoredFeedbackOpen: !1
|
1510
1529
|
});
|
@@ -1514,20 +1533,20 @@ const Hn = () => {
|
|
1514
1533
|
isStoredFeedbackOpen: !1
|
1515
1534
|
});
|
1516
1535
|
}, s = () => {
|
1517
|
-
const m =
|
1536
|
+
const m = Ce();
|
1518
1537
|
r(m), e.widget.setState({
|
1519
1538
|
pagesCount: m.length
|
1520
1539
|
});
|
1521
1540
|
}, c = () => {
|
1522
1541
|
o(window.location.pathname);
|
1523
1542
|
};
|
1524
|
-
|
1543
|
+
A({
|
1525
1544
|
event: "echo-storage-change",
|
1526
1545
|
callback: s
|
1527
|
-
}),
|
1546
|
+
}), A({
|
1528
1547
|
event: "popstate",
|
1529
1548
|
callback: c
|
1530
|
-
}),
|
1549
|
+
}), Ae({
|
1531
1550
|
target: document.documentElement,
|
1532
1551
|
options: {
|
1533
1552
|
childList: !0,
|
@@ -1536,59 +1555,59 @@ const Hn = () => {
|
|
1536
1555
|
callback: () => {
|
1537
1556
|
o(window.location.pathname);
|
1538
1557
|
}
|
1539
|
-
}),
|
1558
|
+
}), A({
|
1540
1559
|
event: "keydown",
|
1541
1560
|
callback: i
|
1542
|
-
}),
|
1561
|
+
}), A({
|
1543
1562
|
event: "click",
|
1544
1563
|
callback: l
|
1545
1564
|
});
|
1546
|
-
const u = (m,
|
1547
|
-
const E =
|
1565
|
+
const u = (m, y) => {
|
1566
|
+
const E = y ? `${m}${y}` : m;
|
1548
1567
|
window.location.href = E, e.widget.setState({
|
1549
1568
|
isStoredFeedbackOpen: !1
|
1550
1569
|
});
|
1551
1570
|
}, h = (m) => {
|
1552
|
-
a() === m && e.methods.reset(),
|
1553
|
-
const
|
1554
|
-
r(
|
1555
|
-
pagesCount:
|
1571
|
+
a() === m && e.methods.reset(), et(m);
|
1572
|
+
const y = Ce();
|
1573
|
+
r(y), e.widget.setState({
|
1574
|
+
pagesCount: y.length
|
1556
1575
|
});
|
1557
1576
|
}, f = (m) => {
|
1558
1577
|
if (m === "/") return "/";
|
1559
|
-
const
|
1560
|
-
return
|
1578
|
+
const y = m.split("/");
|
1579
|
+
return y.length <= 4 ? m : `/${y[1]}/.../${y[y.length - 1]}`;
|
1561
1580
|
};
|
1562
1581
|
return g(D, {
|
1563
1582
|
get when() {
|
1564
1583
|
return e.widget.state.isStoredFeedbackOpen;
|
1565
1584
|
},
|
1566
1585
|
get children() {
|
1567
|
-
var m =
|
1568
|
-
|
1569
|
-
var E =
|
1570
|
-
return typeof S == "function" ?
|
1586
|
+
var m = Bn(), y = m.firstChild;
|
1587
|
+
y.firstChild;
|
1588
|
+
var E = y.nextSibling, S = n;
|
1589
|
+
return typeof S == "function" ? R(S, m) : n = m, v(y, g(W, {
|
1571
1590
|
variant: "secondary",
|
1572
1591
|
size: "sm",
|
1573
1592
|
onClick: () => e.widget.setState({
|
1574
1593
|
isStoredFeedbackOpen: !1
|
1575
1594
|
}),
|
1576
1595
|
get children() {
|
1577
|
-
return g(
|
1596
|
+
return g(Se, {
|
1578
1597
|
size: 20
|
1579
1598
|
});
|
1580
1599
|
}
|
1581
|
-
}), null), v(E, g(
|
1600
|
+
}), null), v(E, g(B, {
|
1582
1601
|
get each() {
|
1583
1602
|
return t();
|
1584
1603
|
},
|
1585
1604
|
children: (C) => {
|
1586
|
-
const
|
1605
|
+
const p = k(() => C.path === a());
|
1587
1606
|
return (() => {
|
1588
|
-
var P =
|
1589
|
-
return v(x, () => f(C.path)), v(
|
1590
|
-
var
|
1591
|
-
return () =>
|
1607
|
+
var P = _n(), z = P.firstChild, x = z.firstChild, _ = x.nextSibling, q = z.nextSibling;
|
1608
|
+
return v(x, () => f(C.path)), v(_, () => C.state.feedback.message), v(q, (() => {
|
1609
|
+
var O = k(() => !p());
|
1610
|
+
return () => O() && g(W, {
|
1592
1611
|
class: "echo-stored-feedback-link",
|
1593
1612
|
variant: "secondary",
|
1594
1613
|
size: "sm",
|
@@ -1597,15 +1616,15 @@ const Hn = () => {
|
|
1597
1616
|
return g(Vn, {});
|
1598
1617
|
}
|
1599
1618
|
});
|
1600
|
-
})(), null), v(q, g(
|
1619
|
+
})(), null), v(q, g(W, {
|
1601
1620
|
class: "echo-stored-feedback-delete",
|
1602
1621
|
variant: "secondary",
|
1603
1622
|
size: "sm",
|
1604
1623
|
onClick: () => h(C.path),
|
1605
1624
|
children: "Delete"
|
1606
|
-
}), null), b((
|
1607
|
-
var
|
1608
|
-
return
|
1625
|
+
}), null), b((O) => {
|
1626
|
+
var De = `echo-stored-feedback-item ${p() ? "echo-stored-feedback-item-current" : ""}`, Fe = C.path;
|
1627
|
+
return De !== O.e && Ge(P, O.e = De), Fe !== O.t && d(x, "title", O.t = Fe), O;
|
1609
1628
|
}, {
|
1610
1629
|
e: void 0,
|
1611
1630
|
t: void 0
|
@@ -1617,33 +1636,33 @@ const Hn = () => {
|
|
1617
1636
|
return t().length === 0;
|
1618
1637
|
},
|
1619
1638
|
get children() {
|
1620
|
-
return
|
1639
|
+
return Wn();
|
1621
1640
|
}
|
1622
1641
|
}), null), m;
|
1623
1642
|
}
|
1624
1643
|
});
|
1625
1644
|
};
|
1626
|
-
var
|
1627
|
-
const
|
1628
|
-
const e = $(), [n, t] =
|
1645
|
+
var Hn = /* @__PURE__ */ w('<button class=echo-launcher-button aria-label="Open feedback form"role=button>'), Yn = /* @__PURE__ */ w("<span class=echo-launcher-button-count role=button tabindex=0>");
|
1646
|
+
const Kn = () => {
|
1647
|
+
const e = $(), [n, t] = T(!1);
|
1629
1648
|
let r;
|
1630
1649
|
const a = () => {
|
1631
1650
|
r && window.clearTimeout(r), r = window.setTimeout(() => {
|
1632
|
-
const c =
|
1651
|
+
const c = G("welcome_message_shown", !1);
|
1633
1652
|
!e.widget.state.isOpen && !e.widget.state.isStoredFeedbackOpen && c && t(!0);
|
1634
1653
|
}, 4e3);
|
1635
1654
|
}, o = () => {
|
1636
1655
|
t(!1);
|
1637
1656
|
}, i = () => {
|
1638
1657
|
a();
|
1639
|
-
}, l = () => {
|
1658
|
+
}, l = (c) => {
|
1640
1659
|
e.widget.setState({
|
1641
1660
|
isOpen: !e.widget.state.isOpen
|
1642
1661
|
}), e.widget.setState({
|
1643
1662
|
welcomeMessageIsClosing: !0
|
1644
|
-
}),
|
1663
|
+
}), le("welcome_message_shown", !0);
|
1645
1664
|
};
|
1646
|
-
|
1665
|
+
H(() => {
|
1647
1666
|
e.widget.state.isOpen || (t(!1), a()), e.widget.state.isStoredFeedbackOpen && t(!1);
|
1648
1667
|
});
|
1649
1668
|
const s = (c) => {
|
@@ -1652,8 +1671,8 @@ const Rn = () => {
|
|
1652
1671
|
}), t(!1);
|
1653
1672
|
};
|
1654
1673
|
return [(() => {
|
1655
|
-
var c =
|
1656
|
-
return c.addEventListener("pointerleave", i), c.addEventListener("pointerenter", o), c.$$click = l, v(c, g(
|
1674
|
+
var c = Hn();
|
1675
|
+
return c.addEventListener("pointerleave", i), c.addEventListener("pointerenter", o), c.$$click = l, v(c, g(kn, {
|
1657
1676
|
stroke: "white",
|
1658
1677
|
fill: "#ffffff",
|
1659
1678
|
"aria-hidden": "true"
|
@@ -1671,11 +1690,11 @@ const Rn = () => {
|
|
1671
1690
|
t: void 0,
|
1672
1691
|
a: void 0
|
1673
1692
|
}), c;
|
1674
|
-
})(), g(
|
1693
|
+
})(), g(Un, {})];
|
1675
1694
|
};
|
1676
|
-
|
1677
|
-
var
|
1678
|
-
const
|
1695
|
+
I(["click"]);
|
1696
|
+
var Gn = /* @__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>");
|
1697
|
+
const Xn = () => {
|
1679
1698
|
const e = $(), n = () => {
|
1680
1699
|
e.widget.setState({
|
1681
1700
|
notification: {
|
@@ -1694,8 +1713,8 @@ const Gn = () => {
|
|
1694
1713
|
}
|
1695
1714
|
};
|
1696
1715
|
return (() => {
|
1697
|
-
var r =
|
1698
|
-
return v(r, g(
|
1716
|
+
var r = Gn(), a = r.firstChild, o = a.nextSibling, i = o.firstChild, l = i.nextSibling;
|
1717
|
+
return v(r, g(W, {
|
1699
1718
|
class: "echo-notification-hide",
|
1700
1719
|
variant: "secondary",
|
1701
1720
|
size: "sm",
|
@@ -1704,17 +1723,17 @@ const Gn = () => {
|
|
1704
1723
|
return e.widget.state.text.notification.hideTitle;
|
1705
1724
|
},
|
1706
1725
|
get children() {
|
1707
|
-
return g(
|
1726
|
+
return g(Se, {
|
1708
1727
|
size: 20
|
1709
1728
|
});
|
1710
1729
|
}
|
1711
1730
|
}), a), v(a, (() => {
|
1712
1731
|
var s = k(() => e.widget.state.notification.type === "success");
|
1713
|
-
return () => s() ? g(
|
1732
|
+
return () => s() ? g(Tn, {
|
1714
1733
|
size: 32
|
1715
1734
|
}) : (() => {
|
1716
1735
|
var c = k(() => e.widget.state.notification.type === "error");
|
1717
|
-
return () => c() ? g(
|
1736
|
+
return () => c() ? g(On, {
|
1718
1737
|
size: 32
|
1719
1738
|
}) : null;
|
1720
1739
|
})();
|
@@ -1731,15 +1750,15 @@ const Gn = () => {
|
|
1731
1750
|
}), r;
|
1732
1751
|
})();
|
1733
1752
|
};
|
1734
|
-
var
|
1735
|
-
const
|
1753
|
+
var Jn = /* @__PURE__ */ w("<div class=echo-shape-actions data-hide-when-drawing=true>");
|
1754
|
+
const Zn = () => {
|
1736
1755
|
const e = $();
|
1737
1756
|
let n;
|
1738
|
-
const [t, r] =
|
1757
|
+
const [t, r] = T({
|
1739
1758
|
x: window.scrollX,
|
1740
1759
|
y: window.scrollY
|
1741
1760
|
});
|
1742
|
-
|
1761
|
+
A({
|
1743
1762
|
event: "scroll",
|
1744
1763
|
callback: () => {
|
1745
1764
|
r({
|
@@ -1758,7 +1777,7 @@ const Jn = () => {
|
|
1758
1777
|
if (!s || !c) return null;
|
1759
1778
|
let u = null;
|
1760
1779
|
if (s.type === "rectangle") {
|
1761
|
-
const m =
|
1780
|
+
const m = it(s.points);
|
1762
1781
|
if (!m) return null;
|
1763
1782
|
u = {
|
1764
1783
|
x: m.x + m.width / 2,
|
@@ -1778,20 +1797,20 @@ const Jn = () => {
|
|
1778
1797
|
};
|
1779
1798
|
});
|
1780
1799
|
return (() => {
|
1781
|
-
var s =
|
1782
|
-
return typeof c == "function" ?
|
1800
|
+
var s = Jn(), c = n;
|
1801
|
+
return typeof c == "function" ? R(c, s) : n = s, s.style.setProperty("top", "0"), s.style.setProperty("left", "0"), v(s, g(W, {
|
1783
1802
|
onClick: o,
|
1784
1803
|
size: "sm",
|
1785
1804
|
variant: "secondary",
|
1786
1805
|
title: "Delete shape",
|
1787
1806
|
get children() {
|
1788
|
-
return g(
|
1807
|
+
return g(lt, {
|
1789
1808
|
size: 20
|
1790
1809
|
});
|
1791
1810
|
}
|
1792
1811
|
})), b((u) => {
|
1793
|
-
var m,
|
1794
|
-
var h = !l(), f = `translate(calc(${(m = l()) == null ? void 0 : m.x}px - 50%), calc(${(
|
1812
|
+
var m, y;
|
1813
|
+
var h = !l(), f = `translate(calc(${(m = l()) == null ? void 0 : m.x}px - 50%), calc(${(y = l()) == null ? void 0 : y.y}px - 125%))`;
|
1795
1814
|
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;
|
1796
1815
|
}, {
|
1797
1816
|
e: void 0,
|
@@ -1799,22 +1818,22 @@ const Jn = () => {
|
|
1799
1818
|
}), s;
|
1800
1819
|
})();
|
1801
1820
|
};
|
1802
|
-
var
|
1803
|
-
const
|
1804
|
-
const e = $(), n =
|
1821
|
+
var Qn = /* @__PURE__ */ w("<button class=echo-welcome-message><span class=echo-welcome-message-pulsar></span><div class=echo-welcome-message-close role=button tabindex=0>");
|
1822
|
+
const er = () => {
|
1823
|
+
const e = $(), n = G("welcome_message_shown", !1), t = (a) => {
|
1805
1824
|
a.stopPropagation(), e.widget.setState({
|
1806
1825
|
welcomeMessageIsClosing: !0
|
1807
|
-
}),
|
1826
|
+
}), le("welcome_message_shown", !0);
|
1808
1827
|
}, r = () => {
|
1809
1828
|
e.widget.setState({
|
1810
1829
|
isOpen: !0
|
1811
1830
|
}), e.widget.setState({
|
1812
1831
|
welcomeMessageIsClosing: !0
|
1813
|
-
}),
|
1832
|
+
}), le("welcome_message_shown", !0);
|
1814
1833
|
};
|
1815
1834
|
return n ? null : (() => {
|
1816
|
-
var a =
|
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(
|
1835
|
+
var a = Qn(), o = a.firstChild, i = o.nextSibling;
|
1836
|
+
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(Se, {
|
1818
1837
|
size: 16,
|
1819
1838
|
strokeWidth: 3
|
1820
1839
|
})), b((l) => {
|
@@ -1826,8 +1845,8 @@ const Qn = () => {
|
|
1826
1845
|
}), a;
|
1827
1846
|
})();
|
1828
1847
|
};
|
1829
|
-
|
1830
|
-
var
|
1848
|
+
I(["click", "keydown"]);
|
1849
|
+
var tr = /* @__PURE__ */ w("<svg><rect class=echo-shape fill=transparent vector-effect=non-scaling-stroke role=img></svg>", !1, !0), nr = /* @__PURE__ */ w("<svg><path class=echo-shape fill=none vector-effect=non-scaling-stroke stroke-linecap=round role=img></svg>", !1, !0);
|
1831
1850
|
const He = (e) => {
|
1832
1851
|
const n = k(() => e.id === e.selectedShapeId);
|
1833
1852
|
return [g(D, {
|
@@ -1835,7 +1854,7 @@ const He = (e) => {
|
|
1835
1854
|
return e.type === "rectangle";
|
1836
1855
|
},
|
1837
1856
|
get children() {
|
1838
|
-
return g(
|
1857
|
+
return g(rr, ie(e, {
|
1839
1858
|
get isSelected() {
|
1840
1859
|
return n();
|
1841
1860
|
}
|
@@ -1846,21 +1865,21 @@ const He = (e) => {
|
|
1846
1865
|
return e.type === "path";
|
1847
1866
|
},
|
1848
1867
|
get children() {
|
1849
|
-
return g(
|
1868
|
+
return g(or, ie(e, {
|
1850
1869
|
get isSelected() {
|
1851
1870
|
return n();
|
1852
1871
|
}
|
1853
1872
|
}));
|
1854
1873
|
}
|
1855
1874
|
})];
|
1856
|
-
},
|
1857
|
-
const n = k(() =>
|
1875
|
+
}, rr = (e) => {
|
1876
|
+
const n = k(() => it(e.points));
|
1858
1877
|
return g(D, {
|
1859
1878
|
get when() {
|
1860
1879
|
return n();
|
1861
1880
|
},
|
1862
1881
|
get children() {
|
1863
|
-
var t =
|
1882
|
+
var t = tr();
|
1864
1883
|
return t.$$keydown = (r) => {
|
1865
1884
|
var a;
|
1866
1885
|
return r.key === "Enter" && ((a = e.onShapeClick) == null ? void 0 : a.call(e, e.id));
|
@@ -1868,8 +1887,8 @@ const He = (e) => {
|
|
1868
1887
|
var r;
|
1869
1888
|
return (r = e.onShapeClick) == null ? void 0 : r.call(e, e.id);
|
1870
1889
|
}, b((r) => {
|
1871
|
-
var a = e.id, o = e.isSelected, i = n().x, l = n().y, s = n().width, c = n().height, u = e.color, h =
|
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),
|
1890
|
+
var a = e.id, o = e.isSelected, i = n().x, l = n().y, s = n().width, c = n().height, u = e.color, h = V.rectangle.strokeWidth, f = e.isSelected ? V.rectangle.opacity.selected : V.rectangle.opacity.default, m = e.isSelected ? "5,5" : "none", y = e.isSelected ? "move" : "pointer", E = `Rectangle shape ${e.isSelected ? "(selected)" : ""}`, S = e.onShapeClick ? 0 : -1;
|
1891
|
+
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), y !== r.l && d(t, "cursor", r.l = y), E !== r.u && d(t, "aria-label", r.u = E), S !== r.c && d(t, "tabindex", r.c = S), r;
|
1873
1892
|
}, {
|
1874
1893
|
e: void 0,
|
1875
1894
|
t: void 0,
|
@@ -1887,14 +1906,14 @@ const He = (e) => {
|
|
1887
1906
|
}), t;
|
1888
1907
|
}
|
1889
1908
|
});
|
1890
|
-
},
|
1891
|
-
const n = k(() =>
|
1909
|
+
}, or = (e) => {
|
1910
|
+
const n = k(() => Xt(e.points));
|
1892
1911
|
return g(D, {
|
1893
1912
|
get when() {
|
1894
1913
|
return n();
|
1895
1914
|
},
|
1896
1915
|
get children() {
|
1897
|
-
var t =
|
1916
|
+
var t = nr();
|
1898
1917
|
return t.$$keydown = (r) => {
|
1899
1918
|
var a;
|
1900
1919
|
return r.key === "Enter" && ((a = e.onShapeClick) == null ? void 0 : a.call(e, e.id));
|
@@ -1902,7 +1921,7 @@ const He = (e) => {
|
|
1902
1921
|
var r;
|
1903
1922
|
return (r = e.onShapeClick) == null ? void 0 : r.call(e, e.id);
|
1904
1923
|
}, b((r) => {
|
1905
|
-
var a = e.id, o = e.isSelected, i = n(), l = e.color, s =
|
1924
|
+
var a = e.id, o = e.isSelected, i = n(), l = e.color, s = V.path.strokeWidth, c = e.isSelected ? V.path.opacity.selected : V.path.opacity.default, u = e.isSelected ? "move" : "pointer", h = `Freehand shape ${e.isSelected ? "(selected)" : ""}`, f = e.onShapeClick ? 0 : -1;
|
1906
1925
|
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;
|
1907
1926
|
}, {
|
1908
1927
|
e: void 0,
|
@@ -1918,20 +1937,20 @@ const He = (e) => {
|
|
1918
1937
|
}
|
1919
1938
|
});
|
1920
1939
|
};
|
1921
|
-
|
1922
|
-
var
|
1923
|
-
const
|
1940
|
+
I(["click", "keydown"]);
|
1941
|
+
var ar = /* @__PURE__ */ w('<div class=echo-drawing-layer-container role=application aria-label="Drawing Canvas"><svg width=100% height=100% class=echo-drawing-layer preserveAspectRatio=none role=img aria-label="Drawing Area"><path class=echo-drawing-layer-mask fill="rgba(33, 43, 55, 1)"fill-opacity=0.2 fill-rule=evenodd aria-hidden=true>');
|
1942
|
+
const ir = () => {
|
1924
1943
|
const e = $();
|
1925
1944
|
let n;
|
1926
|
-
return
|
1945
|
+
return ke(() => {
|
1927
1946
|
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, {
|
1928
1947
|
passive: !1
|
1929
1948
|
}), n == null || n.addEventListener("touchend", e.drawing.methods.handleEnd);
|
1930
1949
|
}), te(() => {
|
1931
1950
|
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);
|
1932
1951
|
}), (() => {
|
1933
|
-
var t =
|
1934
|
-
return typeof o == "function" ?
|
1952
|
+
var t = ar(), r = t.firstChild, a = r.firstChild, o = n;
|
1953
|
+
return typeof o == "function" ? R(o, t) : n = t, v(t, g(jn, {}), r), v(t, g(Zn, {}), 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) => {
|
1935
1954
|
i.preventDefault(), e.drawing.methods.handleMove(i);
|
1936
1955
|
}, U(r, "mousemove", e.drawing.methods.handleMove, !0), r.$$touchstart = (i) => {
|
1937
1956
|
i.preventDefault(), e.drawing.methods.handleStart(i), e.drawing.methods.handleEnter(i), e.drawing.setState({
|
@@ -1943,7 +1962,7 @@ const ar = () => {
|
|
1943
1962
|
showTooltip: !1,
|
1944
1963
|
hasDrawn: !0
|
1945
1964
|
});
|
1946
|
-
}, v(r, g(
|
1965
|
+
}, v(r, g(B, {
|
1947
1966
|
get each() {
|
1948
1967
|
return e.drawing.state.shapes;
|
1949
1968
|
},
|
@@ -1982,7 +2001,7 @@ const ar = () => {
|
|
1982
2001
|
return e.drawing.state.selectedShapeId;
|
1983
2002
|
}
|
1984
2003
|
}), null), b((i) => {
|
1985
|
-
var l = e.drawing.state.cursor, s =
|
2004
|
+
var l = e.drawing.state.cursor, s = rn({
|
1986
2005
|
width: e.widget.state.dimensions.width,
|
1987
2006
|
height: e.widget.state.dimensions.height
|
1988
2007
|
}, e.drawing.state.currentPoints, e.drawing.state.shapes);
|
@@ -1993,8 +2012,8 @@ const ar = () => {
|
|
1993
2012
|
}), t;
|
1994
2013
|
})();
|
1995
2014
|
};
|
1996
|
-
|
1997
|
-
const
|
2015
|
+
I(["mousedown", "touchstart", "mousemove", "touchmove", "touchend"]);
|
2016
|
+
const ge = (e) => ({
|
1998
2017
|
handleTextChange: (o) => {
|
1999
2018
|
const i = o.target;
|
2000
2019
|
e(i.value);
|
@@ -2008,26 +2027,26 @@ const ue = (e) => ({
|
|
2008
2027
|
},
|
2009
2028
|
getCheckboxValue: (o) => Array.isArray(o) ? o : []
|
2010
2029
|
});
|
2011
|
-
var
|
2012
|
-
const
|
2013
|
-
var n =
|
2030
|
+
var sr = /* @__PURE__ */ w("<div class=echo-input role=group>"), lr = /* @__PURE__ */ w("<label class=echo-input-label><span>"), cr = /* @__PURE__ */ w('<span class=echo-input-required aria-label="Required field">*');
|
2031
|
+
const fe = (e) => (() => {
|
2032
|
+
var n = sr();
|
2014
2033
|
return v(n, (() => {
|
2015
2034
|
var t = k(() => !!e.label);
|
2016
2035
|
return () => t() && (() => {
|
2017
|
-
var r =
|
2036
|
+
var r = lr(), a = r.firstChild;
|
2018
2037
|
return v(a, () => e.label), v(r, (() => {
|
2019
2038
|
var o = k(() => !!e.required);
|
2020
|
-
return () => o() &&
|
2039
|
+
return () => o() && cr();
|
2021
2040
|
})(), null), r;
|
2022
2041
|
})();
|
2023
2042
|
})(), null), v(n, () => e.children, null), n;
|
2024
2043
|
})();
|
2025
|
-
var
|
2026
|
-
const
|
2044
|
+
var dr = /* @__PURE__ */ w("<textarea class=echo-input-field rows=5>"), ur = /* @__PURE__ */ w("<div class=visually-hidden>");
|
2045
|
+
const ct = (e) => {
|
2027
2046
|
const {
|
2028
2047
|
handleTextChange: n
|
2029
|
-
} =
|
2030
|
-
return g(
|
2048
|
+
} = ge(e.onChange);
|
2049
|
+
return g(fe, {
|
2031
2050
|
get label() {
|
2032
2051
|
return e.config.label;
|
2033
2052
|
},
|
@@ -2036,7 +2055,7 @@ const st = (e) => {
|
|
2036
2055
|
},
|
2037
2056
|
get children() {
|
2038
2057
|
return [(() => {
|
2039
|
-
var t =
|
2058
|
+
var t = dr();
|
2040
2059
|
return U(t, "input", n, !0), b((r) => {
|
2041
2060
|
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
2061
|
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;
|
@@ -2050,20 +2069,20 @@ const st = (e) => {
|
|
2050
2069
|
s: void 0
|
2051
2070
|
}), b(() => t.value = e.value === void 0 ? "" : e.value), t;
|
2052
2071
|
})(), (() => {
|
2053
|
-
var t =
|
2072
|
+
var t = ur();
|
2054
2073
|
return v(t, () => e.config.placeholder), b(() => d(t, "id", `${e.config.id}-description`)), t;
|
2055
2074
|
})()];
|
2056
2075
|
}
|
2057
2076
|
});
|
2058
2077
|
};
|
2059
|
-
|
2060
|
-
var
|
2061
|
-
const
|
2078
|
+
I(["input"]);
|
2079
|
+
var hr = /* @__PURE__ */ w("<fieldset class=echo-input-options role=group>"), gr = /* @__PURE__ */ w("<label class=echo-input-option><input type=checkbox><span>");
|
2080
|
+
const fr = (e) => {
|
2062
2081
|
const {
|
2063
2082
|
handleCheckboxChange: n,
|
2064
2083
|
getCheckboxValue: t
|
2065
|
-
} =
|
2066
|
-
return g(
|
2084
|
+
} = ge(e.onChange), r = () => t(e.value), a = () => r().length > 0;
|
2085
|
+
return g(fe, {
|
2067
2086
|
get label() {
|
2068
2087
|
return e.config.label;
|
2069
2088
|
},
|
@@ -2071,25 +2090,25 @@ const gr = (e) => {
|
|
2071
2090
|
return e.config.required;
|
2072
2091
|
},
|
2073
2092
|
get children() {
|
2074
|
-
var o =
|
2075
|
-
return v(o, g(
|
2093
|
+
var o = hr();
|
2094
|
+
return v(o, g(B, {
|
2076
2095
|
get each() {
|
2077
2096
|
return e.config.options;
|
2078
2097
|
},
|
2079
2098
|
children: (i, l) => (() => {
|
2080
|
-
var s =
|
2099
|
+
var s = gr(), c = s.firstChild, u = c.nextSibling;
|
2081
2100
|
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;
|
2082
2101
|
})()
|
2083
2102
|
})), b(() => d(o, "aria-required", e.config.required)), o;
|
2084
2103
|
}
|
2085
2104
|
});
|
2086
2105
|
};
|
2087
|
-
var
|
2088
|
-
const
|
2106
|
+
var mr = /* @__PURE__ */ w("<fieldset class=echo-input-options role=radiogroup>"), vr = /* @__PURE__ */ w("<label class=echo-input-option><input type=radio><span>");
|
2107
|
+
const br = (e) => {
|
2089
2108
|
const {
|
2090
2109
|
handleSelectChange: n
|
2091
|
-
} =
|
2092
|
-
return g(
|
2110
|
+
} = ge(e.onChange);
|
2111
|
+
return g(fe, {
|
2093
2112
|
get label() {
|
2094
2113
|
return e.config.label;
|
2095
2114
|
},
|
@@ -2097,13 +2116,13 @@ const vr = (e) => {
|
|
2097
2116
|
return e.config.required;
|
2098
2117
|
},
|
2099
2118
|
get children() {
|
2100
|
-
var t =
|
2101
|
-
return v(t, g(
|
2119
|
+
var t = mr();
|
2120
|
+
return v(t, g(B, {
|
2102
2121
|
get each() {
|
2103
2122
|
return e.config.options;
|
2104
2123
|
},
|
2105
2124
|
children: (r) => (() => {
|
2106
|
-
var a =
|
2125
|
+
var a = vr(), o = a.firstChild, i = o.nextSibling;
|
2107
2126
|
return o.addEventListener("change", () => n(r.value)), v(i, () => r.label), b((l) => {
|
2108
2127
|
var s = e.config.id, c = e.config.required;
|
2109
2128
|
return s !== l.e && d(o, "name", l.e = s), c !== l.t && (o.required = l.t = c), l;
|
@@ -2116,24 +2135,24 @@ const vr = (e) => {
|
|
2116
2135
|
}
|
2117
2136
|
});
|
2118
2137
|
};
|
2119
|
-
var
|
2120
|
-
const
|
2138
|
+
var wr = /* @__PURE__ */ w("<div class=echo-select-dropdown role=listbox>"), yr = /* @__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>");
|
2139
|
+
const xr = (e) => {
|
2121
2140
|
const {
|
2122
2141
|
handleSelectChange: n
|
2123
|
-
} =
|
2142
|
+
} = ge(e.onChange), [t, r] = T(!1);
|
2124
2143
|
let a, o, i;
|
2125
2144
|
const l = () => e.config.options.find((h) => h.value === (e.value === void 0 ? "" : e.value)), s = (h, f) => {
|
2126
2145
|
f.stopPropagation(), h.value === e.value ? e.config.required || n("") : n(h.value), r(!1);
|
2127
2146
|
}, c = () => {
|
2128
2147
|
r(!t());
|
2129
2148
|
};
|
2130
|
-
return
|
2149
|
+
return A({
|
2131
2150
|
event: "mousedown",
|
2132
2151
|
callback: (h) => {
|
2133
2152
|
if (!t() || !a) return;
|
2134
2153
|
h.composedPath().includes(a) || r(!1);
|
2135
2154
|
}
|
2136
|
-
}), g(
|
2155
|
+
}), g(fe, {
|
2137
2156
|
get label() {
|
2138
2157
|
return e.config.label;
|
2139
2158
|
},
|
@@ -2141,41 +2160,41 @@ const yr = (e) => {
|
|
2141
2160
|
return e.config.required;
|
2142
2161
|
},
|
2143
2162
|
get children() {
|
2144
|
-
var h =
|
2145
|
-
typeof E == "function" ?
|
2146
|
-
|
2163
|
+
var h = yr(), f = h.firstChild, m = f.firstChild, y = f.nextSibling, E = a;
|
2164
|
+
typeof E == "function" ? R(E, h) : a = h, f.$$click = (p) => {
|
2165
|
+
p.stopPropagation(), c();
|
2147
2166
|
};
|
2148
2167
|
var S = o;
|
2149
|
-
typeof S == "function" ?
|
2150
|
-
var
|
2151
|
-
return ((
|
2168
|
+
typeof S == "function" ? R(S, f) : o = f, v(m, () => {
|
2169
|
+
var p;
|
2170
|
+
return ((p = l()) == null ? void 0 : p.label) || e.config.placeholder;
|
2152
2171
|
}), v(h, g(D, {
|
2153
2172
|
get when() {
|
2154
2173
|
return t();
|
2155
2174
|
},
|
2156
2175
|
get children() {
|
2157
|
-
var
|
2158
|
-
return v(
|
2176
|
+
var p = wr();
|
2177
|
+
return v(p, g(B, {
|
2159
2178
|
get each() {
|
2160
2179
|
return e.config.options;
|
2161
2180
|
},
|
2162
2181
|
children: (P) => (() => {
|
2163
2182
|
var z = pr();
|
2164
2183
|
return z.$$click = (x) => s(P, x), v(z, () => P.label), b((x) => {
|
2165
|
-
var
|
2166
|
-
return
|
2184
|
+
var _ = P.value === e.value, q = P.value === e.value;
|
2185
|
+
return _ !== x.e && d(z, "aria-selected", x.e = _), q !== x.t && d(z, "data-selected", x.t = q), x;
|
2167
2186
|
}, {
|
2168
2187
|
e: void 0,
|
2169
2188
|
t: void 0
|
2170
2189
|
}), z;
|
2171
2190
|
})()
|
2172
|
-
})),
|
2191
|
+
})), p;
|
2173
2192
|
}
|
2174
|
-
}),
|
2193
|
+
}), y);
|
2175
2194
|
var C = i;
|
2176
|
-
return typeof C == "function" ?
|
2177
|
-
var P = t(), z = !e.value, x = e.config.required,
|
2178
|
-
return P !==
|
2195
|
+
return typeof C == "function" ? R(C, y) : i = y, b((p) => {
|
2196
|
+
var P = t(), z = !e.value, x = e.config.required, _ = t(), q = e.config.required, O = e.config.required;
|
2197
|
+
return P !== p.e && d(f, "data-open", p.e = P), z !== p.t && d(f, "data-placeholder", p.t = z), x !== p.a && d(f, "data-required", p.a = x), _ !== p.o && d(f, "aria-expanded", p.o = _), q !== p.i && d(f, "aria-required", p.i = q), O !== p.n && (y.required = p.n = O), p;
|
2179
2198
|
}, {
|
2180
2199
|
e: void 0,
|
2181
2200
|
t: void 0,
|
@@ -2183,17 +2202,17 @@ const yr = (e) => {
|
|
2183
2202
|
o: void 0,
|
2184
2203
|
i: void 0,
|
2185
2204
|
n: void 0
|
2186
|
-
}), b(() =>
|
2205
|
+
}), b(() => y.value = e.value === void 0 ? "" : e.value), h;
|
2187
2206
|
}
|
2188
2207
|
});
|
2189
2208
|
};
|
2190
|
-
|
2191
|
-
var
|
2192
|
-
const
|
2209
|
+
I(["click"]);
|
2210
|
+
var kr = /* @__PURE__ */ w("<input type=text class=echo-input-field>");
|
2211
|
+
const Sr = (e) => {
|
2193
2212
|
const {
|
2194
2213
|
handleTextChange: n
|
2195
|
-
} =
|
2196
|
-
return g(
|
2214
|
+
} = ge(e.onChange);
|
2215
|
+
return g(fe, {
|
2197
2216
|
get label() {
|
2198
2217
|
return e.config.label;
|
2199
2218
|
},
|
@@ -2201,7 +2220,7 @@ const kr = (e) => {
|
|
2201
2220
|
return e.config.required;
|
2202
2221
|
},
|
2203
2222
|
get children() {
|
2204
|
-
var t =
|
2223
|
+
var t = kr();
|
2205
2224
|
return U(t, "input", n, !0), b((r) => {
|
2206
2225
|
var a = e.config.placeholder, o = e.config.required, i = e.config.disabled;
|
2207
2226
|
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;
|
@@ -2213,21 +2232,21 @@ const kr = (e) => {
|
|
2213
2232
|
}
|
2214
2233
|
});
|
2215
2234
|
};
|
2216
|
-
|
2217
|
-
var
|
2218
|
-
const
|
2235
|
+
I(["input"]);
|
2236
|
+
var Cr = /* @__PURE__ */ w("<div class=echo-input-error>Invalid input type"), $r = /* @__PURE__ */ w("<div class=echo-input-error>Unsupported input type: ");
|
2237
|
+
const Er = (e) => g(D, {
|
2219
2238
|
get when() {
|
2220
2239
|
return e.config.type;
|
2221
2240
|
},
|
2222
2241
|
keyed: !0,
|
2223
2242
|
get fallback() {
|
2224
|
-
return
|
2243
|
+
return Cr();
|
2225
2244
|
},
|
2226
2245
|
get children() {
|
2227
|
-
return g(
|
2246
|
+
return g(ft, {
|
2228
2247
|
get fallback() {
|
2229
2248
|
return (() => {
|
2230
|
-
var n =
|
2249
|
+
var n = $r();
|
2231
2250
|
return n.firstChild, v(n, () => e.config.type, null), n;
|
2232
2251
|
})();
|
2233
2252
|
},
|
@@ -2237,7 +2256,7 @@ const $r = (e) => g(D, {
|
|
2237
2256
|
return e.config.type === "text";
|
2238
2257
|
},
|
2239
2258
|
get children() {
|
2240
|
-
return g(
|
2259
|
+
return g(Sr, ie(e, {
|
2241
2260
|
get value() {
|
2242
2261
|
return e.value;
|
2243
2262
|
},
|
@@ -2251,7 +2270,7 @@ const $r = (e) => g(D, {
|
|
2251
2270
|
return e.config.type === "textarea";
|
2252
2271
|
},
|
2253
2272
|
get children() {
|
2254
|
-
return g(
|
2273
|
+
return g(ct, {
|
2255
2274
|
get config() {
|
2256
2275
|
return e.config;
|
2257
2276
|
},
|
@@ -2268,7 +2287,7 @@ const $r = (e) => g(D, {
|
|
2268
2287
|
return e.config.type === "radio";
|
2269
2288
|
},
|
2270
2289
|
get children() {
|
2271
|
-
return g(
|
2290
|
+
return g(br, {
|
2272
2291
|
get config() {
|
2273
2292
|
return e.config;
|
2274
2293
|
},
|
@@ -2285,7 +2304,7 @@ const $r = (e) => g(D, {
|
|
2285
2304
|
return e.config.type === "checkbox";
|
2286
2305
|
},
|
2287
2306
|
get children() {
|
2288
|
-
return g(
|
2307
|
+
return g(fr, {
|
2289
2308
|
get config() {
|
2290
2309
|
return e.config;
|
2291
2310
|
},
|
@@ -2302,7 +2321,7 @@ const $r = (e) => g(D, {
|
|
2302
2321
|
return e.config.type === "select";
|
2303
2322
|
},
|
2304
2323
|
get children() {
|
2305
|
-
return g(
|
2324
|
+
return g(xr, {
|
2306
2325
|
get config() {
|
2307
2326
|
return e.config;
|
2308
2327
|
},
|
@@ -2318,7 +2337,7 @@ const $r = (e) => g(D, {
|
|
2318
2337
|
}
|
2319
2338
|
});
|
2320
2339
|
}
|
2321
|
-
}),
|
2340
|
+
}), Pr = () => {
|
2322
2341
|
const e = navigator.connection;
|
2323
2342
|
return {
|
2324
2343
|
effectiveType: e == null ? void 0 : e.effectiveType,
|
@@ -2326,7 +2345,7 @@ const $r = (e) => g(D, {
|
|
2326
2345
|
rtt: e == null ? void 0 : e.rtt,
|
2327
2346
|
saveData: e == null ? void 0 : e.saveData
|
2328
2347
|
};
|
2329
|
-
},
|
2348
|
+
}, zr = () => ({
|
2330
2349
|
width: window.innerWidth,
|
2331
2350
|
height: window.innerHeight,
|
2332
2351
|
screenWidth: window.screen.width,
|
@@ -2341,7 +2360,7 @@ const $r = (e) => g(D, {
|
|
2341
2360
|
pixelRatio: window.devicePixelRatio,
|
2342
2361
|
availableWidth: window.screen.availWidth,
|
2343
2362
|
availableHeight: window.screen.availHeight
|
2344
|
-
}),
|
2363
|
+
}), Tr = () => {
|
2345
2364
|
const e = new URL(window.location.href), n = {};
|
2346
2365
|
return e.searchParams.forEach((t, r) => {
|
2347
2366
|
n[r] = t;
|
@@ -2352,25 +2371,25 @@ const $r = (e) => g(D, {
|
|
2352
2371
|
searchParams: n,
|
2353
2372
|
referrer: document.referrer
|
2354
2373
|
};
|
2355
|
-
},
|
2374
|
+
}, Ir = () => ({
|
2356
2375
|
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
2357
2376
|
localDateTime: (/* @__PURE__ */ new Date()).toISOString()
|
2358
|
-
}),
|
2377
|
+
}), Or = () => ({
|
2359
2378
|
userAgent: navigator.userAgent,
|
2360
|
-
browserInfo:
|
2361
|
-
networkInfo:
|
2362
|
-
locationInfo:
|
2363
|
-
timeInfo:
|
2364
|
-
console:
|
2379
|
+
browserInfo: zr(),
|
2380
|
+
networkInfo: Pr(),
|
2381
|
+
locationInfo: Tr(),
|
2382
|
+
timeInfo: Ir(),
|
2383
|
+
console: Kt()
|
2365
2384
|
});
|
2366
|
-
var
|
2367
|
-
const
|
2385
|
+
var Mr = /* @__PURE__ */ w("<fieldset class=echo-input-options-wrapper><legend class=visually-hidden>Additional Information"), Ar = /* @__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>');
|
2386
|
+
const Dr = () => {
|
2368
2387
|
const e = $(), n = async (a) => {
|
2369
2388
|
a.preventDefault();
|
2370
|
-
const o = await
|
2389
|
+
const o = await nn(), i = {
|
2371
2390
|
message: e.feedback.state.message,
|
2372
2391
|
screenshot: o,
|
2373
|
-
metadata:
|
2392
|
+
metadata: Or(),
|
2374
2393
|
customInputs: e.feedback.state.customInputValues
|
2375
2394
|
};
|
2376
2395
|
e.methods.submit(i);
|
@@ -2383,16 +2402,16 @@ const Ar = () => {
|
|
2383
2402
|
isMinimized: !1
|
2384
2403
|
});
|
2385
2404
|
};
|
2386
|
-
return
|
2405
|
+
return H(() => {
|
2387
2406
|
e.widget.state.isOpen && requestAnimationFrame(() => {
|
2388
2407
|
var a;
|
2389
2408
|
(a = document.querySelector(".echo-input-field")) == null || a.focus();
|
2390
2409
|
});
|
2391
2410
|
}), (() => {
|
2392
|
-
var a =
|
2411
|
+
var a = Ar(), o = a.firstChild, i = o.firstChild, l = i.firstChild, s = l.nextSibling, c = i.nextSibling;
|
2393
2412
|
c.firstChild;
|
2394
2413
|
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(
|
2414
|
+
return a.$$click = () => e.feedback.state.isMinimized && r(), o.addEventListener("submit", n), v(l, () => e.widget.state.text.feedbackForm.title), v(s, g(W, {
|
2396
2415
|
type: "button",
|
2397
2416
|
title: "Hide form",
|
2398
2417
|
variant: "secondary",
|
@@ -2404,7 +2423,7 @@ const Ar = () => {
|
|
2404
2423
|
size: 20
|
2405
2424
|
});
|
2406
2425
|
}
|
2407
|
-
}), null), v(s, g(
|
2426
|
+
}), null), v(s, g(W, {
|
2408
2427
|
type: "button",
|
2409
2428
|
title: "Close form",
|
2410
2429
|
variant: "secondary",
|
@@ -2414,11 +2433,11 @@ const Ar = () => {
|
|
2414
2433
|
}),
|
2415
2434
|
"aria-label": "Close feedback form",
|
2416
2435
|
get children() {
|
2417
|
-
return g(
|
2436
|
+
return g(Se, {
|
2418
2437
|
size: 20
|
2419
2438
|
});
|
2420
2439
|
}
|
2421
|
-
}), null), v(c, g(
|
2440
|
+
}), null), v(c, g(ct, {
|
2422
2441
|
get config() {
|
2423
2442
|
return {
|
2424
2443
|
type: "textarea",
|
@@ -2440,12 +2459,12 @@ const Ar = () => {
|
|
2440
2459
|
return (h = e.widget.state.customInputs) == null ? void 0 : h.length;
|
2441
2460
|
},
|
2442
2461
|
get children() {
|
2443
|
-
var h =
|
2444
|
-
return h.firstChild, v(h, g(
|
2462
|
+
var h = Mr();
|
2463
|
+
return h.firstChild, v(h, g(B, {
|
2445
2464
|
get each() {
|
2446
2465
|
return e.widget.state.customInputs;
|
2447
2466
|
},
|
2448
|
-
children: (f) => g(
|
2467
|
+
children: (f) => g(Er, {
|
2449
2468
|
config: f,
|
2450
2469
|
get value() {
|
2451
2470
|
return e.feedback.state.customInputValues[f.id];
|
@@ -2459,7 +2478,7 @@ const Ar = () => {
|
|
2459
2478
|
})
|
2460
2479
|
}), null), h;
|
2461
2480
|
}
|
2462
|
-
}), u), v(u, g(
|
2481
|
+
}), u), v(u, g(W, {
|
2463
2482
|
type: "submit",
|
2464
2483
|
variant: "primary",
|
2465
2484
|
size: "lg",
|
@@ -2471,8 +2490,8 @@ const Ar = () => {
|
|
2471
2490
|
return e.widget.state.text.feedbackForm.submitButton;
|
2472
2491
|
}
|
2473
2492
|
})), b((h) => {
|
2474
|
-
var f = e.feedback.state.isMinimized, m = e.feedback.state.isMinimized ? "pointer" : "default",
|
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")),
|
2493
|
+
var f = e.feedback.state.isMinimized, m = e.feedback.state.isMinimized ? "pointer" : "default", y = !e.feedback.state.isMinimized;
|
2494
|
+
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")), y !== h.a && d(a, "aria-expanded", h.a = y), h;
|
2476
2495
|
}, {
|
2477
2496
|
e: void 0,
|
2478
2497
|
t: void 0,
|
@@ -2480,66 +2499,73 @@ const Ar = () => {
|
|
2480
2499
|
}), a;
|
2481
2500
|
})();
|
2482
2501
|
};
|
2483
|
-
|
2484
|
-
var
|
2485
|
-
const
|
2486
|
-
|
2487
|
-
|
2488
|
-
|
2489
|
-
|
2490
|
-
|
2491
|
-
|
2492
|
-
|
2493
|
-
|
2494
|
-
|
2495
|
-
|
2496
|
-
|
2497
|
-
|
2498
|
-
|
2499
|
-
|
2500
|
-
|
2501
|
-
|
2502
|
-
|
2503
|
-
|
2504
|
-
|
2505
|
-
}),
|
2506
|
-
|
2507
|
-
|
2502
|
+
I(["click"]);
|
2503
|
+
var Fr = /* @__PURE__ */ w("<style>"), Lr = /* @__PURE__ */ w("<div class=echo-launcher>"), Nr = /* @__PURE__ */ w("<dialog class=echo-overlay>"), jr = /* @__PURE__ */ w("<div class=echo-root>");
|
2504
|
+
const qr = (e) => {
|
2505
|
+
const [n, t] = T();
|
2506
|
+
return H(() => {
|
2507
|
+
const r = n();
|
2508
|
+
r && Jt(r.shadowRoot);
|
2509
|
+
}), g(At, {
|
2510
|
+
ref: t,
|
2511
|
+
useShadow: !0,
|
2512
|
+
get mount() {
|
2513
|
+
return document.body;
|
2514
|
+
},
|
2515
|
+
get children() {
|
2516
|
+
return g(dn, ie(e, {
|
2517
|
+
get children() {
|
2518
|
+
return g(Br, {
|
2519
|
+
get children() {
|
2520
|
+
return [g(Rr, {
|
2521
|
+
get primaryColor() {
|
2522
|
+
return e.primaryColor;
|
2523
|
+
}
|
2524
|
+
}), g(Vr, {})];
|
2525
|
+
}
|
2526
|
+
});
|
2527
|
+
}
|
2528
|
+
}));
|
2529
|
+
}
|
2530
|
+
});
|
2531
|
+
}, Rr = (e) => {
|
2532
|
+
const [n, t] = T("");
|
2533
|
+
return H(() => {
|
2508
2534
|
const r = `
|
2509
2535
|
.echo-root {
|
2510
2536
|
--primary-color: ${e.primaryColor};
|
2511
|
-
--primary-text-color: ${
|
2537
|
+
--primary-text-color: ${Ut(e.primaryColor)};
|
2512
2538
|
}
|
2513
2539
|
`;
|
2514
2540
|
t(r);
|
2515
2541
|
}), (() => {
|
2516
|
-
var r =
|
2517
|
-
return v(r,
|
2542
|
+
var r = Fr();
|
2543
|
+
return v(r, gn, null), v(r, n, null), r;
|
2518
2544
|
})();
|
2519
2545
|
}, Vr = () => {
|
2520
2546
|
const e = $();
|
2521
2547
|
return [(() => {
|
2522
|
-
var n =
|
2523
|
-
return v(n, g(
|
2524
|
-
})(), g(
|
2548
|
+
var n = Lr();
|
2549
|
+
return v(n, g(Kn, {}), null), v(n, g(er, {}), null), v(n, g(Xn, {}), null), b(() => d(n, "data-hidden", e.widget.state.isOpen)), n;
|
2550
|
+
})(), g(Wr, {
|
2525
2551
|
get children() {
|
2526
|
-
return [g(
|
2552
|
+
return [g(Dr, {}), g(Ln, {}), g(ir, {})];
|
2527
2553
|
}
|
2528
2554
|
})];
|
2529
|
-
},
|
2530
|
-
const [n, t] =
|
2531
|
-
return
|
2555
|
+
}, Wr = (e) => {
|
2556
|
+
const [n, t] = T(), r = $(), a = un(() => n());
|
2557
|
+
return H(() => {
|
2532
2558
|
n() && r.widget.setState({
|
2533
2559
|
dimensions: a()
|
2534
2560
|
});
|
2535
|
-
}),
|
2561
|
+
}), H(() => {
|
2536
2562
|
var o, i;
|
2537
2563
|
r.widget.state.isOpen ? (o = n()) == null || o.showModal() : (i = n()) == null || i.close();
|
2538
2564
|
}), (() => {
|
2539
|
-
var o =
|
2565
|
+
var o = Nr();
|
2540
2566
|
return o.addEventListener("close", () => r.widget.setState({
|
2541
2567
|
isOpen: !1
|
2542
|
-
})),
|
2568
|
+
})), R(t, o), v(o, () => e.children), b((i) => {
|
2543
2569
|
var l = `${a().height}px`, s = `${a().width}px`, c = !r.widget.state.isOpen;
|
2544
2570
|
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;
|
2545
2571
|
}, {
|
@@ -2548,26 +2574,21 @@ const Nr = (e) => g(Ot, {
|
|
2548
2574
|
a: void 0
|
2549
2575
|
}), o;
|
2550
2576
|
})();
|
2551
|
-
},
|
2577
|
+
}, Br = (e) => {
|
2552
2578
|
const n = $();
|
2553
|
-
return
|
2579
|
+
return hn({
|
2554
2580
|
onUrlChange: (t) => n.methods.handlePageChange(t)
|
2555
|
-
}),
|
2556
|
-
Ht(),
|
2557
|
-
|
2558
|
-
switch (t.key) {
|
2559
|
-
case "Escape":
|
2560
|
-
t.stopImmediatePropagation();
|
2561
|
-
break;
|
2562
|
-
}
|
2581
|
+
}), ke(() => {
|
2582
|
+
Ht(), Zt((t) => {
|
2583
|
+
t.target instanceof Document || t.target instanceof Window || t.target instanceof Element && t.target.shadowRoot && ue(t.target.shadowRoot) || t.target instanceof Node && ue(t.target);
|
2563
2584
|
});
|
2564
2585
|
}), te(() => {
|
2565
|
-
|
2586
|
+
Yt(), Qt();
|
2566
2587
|
}), (() => {
|
2567
2588
|
var t = jr();
|
2568
2589
|
return v(t, () => e.children), b(() => d(t, "data-drawing", n.drawing.state.isDrawing)), t;
|
2569
2590
|
})();
|
2570
|
-
},
|
2591
|
+
}, _r = {
|
2571
2592
|
welcomeMessage: {
|
2572
2593
|
text: "Click here to leave feedback",
|
2573
2594
|
closeAriaLabel: "Close welcome message"
|
@@ -2592,31 +2613,33 @@ const Nr = (e) => g(Ot, {
|
|
2592
2613
|
text: "Click & drag to draw"
|
2593
2614
|
}
|
2594
2615
|
};
|
2595
|
-
let
|
2616
|
+
let ve = null;
|
2596
2617
|
function Yr(e) {
|
2597
|
-
|
2618
|
+
ve && (console.warn("Echo widget is already initialized. Cleaning up previous instance..."), ve());
|
2598
2619
|
try {
|
2599
|
-
|
2620
|
+
on(e);
|
2600
2621
|
const {
|
2601
2622
|
position: n = "bottom-right",
|
2602
2623
|
primaryColor: t = "#6227dc",
|
2603
2624
|
onSubmit: r,
|
2604
2625
|
textConfig: a = {},
|
2605
2626
|
customInputs: o = []
|
2606
|
-
} = e, i =
|
2607
|
-
|
2608
|
-
const s =
|
2627
|
+
} = e, i = Xe(_r, a), l = document.createElement("div");
|
2628
|
+
document.body.appendChild(l);
|
2629
|
+
const s = Ct(() => g(qr, {
|
2609
2630
|
position: n,
|
2610
2631
|
primaryColor: t,
|
2611
2632
|
textConfig: i,
|
2612
2633
|
onSubmit: r,
|
2613
2634
|
customInputs: o
|
2614
|
-
}), l)
|
2615
|
-
|
2635
|
+
}), l);
|
2636
|
+
l.remove();
|
2637
|
+
const c = () => {
|
2638
|
+
s(), ve = null;
|
2616
2639
|
};
|
2617
2640
|
return window.addEventListener("unload", c, {
|
2618
2641
|
once: !0
|
2619
|
-
}),
|
2642
|
+
}), ve = c, c;
|
2620
2643
|
} catch (n) {
|
2621
2644
|
throw console.error("Echo initialization failed:", n), n;
|
2622
2645
|
}
|