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