@contember/echo 0.0.32 → 0.0.33-beta.2

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