@contember/echo 0.0.33-beta.4 → 0.0.33-beta.5
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 +639 -531
- package/dist/echo.umd.js +5 -3
- package/dist/index.d.ts +2 -0
- package/dist/stores/widgetStore.d.ts +1 -0
- package/dist/types.d.ts +2 -0
- package/package.json +1 -1
package/dist/echo.es.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
import { sharedConfig as
|
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-pro";
|
3
|
+
const vt = [
|
4
4
|
"allowfullscreen",
|
5
5
|
"async",
|
6
6
|
"autofocus",
|
@@ -26,7 +26,7 @@ const at = [
|
|
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 at = [
|
|
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 at = [
|
|
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 ut = /* @__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]) {
|
@@ -135,10 +135,10 @@ function ht(e, n, t) {
|
|
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,26 +149,26 @@ 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
|
-
function
|
171
|
+
function U(e, n, t, r) {
|
172
172
|
if (r)
|
173
173
|
Array.isArray(t) ? (e[`$$${n}`] = t[0], e[`$$${n}Data`] = t[1]) : e[`$$${n}`] = t;
|
174
174
|
else if (Array.isArray(t)) {
|
@@ -176,20 +176,20 @@ function H(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
|
}
|
192
|
-
function
|
192
|
+
function F(e, n, t) {
|
193
193
|
if (!n) return t ? d(e, "style") : n;
|
194
194
|
const r = e.style;
|
195
195
|
if (typeof n == "string") return r.cssText = n;
|
@@ -201,48 +201,48 @@ function D(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
|
232
|
-
return !!
|
231
|
+
function he(e) {
|
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
|
-
if (n === "style") return
|
245
|
-
if (n === "classList") return
|
244
|
+
if (n === "style") return F(e, t, r);
|
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,27 +253,27 @@ function Ie(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
258
|
const y = Array.isArray(r) ? r[0] : r;
|
259
259
|
e.removeEventListener(f, y);
|
260
260
|
}
|
261
|
-
(m || t) && (
|
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
|
276
|
-
if (
|
275
|
+
function It(e) {
|
276
|
+
if (L.registry && L.events && L.events.find(([s, c]) => c === e))
|
277
277
|
return;
|
278
278
|
let n = e.target;
|
279
279
|
const t = `$$${e.type}`, r = e.target, a = e.currentTarget, o = (s) => Object.defineProperty(e, "target", {
|
@@ -294,7 +294,7 @@ function yt(e) {
|
|
294
294
|
get() {
|
295
295
|
return n || document;
|
296
296
|
}
|
297
|
-
}),
|
297
|
+
}), L.registry && !L.done && (L.done = _$HY.done = !0), e.composedPath) {
|
298
298
|
const s = e.composedPath();
|
299
299
|
o(s[0]);
|
300
300
|
for (let c = 0; c < s.length - 2 && (n = s[c], !!i()); c++) {
|
@@ -308,8 +308,8 @@ function yt(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 ee(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 ee(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 ve(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 K(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 =
|
420
|
-
let o, i = !!
|
421
|
-
return
|
418
|
+
function At(e) {
|
419
|
+
const { useShadow: n } = e, t = document.createTextNode(""), r = () => e.mount || document.body, a = Le();
|
420
|
+
let o, i = !!L.context;
|
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", {
|
@@ -434,7 +434,7 @@ function kt(e) {
|
|
434
434
|
return t.parentNode;
|
435
435
|
},
|
436
436
|
configurable: !0
|
437
|
-
}), v(c, o), l.appendChild(s), e.ref && e.ref(s),
|
437
|
+
}), v(c, o), l.appendChild(s), e.ref && e.ref(s), te(() => l.removeChild(s));
|
438
438
|
}
|
439
439
|
},
|
440
440
|
void 0,
|
@@ -443,7 +443,7 @@ function kt(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 St = 5e3, Ct = (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 St = 5e3, Ct = (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 =
|
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
|
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 =
|
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 =
|
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 =
|
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
|
562
|
-
let n = e[
|
563
|
-
if (!n && (Object.defineProperty(e,
|
564
|
-
value: n = new Proxy(e,
|
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
|
+
let n = e[Y];
|
563
|
+
if (!n && (Object.defineProperty(e, Y, {
|
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 Ye(e) {
|
|
574
574
|
}
|
575
575
|
return n;
|
576
576
|
}
|
577
|
-
function
|
577
|
+
function we(e) {
|
578
578
|
let n;
|
579
|
-
return e != null && typeof e == "object" && (e[
|
579
|
+
return e != null && typeof e == "object" && (e[Y] || !(n = Object.getPrototypeOf(e)) || n === Object.prototype || Array.isArray(e));
|
580
580
|
}
|
581
|
-
function
|
581
|
+
function 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 ===
|
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 ===
|
624
|
-
if (n ===
|
625
|
-
if (n ===
|
626
|
-
return
|
627
|
-
const r =
|
623
|
+
if (n === Ie) return e;
|
624
|
+
if (n === Y) return t;
|
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,75 +642,75 @@ const Ot = {
|
|
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
|
-
function
|
667
|
-
if (typeof n == "function" && (n = n(e)), n =
|
666
|
+
function Bt(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
|
-
function
|
677
|
+
function oe(e, n, t = []) {
|
678
678
|
let r, a = e;
|
679
679
|
if (n.length > 1) {
|
680
680
|
r = n.shift();
|
681
681
|
const i = typeof r, l = Array.isArray(e);
|
682
682
|
if (Array.isArray(r)) {
|
683
683
|
for (let s = 0; s < r.length; s++)
|
684
|
-
|
684
|
+
oe(e, [r[s]].concat(n), t);
|
685
685
|
return;
|
686
686
|
} else if (l && i === "function") {
|
687
687
|
for (let s = 0; s < e.length; s++)
|
688
|
-
r(e[s], s) &&
|
688
|
+
r(e[s], s) && oe(e, [s].concat(n), t);
|
689
689
|
return;
|
690
690
|
} else if (l && i === "object") {
|
691
691
|
const { from: s = 0, to: c = e.length - 1, by: u = 1 } = r;
|
692
692
|
for (let h = s; h <= c; h += u)
|
693
|
-
|
693
|
+
oe(e, [h].concat(n), t);
|
694
694
|
return;
|
695
695
|
} else if (n.length > 1) {
|
696
|
-
|
696
|
+
oe(e[r], n, [r].concat(t));
|
697
697
|
return;
|
698
698
|
}
|
699
699
|
a = e[r], t = [r].concat(t);
|
700
700
|
}
|
701
701
|
let o = n[0];
|
702
|
-
typeof o == "function" && (o = o(a, t), o === a) || r === void 0 && o == null || (o =
|
702
|
+
typeof o == "function" && (o = o(a, t), o === a) || r === void 0 && o == null || (o = 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
|
-
|
708
|
-
r && i.length === 1 ?
|
707
|
+
ut(() => {
|
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",
|
@@ -731,24 +731,79 @@ const q = {
|
|
731
731
|
default: 1
|
732
732
|
}
|
733
733
|
}
|
734
|
-
},
|
734
|
+
}, _t = (e) => {
|
735
735
|
const n = e.replace("#", ""), t = Number.parseInt(n.slice(0, 2), 16) / 255, r = Number.parseInt(n.slice(2, 2), 16) / 255, a = Number.parseInt(n.slice(4, 2), 16) / 255;
|
736
736
|
return 0.2126 * t + 0.7152 * r + 0.0722 * a;
|
737
|
-
},
|
738
|
-
let
|
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
|
+
const r = (o) => {
|
741
|
+
if (typeof o == "string") return o;
|
742
|
+
if (o instanceof Error) return o.stack || o.message;
|
743
|
+
try {
|
744
|
+
const i = /* @__PURE__ */ new WeakSet();
|
745
|
+
return JSON.stringify(o, (s, c) => {
|
746
|
+
if (typeof c == "object" && c !== null) {
|
747
|
+
if (c instanceof Node) return `[${c.nodeName} Element]`;
|
748
|
+
if (i.has(c)) return "[Circular Reference]";
|
749
|
+
i.add(c);
|
750
|
+
}
|
751
|
+
return c;
|
752
|
+
});
|
753
|
+
} catch {
|
754
|
+
return "[Unable to stringify value]";
|
755
|
+
}
|
756
|
+
}, a = t.map(r).join(" ");
|
757
|
+
j.push({
|
758
|
+
type: e,
|
759
|
+
message: a,
|
760
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
761
|
+
}), j.length > 1e3 && (j = j.slice(-1e3)), n.apply(console, t);
|
762
|
+
}, Ht = () => {
|
763
|
+
M || (M = {
|
764
|
+
log: console.log,
|
765
|
+
warn: console.warn,
|
766
|
+
error: console.error
|
767
|
+
}, Q = window.onerror, ee = window.onunhandledrejection, window.onerror = (e, n, t, r, a) => {
|
768
|
+
const o = (a == null ? void 0 : a.stack) || (a == null ? void 0 : a.message) || e;
|
769
|
+
return j.push({
|
770
|
+
type: "error",
|
771
|
+
message: `Uncaught Error: ${o}
|
772
|
+
Location: ${n}:${t}:${r}`,
|
773
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
774
|
+
}), Q ? Q(e, n, t, r, a) : !1;
|
775
|
+
}, window.onunhandledrejection = (e) => {
|
776
|
+
const n = e.reason;
|
777
|
+
j.push({
|
778
|
+
type: "error",
|
779
|
+
message: `Unhandled Promise Rejection: ${(n == null ? void 0 : n.stack) || (n == null ? void 0 : n.message) || n}`,
|
780
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
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
|
+
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
|
+
j.push({
|
785
|
+
type: "error",
|
786
|
+
message: `Uncaught Error: ${i}
|
787
|
+
Location: ${t}:${r}:${a}`,
|
788
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
789
|
+
});
|
790
|
+
}));
|
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 = () => {
|
740
795
|
var e;
|
741
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);
|
742
|
-
},
|
797
|
+
}, me = (e, { useClientCoords: n = !1 } = {}) => {
|
743
798
|
const r = typeof TouchEvent < "u" && e instanceof TouchEvent ? e.touches[0] : null;
|
744
799
|
return {
|
745
800
|
x: r ? n ? r.clientX : r.pageX : n ? e.clientX : e.pageX,
|
746
801
|
y: r ? n ? r.clientY : r.pageY : n ? e.clientY : e.pageY
|
747
802
|
};
|
748
|
-
},
|
803
|
+
}, We = (e, n) => {
|
749
804
|
const t = n.x - e.x, r = n.y - e.y;
|
750
805
|
return Math.sqrt(t * t + r * r);
|
751
|
-
},
|
806
|
+
}, it = (e) => {
|
752
807
|
if (e.length !== 2) return null;
|
753
808
|
const [n, t] = e;
|
754
809
|
return {
|
@@ -757,39 +812,82 @@ const jt = () => [...Ft], Lt = () => {
|
|
757
812
|
width: Math.abs(t.x - n.x),
|
758
813
|
height: Math.abs(t.y - n.y)
|
759
814
|
};
|
760
|
-
},
|
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);
|
844
|
+
}, window.EventTarget.prototype.removeEventListener = function(n, t, r) {
|
845
|
+
if (!t || typeof this != "object")
|
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);
|
854
|
+
});
|
855
|
+
}, Qt = () => {
|
856
|
+
xe && (window.EventTarget.prototype.addEventListener = be, window.EventTarget.prototype.removeEventListener = J, xe = !1, ae = null);
|
761
857
|
}, A = (e) => {
|
762
858
|
const { event: n, callback: t, onMount: r, onCleanup: a } = e;
|
763
|
-
|
859
|
+
ke(() => {
|
764
860
|
r == null || r(), window.addEventListener(n, t);
|
765
|
-
}),
|
861
|
+
}), te(() => {
|
766
862
|
a == null || a(), window.removeEventListener(n, t);
|
767
863
|
});
|
768
|
-
},
|
864
|
+
}, Ae = (e) => {
|
769
865
|
const { target: n, options: t, callback: r, onMount: a, onCleanup: o } = e, i = new MutationObserver(r);
|
770
|
-
|
866
|
+
ke(() => {
|
771
867
|
a == null || a(), i.observe(n, t);
|
772
|
-
}),
|
868
|
+
}), te(() => {
|
773
869
|
o == null || o(), i.disconnect();
|
774
870
|
});
|
775
|
-
},
|
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 () => {
|
776
874
|
var e;
|
777
875
|
try {
|
778
876
|
const n = document.createElement("style");
|
779
877
|
document.head.appendChild(n), (e = n.sheet) == null || e.insertRule("body > div:last-child img { display: inline-block; }");
|
780
|
-
const t = await
|
878
|
+
const t = await mt(document.body, {
|
781
879
|
logging: !1,
|
782
880
|
useCORS: !0,
|
783
881
|
scale: window.devicePixelRatio,
|
784
882
|
allowTaint: !0,
|
785
|
-
ignoreElements: (r) =>
|
883
|
+
ignoreElements: (r) => tn(r)
|
786
884
|
});
|
787
885
|
return n.remove(), t.toDataURL("image/png");
|
788
886
|
} catch (n) {
|
789
887
|
console.error("Failed to capture screenshot:", n);
|
790
888
|
return;
|
791
889
|
}
|
792
|
-
},
|
890
|
+
}, rn = (e, n, t) => {
|
793
891
|
let r = `M0 0 H${e.width} V${e.height} H0 Z`;
|
794
892
|
if (n.length === 2) {
|
795
893
|
const [a, o] = n;
|
@@ -801,16 +899,16 @@ const jt = () => [...Ft], Lt = () => {
|
|
801
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}`;
|
802
900
|
}
|
803
901
|
return r;
|
804
|
-
},
|
902
|
+
}, on = (e) => {
|
805
903
|
if (typeof e != "object" || e === null)
|
806
904
|
throw new Error("Echo initialization failed: options must be an object");
|
807
905
|
if (typeof e.onSubmit != "function")
|
808
906
|
throw new Error("Echo initialization failed: onSubmit must be a function");
|
809
907
|
if (e.primaryColor && !/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(e.primaryColor))
|
810
908
|
throw new Error("Echo initialization failed: primaryColor must be a valid hex color");
|
811
|
-
},
|
909
|
+
}, Be = 5, _e = (e, n) => V[e].getCursor(n), an = (e, n, t) => {
|
812
910
|
var l, s;
|
813
|
-
const [r, a] =
|
911
|
+
const [r, a] = Me({
|
814
912
|
isDrawing: !1,
|
815
913
|
currentPoints: [],
|
816
914
|
selectedShapeId: null,
|
@@ -818,17 +916,17 @@ const jt = () => [...Ft], Lt = () => {
|
|
818
916
|
showTooltip: !0,
|
819
917
|
mousePosition: { x: 0, y: 0 },
|
820
918
|
selectedColor: e.primaryColor,
|
821
|
-
shapes: ((s = (l =
|
919
|
+
shapes: ((s = (l = Oe(n)) == null ? void 0 : l.drawing) == null ? void 0 : s.shapes) || [],
|
822
920
|
hasDrawn: !1,
|
823
921
|
isDragging: !1,
|
824
922
|
dragStartPos: null,
|
825
923
|
initialClickPos: null,
|
826
924
|
dragOffset: null,
|
827
|
-
cursor:
|
925
|
+
cursor: _e("rectangle", e.primaryColor)
|
828
926
|
}), o = (c, u = !1) => {
|
829
927
|
if (c.selectedTool || c.selectedColor) {
|
830
928
|
const h = c.selectedTool || r.selectedTool, f = c.selectedColor || r.selectedColor;
|
831
|
-
c.cursor =
|
929
|
+
c.cursor = _e(h, f);
|
832
930
|
}
|
833
931
|
a(c), t == null || t(c, u);
|
834
932
|
}, i = {
|
@@ -864,7 +962,7 @@ const jt = () => [...Ft], Lt = () => {
|
|
864
962
|
if (!h.classList.contains("echo-drawing-layer-mask") && !h.classList.contains("echo-shape"))
|
865
963
|
return;
|
866
964
|
}
|
867
|
-
const u =
|
965
|
+
const u = me(c);
|
868
966
|
if (c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
|
869
967
|
const h = c.target.dataset.shapeId;
|
870
968
|
if (h && r.selectedShapeId === h) {
|
@@ -878,20 +976,20 @@ const jt = () => [...Ft], Lt = () => {
|
|
878
976
|
i.setInitialClick(u);
|
879
977
|
},
|
880
978
|
handleMove: (c) => {
|
881
|
-
const u =
|
979
|
+
const u = me(c, { useClientCoords: !0 }), h = me(c);
|
882
980
|
if (o({ mousePosition: u }), r.isDragging && r.selectedShapeId && r.dragStartPos && r.shapes.find((m) => m.id === r.selectedShapeId)) {
|
883
|
-
const m = h.x - r.dragStartPos.x, y = h.y - r.dragStartPos.y,
|
981
|
+
const m = h.x - r.dragStartPos.x, y = h.y - r.dragStartPos.y, E = r.shapes.map((S) => S.id === r.selectedShapeId ? {
|
884
982
|
...S,
|
885
983
|
points: S.points.map((C) => ({
|
886
984
|
x: C.x + m,
|
887
985
|
y: C.y + y
|
888
986
|
}))
|
889
987
|
} : S);
|
890
|
-
o({ shapes:
|
988
|
+
o({ shapes: E }), i.startDrag(h);
|
891
989
|
return;
|
892
990
|
}
|
893
991
|
if (r.initialClickPos && !r.isDrawing) {
|
894
|
-
|
992
|
+
We(r.initialClickPos, h) >= Be && i.startDrawing(r.initialClickPos);
|
895
993
|
return;
|
896
994
|
}
|
897
995
|
r.isDrawing && i.updateDrawing(h);
|
@@ -902,8 +1000,8 @@ const jt = () => [...Ft], Lt = () => {
|
|
902
1000
|
return;
|
903
1001
|
}
|
904
1002
|
if (r.initialClickPos && !r.isDrawing) {
|
905
|
-
const u =
|
906
|
-
if (
|
1003
|
+
const u = me(c);
|
1004
|
+
if (We(r.initialClickPos, u) < Be && c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
|
907
1005
|
const f = c.target.dataset.shapeId;
|
908
1006
|
f && o({ selectedShapeId: f });
|
909
1007
|
}
|
@@ -948,15 +1046,15 @@ const jt = () => [...Ft], Lt = () => {
|
|
948
1046
|
setState: o,
|
949
1047
|
methods: i
|
950
1048
|
};
|
951
|
-
},
|
1049
|
+
}, sn = (e, n, t, r) => {
|
952
1050
|
var h;
|
953
1051
|
const a = (r == null ? void 0 : r.reduce(
|
954
1052
|
(f, m) => (f[m.id] = m.defaultValue ?? (m.type === "checkbox" ? [] : ""), f),
|
955
1053
|
{}
|
956
|
-
)) || {}, o =
|
1054
|
+
)) || {}, o = Oe(n), i = (o == null ? void 0 : o.feedback.customInputValues) || {}, l = {
|
957
1055
|
...a,
|
958
1056
|
...i
|
959
|
-
}, [s, c] =
|
1057
|
+
}, [s, c] = Me({
|
960
1058
|
message: ((h = o == null ? void 0 : o.feedback) == null ? void 0 : h.message) || "",
|
961
1059
|
screenshot: void 0,
|
962
1060
|
isCapturing: !1,
|
@@ -971,8 +1069,8 @@ const jt = () => [...Ft], Lt = () => {
|
|
971
1069
|
!y && !s.hasUserInteracted && c({ hasUserInteracted: !0 }), c(f), (s.hasUserInteracted || y) && (t == null || t(f, m));
|
972
1070
|
}
|
973
1071
|
};
|
974
|
-
},
|
975
|
-
const [t, r] =
|
1072
|
+
}, ln = (e, n) => {
|
1073
|
+
const [t, r] = Me({
|
976
1074
|
text: e.textConfig,
|
977
1075
|
isOpen: !1,
|
978
1076
|
primaryColor: e.primaryColor,
|
@@ -986,24 +1084,25 @@ const jt = () => [...Ft], Lt = () => {
|
|
986
1084
|
height: document.documentElement.scrollHeight
|
987
1085
|
},
|
988
1086
|
isStoredFeedbackOpen: !1,
|
989
|
-
pagesCount:
|
1087
|
+
pagesCount: tt(),
|
990
1088
|
welcomeMessageIsClosing: !1,
|
991
1089
|
position: e.position,
|
992
|
-
customInputs: e.customInputs
|
1090
|
+
customInputs: e.customInputs,
|
1091
|
+
disableMinimization: e.disableMinimization
|
993
1092
|
});
|
994
1093
|
return {
|
995
1094
|
state: t,
|
996
1095
|
setState: r
|
997
1096
|
};
|
998
|
-
},
|
1097
|
+
}, Ue = (e) => {
|
999
1098
|
var n;
|
1000
1099
|
return ((n = e.customInputs) == null ? void 0 : n.reduce(
|
1001
1100
|
(t, r) => (t[r.id] = r.defaultValue ?? (r.type === "checkbox" ? [] : ""), t),
|
1002
1101
|
{}
|
1003
1102
|
)) || {};
|
1004
|
-
},
|
1005
|
-
let n =
|
1006
|
-
const t =
|
1103
|
+
}, cn = (e) => {
|
1104
|
+
let n = Te();
|
1105
|
+
const t = ln(e), r = qt(t), a = Ft(t), o = sn(
|
1007
1106
|
e,
|
1008
1107
|
n,
|
1009
1108
|
(c, u) => {
|
@@ -1017,7 +1116,7 @@ const jt = () => [...Ft], Lt = () => {
|
|
1017
1116
|
);
|
1018
1117
|
},
|
1019
1118
|
e.customInputs
|
1020
|
-
), i =
|
1119
|
+
), i = an(e, n, (c, u) => {
|
1021
1120
|
r(
|
1022
1121
|
n,
|
1023
1122
|
{
|
@@ -1028,8 +1127,8 @@ const jt = () => [...Ft], Lt = () => {
|
|
1028
1127
|
);
|
1029
1128
|
}), l = (c) => {
|
1030
1129
|
n = c;
|
1031
|
-
const u =
|
1032
|
-
...
|
1130
|
+
const u = Oe(n), h = {
|
1131
|
+
...Ue(e),
|
1033
1132
|
...u == null ? void 0 : u.feedback.customInputValues
|
1034
1133
|
};
|
1035
1134
|
o.setState({
|
@@ -1040,7 +1139,7 @@ const jt = () => [...Ft], Lt = () => {
|
|
1040
1139
|
shapes: (u == null ? void 0 : u.drawing.shapes) || []
|
1041
1140
|
});
|
1042
1141
|
}, s = () => {
|
1043
|
-
|
1142
|
+
et(n);
|
1044
1143
|
const c = {
|
1045
1144
|
feedback: {
|
1046
1145
|
message: "",
|
@@ -1048,7 +1147,7 @@ const jt = () => [...Ft], Lt = () => {
|
|
1048
1147
|
isCapturing: !1,
|
1049
1148
|
isMinimized: !1,
|
1050
1149
|
hasUserInteracted: !1,
|
1051
|
-
customInputValues:
|
1150
|
+
customInputValues: Ue(e)
|
1052
1151
|
},
|
1053
1152
|
drawing: {
|
1054
1153
|
isDrawing: !1,
|
@@ -1090,27 +1189,28 @@ const jt = () => [...Ft], Lt = () => {
|
|
1090
1189
|
}
|
1091
1190
|
}
|
1092
1191
|
};
|
1093
|
-
},
|
1094
|
-
const n =
|
1192
|
+
}, st = ht(), dn = (e) => {
|
1193
|
+
const n = cn({
|
1095
1194
|
primaryColor: e.primaryColor,
|
1096
1195
|
onSubmit: e.onSubmit,
|
1097
1196
|
textConfig: e.textConfig,
|
1098
1197
|
position: e.position,
|
1099
|
-
customInputs: e.customInputs
|
1198
|
+
customInputs: e.customInputs,
|
1199
|
+
disableMinimization: e.disableMinimization
|
1100
1200
|
});
|
1101
|
-
return g(
|
1201
|
+
return g(st.Provider, {
|
1102
1202
|
value: n,
|
1103
1203
|
get children() {
|
1104
1204
|
return e.children;
|
1105
1205
|
}
|
1106
1206
|
});
|
1107
1207
|
}, $ = () => {
|
1108
|
-
const e =
|
1208
|
+
const e = gt(st);
|
1109
1209
|
if (!e)
|
1110
1210
|
throw new Error("useEchoStore must be used within EchoProvider");
|
1111
1211
|
return e;
|
1112
|
-
},
|
1113
|
-
const [n, t] =
|
1212
|
+
}, un = (e) => {
|
1213
|
+
const [n, t] = T({
|
1114
1214
|
width: document.documentElement.clientWidth,
|
1115
1215
|
height: document.documentElement.scrollHeight
|
1116
1216
|
}), r = () => {
|
@@ -1126,7 +1226,7 @@ const jt = () => [...Ft], Lt = () => {
|
|
1126
1226
|
event: "resize",
|
1127
1227
|
callback: r,
|
1128
1228
|
onMount: r
|
1129
|
-
}),
|
1229
|
+
}), Ae({
|
1130
1230
|
target: document.documentElement,
|
1131
1231
|
options: {
|
1132
1232
|
childList: !0,
|
@@ -1135,13 +1235,13 @@ const jt = () => [...Ft], Lt = () => {
|
|
1135
1235
|
},
|
1136
1236
|
callback: r
|
1137
1237
|
}), n;
|
1138
|
-
},
|
1139
|
-
let n =
|
1238
|
+
}, hn = ({ onUrlChange: e }) => {
|
1239
|
+
let n = Te();
|
1140
1240
|
const t = () => {
|
1141
|
-
const r =
|
1241
|
+
const r = Te();
|
1142
1242
|
r !== n && (n = r, e(r));
|
1143
1243
|
};
|
1144
|
-
A({ event: "popstate", callback: t }), A({ event: "pushstate", callback: t }), A({ event: "replacestate", callback: t }),
|
1244
|
+
A({ event: "popstate", callback: t }), A({ event: "pushstate", callback: t }), A({ event: "replacestate", callback: t }), Ae({
|
1145
1245
|
target: document.documentElement,
|
1146
1246
|
options: {
|
1147
1247
|
childList: !0,
|
@@ -1149,9 +1249,9 @@ const jt = () => [...Ft], Lt = () => {
|
|
1149
1249
|
},
|
1150
1250
|
callback: t
|
1151
1251
|
});
|
1152
|
-
}, Zt = `*,*: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}`;
|
1153
|
-
var
|
1154
|
-
const
|
1252
|
+
}, 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}`;
|
1253
|
+
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>");
|
1254
|
+
const vn = [
|
1155
1255
|
"#ff6b6b",
|
1156
1256
|
// Soft Red
|
1157
1257
|
"#69db7c",
|
@@ -1168,7 +1268,7 @@ const en = [
|
|
1168
1268
|
// Soft Orange
|
1169
1269
|
"#e599f7"
|
1170
1270
|
// Soft Pink
|
1171
|
-
],
|
1271
|
+
], bn = {
|
1172
1272
|
"#ff6b6b": "Soft Red",
|
1173
1273
|
"#69db7c": "Soft Green",
|
1174
1274
|
"#74c0fc": "Soft Blue",
|
@@ -1177,20 +1277,20 @@ const en = [
|
|
1177
1277
|
"#66d9e8": "Soft Cyan",
|
1178
1278
|
"#ffa94d": "Soft Orange",
|
1179
1279
|
"#e599f7": "Soft Pink"
|
1180
|
-
},
|
1280
|
+
}, Ee = (e) => bn[e] || "Primary", wn = () => {
|
1181
1281
|
const e = $();
|
1182
1282
|
return (() => {
|
1183
|
-
var n =
|
1184
|
-
return d(t, "aria-expanded", !1), v(a, g(
|
1283
|
+
var n = fn(), t = n.firstChild, r = t.nextSibling, a = r.firstChild;
|
1284
|
+
return d(t, "aria-expanded", !1), v(a, g(B, {
|
1185
1285
|
get each() {
|
1186
|
-
return [e.widget.state.primaryColor, ...
|
1286
|
+
return [e.widget.state.primaryColor, ...vn];
|
1187
1287
|
},
|
1188
1288
|
children: (o) => (() => {
|
1189
|
-
var i =
|
1289
|
+
var i = mn();
|
1190
1290
|
return i.$$click = () => e.drawing.setState({
|
1191
1291
|
selectedColor: o
|
1192
1292
|
}), o != null ? i.style.setProperty("background-color", o) : i.style.removeProperty("background-color"), b((l) => {
|
1193
|
-
var s = `Select ${
|
1293
|
+
var s = `Select ${Ee(o)} color`, c = e.drawing.state.selectedColor === o, u = `${Ee(o)} color`, h = e.drawing.state.selectedColor === o;
|
1194
1294
|
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;
|
1195
1295
|
}, {
|
1196
1296
|
e: void 0,
|
@@ -1200,7 +1300,7 @@ const en = [
|
|
1200
1300
|
}), i;
|
1201
1301
|
})()
|
1202
1302
|
})), b((o) => {
|
1203
|
-
var i = `Current color: ${
|
1303
|
+
var i = `Current color: ${Ee(e.drawing.state.selectedColor)}`, l = e.drawing.state.selectedColor;
|
1204
1304
|
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;
|
1205
1305
|
}, {
|
1206
1306
|
e: void 0,
|
@@ -1208,13 +1308,13 @@ const en = [
|
|
1208
1308
|
}), n;
|
1209
1309
|
})();
|
1210
1310
|
};
|
1211
|
-
|
1212
|
-
var
|
1213
|
-
const
|
1214
|
-
var n =
|
1311
|
+
I(["click"]);
|
1312
|
+
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">');
|
1313
|
+
const pn = (e) => (() => {
|
1314
|
+
var n = yn();
|
1215
1315
|
return b((t) => {
|
1216
1316
|
var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
|
1217
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1317
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
|
1218
1318
|
}, {
|
1219
1319
|
e: void 0,
|
1220
1320
|
t: void 0,
|
@@ -1225,12 +1325,12 @@ const on = (e) => (() => {
|
|
1225
1325
|
s: void 0
|
1226
1326
|
}), n;
|
1227
1327
|
})();
|
1228
|
-
var
|
1229
|
-
const
|
1230
|
-
var n =
|
1328
|
+
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">');
|
1329
|
+
const kn = (e) => (() => {
|
1330
|
+
var n = xn(), t = n.firstChild;
|
1231
1331
|
return b((r) => {
|
1232
1332
|
var a = e.size ?? 24, o = e.size ?? 24, i = e.class, l = e.style, s = e.fill ?? "currentColor";
|
1233
|
-
return a !== r.e && d(n, "width", r.e = a), o !== r.t && d(n, "height", r.t = o), i !== r.a && d(n, "class", r.a = i), r.o =
|
1333
|
+
return a !== r.e && d(n, "width", r.e = a), o !== r.t && d(n, "height", r.t = o), i !== r.a && d(n, "class", r.a = i), r.o = F(n, l, r.o), s !== r.i && d(t, "fill", r.i = s), r;
|
1234
1334
|
}, {
|
1235
1335
|
e: void 0,
|
1236
1336
|
t: void 0,
|
@@ -1239,12 +1339,12 @@ const sn = (e) => (() => {
|
|
1239
1339
|
i: void 0
|
1240
1340
|
}), n;
|
1241
1341
|
})();
|
1242
|
-
var
|
1243
|
-
const
|
1244
|
-
var n =
|
1342
|
+
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">');
|
1343
|
+
const Cn = (e) => (() => {
|
1344
|
+
var n = Sn();
|
1245
1345
|
return b((t) => {
|
1246
1346
|
var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
|
1247
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1347
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
|
1248
1348
|
}, {
|
1249
1349
|
e: void 0,
|
1250
1350
|
t: void 0,
|
@@ -1255,12 +1355,12 @@ const cn = (e) => (() => {
|
|
1255
1355
|
s: void 0
|
1256
1356
|
}), n;
|
1257
1357
|
})();
|
1258
|
-
var
|
1259
|
-
const
|
1260
|
-
var n =
|
1358
|
+
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">');
|
1359
|
+
const En = (e) => (() => {
|
1360
|
+
var n = $n();
|
1261
1361
|
return b((t) => {
|
1262
1362
|
var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
|
1263
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1363
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
|
1264
1364
|
}, {
|
1265
1365
|
e: void 0,
|
1266
1366
|
t: void 0,
|
@@ -1271,12 +1371,12 @@ const un = (e) => (() => {
|
|
1271
1371
|
s: void 0
|
1272
1372
|
}), n;
|
1273
1373
|
})();
|
1274
|
-
var
|
1275
|
-
const
|
1276
|
-
var n =
|
1374
|
+
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>');
|
1375
|
+
const lt = (e) => (() => {
|
1376
|
+
var n = Pn();
|
1277
1377
|
return b((t) => {
|
1278
1378
|
var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
|
1279
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1379
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
|
1280
1380
|
}, {
|
1281
1381
|
e: void 0,
|
1282
1382
|
t: void 0,
|
@@ -1287,12 +1387,12 @@ const Ze = (e) => (() => {
|
|
1287
1387
|
s: void 0
|
1288
1388
|
}), n;
|
1289
1389
|
})();
|
1290
|
-
var
|
1291
|
-
const
|
1292
|
-
var n =
|
1390
|
+
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">');
|
1391
|
+
const Tn = (e) => (() => {
|
1392
|
+
var n = zn();
|
1293
1393
|
return b((t) => {
|
1294
1394
|
var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
|
1295
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1395
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
|
1296
1396
|
}, {
|
1297
1397
|
e: void 0,
|
1298
1398
|
t: void 0,
|
@@ -1303,12 +1403,12 @@ const fn = (e) => (() => {
|
|
1303
1403
|
s: void 0
|
1304
1404
|
}), n;
|
1305
1405
|
})();
|
1306
|
-
var
|
1307
|
-
const
|
1308
|
-
var n =
|
1406
|
+
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">');
|
1407
|
+
const On = (e) => (() => {
|
1408
|
+
var n = In();
|
1309
1409
|
return b((t) => {
|
1310
1410
|
var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
|
1311
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1411
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
|
1312
1412
|
}, {
|
1313
1413
|
e: void 0,
|
1314
1414
|
t: void 0,
|
@@ -1319,12 +1419,12 @@ const vn = (e) => (() => {
|
|
1319
1419
|
s: void 0
|
1320
1420
|
}), n;
|
1321
1421
|
})();
|
1322
|
-
var
|
1323
|
-
const
|
1324
|
-
var n =
|
1422
|
+
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">');
|
1423
|
+
const Se = (e) => (() => {
|
1424
|
+
var n = Mn();
|
1325
1425
|
return b((t) => {
|
1326
1426
|
var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
|
1327
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1427
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
|
1328
1428
|
}, {
|
1329
1429
|
e: void 0,
|
1330
1430
|
t: void 0,
|
@@ -1335,20 +1435,20 @@ const he = (e) => (() => {
|
|
1335
1435
|
s: void 0
|
1336
1436
|
}), n;
|
1337
1437
|
})();
|
1338
|
-
var
|
1339
|
-
const
|
1340
|
-
rectangle:
|
1341
|
-
path:
|
1342
|
-
},
|
1343
|
-
const e = $(), n = Object.values(
|
1438
|
+
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>");
|
1439
|
+
const Fn = {
|
1440
|
+
rectangle: Cn,
|
1441
|
+
path: En
|
1442
|
+
}, Ln = () => {
|
1443
|
+
const e = $(), n = Object.values(V);
|
1344
1444
|
return (() => {
|
1345
|
-
var t =
|
1346
|
-
return v(t, g(
|
1445
|
+
var t = An(), r = t.firstChild;
|
1446
|
+
return v(t, g(B, {
|
1347
1447
|
each: n,
|
1348
1448
|
children: (a) => {
|
1349
|
-
const o =
|
1449
|
+
const o = Fn[a.id];
|
1350
1450
|
return (() => {
|
1351
|
-
var i =
|
1451
|
+
var i = Dn();
|
1352
1452
|
return i.$$click = () => e.drawing.setState({
|
1353
1453
|
selectedTool: a.id
|
1354
1454
|
}), v(i, g(o, {
|
@@ -1365,24 +1465,24 @@ const pn = {
|
|
1365
1465
|
}), i;
|
1366
1466
|
})();
|
1367
1467
|
}
|
1368
|
-
}), r), v(t, g(
|
1468
|
+
}), r), v(t, g(wn, {}), r), r.$$click = () => e.drawing.setState({
|
1369
1469
|
shapes: []
|
1370
|
-
}, !0), v(r, g(
|
1470
|
+
}, !0), v(r, g(lt, {
|
1371
1471
|
class: "echo-drawing-toolbar-icon",
|
1372
1472
|
"aria-hidden": "true"
|
1373
1473
|
})), t;
|
1374
1474
|
})();
|
1375
1475
|
};
|
1376
|
-
|
1377
|
-
var
|
1378
|
-
const
|
1379
|
-
const e = $(), n = k(() => e.drawing.state.showTooltip && e.drawing.state.mousePosition.y && e.drawing.state.mousePosition.x && e.widget.state.isOpen && !
|
1380
|
-
return g(
|
1476
|
+
I(["click"]);
|
1477
|
+
var Nn = /* @__PURE__ */ w("<div class=echo-drawing-tooltip data-hide-when-drawing=true>");
|
1478
|
+
const jn = () => {
|
1479
|
+
const e = $(), n = k(() => e.drawing.state.showTooltip && e.drawing.state.mousePosition.y && e.drawing.state.mousePosition.x && e.widget.state.isOpen && !Gt());
|
1480
|
+
return g(D, {
|
1381
1481
|
get when() {
|
1382
1482
|
return n();
|
1383
1483
|
},
|
1384
1484
|
get children() {
|
1385
|
-
var t =
|
1485
|
+
var t = Nn();
|
1386
1486
|
return v(t, () => e.widget.state.text.drawingTooltip.text), b((r) => {
|
1387
1487
|
var a = `${e.drawing.state.mousePosition.y + 20}px`, o = `${e.drawing.state.mousePosition.x + 10}px`;
|
1388
1488
|
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;
|
@@ -1393,24 +1493,24 @@ const Sn = () => {
|
|
1393
1493
|
}
|
1394
1494
|
});
|
1395
1495
|
};
|
1396
|
-
var
|
1397
|
-
const
|
1496
|
+
var qn = /* @__PURE__ */ w("<button>");
|
1497
|
+
const W = (e) => {
|
1398
1498
|
const n = () => e.variant || "primary", t = () => e.size || "md";
|
1399
1499
|
return (() => {
|
1400
|
-
var r =
|
1401
|
-
return
|
1500
|
+
var r = qn();
|
1501
|
+
return Pt(r, ie(e, {
|
1402
1502
|
get class() {
|
1403
1503
|
return `echo-button echo-button-${n()} echo-button-${t()} ${e.class}`;
|
1404
1504
|
}
|
1405
1505
|
}), !1), r;
|
1406
1506
|
})();
|
1407
1507
|
};
|
1408
|
-
var
|
1409
|
-
const
|
1410
|
-
var n =
|
1508
|
+
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>');
|
1509
|
+
const Vn = (e) => (() => {
|
1510
|
+
var n = Rn();
|
1411
1511
|
return b((t) => {
|
1412
1512
|
var r = e.size ?? 24, a = e.size ?? 24, o = e.fill ?? "none", i = e.stroke ?? "currentColor", l = e.strokeWidth ?? 2, s = e.class, c = e.style;
|
1413
|
-
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s =
|
1513
|
+
return r !== t.e && d(n, "width", t.e = r), a !== t.t && d(n, "height", t.t = a), o !== t.a && d(n, "fill", t.a = o), i !== t.o && d(n, "stroke", t.o = i), l !== t.i && d(n, "stroke-width", t.i = l), s !== t.n && d(n, "class", t.n = s), t.s = F(n, c, t.s), t;
|
1414
1514
|
}, {
|
1415
1515
|
e: void 0,
|
1416
1516
|
t: void 0,
|
@@ -1421,11 +1521,11 @@ const Pn = (e) => (() => {
|
|
1421
1521
|
s: void 0
|
1422
1522
|
}), n;
|
1423
1523
|
})();
|
1424
|
-
var
|
1425
|
-
const
|
1524
|
+
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>");
|
1525
|
+
const Un = () => {
|
1426
1526
|
const e = $();
|
1427
1527
|
let n;
|
1428
|
-
const [t, r] =
|
1528
|
+
const [t, r] = T(Ce()), [a, o] = T(window.location.pathname), i = (m) => {
|
1429
1529
|
m.key === "Escape" && e.widget.state.isStoredFeedbackOpen && e.widget.setState({
|
1430
1530
|
isStoredFeedbackOpen: !1
|
1431
1531
|
});
|
@@ -1435,7 +1535,7 @@ const Tn = () => {
|
|
1435
1535
|
isStoredFeedbackOpen: !1
|
1436
1536
|
});
|
1437
1537
|
}, s = () => {
|
1438
|
-
const m =
|
1538
|
+
const m = Ce();
|
1439
1539
|
r(m), e.widget.setState({
|
1440
1540
|
pagesCount: m.length
|
1441
1541
|
});
|
@@ -1448,7 +1548,7 @@ const Tn = () => {
|
|
1448
1548
|
}), A({
|
1449
1549
|
event: "popstate",
|
1450
1550
|
callback: c
|
1451
|
-
}),
|
1551
|
+
}), Ae({
|
1452
1552
|
target: document.documentElement,
|
1453
1553
|
options: {
|
1454
1554
|
childList: !0,
|
@@ -1465,13 +1565,13 @@ const Tn = () => {
|
|
1465
1565
|
callback: l
|
1466
1566
|
});
|
1467
1567
|
const u = (m, y) => {
|
1468
|
-
const
|
1469
|
-
window.location.href =
|
1568
|
+
const E = y ? `${m}${y}` : m;
|
1569
|
+
window.location.href = E, e.widget.setState({
|
1470
1570
|
isStoredFeedbackOpen: !1
|
1471
1571
|
});
|
1472
1572
|
}, h = (m) => {
|
1473
|
-
a() === m && e.methods.reset(),
|
1474
|
-
const y =
|
1573
|
+
a() === m && e.methods.reset(), et(m);
|
1574
|
+
const y = Ce();
|
1475
1575
|
r(y), e.widget.setState({
|
1476
1576
|
pagesCount: y.length
|
1477
1577
|
});
|
@@ -1480,79 +1580,79 @@ const Tn = () => {
|
|
1480
1580
|
const y = m.split("/");
|
1481
1581
|
return y.length <= 4 ? m : `/${y[1]}/.../${y[y.length - 1]}`;
|
1482
1582
|
};
|
1483
|
-
return g(
|
1583
|
+
return g(D, {
|
1484
1584
|
get when() {
|
1485
1585
|
return e.widget.state.isStoredFeedbackOpen;
|
1486
1586
|
},
|
1487
1587
|
get children() {
|
1488
|
-
var m =
|
1588
|
+
var m = Bn(), y = m.firstChild;
|
1489
1589
|
y.firstChild;
|
1490
|
-
var
|
1491
|
-
return typeof S == "function" ?
|
1590
|
+
var E = y.nextSibling, S = n;
|
1591
|
+
return typeof S == "function" ? R(S, m) : n = m, v(y, g(W, {
|
1492
1592
|
variant: "secondary",
|
1493
1593
|
size: "sm",
|
1494
1594
|
onClick: () => e.widget.setState({
|
1495
1595
|
isStoredFeedbackOpen: !1
|
1496
1596
|
}),
|
1497
1597
|
get children() {
|
1498
|
-
return g(
|
1598
|
+
return g(Se, {
|
1499
1599
|
size: 20
|
1500
1600
|
});
|
1501
1601
|
}
|
1502
|
-
}), null), v(
|
1602
|
+
}), null), v(E, g(B, {
|
1503
1603
|
get each() {
|
1504
1604
|
return t();
|
1505
1605
|
},
|
1506
1606
|
children: (C) => {
|
1507
1607
|
const p = k(() => C.path === a());
|
1508
1608
|
return (() => {
|
1509
|
-
var
|
1510
|
-
return v(x, () => f(C.path)), v(_, () => C.state.feedback.message), v(
|
1609
|
+
var P = _n(), z = P.firstChild, x = z.firstChild, _ = x.nextSibling, q = z.nextSibling;
|
1610
|
+
return v(x, () => f(C.path)), v(_, () => C.state.feedback.message), v(q, (() => {
|
1511
1611
|
var O = k(() => !p());
|
1512
|
-
return () => O() && g(
|
1612
|
+
return () => O() && g(W, {
|
1513
1613
|
class: "echo-stored-feedback-link",
|
1514
1614
|
variant: "secondary",
|
1515
1615
|
size: "sm",
|
1516
1616
|
onClick: () => u(C.path, C.state.latestQuery),
|
1517
1617
|
get children() {
|
1518
|
-
return g(
|
1618
|
+
return g(Vn, {});
|
1519
1619
|
}
|
1520
1620
|
});
|
1521
|
-
})(), null), v(
|
1621
|
+
})(), null), v(q, g(W, {
|
1522
1622
|
class: "echo-stored-feedback-delete",
|
1523
1623
|
variant: "secondary",
|
1524
1624
|
size: "sm",
|
1525
1625
|
onClick: () => h(C.path),
|
1526
1626
|
children: "Delete"
|
1527
1627
|
}), null), b((O) => {
|
1528
|
-
var
|
1529
|
-
return
|
1628
|
+
var De = `echo-stored-feedback-item ${p() ? "echo-stored-feedback-item-current" : ""}`, Fe = C.path;
|
1629
|
+
return De !== O.e && Ge(P, O.e = De), Fe !== O.t && d(x, "title", O.t = Fe), O;
|
1530
1630
|
}, {
|
1531
1631
|
e: void 0,
|
1532
1632
|
t: void 0
|
1533
|
-
}),
|
1633
|
+
}), P;
|
1534
1634
|
})();
|
1535
1635
|
}
|
1536
|
-
}), null), v(
|
1636
|
+
}), null), v(E, g(D, {
|
1537
1637
|
get when() {
|
1538
1638
|
return t().length === 0;
|
1539
1639
|
},
|
1540
1640
|
get children() {
|
1541
|
-
return
|
1641
|
+
return Wn();
|
1542
1642
|
}
|
1543
1643
|
}), null), m;
|
1544
1644
|
}
|
1545
1645
|
});
|
1546
1646
|
};
|
1547
|
-
var
|
1548
|
-
const
|
1549
|
-
const e = $(), [n, t] =
|
1647
|
+
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>");
|
1648
|
+
const Kn = () => {
|
1649
|
+
const e = $(), [n, t] = T(!1);
|
1550
1650
|
let r;
|
1551
1651
|
const a = () => {
|
1552
|
-
r && window.clearTimeout(r), r = window.setTimeout(() => {
|
1553
|
-
const c =
|
1652
|
+
r && window.clearTimeout(r), !e.widget.state.disableMinimization && (r = window.setTimeout(() => {
|
1653
|
+
const c = G("welcome_message_shown", !1);
|
1554
1654
|
!e.widget.state.isOpen && !e.widget.state.isStoredFeedbackOpen && c && t(!0);
|
1555
|
-
}, 4e3);
|
1655
|
+
}, 4e3));
|
1556
1656
|
}, o = () => {
|
1557
1657
|
t(!1);
|
1558
1658
|
}, i = () => {
|
@@ -1562,10 +1662,10 @@ const Mn = () => {
|
|
1562
1662
|
isOpen: !e.widget.state.isOpen
|
1563
1663
|
}), e.widget.setState({
|
1564
1664
|
welcomeMessageIsClosing: !0
|
1565
|
-
}),
|
1665
|
+
}), le("welcome_message_shown", !0);
|
1566
1666
|
};
|
1567
|
-
|
1568
|
-
e.widget.state.isOpen || (t(!1), a()), e.widget.state.isStoredFeedbackOpen && t(!1);
|
1667
|
+
H(() => {
|
1668
|
+
e.widget.state.isOpen || (t(!1), e.widget.state.disableMinimization || a()), e.widget.state.isStoredFeedbackOpen && t(!1);
|
1569
1669
|
});
|
1570
1670
|
const s = (c) => {
|
1571
1671
|
c.stopPropagation(), e.widget.setState({
|
@@ -1573,15 +1673,15 @@ const Mn = () => {
|
|
1573
1673
|
}), t(!1);
|
1574
1674
|
};
|
1575
1675
|
return [(() => {
|
1576
|
-
var c =
|
1577
|
-
return c.addEventListener("pointerleave", i), c.addEventListener("pointerenter", o), c.$$click = l, v(c, g(
|
1676
|
+
var c = Hn();
|
1677
|
+
return c.addEventListener("pointerleave", i), c.addEventListener("pointerenter", o), c.$$click = l, v(c, g(kn, {
|
1578
1678
|
stroke: "white",
|
1579
1679
|
fill: "#ffffff",
|
1580
1680
|
"aria-hidden": "true"
|
1581
1681
|
}), null), v(c, (() => {
|
1582
1682
|
var u = k(() => e.widget.state.pagesCount > 0);
|
1583
1683
|
return () => u() && (() => {
|
1584
|
-
var h =
|
1684
|
+
var h = Yn();
|
1585
1685
|
return h.$$click = s, v(h, () => e.widget.state.pagesCount), b(() => d(h, "aria-label", `View ${e.widget.state.pagesCount} stored feedback items`)), h;
|
1586
1686
|
})();
|
1587
1687
|
})(), null), b((u) => {
|
@@ -1592,11 +1692,11 @@ const Mn = () => {
|
|
1592
1692
|
t: void 0,
|
1593
1693
|
a: void 0
|
1594
1694
|
}), c;
|
1595
|
-
})(), g(
|
1695
|
+
})(), g(Un, {})];
|
1596
1696
|
};
|
1597
|
-
|
1598
|
-
var
|
1599
|
-
const
|
1697
|
+
I(["click"]);
|
1698
|
+
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>");
|
1699
|
+
const Xn = () => {
|
1600
1700
|
const e = $(), n = () => {
|
1601
1701
|
e.widget.setState({
|
1602
1702
|
notification: {
|
@@ -1615,8 +1715,8 @@ const Fn = () => {
|
|
1615
1715
|
}
|
1616
1716
|
};
|
1617
1717
|
return (() => {
|
1618
|
-
var r =
|
1619
|
-
return v(r, g(
|
1718
|
+
var r = Gn(), a = r.firstChild, o = a.nextSibling, i = o.firstChild, l = i.nextSibling;
|
1719
|
+
return v(r, g(W, {
|
1620
1720
|
class: "echo-notification-hide",
|
1621
1721
|
variant: "secondary",
|
1622
1722
|
size: "sm",
|
@@ -1625,17 +1725,17 @@ const Fn = () => {
|
|
1625
1725
|
return e.widget.state.text.notification.hideTitle;
|
1626
1726
|
},
|
1627
1727
|
get children() {
|
1628
|
-
return g(
|
1728
|
+
return g(Se, {
|
1629
1729
|
size: 20
|
1630
1730
|
});
|
1631
1731
|
}
|
1632
1732
|
}), a), v(a, (() => {
|
1633
1733
|
var s = k(() => e.widget.state.notification.type === "success");
|
1634
|
-
return () => s() ? g(
|
1734
|
+
return () => s() ? g(Tn, {
|
1635
1735
|
size: 32
|
1636
1736
|
}) : (() => {
|
1637
1737
|
var c = k(() => e.widget.state.notification.type === "error");
|
1638
|
-
return () => c() ? g(
|
1738
|
+
return () => c() ? g(On, {
|
1639
1739
|
size: 32
|
1640
1740
|
}) : null;
|
1641
1741
|
})();
|
@@ -1652,11 +1752,11 @@ const Fn = () => {
|
|
1652
1752
|
}), r;
|
1653
1753
|
})();
|
1654
1754
|
};
|
1655
|
-
var
|
1656
|
-
const
|
1755
|
+
var Jn = /* @__PURE__ */ w("<div class=echo-shape-actions data-hide-when-drawing=true>");
|
1756
|
+
const Zn = () => {
|
1657
1757
|
const e = $();
|
1658
1758
|
let n;
|
1659
|
-
const [t, r] =
|
1759
|
+
const [t, r] = T({
|
1660
1760
|
x: window.scrollX,
|
1661
1761
|
y: window.scrollY
|
1662
1762
|
});
|
@@ -1679,7 +1779,7 @@ const Ln = () => {
|
|
1679
1779
|
if (!s || !c) return null;
|
1680
1780
|
let u = null;
|
1681
1781
|
if (s.type === "rectangle") {
|
1682
|
-
const m =
|
1782
|
+
const m = it(s.points);
|
1683
1783
|
if (!m) return null;
|
1684
1784
|
u = {
|
1685
1785
|
x: m.x + m.width / 2,
|
@@ -1699,14 +1799,14 @@ const Ln = () => {
|
|
1699
1799
|
};
|
1700
1800
|
});
|
1701
1801
|
return (() => {
|
1702
|
-
var s =
|
1703
|
-
return typeof c == "function" ?
|
1802
|
+
var s = Jn(), c = n;
|
1803
|
+
return typeof c == "function" ? R(c, s) : n = s, s.style.setProperty("top", "0"), s.style.setProperty("left", "0"), v(s, g(W, {
|
1704
1804
|
onClick: o,
|
1705
1805
|
size: "sm",
|
1706
1806
|
variant: "secondary",
|
1707
1807
|
title: "Delete shape",
|
1708
1808
|
get children() {
|
1709
|
-
return g(
|
1809
|
+
return g(lt, {
|
1710
1810
|
size: 20
|
1711
1811
|
});
|
1712
1812
|
}
|
@@ -1720,22 +1820,22 @@ const Ln = () => {
|
|
1720
1820
|
}), s;
|
1721
1821
|
})();
|
1722
1822
|
};
|
1723
|
-
var
|
1724
|
-
const
|
1725
|
-
const e = $(), n =
|
1823
|
+
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>");
|
1824
|
+
const er = () => {
|
1825
|
+
const e = $(), n = G("welcome_message_shown", !1), t = (a) => {
|
1726
1826
|
a.stopPropagation(), e.widget.setState({
|
1727
1827
|
welcomeMessageIsClosing: !0
|
1728
|
-
}),
|
1828
|
+
}), le("welcome_message_shown", !0);
|
1729
1829
|
}, r = () => {
|
1730
1830
|
e.widget.setState({
|
1731
1831
|
isOpen: !0
|
1732
1832
|
}), e.widget.setState({
|
1733
1833
|
welcomeMessageIsClosing: !0
|
1734
|
-
}),
|
1834
|
+
}), le("welcome_message_shown", !0);
|
1735
1835
|
};
|
1736
1836
|
return n ? null : (() => {
|
1737
|
-
var a =
|
1738
|
-
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(
|
1837
|
+
var a = Qn(), o = a.firstChild, i = o.nextSibling;
|
1838
|
+
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, {
|
1739
1839
|
size: 16,
|
1740
1840
|
strokeWidth: 3
|
1741
1841
|
})), b((l) => {
|
@@ -1747,41 +1847,41 @@ const qn = () => {
|
|
1747
1847
|
}), a;
|
1748
1848
|
})();
|
1749
1849
|
};
|
1750
|
-
|
1751
|
-
var
|
1752
|
-
const
|
1850
|
+
I(["click", "keydown"]);
|
1851
|
+
var tr = /* @__PURE__ */ w("<svg><rect class=echo-shape fill=transparent vector-effect=non-scaling-stroke role=img></svg>", !1, !0), nr = /* @__PURE__ */ w("<svg><path class=echo-shape fill=none vector-effect=non-scaling-stroke stroke-linecap=round role=img></svg>", !1, !0);
|
1852
|
+
const He = (e) => {
|
1753
1853
|
const n = k(() => e.id === e.selectedShapeId);
|
1754
|
-
return [g(
|
1854
|
+
return [g(D, {
|
1755
1855
|
get when() {
|
1756
1856
|
return e.type === "rectangle";
|
1757
1857
|
},
|
1758
1858
|
get children() {
|
1759
|
-
return g(
|
1859
|
+
return g(rr, ie(e, {
|
1760
1860
|
get isSelected() {
|
1761
1861
|
return n();
|
1762
1862
|
}
|
1763
1863
|
}));
|
1764
1864
|
}
|
1765
|
-
}), g(
|
1865
|
+
}), g(D, {
|
1766
1866
|
get when() {
|
1767
1867
|
return e.type === "path";
|
1768
1868
|
},
|
1769
1869
|
get children() {
|
1770
|
-
return g(
|
1870
|
+
return g(or, ie(e, {
|
1771
1871
|
get isSelected() {
|
1772
1872
|
return n();
|
1773
1873
|
}
|
1774
1874
|
}));
|
1775
1875
|
}
|
1776
1876
|
})];
|
1777
|
-
},
|
1778
|
-
const n = k(() =>
|
1779
|
-
return g(
|
1877
|
+
}, rr = (e) => {
|
1878
|
+
const n = k(() => it(e.points));
|
1879
|
+
return g(D, {
|
1780
1880
|
get when() {
|
1781
1881
|
return n();
|
1782
1882
|
},
|
1783
1883
|
get children() {
|
1784
|
-
var t =
|
1884
|
+
var t = tr();
|
1785
1885
|
return t.$$keydown = (r) => {
|
1786
1886
|
var a;
|
1787
1887
|
return r.key === "Enter" && ((a = e.onShapeClick) == null ? void 0 : a.call(e, e.id));
|
@@ -1789,8 +1889,8 @@ const Fe = (e) => {
|
|
1789
1889
|
var r;
|
1790
1890
|
return (r = e.onShapeClick) == null ? void 0 : r.call(e, e.id);
|
1791
1891
|
}, b((r) => {
|
1792
|
-
var a = e.id, o = e.isSelected, i = n().x, l = n().y, s = n().width, c = n().height, u = e.color, h =
|
1793
|
-
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),
|
1892
|
+
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;
|
1893
|
+
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;
|
1794
1894
|
}, {
|
1795
1895
|
e: void 0,
|
1796
1896
|
t: void 0,
|
@@ -1808,14 +1908,14 @@ const Fe = (e) => {
|
|
1808
1908
|
}), t;
|
1809
1909
|
}
|
1810
1910
|
});
|
1811
|
-
},
|
1812
|
-
const n = k(() =>
|
1813
|
-
return g(
|
1911
|
+
}, or = (e) => {
|
1912
|
+
const n = k(() => Xt(e.points));
|
1913
|
+
return g(D, {
|
1814
1914
|
get when() {
|
1815
1915
|
return n();
|
1816
1916
|
},
|
1817
1917
|
get children() {
|
1818
|
-
var t =
|
1918
|
+
var t = nr();
|
1819
1919
|
return t.$$keydown = (r) => {
|
1820
1920
|
var a;
|
1821
1921
|
return r.key === "Enter" && ((a = e.onShapeClick) == null ? void 0 : a.call(e, e.id));
|
@@ -1823,7 +1923,7 @@ const Fe = (e) => {
|
|
1823
1923
|
var r;
|
1824
1924
|
return (r = e.onShapeClick) == null ? void 0 : r.call(e, e.id);
|
1825
1925
|
}, b((r) => {
|
1826
|
-
var a = e.id, o = e.isSelected, i = n(), l = e.color, s =
|
1926
|
+
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;
|
1827
1927
|
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;
|
1828
1928
|
}, {
|
1829
1929
|
e: void 0,
|
@@ -1839,22 +1939,22 @@ const Fe = (e) => {
|
|
1839
1939
|
}
|
1840
1940
|
});
|
1841
1941
|
};
|
1842
|
-
|
1843
|
-
var
|
1844
|
-
const
|
1942
|
+
I(["click", "keydown"]);
|
1943
|
+
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>');
|
1944
|
+
const ir = () => {
|
1845
1945
|
const e = $();
|
1846
1946
|
let n;
|
1847
|
-
return
|
1947
|
+
return ke(() => {
|
1848
1948
|
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, {
|
1849
1949
|
passive: !1
|
1850
1950
|
}), n == null || n.addEventListener("touchend", e.drawing.methods.handleEnd);
|
1851
|
-
}),
|
1951
|
+
}), te(() => {
|
1852
1952
|
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);
|
1853
1953
|
}), (() => {
|
1854
|
-
var t =
|
1855
|
-
return typeof o == "function" ?
|
1954
|
+
var t = ar(), r = t.firstChild, a = r.firstChild, o = n;
|
1955
|
+
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) => {
|
1856
1956
|
i.preventDefault(), e.drawing.methods.handleMove(i);
|
1857
|
-
},
|
1957
|
+
}, U(r, "mousemove", e.drawing.methods.handleMove, !0), r.$$touchstart = (i) => {
|
1858
1958
|
i.preventDefault(), e.drawing.methods.handleStart(i), e.drawing.methods.handleEnter(i), e.drawing.setState({
|
1859
1959
|
showTooltip: !1,
|
1860
1960
|
hasDrawn: !0
|
@@ -1864,11 +1964,11 @@ const Wn = () => {
|
|
1864
1964
|
showTooltip: !1,
|
1865
1965
|
hasDrawn: !0
|
1866
1966
|
});
|
1867
|
-
}, v(r, g(
|
1967
|
+
}, v(r, g(B, {
|
1868
1968
|
get each() {
|
1869
1969
|
return e.drawing.state.shapes;
|
1870
1970
|
},
|
1871
|
-
children: (i) => g(
|
1971
|
+
children: (i) => g(He, {
|
1872
1972
|
get id() {
|
1873
1973
|
return i.id;
|
1874
1974
|
},
|
@@ -1888,7 +1988,7 @@ const Wn = () => {
|
|
1888
1988
|
return e.drawing.methods.handleShapeClick;
|
1889
1989
|
}
|
1890
1990
|
})
|
1891
|
-
}), null), v(r, g(
|
1991
|
+
}), null), v(r, g(He, {
|
1892
1992
|
id: "temp",
|
1893
1993
|
get type() {
|
1894
1994
|
return e.drawing.state.selectedTool;
|
@@ -1903,7 +2003,7 @@ const Wn = () => {
|
|
1903
2003
|
return e.drawing.state.selectedShapeId;
|
1904
2004
|
}
|
1905
2005
|
}), null), b((i) => {
|
1906
|
-
var l = e.drawing.state.cursor, s =
|
2006
|
+
var l = e.drawing.state.cursor, s = rn({
|
1907
2007
|
width: e.widget.state.dimensions.width,
|
1908
2008
|
height: e.widget.state.dimensions.height
|
1909
2009
|
}, e.drawing.state.currentPoints, e.drawing.state.shapes);
|
@@ -1914,8 +2014,8 @@ const Wn = () => {
|
|
1914
2014
|
}), t;
|
1915
2015
|
})();
|
1916
2016
|
};
|
1917
|
-
|
1918
|
-
const
|
2017
|
+
I(["mousedown", "touchstart", "mousemove", "touchmove", "touchend"]);
|
2018
|
+
const ge = (e) => ({
|
1919
2019
|
handleTextChange: (o) => {
|
1920
2020
|
const i = o.target;
|
1921
2021
|
e(i.value);
|
@@ -1929,26 +2029,26 @@ const ae = (e) => ({
|
|
1929
2029
|
},
|
1930
2030
|
getCheckboxValue: (o) => Array.isArray(o) ? o : []
|
1931
2031
|
});
|
1932
|
-
var
|
1933
|
-
const
|
1934
|
-
var n =
|
2032
|
+
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">*');
|
2033
|
+
const fe = (e) => (() => {
|
2034
|
+
var n = sr();
|
1935
2035
|
return v(n, (() => {
|
1936
2036
|
var t = k(() => !!e.label);
|
1937
2037
|
return () => t() && (() => {
|
1938
|
-
var r =
|
2038
|
+
var r = lr(), a = r.firstChild;
|
1939
2039
|
return v(a, () => e.label), v(r, (() => {
|
1940
2040
|
var o = k(() => !!e.required);
|
1941
|
-
return () => o() &&
|
2041
|
+
return () => o() && cr();
|
1942
2042
|
})(), null), r;
|
1943
2043
|
})();
|
1944
2044
|
})(), null), v(n, () => e.children, null), n;
|
1945
2045
|
})();
|
1946
|
-
var
|
1947
|
-
const
|
2046
|
+
var dr = /* @__PURE__ */ w("<textarea class=echo-input-field rows=5>"), ur = /* @__PURE__ */ w("<div class=visually-hidden>");
|
2047
|
+
const ct = (e) => {
|
1948
2048
|
const {
|
1949
2049
|
handleTextChange: n
|
1950
|
-
} =
|
1951
|
-
return g(
|
2050
|
+
} = ge(e.onChange);
|
2051
|
+
return g(fe, {
|
1952
2052
|
get label() {
|
1953
2053
|
return e.config.label;
|
1954
2054
|
},
|
@@ -1957,8 +2057,8 @@ const Je = (e) => {
|
|
1957
2057
|
},
|
1958
2058
|
get children() {
|
1959
2059
|
return [(() => {
|
1960
|
-
var t =
|
1961
|
-
return
|
2060
|
+
var t = dr();
|
2061
|
+
return U(t, "input", n, !0), b((r) => {
|
1962
2062
|
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`;
|
1963
2063
|
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;
|
1964
2064
|
}, {
|
@@ -1971,20 +2071,20 @@ const Je = (e) => {
|
|
1971
2071
|
s: void 0
|
1972
2072
|
}), b(() => t.value = e.value === void 0 ? "" : e.value), t;
|
1973
2073
|
})(), (() => {
|
1974
|
-
var t =
|
2074
|
+
var t = ur();
|
1975
2075
|
return v(t, () => e.config.placeholder), b(() => d(t, "id", `${e.config.id}-description`)), t;
|
1976
2076
|
})()];
|
1977
2077
|
}
|
1978
2078
|
});
|
1979
2079
|
};
|
1980
|
-
|
1981
|
-
var
|
1982
|
-
const
|
2080
|
+
I(["input"]);
|
2081
|
+
var hr = /* @__PURE__ */ w("<fieldset class=echo-input-options role=group>"), gr = /* @__PURE__ */ w("<label class=echo-input-option><input type=checkbox><span>");
|
2082
|
+
const fr = (e) => {
|
1983
2083
|
const {
|
1984
2084
|
handleCheckboxChange: n,
|
1985
2085
|
getCheckboxValue: t
|
1986
|
-
} =
|
1987
|
-
return g(
|
2086
|
+
} = ge(e.onChange), r = () => t(e.value), a = () => r().length > 0;
|
2087
|
+
return g(fe, {
|
1988
2088
|
get label() {
|
1989
2089
|
return e.config.label;
|
1990
2090
|
},
|
@@ -1992,25 +2092,25 @@ const Qn = (e) => {
|
|
1992
2092
|
return e.config.required;
|
1993
2093
|
},
|
1994
2094
|
get children() {
|
1995
|
-
var o =
|
1996
|
-
return v(o, g(
|
2095
|
+
var o = hr();
|
2096
|
+
return v(o, g(B, {
|
1997
2097
|
get each() {
|
1998
2098
|
return e.config.options;
|
1999
2099
|
},
|
2000
2100
|
children: (i, l) => (() => {
|
2001
|
-
var s =
|
2101
|
+
var s = gr(), c = s.firstChild, u = c.nextSibling;
|
2002
2102
|
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;
|
2003
2103
|
})()
|
2004
2104
|
})), b(() => d(o, "aria-required", e.config.required)), o;
|
2005
2105
|
}
|
2006
2106
|
});
|
2007
2107
|
};
|
2008
|
-
var
|
2009
|
-
const
|
2108
|
+
var mr = /* @__PURE__ */ w("<fieldset class=echo-input-options role=radiogroup>"), vr = /* @__PURE__ */ w("<label class=echo-input-option><input type=radio><span>");
|
2109
|
+
const br = (e) => {
|
2010
2110
|
const {
|
2011
2111
|
handleSelectChange: n
|
2012
|
-
} =
|
2013
|
-
return g(
|
2112
|
+
} = ge(e.onChange);
|
2113
|
+
return g(fe, {
|
2014
2114
|
get label() {
|
2015
2115
|
return e.config.label;
|
2016
2116
|
},
|
@@ -2018,13 +2118,13 @@ const nr = (e) => {
|
|
2018
2118
|
return e.config.required;
|
2019
2119
|
},
|
2020
2120
|
get children() {
|
2021
|
-
var t =
|
2022
|
-
return v(t, g(
|
2121
|
+
var t = mr();
|
2122
|
+
return v(t, g(B, {
|
2023
2123
|
get each() {
|
2024
2124
|
return e.config.options;
|
2025
2125
|
},
|
2026
2126
|
children: (r) => (() => {
|
2027
|
-
var a =
|
2127
|
+
var a = vr(), o = a.firstChild, i = o.nextSibling;
|
2028
2128
|
return o.addEventListener("change", () => n(r.value)), v(i, () => r.label), b((l) => {
|
2029
2129
|
var s = e.config.id, c = e.config.required;
|
2030
2130
|
return s !== l.e && d(o, "name", l.e = s), c !== l.t && (o.required = l.t = c), l;
|
@@ -2037,11 +2137,11 @@ const nr = (e) => {
|
|
2037
2137
|
}
|
2038
2138
|
});
|
2039
2139
|
};
|
2040
|
-
var
|
2041
|
-
const
|
2140
|
+
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>");
|
2141
|
+
const xr = (e) => {
|
2042
2142
|
const {
|
2043
2143
|
handleSelectChange: n
|
2044
|
-
} =
|
2144
|
+
} = ge(e.onChange), [t, r] = T(!1);
|
2045
2145
|
let a, o, i;
|
2046
2146
|
const l = () => e.config.options.find((h) => h.value === (e.value === void 0 ? "" : e.value)), s = (h, f) => {
|
2047
2147
|
f.stopPropagation(), h.value === e.value ? e.config.required || n("") : n(h.value), r(!1);
|
@@ -2054,7 +2154,7 @@ const ir = (e) => {
|
|
2054
2154
|
if (!t() || !a) return;
|
2055
2155
|
h.composedPath().includes(a) || r(!1);
|
2056
2156
|
}
|
2057
|
-
}), g(
|
2157
|
+
}), g(fe, {
|
2058
2158
|
get label() {
|
2059
2159
|
return e.config.label;
|
2060
2160
|
},
|
@@ -2062,29 +2162,29 @@ const ir = (e) => {
|
|
2062
2162
|
return e.config.required;
|
2063
2163
|
},
|
2064
2164
|
get children() {
|
2065
|
-
var h =
|
2066
|
-
typeof
|
2165
|
+
var h = yr(), f = h.firstChild, m = f.firstChild, y = f.nextSibling, E = a;
|
2166
|
+
typeof E == "function" ? R(E, h) : a = h, f.$$click = (p) => {
|
2067
2167
|
p.stopPropagation(), c();
|
2068
2168
|
};
|
2069
2169
|
var S = o;
|
2070
|
-
typeof S == "function" ?
|
2170
|
+
typeof S == "function" ? R(S, f) : o = f, v(m, () => {
|
2071
2171
|
var p;
|
2072
2172
|
return ((p = l()) == null ? void 0 : p.label) || e.config.placeholder;
|
2073
|
-
}), v(h, g(
|
2173
|
+
}), v(h, g(D, {
|
2074
2174
|
get when() {
|
2075
2175
|
return t();
|
2076
2176
|
},
|
2077
2177
|
get children() {
|
2078
|
-
var p =
|
2079
|
-
return v(p, g(
|
2178
|
+
var p = wr();
|
2179
|
+
return v(p, g(B, {
|
2080
2180
|
get each() {
|
2081
2181
|
return e.config.options;
|
2082
2182
|
},
|
2083
|
-
children: (
|
2084
|
-
var z =
|
2085
|
-
return z.$$click = (x) => s(
|
2086
|
-
var _ =
|
2087
|
-
return _ !== x.e && d(z, "aria-selected", x.e = _),
|
2183
|
+
children: (P) => (() => {
|
2184
|
+
var z = pr();
|
2185
|
+
return z.$$click = (x) => s(P, x), v(z, () => P.label), b((x) => {
|
2186
|
+
var _ = P.value === e.value, q = P.value === e.value;
|
2187
|
+
return _ !== x.e && d(z, "aria-selected", x.e = _), q !== x.t && d(z, "data-selected", x.t = q), x;
|
2088
2188
|
}, {
|
2089
2189
|
e: void 0,
|
2090
2190
|
t: void 0
|
@@ -2094,9 +2194,9 @@ const ir = (e) => {
|
|
2094
2194
|
}
|
2095
2195
|
}), y);
|
2096
2196
|
var C = i;
|
2097
|
-
return typeof C == "function" ?
|
2098
|
-
var
|
2099
|
-
return
|
2197
|
+
return typeof C == "function" ? R(C, y) : i = y, b((p) => {
|
2198
|
+
var P = t(), z = !e.value, x = e.config.required, _ = t(), q = e.config.required, O = e.config.required;
|
2199
|
+
return P !== p.e && d(f, "data-open", p.e = P), z !== p.t && d(f, "data-placeholder", p.t = z), x !== p.a && d(f, "data-required", p.a = x), _ !== p.o && d(f, "aria-expanded", p.o = _), q !== p.i && d(f, "aria-required", p.i = q), O !== p.n && (y.required = p.n = O), p;
|
2100
2200
|
}, {
|
2101
2201
|
e: void 0,
|
2102
2202
|
t: void 0,
|
@@ -2108,13 +2208,13 @@ const ir = (e) => {
|
|
2108
2208
|
}
|
2109
2209
|
});
|
2110
2210
|
};
|
2111
|
-
|
2112
|
-
var
|
2113
|
-
const
|
2211
|
+
I(["click"]);
|
2212
|
+
var kr = /* @__PURE__ */ w("<input type=text class=echo-input-field>");
|
2213
|
+
const Sr = (e) => {
|
2114
2214
|
const {
|
2115
2215
|
handleTextChange: n
|
2116
|
-
} =
|
2117
|
-
return g(
|
2216
|
+
} = ge(e.onChange);
|
2217
|
+
return g(fe, {
|
2118
2218
|
get label() {
|
2119
2219
|
return e.config.label;
|
2120
2220
|
},
|
@@ -2122,8 +2222,8 @@ const lr = (e) => {
|
|
2122
2222
|
return e.config.required;
|
2123
2223
|
},
|
2124
2224
|
get children() {
|
2125
|
-
var t =
|
2126
|
-
return
|
2225
|
+
var t = kr();
|
2226
|
+
return U(t, "input", n, !0), b((r) => {
|
2127
2227
|
var a = e.config.placeholder, o = e.config.required, i = e.config.disabled;
|
2128
2228
|
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;
|
2129
2229
|
}, {
|
@@ -2134,31 +2234,31 @@ const lr = (e) => {
|
|
2134
2234
|
}
|
2135
2235
|
});
|
2136
2236
|
};
|
2137
|
-
|
2138
|
-
var
|
2139
|
-
const
|
2237
|
+
I(["input"]);
|
2238
|
+
var Cr = /* @__PURE__ */ w("<div class=echo-input-error>Invalid input type"), $r = /* @__PURE__ */ w("<div class=echo-input-error>Unsupported input type: ");
|
2239
|
+
const Er = (e) => g(D, {
|
2140
2240
|
get when() {
|
2141
2241
|
return e.config.type;
|
2142
2242
|
},
|
2143
2243
|
keyed: !0,
|
2144
2244
|
get fallback() {
|
2145
|
-
return
|
2245
|
+
return Cr();
|
2146
2246
|
},
|
2147
2247
|
get children() {
|
2148
|
-
return g(
|
2248
|
+
return g(ft, {
|
2149
2249
|
get fallback() {
|
2150
2250
|
return (() => {
|
2151
|
-
var n =
|
2251
|
+
var n = $r();
|
2152
2252
|
return n.firstChild, v(n, () => e.config.type, null), n;
|
2153
2253
|
})();
|
2154
2254
|
},
|
2155
2255
|
get children() {
|
2156
|
-
return [g(
|
2256
|
+
return [g(ne, {
|
2157
2257
|
get when() {
|
2158
2258
|
return e.config.type === "text";
|
2159
2259
|
},
|
2160
2260
|
get children() {
|
2161
|
-
return g(
|
2261
|
+
return g(Sr, ie(e, {
|
2162
2262
|
get value() {
|
2163
2263
|
return e.value;
|
2164
2264
|
},
|
@@ -2167,12 +2267,12 @@ const ur = (e) => g(M, {
|
|
2167
2267
|
}
|
2168
2268
|
}));
|
2169
2269
|
}
|
2170
|
-
}), g(
|
2270
|
+
}), g(ne, {
|
2171
2271
|
get when() {
|
2172
2272
|
return e.config.type === "textarea";
|
2173
2273
|
},
|
2174
2274
|
get children() {
|
2175
|
-
return g(
|
2275
|
+
return g(ct, {
|
2176
2276
|
get config() {
|
2177
2277
|
return e.config;
|
2178
2278
|
},
|
@@ -2184,12 +2284,12 @@ const ur = (e) => g(M, {
|
|
2184
2284
|
}
|
2185
2285
|
});
|
2186
2286
|
}
|
2187
|
-
}), g(
|
2287
|
+
}), g(ne, {
|
2188
2288
|
get when() {
|
2189
2289
|
return e.config.type === "radio";
|
2190
2290
|
},
|
2191
2291
|
get children() {
|
2192
|
-
return g(
|
2292
|
+
return g(br, {
|
2193
2293
|
get config() {
|
2194
2294
|
return e.config;
|
2195
2295
|
},
|
@@ -2201,12 +2301,12 @@ const ur = (e) => g(M, {
|
|
2201
2301
|
}
|
2202
2302
|
});
|
2203
2303
|
}
|
2204
|
-
}), g(
|
2304
|
+
}), g(ne, {
|
2205
2305
|
get when() {
|
2206
2306
|
return e.config.type === "checkbox";
|
2207
2307
|
},
|
2208
2308
|
get children() {
|
2209
|
-
return g(
|
2309
|
+
return g(fr, {
|
2210
2310
|
get config() {
|
2211
2311
|
return e.config;
|
2212
2312
|
},
|
@@ -2218,12 +2318,12 @@ const ur = (e) => g(M, {
|
|
2218
2318
|
}
|
2219
2319
|
});
|
2220
2320
|
}
|
2221
|
-
}), g(
|
2321
|
+
}), g(ne, {
|
2222
2322
|
get when() {
|
2223
2323
|
return e.config.type === "select";
|
2224
2324
|
},
|
2225
2325
|
get children() {
|
2226
|
-
return g(
|
2326
|
+
return g(xr, {
|
2227
2327
|
get config() {
|
2228
2328
|
return e.config;
|
2229
2329
|
},
|
@@ -2239,7 +2339,7 @@ const ur = (e) => g(M, {
|
|
2239
2339
|
}
|
2240
2340
|
});
|
2241
2341
|
}
|
2242
|
-
}),
|
2342
|
+
}), Pr = () => {
|
2243
2343
|
const e = navigator.connection;
|
2244
2344
|
return {
|
2245
2345
|
effectiveType: e == null ? void 0 : e.effectiveType,
|
@@ -2247,7 +2347,7 @@ const ur = (e) => g(M, {
|
|
2247
2347
|
rtt: e == null ? void 0 : e.rtt,
|
2248
2348
|
saveData: e == null ? void 0 : e.saveData
|
2249
2349
|
};
|
2250
|
-
},
|
2350
|
+
}, zr = () => ({
|
2251
2351
|
width: window.innerWidth,
|
2252
2352
|
height: window.innerHeight,
|
2253
2353
|
screenWidth: window.screen.width,
|
@@ -2262,7 +2362,7 @@ const ur = (e) => g(M, {
|
|
2262
2362
|
pixelRatio: window.devicePixelRatio,
|
2263
2363
|
availableWidth: window.screen.availWidth,
|
2264
2364
|
availableHeight: window.screen.availHeight
|
2265
|
-
}),
|
2365
|
+
}), Tr = () => {
|
2266
2366
|
const e = new URL(window.location.href), n = {};
|
2267
2367
|
return e.searchParams.forEach((t, r) => {
|
2268
2368
|
n[r] = t;
|
@@ -2273,25 +2373,25 @@ const ur = (e) => g(M, {
|
|
2273
2373
|
searchParams: n,
|
2274
2374
|
referrer: document.referrer
|
2275
2375
|
};
|
2276
|
-
},
|
2376
|
+
}, Ir = () => ({
|
2277
2377
|
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
2278
2378
|
localDateTime: (/* @__PURE__ */ new Date()).toISOString()
|
2279
|
-
}),
|
2379
|
+
}), Or = () => ({
|
2280
2380
|
userAgent: navigator.userAgent,
|
2281
|
-
browserInfo:
|
2282
|
-
networkInfo:
|
2283
|
-
locationInfo:
|
2284
|
-
timeInfo:
|
2285
|
-
console:
|
2381
|
+
browserInfo: zr(),
|
2382
|
+
networkInfo: Pr(),
|
2383
|
+
locationInfo: Tr(),
|
2384
|
+
timeInfo: Ir(),
|
2385
|
+
console: Kt()
|
2286
2386
|
});
|
2287
|
-
var
|
2288
|
-
const
|
2387
|
+
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>');
|
2388
|
+
const Dr = () => {
|
2289
2389
|
const e = $(), n = async (a) => {
|
2290
2390
|
a.preventDefault();
|
2291
|
-
const o = await
|
2391
|
+
const o = await nn(), i = {
|
2292
2392
|
message: e.feedback.state.message,
|
2293
2393
|
screenshot: o,
|
2294
|
-
metadata:
|
2394
|
+
metadata: Or(),
|
2295
2395
|
customInputs: e.feedback.state.customInputValues
|
2296
2396
|
};
|
2297
2397
|
e.methods.submit(i);
|
@@ -2304,16 +2404,16 @@ const yr = () => {
|
|
2304
2404
|
isMinimized: !1
|
2305
2405
|
});
|
2306
2406
|
};
|
2307
|
-
return
|
2407
|
+
return H(() => {
|
2308
2408
|
e.widget.state.isOpen && requestAnimationFrame(() => {
|
2309
2409
|
var a;
|
2310
2410
|
(a = document.querySelector(".echo-input-field")) == null || a.focus();
|
2311
2411
|
});
|
2312
2412
|
}), (() => {
|
2313
|
-
var a =
|
2413
|
+
var a = Ar(), o = a.firstChild, i = o.firstChild, l = i.firstChild, s = l.nextSibling, c = i.nextSibling;
|
2314
2414
|
c.firstChild;
|
2315
2415
|
var u = c.nextSibling;
|
2316
|
-
return a.$$click = () => e.feedback.state.isMinimized && r(), o.addEventListener("submit", n), v(l, () => e.widget.state.text.feedbackForm.title), v(s, g(
|
2416
|
+
return a.$$click = () => e.feedback.state.isMinimized && r(), o.addEventListener("submit", n), v(l, () => e.widget.state.text.feedbackForm.title), v(s, g(W, {
|
2317
2417
|
type: "button",
|
2318
2418
|
title: "Hide form",
|
2319
2419
|
variant: "secondary",
|
@@ -2321,11 +2421,11 @@ const yr = () => {
|
|
2321
2421
|
onClick: t,
|
2322
2422
|
"aria-label": "Minimize feedback form",
|
2323
2423
|
get children() {
|
2324
|
-
return g(
|
2424
|
+
return g(pn, {
|
2325
2425
|
size: 20
|
2326
2426
|
});
|
2327
2427
|
}
|
2328
|
-
}), null), v(s, g(
|
2428
|
+
}), null), v(s, g(W, {
|
2329
2429
|
type: "button",
|
2330
2430
|
title: "Close form",
|
2331
2431
|
variant: "secondary",
|
@@ -2335,11 +2435,11 @@ const yr = () => {
|
|
2335
2435
|
}),
|
2336
2436
|
"aria-label": "Close feedback form",
|
2337
2437
|
get children() {
|
2338
|
-
return g(
|
2438
|
+
return g(Se, {
|
2339
2439
|
size: 20
|
2340
2440
|
});
|
2341
2441
|
}
|
2342
|
-
}), null), v(c, g(
|
2442
|
+
}), null), v(c, g(ct, {
|
2343
2443
|
get config() {
|
2344
2444
|
return {
|
2345
2445
|
type: "textarea",
|
@@ -2355,18 +2455,18 @@ const yr = () => {
|
|
2355
2455
|
onChange: (h) => e.feedback.setState({
|
2356
2456
|
message: h
|
2357
2457
|
})
|
2358
|
-
}), null), v(o, g(
|
2458
|
+
}), null), v(o, g(D, {
|
2359
2459
|
get when() {
|
2360
2460
|
var h;
|
2361
2461
|
return (h = e.widget.state.customInputs) == null ? void 0 : h.length;
|
2362
2462
|
},
|
2363
2463
|
get children() {
|
2364
|
-
var h =
|
2365
|
-
return h.firstChild, v(h, g(
|
2464
|
+
var h = Mr();
|
2465
|
+
return h.firstChild, v(h, g(B, {
|
2366
2466
|
get each() {
|
2367
2467
|
return e.widget.state.customInputs;
|
2368
2468
|
},
|
2369
|
-
children: (f) => g(
|
2469
|
+
children: (f) => g(Er, {
|
2370
2470
|
config: f,
|
2371
2471
|
get value() {
|
2372
2472
|
return e.feedback.state.customInputValues[f.id];
|
@@ -2380,7 +2480,7 @@ const yr = () => {
|
|
2380
2480
|
})
|
2381
2481
|
}), null), h;
|
2382
2482
|
}
|
2383
|
-
}), u), v(u, g(
|
2483
|
+
}), u), v(u, g(W, {
|
2384
2484
|
type: "submit",
|
2385
2485
|
variant: "primary",
|
2386
2486
|
size: "lg",
|
@@ -2401,73 +2501,73 @@ const yr = () => {
|
|
2401
2501
|
}), a;
|
2402
2502
|
})();
|
2403
2503
|
};
|
2404
|
-
|
2405
|
-
var
|
2406
|
-
const
|
2407
|
-
const [n, t] =
|
2408
|
-
return
|
2504
|
+
I(["click"]);
|
2505
|
+
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>");
|
2506
|
+
const qr = (e) => {
|
2507
|
+
const [n, t] = T();
|
2508
|
+
return H(() => {
|
2409
2509
|
const r = n();
|
2410
|
-
r &&
|
2411
|
-
}), g(
|
2510
|
+
r && Jt(r.shadowRoot);
|
2511
|
+
}), g(At, {
|
2412
2512
|
ref: t,
|
2413
2513
|
useShadow: !0,
|
2414
2514
|
get mount() {
|
2415
2515
|
return document.body;
|
2416
2516
|
},
|
2417
2517
|
get children() {
|
2418
|
-
return g(
|
2518
|
+
return g(dn, ie(e, {
|
2419
2519
|
get children() {
|
2420
|
-
return g(
|
2520
|
+
return g(Br, {
|
2421
2521
|
get children() {
|
2422
|
-
return [g(
|
2522
|
+
return [g(Rr, {
|
2423
2523
|
get primaryColor() {
|
2424
2524
|
return e.primaryColor;
|
2425
2525
|
}
|
2426
|
-
}), g(
|
2526
|
+
}), g(Vr, {})];
|
2427
2527
|
}
|
2428
2528
|
});
|
2429
2529
|
}
|
2430
2530
|
}));
|
2431
2531
|
}
|
2432
2532
|
});
|
2433
|
-
},
|
2434
|
-
const [n, t] =
|
2435
|
-
return
|
2533
|
+
}, Rr = (e) => {
|
2534
|
+
const [n, t] = T("");
|
2535
|
+
return H(() => {
|
2436
2536
|
const r = `
|
2437
2537
|
.echo-root {
|
2438
2538
|
--primary-color: ${e.primaryColor};
|
2439
|
-
--primary-text-color: ${
|
2539
|
+
--primary-text-color: ${Ut(e.primaryColor)};
|
2440
2540
|
}
|
2441
2541
|
`;
|
2442
2542
|
t(r);
|
2443
2543
|
}), (() => {
|
2444
|
-
var r =
|
2445
|
-
return v(r,
|
2544
|
+
var r = Fr();
|
2545
|
+
return v(r, gn, null), v(r, n, null), r;
|
2446
2546
|
})();
|
2447
|
-
},
|
2547
|
+
}, Vr = () => {
|
2448
2548
|
const e = $();
|
2449
2549
|
return [(() => {
|
2450
|
-
var n =
|
2451
|
-
return v(n, g(
|
2452
|
-
})(), g(
|
2550
|
+
var n = Lr();
|
2551
|
+
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;
|
2552
|
+
})(), g(Wr, {
|
2453
2553
|
get children() {
|
2454
|
-
return [g(
|
2554
|
+
return [g(Dr, {}), g(Ln, {}), g(ir, {})];
|
2455
2555
|
}
|
2456
2556
|
})];
|
2457
|
-
},
|
2458
|
-
const [n, t] =
|
2459
|
-
return
|
2557
|
+
}, Wr = (e) => {
|
2558
|
+
const [n, t] = T(), r = $(), a = un(() => n());
|
2559
|
+
return H(() => {
|
2460
2560
|
n() && r.widget.setState({
|
2461
2561
|
dimensions: a()
|
2462
2562
|
});
|
2463
|
-
}),
|
2563
|
+
}), H(() => {
|
2464
2564
|
var o, i;
|
2465
2565
|
r.widget.state.isOpen ? (o = n()) == null || o.showModal() : (i = n()) == null || i.close();
|
2466
2566
|
}), (() => {
|
2467
|
-
var o =
|
2567
|
+
var o = Nr();
|
2468
2568
|
return o.addEventListener("close", () => r.widget.setState({
|
2469
2569
|
isOpen: !1
|
2470
|
-
})),
|
2570
|
+
})), R(t, o), v(o, () => e.children), b((i) => {
|
2471
2571
|
var l = `${a().height}px`, s = `${a().width}px`, c = !r.widget.state.isOpen;
|
2472
2572
|
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;
|
2473
2573
|
}, {
|
@@ -2476,15 +2576,21 @@ const Cr = (e) => {
|
|
2476
2576
|
a: void 0
|
2477
2577
|
}), o;
|
2478
2578
|
})();
|
2479
|
-
},
|
2579
|
+
}, Br = (e) => {
|
2480
2580
|
const n = $();
|
2481
|
-
return
|
2581
|
+
return hn({
|
2482
2582
|
onUrlChange: (t) => n.methods.handlePageChange(t)
|
2583
|
+
}), ke(() => {
|
2584
|
+
Ht(), Zt((t) => {
|
2585
|
+
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);
|
2586
|
+
});
|
2587
|
+
}), te(() => {
|
2588
|
+
Yt(), Qt();
|
2483
2589
|
}), (() => {
|
2484
|
-
var t =
|
2590
|
+
var t = jr();
|
2485
2591
|
return v(t, () => e.children), b(() => d(t, "data-drawing", n.drawing.state.isDrawing)), t;
|
2486
2592
|
})();
|
2487
|
-
},
|
2593
|
+
}, _r = {
|
2488
2594
|
welcomeMessage: {
|
2489
2595
|
text: "Click here to leave feedback",
|
2490
2596
|
closeAriaLabel: "Close welcome message"
|
@@ -2509,37 +2615,39 @@ const Cr = (e) => {
|
|
2509
2615
|
text: "Click & drag to draw"
|
2510
2616
|
}
|
2511
2617
|
};
|
2512
|
-
let
|
2513
|
-
function
|
2514
|
-
|
2618
|
+
let ve = null;
|
2619
|
+
function Yr(e) {
|
2620
|
+
ve && (console.warn("Echo widget is already initialized. Cleaning up previous instance..."), ve());
|
2515
2621
|
try {
|
2516
|
-
|
2622
|
+
on(e);
|
2517
2623
|
const {
|
2518
2624
|
position: n = "bottom-right",
|
2519
2625
|
primaryColor: t = "#6227dc",
|
2520
2626
|
onSubmit: r,
|
2521
2627
|
textConfig: a = {},
|
2522
|
-
customInputs: o = []
|
2523
|
-
|
2524
|
-
document.
|
2525
|
-
|
2628
|
+
customInputs: o = [],
|
2629
|
+
disableMinimization: i = !1
|
2630
|
+
} = e, l = Xe(_r, a), s = document.createElement("div");
|
2631
|
+
document.body.appendChild(s);
|
2632
|
+
const c = Ct(() => g(qr, {
|
2526
2633
|
position: n,
|
2527
2634
|
primaryColor: t,
|
2528
|
-
textConfig:
|
2635
|
+
textConfig: l,
|
2529
2636
|
onSubmit: r,
|
2530
|
-
customInputs: o
|
2531
|
-
|
2532
|
-
|
2533
|
-
|
2534
|
-
|
2637
|
+
customInputs: o,
|
2638
|
+
disableMinimization: i
|
2639
|
+
}), s);
|
2640
|
+
s.remove();
|
2641
|
+
const u = () => {
|
2642
|
+
c(), ve = null;
|
2535
2643
|
};
|
2536
|
-
return window.addEventListener("unload",
|
2644
|
+
return window.addEventListener("unload", u, {
|
2537
2645
|
once: !0
|
2538
|
-
}),
|
2646
|
+
}), ve = u, u;
|
2539
2647
|
} catch (n) {
|
2540
2648
|
throw console.error("Echo initialization failed:", n), n;
|
2541
2649
|
}
|
2542
2650
|
}
|
2543
2651
|
export {
|
2544
|
-
|
2652
|
+
Yr as initEcho
|
2545
2653
|
};
|