@contember/echo 0.0.32 → 0.0.33
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 +173 -142
- package/dist/echo.umd.js +1 -1
- package/package.json +1 -1
package/dist/echo.es.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
import { sharedConfig as L, createRoot as Ue, createRenderEffect as b, untrack as Ye, getOwner as De, createEffect as 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
|
2
|
-
import
|
3
|
-
const
|
1
|
+
import { sharedConfig as L, createRoot as Ue, createRenderEffect as b, untrack as Ye, getOwner as De, createEffect as ee, runWithOwner as lt, createMemo as k, createSignal as A, onCleanup as te, $PROXY as Y, $TRACK as Fe, getListener as $e, batch as ct, onMount as ye, createContext as dt, createComponent as f, useContext as ut, For as W, Show as D, mergeProps as ae, Switch as ht, Match as ne } from "solid-js";
|
2
|
+
import ft from "html2canvas";
|
3
|
+
const gt = [
|
4
4
|
"allowfullscreen",
|
5
5
|
"async",
|
6
6
|
"autofocus",
|
@@ -34,7 +34,7 @@ const ft = [
|
|
34
34
|
"isMap",
|
35
35
|
"noModule",
|
36
36
|
"playsInline",
|
37
|
-
...
|
37
|
+
...gt
|
38
38
|
]), vt = /* @__PURE__ */ new Set([
|
39
39
|
"innerHTML",
|
40
40
|
"textContent",
|
@@ -123,10 +123,10 @@ function xt(e, n, t) {
|
|
123
123
|
const u = c.get(n[i]);
|
124
124
|
if (u != null)
|
125
125
|
if (l < u && u < o) {
|
126
|
-
let h = i,
|
127
|
-
for (; ++h < a && h < o && !((m = c.get(n[h])) == null || m !== u +
|
128
|
-
|
129
|
-
if (
|
126
|
+
let h = i, g = 1, m;
|
127
|
+
for (; ++h < a && h < o && !((m = c.get(n[h])) == null || m !== u + g); )
|
128
|
+
g++;
|
129
|
+
if (g > u - l) {
|
130
130
|
const p = n[i];
|
131
131
|
for (; l < u; ) e.insertBefore(t[l++], p);
|
132
132
|
} else e.replaceChild(t[l++], n[i++]);
|
@@ -247,18 +247,18 @@ function Ne(e, n, t, r, a, o, i) {
|
|
247
247
|
if (n === "ref")
|
248
248
|
o || t(e);
|
249
249
|
else if (n.slice(0, 3) === "on:") {
|
250
|
-
const
|
251
|
-
r && e.removeEventListener(
|
250
|
+
const g = n.slice(3);
|
251
|
+
r && e.removeEventListener(g, r, typeof r != "function" && r), t && e.addEventListener(g, t, typeof t != "function" && t);
|
252
252
|
} else if (n.slice(0, 10) === "oncapture:") {
|
253
|
-
const
|
254
|
-
r && e.removeEventListener(
|
253
|
+
const g = n.slice(10);
|
254
|
+
r && e.removeEventListener(g, r, !0), t && e.addEventListener(g, t, !0);
|
255
255
|
} else if (n.slice(0, 2) === "on") {
|
256
|
-
const
|
256
|
+
const g = n.slice(2).toLowerCase(), m = yt.has(g);
|
257
257
|
if (!m && r) {
|
258
258
|
const p = Array.isArray(r) ? r[0] : r;
|
259
|
-
e.removeEventListener(
|
259
|
+
e.removeEventListener(g, p);
|
260
260
|
}
|
261
|
-
(m || t) && (U(e,
|
261
|
+
(m || t) && (U(e, g, t, m), m && T([g]));
|
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:")
|
@@ -794,7 +794,7 @@ Location: ${t}:${r}:${a}`,
|
|
794
794
|
}, Yt = () => [...N], Rt = () => {
|
795
795
|
var e;
|
796
796
|
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || ((e = window.matchMedia) == null ? void 0 : e.call(window, "(max-width: 768px)").matches);
|
797
|
-
},
|
797
|
+
}, fe = (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,
|
@@ -856,7 +856,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
856
856
|
try {
|
857
857
|
const n = document.createElement("style");
|
858
858
|
document.head.appendChild(n), (e = n.sheet) == null || e.insertRule("body > div:last-child img { display: inline-block; }");
|
859
|
-
const t = await
|
859
|
+
const t = await ft(document.body, {
|
860
860
|
logging: !1,
|
861
861
|
useCORS: !0,
|
862
862
|
scale: window.devicePixelRatio,
|
@@ -906,8 +906,8 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
906
906
|
cursor: _e("rectangle", e.primaryColor)
|
907
907
|
}), o = (c, u = !1) => {
|
908
908
|
if (c.selectedTool || c.selectedColor) {
|
909
|
-
const h = c.selectedTool || r.selectedTool,
|
910
|
-
c.cursor = _e(h,
|
909
|
+
const h = c.selectedTool || r.selectedTool, g = c.selectedColor || r.selectedColor;
|
910
|
+
c.cursor = _e(h, g);
|
911
911
|
}
|
912
912
|
a(c), t == null || t(c, u);
|
913
913
|
}, i = {
|
@@ -943,13 +943,13 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
943
943
|
if (!h.classList.contains("echo-drawing-layer-mask") && !h.classList.contains("echo-shape"))
|
944
944
|
return;
|
945
945
|
}
|
946
|
-
const u =
|
946
|
+
const u = fe(c);
|
947
947
|
if (c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
|
948
948
|
const h = c.target.dataset.shapeId;
|
949
949
|
if (h && r.selectedShapeId === h) {
|
950
|
-
const
|
951
|
-
if (
|
952
|
-
i.startDrag(u), i.updateDragOffset(
|
950
|
+
const g = r.shapes.find((m) => m.id === h);
|
951
|
+
if (g) {
|
952
|
+
i.startDrag(u), i.updateDragOffset(g, u);
|
953
953
|
return;
|
954
954
|
}
|
955
955
|
}
|
@@ -957,7 +957,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
957
957
|
i.setInitialClick(u);
|
958
958
|
},
|
959
959
|
handleMove: (c) => {
|
960
|
-
const u =
|
960
|
+
const u = fe(c, { useClientCoords: !0 }), h = fe(c);
|
961
961
|
if (o({ mousePosition: u }), r.isDragging && r.selectedShapeId && r.dragStartPos && r.shapes.find((m) => m.id === r.selectedShapeId)) {
|
962
962
|
const m = h.x - r.dragStartPos.x, p = h.y - r.dragStartPos.y, E = r.shapes.map((S) => S.id === r.selectedShapeId ? {
|
963
963
|
...S,
|
@@ -981,10 +981,10 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
981
981
|
return;
|
982
982
|
}
|
983
983
|
if (r.initialClickPos && !r.isDrawing) {
|
984
|
-
const u =
|
984
|
+
const u = fe(c);
|
985
985
|
if (Ve(r.initialClickPos, u) < Be && c.target instanceof SVGElement && c.target.classList.contains("echo-shape")) {
|
986
|
-
const
|
987
|
-
|
986
|
+
const g = c.target.dataset.shapeId;
|
987
|
+
g && o({ selectedShapeId: g });
|
988
988
|
}
|
989
989
|
}
|
990
990
|
i.setInitialClick(null), i.finishDrawing();
|
@@ -1030,7 +1030,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1030
1030
|
}, an = (e, n, t, r) => {
|
1031
1031
|
var h;
|
1032
1032
|
const a = (r == null ? void 0 : r.reduce(
|
1033
|
-
(
|
1033
|
+
(g, m) => (g[m.id] = m.defaultValue ?? (m.type === "checkbox" ? [] : ""), g),
|
1034
1034
|
{}
|
1035
1035
|
)) || {}, o = Te(n), i = (o == null ? void 0 : o.feedback.customInputValues) || {}, l = {
|
1036
1036
|
...a,
|
@@ -1045,9 +1045,9 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1045
1045
|
});
|
1046
1046
|
return {
|
1047
1047
|
state: s,
|
1048
|
-
setState: (
|
1049
|
-
const p = "isCapturing" in
|
1050
|
-
!p && !s.hasUserInteracted && c({ hasUserInteracted: !0 }), c(
|
1048
|
+
setState: (g, m = !1) => {
|
1049
|
+
const p = "isCapturing" in g || "isMinimized" in g || m;
|
1050
|
+
!p && !s.hasUserInteracted && c({ hasUserInteracted: !0 }), c(g), (s.hasUserInteracted || p) && (t == null || t(g, m));
|
1051
1051
|
}
|
1052
1052
|
};
|
1053
1053
|
}, sn = (e, n) => {
|
@@ -1177,7 +1177,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1177
1177
|
position: e.position,
|
1178
1178
|
customInputs: e.customInputs
|
1179
1179
|
});
|
1180
|
-
return
|
1180
|
+
return f(at.Provider, {
|
1181
1181
|
value: n,
|
1182
1182
|
get children() {
|
1183
1183
|
return e.children;
|
@@ -1229,7 +1229,7 @@ const re = /* @__PURE__ */ new WeakMap(), Gt = (e, n, t, r) => {
|
|
1229
1229
|
callback: t
|
1230
1230
|
});
|
1231
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
|
1232
|
+
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>'), gn = /* @__PURE__ */ w("<button class=echo-color-swatch-button role=option>");
|
1233
1233
|
const mn = [
|
1234
1234
|
"#ff6b6b",
|
1235
1235
|
// Soft Red
|
@@ -1259,13 +1259,13 @@ const mn = [
|
|
1259
1259
|
}, Ce = (e) => vn[e] || "Primary", bn = () => {
|
1260
1260
|
const e = $();
|
1261
1261
|
return (() => {
|
1262
|
-
var n =
|
1263
|
-
return d(t, "aria-expanded", !1), v(a,
|
1262
|
+
var n = fn(), t = n.firstChild, r = t.nextSibling, a = r.firstChild;
|
1263
|
+
return d(t, "aria-expanded", !1), v(a, f(W, {
|
1264
1264
|
get each() {
|
1265
1265
|
return [e.widget.state.primaryColor, ...mn];
|
1266
1266
|
},
|
1267
1267
|
children: (o) => (() => {
|
1268
|
-
var i =
|
1268
|
+
var i = gn();
|
1269
1269
|
return i.$$click = () => e.drawing.setState({
|
1270
1270
|
selectedColor: o
|
1271
1271
|
}), o != null ? i.style.setProperty("background-color", o) : i.style.removeProperty("background-color"), b((l) => {
|
@@ -1422,7 +1422,7 @@ const Dn = {
|
|
1422
1422
|
const e = $(), n = Object.values(B);
|
1423
1423
|
return (() => {
|
1424
1424
|
var t = Mn(), r = t.firstChild;
|
1425
|
-
return v(t,
|
1425
|
+
return v(t, f(W, {
|
1426
1426
|
each: n,
|
1427
1427
|
children: (a) => {
|
1428
1428
|
const o = Dn[a.id];
|
@@ -1430,7 +1430,7 @@ const Dn = {
|
|
1430
1430
|
var i = An();
|
1431
1431
|
return i.$$click = () => e.drawing.setState({
|
1432
1432
|
selectedTool: a.id
|
1433
|
-
}), v(i,
|
1433
|
+
}), v(i, f(o, {
|
1434
1434
|
class: "echo-drawing-toolbar-icon",
|
1435
1435
|
"aria-hidden": "true"
|
1436
1436
|
})), b((l) => {
|
@@ -1444,9 +1444,9 @@ const Dn = {
|
|
1444
1444
|
}), i;
|
1445
1445
|
})();
|
1446
1446
|
}
|
1447
|
-
}), r), v(t,
|
1447
|
+
}), r), v(t, f(bn, {}), r), r.$$click = () => e.drawing.setState({
|
1448
1448
|
shapes: []
|
1449
|
-
}, !0), v(r,
|
1449
|
+
}, !0), v(r, f(it, {
|
1450
1450
|
class: "echo-drawing-toolbar-icon",
|
1451
1451
|
"aria-hidden": "true"
|
1452
1452
|
})), t;
|
@@ -1456,7 +1456,7 @@ T(["click"]);
|
|
1456
1456
|
var Ln = /* @__PURE__ */ w("<div class=echo-drawing-tooltip data-hide-when-drawing=true>");
|
1457
1457
|
const jn = () => {
|
1458
1458
|
const e = $(), n = k(() => e.drawing.state.showTooltip && e.drawing.state.mousePosition.y && e.drawing.state.mousePosition.x && e.widget.state.isOpen && !Rt());
|
1459
|
-
return
|
1459
|
+
return f(D, {
|
1460
1460
|
get when() {
|
1461
1461
|
return n();
|
1462
1462
|
},
|
@@ -1554,12 +1554,12 @@ const Hn = () => {
|
|
1554
1554
|
r(p), e.widget.setState({
|
1555
1555
|
pagesCount: p.length
|
1556
1556
|
});
|
1557
|
-
},
|
1557
|
+
}, g = (m) => {
|
1558
1558
|
if (m === "/") return "/";
|
1559
1559
|
const p = m.split("/");
|
1560
1560
|
return p.length <= 4 ? m : `/${p[1]}/.../${p[p.length - 1]}`;
|
1561
1561
|
};
|
1562
|
-
return
|
1562
|
+
return f(D, {
|
1563
1563
|
get when() {
|
1564
1564
|
return e.widget.state.isStoredFeedbackOpen;
|
1565
1565
|
},
|
@@ -1567,18 +1567,18 @@ const Hn = () => {
|
|
1567
1567
|
var m = _n(), p = m.firstChild;
|
1568
1568
|
p.firstChild;
|
1569
1569
|
var E = p.nextSibling, S = n;
|
1570
|
-
return typeof S == "function" ? V(S, m) : n = m, v(p,
|
1570
|
+
return typeof S == "function" ? V(S, m) : n = m, v(p, f(_, {
|
1571
1571
|
variant: "secondary",
|
1572
1572
|
size: "sm",
|
1573
1573
|
onClick: () => e.widget.setState({
|
1574
1574
|
isStoredFeedbackOpen: !1
|
1575
1575
|
}),
|
1576
1576
|
get children() {
|
1577
|
-
return
|
1577
|
+
return f(xe, {
|
1578
1578
|
size: 20
|
1579
1579
|
});
|
1580
1580
|
}
|
1581
|
-
}), null), v(E,
|
1581
|
+
}), null), v(E, f(W, {
|
1582
1582
|
get each() {
|
1583
1583
|
return t();
|
1584
1584
|
},
|
@@ -1586,18 +1586,18 @@ const Hn = () => {
|
|
1586
1586
|
const y = k(() => C.path === a());
|
1587
1587
|
return (() => {
|
1588
1588
|
var P = Wn(), z = P.firstChild, x = z.firstChild, H = x.nextSibling, q = z.nextSibling;
|
1589
|
-
return v(x, () =>
|
1589
|
+
return v(x, () => g(C.path)), v(H, () => C.state.feedback.message), v(q, (() => {
|
1590
1590
|
var I = k(() => !y());
|
1591
|
-
return () => I() &&
|
1591
|
+
return () => I() && f(_, {
|
1592
1592
|
class: "echo-stored-feedback-link",
|
1593
1593
|
variant: "secondary",
|
1594
1594
|
size: "sm",
|
1595
1595
|
onClick: () => u(C.path, C.state.latestQuery),
|
1596
1596
|
get children() {
|
1597
|
-
return
|
1597
|
+
return f(Vn, {});
|
1598
1598
|
}
|
1599
1599
|
});
|
1600
|
-
})(), null), v(q,
|
1600
|
+
})(), null), v(q, f(_, {
|
1601
1601
|
class: "echo-stored-feedback-delete",
|
1602
1602
|
variant: "secondary",
|
1603
1603
|
size: "sm",
|
@@ -1612,7 +1612,7 @@ const Hn = () => {
|
|
1612
1612
|
}), P;
|
1613
1613
|
})();
|
1614
1614
|
}
|
1615
|
-
}), null), v(E,
|
1615
|
+
}), null), v(E, f(D, {
|
1616
1616
|
get when() {
|
1617
1617
|
return t().length === 0;
|
1618
1618
|
},
|
@@ -1653,7 +1653,7 @@ const Rn = () => {
|
|
1653
1653
|
};
|
1654
1654
|
return [(() => {
|
1655
1655
|
var c = Un();
|
1656
|
-
return c.addEventListener("pointerleave", i), c.addEventListener("pointerenter", o), c.$$click = l, v(c,
|
1656
|
+
return c.addEventListener("pointerleave", i), c.addEventListener("pointerenter", o), c.$$click = l, v(c, f(xn, {
|
1657
1657
|
stroke: "white",
|
1658
1658
|
fill: "#ffffff",
|
1659
1659
|
"aria-hidden": "true"
|
@@ -1664,14 +1664,14 @@ const Rn = () => {
|
|
1664
1664
|
return h.$$click = s, v(h, () => e.widget.state.pagesCount), b(() => d(h, "aria-label", `View ${e.widget.state.pagesCount} stored feedback items`)), h;
|
1665
1665
|
})();
|
1666
1666
|
})(), null), b((u) => {
|
1667
|
-
var h = e.widget.state.isOpen,
|
1668
|
-
return h !== u.e && d(c, "data-hidden", u.e = h),
|
1667
|
+
var h = e.widget.state.isOpen, g = `translateX(${n() ? "45px" : "0"})`, m = e.widget.state.isOpen;
|
1668
|
+
return h !== u.e && d(c, "data-hidden", u.e = h), g !== u.t && ((u.t = g) != null ? c.style.setProperty("transform", g) : c.style.removeProperty("transform")), m !== u.a && d(c, "aria-expanded", u.a = m), u;
|
1669
1669
|
}, {
|
1670
1670
|
e: void 0,
|
1671
1671
|
t: void 0,
|
1672
1672
|
a: void 0
|
1673
1673
|
}), c;
|
1674
|
-
})(),
|
1674
|
+
})(), f(Hn, {})];
|
1675
1675
|
};
|
1676
1676
|
T(["click"]);
|
1677
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>");
|
@@ -1695,7 +1695,7 @@ const Gn = () => {
|
|
1695
1695
|
};
|
1696
1696
|
return (() => {
|
1697
1697
|
var r = Kn(), a = r.firstChild, o = a.nextSibling, i = o.firstChild, l = i.nextSibling;
|
1698
|
-
return v(r,
|
1698
|
+
return v(r, f(_, {
|
1699
1699
|
class: "echo-notification-hide",
|
1700
1700
|
variant: "secondary",
|
1701
1701
|
size: "sm",
|
@@ -1704,17 +1704,17 @@ const Gn = () => {
|
|
1704
1704
|
return e.widget.state.text.notification.hideTitle;
|
1705
1705
|
},
|
1706
1706
|
get children() {
|
1707
|
-
return
|
1707
|
+
return f(xe, {
|
1708
1708
|
size: 20
|
1709
1709
|
});
|
1710
1710
|
}
|
1711
1711
|
}), a), v(a, (() => {
|
1712
1712
|
var s = k(() => e.widget.state.notification.type === "success");
|
1713
|
-
return () => s() ?
|
1713
|
+
return () => s() ? f(zn, {
|
1714
1714
|
size: 32
|
1715
1715
|
}) : (() => {
|
1716
1716
|
var c = k(() => e.widget.state.notification.type === "error");
|
1717
|
-
return () => c() ?
|
1717
|
+
return () => c() ? f(In, {
|
1718
1718
|
size: 32
|
1719
1719
|
}) : null;
|
1720
1720
|
})();
|
@@ -1771,28 +1771,28 @@ const Jn = () => {
|
|
1771
1771
|
};
|
1772
1772
|
else
|
1773
1773
|
return null;
|
1774
|
-
const h = 8,
|
1774
|
+
const h = 8, g = t();
|
1775
1775
|
return {
|
1776
|
-
x: Math.max(c.width / 2 + h, Math.min(window.innerWidth - c.width / 2 - h, u.x -
|
1777
|
-
y: Math.max(c.height + h, Math.min(window.innerHeight - h, u.y -
|
1776
|
+
x: Math.max(c.width / 2 + h, Math.min(window.innerWidth - c.width / 2 - h, u.x - g.x)),
|
1777
|
+
y: Math.max(c.height + h, Math.min(window.innerHeight - h, u.y - g.y))
|
1778
1778
|
};
|
1779
1779
|
});
|
1780
1780
|
return (() => {
|
1781
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,
|
1782
|
+
return typeof c == "function" ? V(c, s) : n = s, s.style.setProperty("top", "0"), s.style.setProperty("left", "0"), v(s, f(_, {
|
1783
1783
|
onClick: o,
|
1784
1784
|
size: "sm",
|
1785
1785
|
variant: "secondary",
|
1786
1786
|
title: "Delete shape",
|
1787
1787
|
get children() {
|
1788
|
-
return
|
1788
|
+
return f(it, {
|
1789
1789
|
size: 20
|
1790
1790
|
});
|
1791
1791
|
}
|
1792
1792
|
})), b((u) => {
|
1793
1793
|
var m, p;
|
1794
|
-
var h = !l(),
|
1795
|
-
return h !== u.e && (s.hidden = u.e = h),
|
1794
|
+
var h = !l(), g = `translate(calc(${(m = l()) == null ? void 0 : m.x}px - 50%), calc(${(p = l()) == null ? void 0 : p.y}px - 125%))`;
|
1795
|
+
return h !== u.e && (s.hidden = u.e = h), g !== u.t && ((u.t = g) != null ? s.style.setProperty("transform", g) : s.style.removeProperty("transform")), u;
|
1796
1796
|
}, {
|
1797
1797
|
e: void 0,
|
1798
1798
|
t: void 0
|
@@ -1814,7 +1814,7 @@ const Qn = () => {
|
|
1814
1814
|
};
|
1815
1815
|
return n ? null : (() => {
|
1816
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,
|
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, f(xe, {
|
1818
1818
|
size: 16,
|
1819
1819
|
strokeWidth: 3
|
1820
1820
|
})), b((l) => {
|
@@ -1830,23 +1830,23 @@ T(["click", "keydown"]);
|
|
1830
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);
|
1831
1831
|
const He = (e) => {
|
1832
1832
|
const n = k(() => e.id === e.selectedShapeId);
|
1833
|
-
return [
|
1833
|
+
return [f(D, {
|
1834
1834
|
get when() {
|
1835
1835
|
return e.type === "rectangle";
|
1836
1836
|
},
|
1837
1837
|
get children() {
|
1838
|
-
return
|
1838
|
+
return f(nr, ae(e, {
|
1839
1839
|
get isSelected() {
|
1840
1840
|
return n();
|
1841
1841
|
}
|
1842
1842
|
}));
|
1843
1843
|
}
|
1844
|
-
}),
|
1844
|
+
}), f(D, {
|
1845
1845
|
get when() {
|
1846
1846
|
return e.type === "path";
|
1847
1847
|
},
|
1848
1848
|
get children() {
|
1849
|
-
return
|
1849
|
+
return f(rr, ae(e, {
|
1850
1850
|
get isSelected() {
|
1851
1851
|
return n();
|
1852
1852
|
}
|
@@ -1855,7 +1855,7 @@ const He = (e) => {
|
|
1855
1855
|
})];
|
1856
1856
|
}, nr = (e) => {
|
1857
1857
|
const n = k(() => ot(e.points));
|
1858
|
-
return
|
1858
|
+
return f(D, {
|
1859
1859
|
get when() {
|
1860
1860
|
return n();
|
1861
1861
|
},
|
@@ -1868,8 +1868,8 @@ const He = (e) => {
|
|
1868
1868
|
var r;
|
1869
1869
|
return (r = e.onShapeClick) == null ? void 0 : r.call(e, e.id);
|
1870
1870
|
}, 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,
|
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),
|
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, g = 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), g !== r.r && d(t, "opacity", r.r = g), 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;
|
1873
1873
|
}, {
|
1874
1874
|
e: void 0,
|
1875
1875
|
t: void 0,
|
@@ -1889,7 +1889,7 @@ const He = (e) => {
|
|
1889
1889
|
});
|
1890
1890
|
}, rr = (e) => {
|
1891
1891
|
const n = k(() => Kt(e.points));
|
1892
|
-
return
|
1892
|
+
return f(D, {
|
1893
1893
|
get when() {
|
1894
1894
|
return n();
|
1895
1895
|
},
|
@@ -1902,8 +1902,8 @@ const He = (e) => {
|
|
1902
1902
|
var r;
|
1903
1903
|
return (r = e.onShapeClick) == null ? void 0 : r.call(e, e.id);
|
1904
1904
|
}, 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)" : ""}`,
|
1906
|
-
return a !== r.e && d(t, "data-shape-id", r.e = a), o !== r.t && d(t, "data-selected", r.t = o), i !== r.a && d(t, "d", r.a = i), l !== r.o && d(t, "stroke", r.o = l), s !== r.i && d(t, "stroke-width", r.i = s), c !== r.n && d(t, "opacity", r.n = c), u !== r.s && d(t, "cursor", r.s = u), h !== r.h && d(t, "aria-label", r.h = h),
|
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)" : ""}`, g = e.onShapeClick ? 0 : -1;
|
1906
|
+
return a !== r.e && d(t, "data-shape-id", r.e = a), o !== r.t && d(t, "data-selected", r.t = o), i !== r.a && d(t, "d", r.a = i), l !== r.o && d(t, "stroke", r.o = l), s !== r.i && d(t, "stroke-width", r.i = s), c !== r.n && d(t, "opacity", r.n = c), u !== r.s && d(t, "cursor", r.s = u), h !== r.h && d(t, "aria-label", r.h = h), g !== r.r && d(t, "tabindex", r.r = g), r;
|
1907
1907
|
}, {
|
1908
1908
|
e: void 0,
|
1909
1909
|
t: void 0,
|
@@ -1931,7 +1931,7 @@ const ar = () => {
|
|
1931
1931
|
n == null || n.removeEventListener("mousemove", e.drawing.methods.handleMove), n == null || n.removeEventListener("mouseup", e.drawing.methods.handleEnd), n == null || n.removeEventListener("touchmove", e.drawing.methods.handleMove), n == null || n.removeEventListener("touchend", e.drawing.methods.handleEnd);
|
1932
1932
|
}), (() => {
|
1933
1933
|
var t = or(), r = t.firstChild, a = r.firstChild, o = n;
|
1934
|
-
return typeof o == "function" ? V(o, t) : n = t, v(t,
|
1934
|
+
return typeof o == "function" ? V(o, t) : n = t, v(t, f(jn, {}), r), v(t, f(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) => {
|
1935
1935
|
i.preventDefault(), e.drawing.methods.handleMove(i);
|
1936
1936
|
}, U(r, "mousemove", e.drawing.methods.handleMove, !0), r.$$touchstart = (i) => {
|
1937
1937
|
i.preventDefault(), e.drawing.methods.handleStart(i), e.drawing.methods.handleEnter(i), e.drawing.setState({
|
@@ -1943,11 +1943,11 @@ const ar = () => {
|
|
1943
1943
|
showTooltip: !1,
|
1944
1944
|
hasDrawn: !0
|
1945
1945
|
});
|
1946
|
-
}, v(r,
|
1946
|
+
}, v(r, f(W, {
|
1947
1947
|
get each() {
|
1948
1948
|
return e.drawing.state.shapes;
|
1949
1949
|
},
|
1950
|
-
children: (i) =>
|
1950
|
+
children: (i) => f(He, {
|
1951
1951
|
get id() {
|
1952
1952
|
return i.id;
|
1953
1953
|
},
|
@@ -1967,7 +1967,7 @@ const ar = () => {
|
|
1967
1967
|
return e.drawing.methods.handleShapeClick;
|
1968
1968
|
}
|
1969
1969
|
})
|
1970
|
-
}), null), v(r,
|
1970
|
+
}), null), v(r, f(He, {
|
1971
1971
|
id: "temp",
|
1972
1972
|
get type() {
|
1973
1973
|
return e.drawing.state.selectedTool;
|
@@ -2027,7 +2027,7 @@ const st = (e) => {
|
|
2027
2027
|
const {
|
2028
2028
|
handleTextChange: n
|
2029
2029
|
} = ue(e.onChange);
|
2030
|
-
return
|
2030
|
+
return f(he, {
|
2031
2031
|
get label() {
|
2032
2032
|
return e.config.label;
|
2033
2033
|
},
|
@@ -2058,12 +2058,12 @@ const st = (e) => {
|
|
2058
2058
|
};
|
2059
2059
|
T(["input"]);
|
2060
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
|
2061
|
+
const fr = (e) => {
|
2062
2062
|
const {
|
2063
2063
|
handleCheckboxChange: n,
|
2064
2064
|
getCheckboxValue: t
|
2065
2065
|
} = ue(e.onChange), r = () => t(e.value), a = () => r().length > 0;
|
2066
|
-
return
|
2066
|
+
return f(he, {
|
2067
2067
|
get label() {
|
2068
2068
|
return e.config.label;
|
2069
2069
|
},
|
@@ -2072,7 +2072,7 @@ const gr = (e) => {
|
|
2072
2072
|
},
|
2073
2073
|
get children() {
|
2074
2074
|
var o = ur();
|
2075
|
-
return v(o,
|
2075
|
+
return v(o, f(W, {
|
2076
2076
|
get each() {
|
2077
2077
|
return e.config.options;
|
2078
2078
|
},
|
@@ -2084,12 +2084,12 @@ const gr = (e) => {
|
|
2084
2084
|
}
|
2085
2085
|
});
|
2086
2086
|
};
|
2087
|
-
var
|
2087
|
+
var gr = /* @__PURE__ */ w("<fieldset class=echo-input-options role=radiogroup>"), mr = /* @__PURE__ */ w("<label class=echo-input-option><input type=radio><span>");
|
2088
2088
|
const vr = (e) => {
|
2089
2089
|
const {
|
2090
2090
|
handleSelectChange: n
|
2091
2091
|
} = ue(e.onChange);
|
2092
|
-
return
|
2092
|
+
return f(he, {
|
2093
2093
|
get label() {
|
2094
2094
|
return e.config.label;
|
2095
2095
|
},
|
@@ -2097,8 +2097,8 @@ const vr = (e) => {
|
|
2097
2097
|
return e.config.required;
|
2098
2098
|
},
|
2099
2099
|
get children() {
|
2100
|
-
var t =
|
2101
|
-
return v(t,
|
2100
|
+
var t = gr();
|
2101
|
+
return v(t, f(W, {
|
2102
2102
|
get each() {
|
2103
2103
|
return e.config.options;
|
2104
2104
|
},
|
@@ -2122,8 +2122,8 @@ const yr = (e) => {
|
|
2122
2122
|
handleSelectChange: n
|
2123
2123
|
} = ue(e.onChange), [t, r] = A(!1);
|
2124
2124
|
let a, o, i;
|
2125
|
-
const l = () => e.config.options.find((h) => h.value === (e.value === void 0 ? "" : e.value)), s = (h,
|
2126
|
-
|
2125
|
+
const l = () => e.config.options.find((h) => h.value === (e.value === void 0 ? "" : e.value)), s = (h, g) => {
|
2126
|
+
g.stopPropagation(), h.value === e.value ? e.config.required || n("") : n(h.value), r(!1);
|
2127
2127
|
}, c = () => {
|
2128
2128
|
r(!t());
|
2129
2129
|
};
|
@@ -2133,7 +2133,7 @@ const yr = (e) => {
|
|
2133
2133
|
if (!t() || !a) return;
|
2134
2134
|
h.composedPath().includes(a) || r(!1);
|
2135
2135
|
}
|
2136
|
-
}),
|
2136
|
+
}), f(he, {
|
2137
2137
|
get label() {
|
2138
2138
|
return e.config.label;
|
2139
2139
|
},
|
@@ -2141,21 +2141,21 @@ const yr = (e) => {
|
|
2141
2141
|
return e.config.required;
|
2142
2142
|
},
|
2143
2143
|
get children() {
|
2144
|
-
var h = wr(),
|
2145
|
-
typeof E == "function" ? V(E, h) : a = h,
|
2144
|
+
var h = wr(), g = h.firstChild, m = g.firstChild, p = g.nextSibling, E = a;
|
2145
|
+
typeof E == "function" ? V(E, h) : a = h, g.$$click = (y) => {
|
2146
2146
|
y.stopPropagation(), c();
|
2147
2147
|
};
|
2148
2148
|
var S = o;
|
2149
|
-
typeof S == "function" ? V(S,
|
2149
|
+
typeof S == "function" ? V(S, g) : o = g, v(m, () => {
|
2150
2150
|
var y;
|
2151
2151
|
return ((y = l()) == null ? void 0 : y.label) || e.config.placeholder;
|
2152
|
-
}), v(h,
|
2152
|
+
}), v(h, f(D, {
|
2153
2153
|
get when() {
|
2154
2154
|
return t();
|
2155
2155
|
},
|
2156
2156
|
get children() {
|
2157
2157
|
var y = br();
|
2158
|
-
return v(y,
|
2158
|
+
return v(y, f(W, {
|
2159
2159
|
get each() {
|
2160
2160
|
return e.config.options;
|
2161
2161
|
},
|
@@ -2175,7 +2175,7 @@ const yr = (e) => {
|
|
2175
2175
|
var C = i;
|
2176
2176
|
return typeof C == "function" ? V(C, p) : i = p, b((y) => {
|
2177
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(
|
2178
|
+
return P !== y.e && d(g, "data-open", y.e = P), z !== y.t && d(g, "data-placeholder", y.t = z), x !== y.a && d(g, "data-required", y.a = x), H !== y.o && d(g, "aria-expanded", y.o = H), q !== y.i && d(g, "aria-required", y.i = q), I !== y.n && (p.required = y.n = I), y;
|
2179
2179
|
}, {
|
2180
2180
|
e: void 0,
|
2181
2181
|
t: void 0,
|
@@ -2193,7 +2193,7 @@ const kr = (e) => {
|
|
2193
2193
|
const {
|
2194
2194
|
handleTextChange: n
|
2195
2195
|
} = ue(e.onChange);
|
2196
|
-
return
|
2196
|
+
return f(he, {
|
2197
2197
|
get label() {
|
2198
2198
|
return e.config.label;
|
2199
2199
|
},
|
@@ -2215,7 +2215,7 @@ const kr = (e) => {
|
|
2215
2215
|
};
|
2216
2216
|
T(["input"]);
|
2217
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) =>
|
2218
|
+
const $r = (e) => f(D, {
|
2219
2219
|
get when() {
|
2220
2220
|
return e.config.type;
|
2221
2221
|
},
|
@@ -2224,7 +2224,7 @@ const $r = (e) => g(D, {
|
|
2224
2224
|
return Sr();
|
2225
2225
|
},
|
2226
2226
|
get children() {
|
2227
|
-
return
|
2227
|
+
return f(ht, {
|
2228
2228
|
get fallback() {
|
2229
2229
|
return (() => {
|
2230
2230
|
var n = Cr();
|
@@ -2232,12 +2232,12 @@ const $r = (e) => g(D, {
|
|
2232
2232
|
})();
|
2233
2233
|
},
|
2234
2234
|
get children() {
|
2235
|
-
return [
|
2235
|
+
return [f(ne, {
|
2236
2236
|
get when() {
|
2237
2237
|
return e.config.type === "text";
|
2238
2238
|
},
|
2239
2239
|
get children() {
|
2240
|
-
return
|
2240
|
+
return f(kr, ae(e, {
|
2241
2241
|
get value() {
|
2242
2242
|
return e.value;
|
2243
2243
|
},
|
@@ -2246,12 +2246,12 @@ const $r = (e) => g(D, {
|
|
2246
2246
|
}
|
2247
2247
|
}));
|
2248
2248
|
}
|
2249
|
-
}),
|
2249
|
+
}), f(ne, {
|
2250
2250
|
get when() {
|
2251
2251
|
return e.config.type === "textarea";
|
2252
2252
|
},
|
2253
2253
|
get children() {
|
2254
|
-
return
|
2254
|
+
return f(st, {
|
2255
2255
|
get config() {
|
2256
2256
|
return e.config;
|
2257
2257
|
},
|
@@ -2263,12 +2263,12 @@ const $r = (e) => g(D, {
|
|
2263
2263
|
}
|
2264
2264
|
});
|
2265
2265
|
}
|
2266
|
-
}),
|
2266
|
+
}), f(ne, {
|
2267
2267
|
get when() {
|
2268
2268
|
return e.config.type === "radio";
|
2269
2269
|
},
|
2270
2270
|
get children() {
|
2271
|
-
return
|
2271
|
+
return f(vr, {
|
2272
2272
|
get config() {
|
2273
2273
|
return e.config;
|
2274
2274
|
},
|
@@ -2280,12 +2280,12 @@ const $r = (e) => g(D, {
|
|
2280
2280
|
}
|
2281
2281
|
});
|
2282
2282
|
}
|
2283
|
-
}),
|
2283
|
+
}), f(ne, {
|
2284
2284
|
get when() {
|
2285
2285
|
return e.config.type === "checkbox";
|
2286
2286
|
},
|
2287
2287
|
get children() {
|
2288
|
-
return
|
2288
|
+
return f(fr, {
|
2289
2289
|
get config() {
|
2290
2290
|
return e.config;
|
2291
2291
|
},
|
@@ -2297,12 +2297,12 @@ const $r = (e) => g(D, {
|
|
2297
2297
|
}
|
2298
2298
|
});
|
2299
2299
|
}
|
2300
|
-
}),
|
2300
|
+
}), f(ne, {
|
2301
2301
|
get when() {
|
2302
2302
|
return e.config.type === "select";
|
2303
2303
|
},
|
2304
2304
|
get children() {
|
2305
|
-
return
|
2305
|
+
return f(yr, {
|
2306
2306
|
get config() {
|
2307
2307
|
return e.config;
|
2308
2308
|
},
|
@@ -2392,7 +2392,7 @@ const Ar = () => {
|
|
2392
2392
|
var a = Mr(), o = a.firstChild, i = o.firstChild, l = i.firstChild, s = l.nextSibling, c = i.nextSibling;
|
2393
2393
|
c.firstChild;
|
2394
2394
|
var u = c.nextSibling;
|
2395
|
-
return a.$$click = () => e.feedback.state.isMinimized && r(), o.addEventListener("submit", n), v(l, () => e.widget.state.text.feedbackForm.title), v(s,
|
2395
|
+
return a.$$click = () => e.feedback.state.isMinimized && r(), o.addEventListener("submit", n), v(l, () => e.widget.state.text.feedbackForm.title), v(s, f(_, {
|
2396
2396
|
type: "button",
|
2397
2397
|
title: "Hide form",
|
2398
2398
|
variant: "secondary",
|
@@ -2400,11 +2400,11 @@ const Ar = () => {
|
|
2400
2400
|
onClick: t,
|
2401
2401
|
"aria-label": "Minimize feedback form",
|
2402
2402
|
get children() {
|
2403
|
-
return
|
2403
|
+
return f(pn, {
|
2404
2404
|
size: 20
|
2405
2405
|
});
|
2406
2406
|
}
|
2407
|
-
}), null), v(s,
|
2407
|
+
}), null), v(s, f(_, {
|
2408
2408
|
type: "button",
|
2409
2409
|
title: "Close form",
|
2410
2410
|
variant: "secondary",
|
@@ -2414,11 +2414,11 @@ const Ar = () => {
|
|
2414
2414
|
}),
|
2415
2415
|
"aria-label": "Close feedback form",
|
2416
2416
|
get children() {
|
2417
|
-
return
|
2417
|
+
return f(xe, {
|
2418
2418
|
size: 20
|
2419
2419
|
});
|
2420
2420
|
}
|
2421
|
-
}), null), v(c,
|
2421
|
+
}), null), v(c, f(st, {
|
2422
2422
|
get config() {
|
2423
2423
|
return {
|
2424
2424
|
type: "textarea",
|
@@ -2434,32 +2434,32 @@ const Ar = () => {
|
|
2434
2434
|
onChange: (h) => e.feedback.setState({
|
2435
2435
|
message: h
|
2436
2436
|
})
|
2437
|
-
}), null), v(o,
|
2437
|
+
}), null), v(o, f(D, {
|
2438
2438
|
get when() {
|
2439
2439
|
var h;
|
2440
2440
|
return (h = e.widget.state.customInputs) == null ? void 0 : h.length;
|
2441
2441
|
},
|
2442
2442
|
get children() {
|
2443
2443
|
var h = Or();
|
2444
|
-
return h.firstChild, v(h,
|
2444
|
+
return h.firstChild, v(h, f(W, {
|
2445
2445
|
get each() {
|
2446
2446
|
return e.widget.state.customInputs;
|
2447
2447
|
},
|
2448
|
-
children: (
|
2449
|
-
config:
|
2448
|
+
children: (g) => f($r, {
|
2449
|
+
config: g,
|
2450
2450
|
get value() {
|
2451
|
-
return e.feedback.state.customInputValues[
|
2451
|
+
return e.feedback.state.customInputValues[g.id];
|
2452
2452
|
},
|
2453
2453
|
onChange: (m) => e.feedback.setState({
|
2454
2454
|
customInputValues: {
|
2455
2455
|
...e.feedback.state.customInputValues,
|
2456
|
-
[
|
2456
|
+
[g.id]: m
|
2457
2457
|
}
|
2458
2458
|
})
|
2459
2459
|
})
|
2460
2460
|
}), null), h;
|
2461
2461
|
}
|
2462
|
-
}), u), v(u,
|
2462
|
+
}), u), v(u, f(_, {
|
2463
2463
|
type: "submit",
|
2464
2464
|
variant: "primary",
|
2465
2465
|
size: "lg",
|
@@ -2471,8 +2471,8 @@ const Ar = () => {
|
|
2471
2471
|
return e.widget.state.text.feedbackForm.submitButton;
|
2472
2472
|
}
|
2473
2473
|
})), b((h) => {
|
2474
|
-
var
|
2475
|
-
return
|
2474
|
+
var g = e.feedback.state.isMinimized, m = e.feedback.state.isMinimized ? "pointer" : "default", p = !e.feedback.state.isMinimized;
|
2475
|
+
return g !== h.e && d(a, "data-minimized", h.e = g), 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;
|
2476
2476
|
}, {
|
2477
2477
|
e: void 0,
|
2478
2478
|
t: void 0,
|
@@ -2482,21 +2482,21 @@ const Ar = () => {
|
|
2482
2482
|
};
|
2483
2483
|
T(["click"]);
|
2484
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) =>
|
2485
|
+
const Nr = (e) => f(Ot, {
|
2486
2486
|
useShadow: !0,
|
2487
2487
|
get mount() {
|
2488
2488
|
return document.body;
|
2489
2489
|
},
|
2490
2490
|
get children() {
|
2491
|
-
return
|
2491
|
+
return f(cn, ae(e, {
|
2492
2492
|
get children() {
|
2493
|
-
return
|
2493
|
+
return f(_r, {
|
2494
2494
|
get children() {
|
2495
|
-
return [
|
2495
|
+
return [f(qr, {
|
2496
2496
|
get primaryColor() {
|
2497
2497
|
return e.primaryColor;
|
2498
2498
|
}
|
2499
|
-
}),
|
2499
|
+
}), f(Vr, {})];
|
2500
2500
|
}
|
2501
2501
|
});
|
2502
2502
|
}
|
@@ -2520,10 +2520,10 @@ const Nr = (e) => g(Ot, {
|
|
2520
2520
|
const e = $();
|
2521
2521
|
return [(() => {
|
2522
2522
|
var n = Fr();
|
2523
|
-
return v(n,
|
2524
|
-
})(),
|
2523
|
+
return v(n, f(Rn, {}), null), v(n, f(Qn, {}), null), v(n, f(Gn, {}), null), b(() => d(n, "data-hidden", e.widget.state.isOpen)), n;
|
2524
|
+
})(), f(Br, {
|
2525
2525
|
get children() {
|
2526
|
-
return [
|
2526
|
+
return [f(Ar, {}), f(Fn, {}), f(ar, {})];
|
2527
2527
|
}
|
2528
2528
|
})];
|
2529
2529
|
}, Br = (e) => {
|
@@ -2553,11 +2553,42 @@ const Nr = (e) => g(Ot, {
|
|
2553
2553
|
return un({
|
2554
2554
|
onUrlChange: (t) => n.methods.handlePageChange(t)
|
2555
2555
|
}), ye(() => {
|
2556
|
-
Ht()
|
2557
|
-
|
2558
|
-
|
2556
|
+
Ht();
|
2557
|
+
const t = [
|
2558
|
+
// Mouse events
|
2559
|
+
"click",
|
2560
|
+
"mousedown",
|
2561
|
+
"mouseup",
|
2562
|
+
"mousemove",
|
2563
|
+
"mouseenter",
|
2564
|
+
"mouseleave",
|
2565
|
+
// Touch events
|
2566
|
+
"touchstart",
|
2567
|
+
"touchmove",
|
2568
|
+
"touchend",
|
2569
|
+
"touchcancel",
|
2570
|
+
// Pointer events
|
2571
|
+
"pointerdown",
|
2572
|
+
"pointermove",
|
2573
|
+
"pointerup",
|
2574
|
+
"pointercancel",
|
2575
|
+
// Focus events
|
2576
|
+
"focus",
|
2577
|
+
"blur",
|
2578
|
+
"focusin",
|
2579
|
+
"focusout",
|
2580
|
+
// Other common events that shouldn't be intercepted
|
2581
|
+
"scroll",
|
2582
|
+
"resize",
|
2583
|
+
"input",
|
2584
|
+
"change",
|
2585
|
+
"submit"
|
2586
|
+
];
|
2587
|
+
Jt((r) => {
|
2588
|
+
if (!(t.includes(r.type) || !n.widget.state.isOpen) && r.type === "keydown")
|
2589
|
+
switch (r.key) {
|
2559
2590
|
case "Escape":
|
2560
|
-
|
2591
|
+
r.stopImmediatePropagation();
|
2561
2592
|
break;
|
2562
2593
|
}
|
2563
2594
|
});
|
@@ -2592,9 +2623,9 @@ const Nr = (e) => g(Ot, {
|
|
2592
2623
|
text: "Click & drag to draw"
|
2593
2624
|
}
|
2594
2625
|
};
|
2595
|
-
let
|
2626
|
+
let ge = null;
|
2596
2627
|
function Yr(e) {
|
2597
|
-
|
2628
|
+
ge && (console.warn("Echo widget is already initialized. Cleaning up previous instance..."), ge());
|
2598
2629
|
try {
|
2599
2630
|
rn(e);
|
2600
2631
|
const {
|
@@ -2605,18 +2636,18 @@ function Yr(e) {
|
|
2605
2636
|
customInputs: o = []
|
2606
2637
|
} = e, i = Ke(Wr, a), l = document.createElement("div");
|
2607
2638
|
l.id = "echo-container", document.body.appendChild(l);
|
2608
|
-
const s = kt(() =>
|
2639
|
+
const s = kt(() => f(Nr, {
|
2609
2640
|
position: n,
|
2610
2641
|
primaryColor: t,
|
2611
2642
|
textConfig: i,
|
2612
2643
|
onSubmit: r,
|
2613
2644
|
customInputs: o
|
2614
2645
|
}), l), c = () => {
|
2615
|
-
s(), l.remove(),
|
2646
|
+
s(), l.remove(), ge = null;
|
2616
2647
|
};
|
2617
2648
|
return window.addEventListener("unload", c, {
|
2618
2649
|
once: !0
|
2619
|
-
}),
|
2650
|
+
}), ge = c, c;
|
2620
2651
|
} catch (n) {
|
2621
2652
|
throw console.error("Echo initialization failed:", n), n;
|
2622
2653
|
}
|
package/dist/echo.umd.js
CHANGED
@@ -5,4 +5,4 @@ Location: ${t}:${r}:${o}`,timestamp:new Date().toISOString()})}))},St=()=>{T&&(c
|
|
5
5
|
--primary-color: ${e.primaryColor};
|
6
6
|
--primary-text-color: ${kt(e.primaryColor)};
|
7
7
|
}
|
8
|
-
`;t(r)}),(()=>{var r=fr();return v(r,_t,null),v(r,n,null),r})()},pr=()=>{const e=x();return[(()=>{var n=gr();return v(n,c.createComponent($n,{}),null),v(n,c.createComponent(Mn,{}),null),v(n,c.createComponent(zn,{}),null),c.createRenderEffect(()=>u(n,"data-hidden",e.widget.state.isOpen)),n})(),c.createComponent(yr,{get children(){return[c.createComponent(hr,{}),c.createComponent(gn,{}),c.createComponent(jn,{})]}})]},yr=e=>{const[n,t]=c.createSignal(),r=x(),o=Bt(()=>n());return c.createEffect(()=>{n()&&r.widget.setState({dimensions:o()})}),c.createEffect(()=>{var a,i;r.widget.state.isOpen?(a=n())==null||a.showModal():(i=n())==null||i.close()}),(()=>{var a=mr();return a.addEventListener("close",()=>r.widget.setState({isOpen:!1})),R(t,a),v(a,()=>e.children),c.createRenderEffect(i=>{var l=`${o().height}px`,s=`${o().width}px`,d=!r.widget.state.isOpen;return l!==i.e&&((i.e=l)!=null?a.style.setProperty("height",l):a.style.removeProperty("height")),s!==i.t&&((i.t=s)!=null?a.style.setProperty("width",s):a.style.removeProperty("width")),d!==i.a&&u(a,"data-hidden",i.a=d),i},{e:void 0,t:void 0,a:void 0}),a})()},xr=e=>{const n=x();return Yt({onUrlChange:t=>n.methods.handlePageChange(t)}),c.onMount(()=>{Ct(),Ot(
|
8
|
+
`;t(r)}),(()=>{var r=fr();return v(r,_t,null),v(r,n,null),r})()},pr=()=>{const e=x();return[(()=>{var n=gr();return v(n,c.createComponent($n,{}),null),v(n,c.createComponent(Mn,{}),null),v(n,c.createComponent(zn,{}),null),c.createRenderEffect(()=>u(n,"data-hidden",e.widget.state.isOpen)),n})(),c.createComponent(yr,{get children(){return[c.createComponent(hr,{}),c.createComponent(gn,{}),c.createComponent(jn,{})]}})]},yr=e=>{const[n,t]=c.createSignal(),r=x(),o=Bt(()=>n());return c.createEffect(()=>{n()&&r.widget.setState({dimensions:o()})}),c.createEffect(()=>{var a,i;r.widget.state.isOpen?(a=n())==null||a.showModal():(i=n())==null||i.close()}),(()=>{var a=mr();return a.addEventListener("close",()=>r.widget.setState({isOpen:!1})),R(t,a),v(a,()=>e.children),c.createRenderEffect(i=>{var l=`${o().height}px`,s=`${o().width}px`,d=!r.widget.state.isOpen;return l!==i.e&&((i.e=l)!=null?a.style.setProperty("height",l):a.style.removeProperty("height")),s!==i.t&&((i.t=s)!=null?a.style.setProperty("width",s):a.style.removeProperty("width")),d!==i.a&&u(a,"data-hidden",i.a=d),i},{e:void 0,t:void 0,a:void 0}),a})()},xr=e=>{const n=x();return Yt({onUrlChange:t=>n.methods.handlePageChange(t)}),c.onMount(()=>{Ct();const t=["click","mousedown","mouseup","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointercancel","focus","blur","focusin","focusout","scroll","resize","input","change","submit"];Ot(r=>{if(!(t.includes(r.type)||!n.widget.state.isOpen)&&r.type==="keydown")switch(r.key){case"Escape":r.stopImmediatePropagation();break}})}),c.onCleanup(()=>{St(),It()}),(()=>{var t=vr();return v(t,()=>e.children),c.createRenderEffect(()=>u(t,"data-drawing",n.drawing.state.isDrawing)),t})()},kr={welcomeMessage:{text:"Click here to leave feedback",closeAriaLabel:"Close welcome message"},feedbackForm:{title:"Send Feedback",placeholder:"What's on your mind? We'd love to hear your feedback...",screenshotAlt:"Screenshot Preview",submitButton:"Send Feedback",minimizeTitle:"Minimize",expandTitle:"Expand",closeTitle:"Close",showFormTitle:"Show Feedback Form"},notification:{successTitle:"Thank you for your feedback!",errorTitle:"Something went wrong.",errorMessage:"Failed to send feedback. Please try again.",hideTitle:"Hide notification"},drawingTooltip:{text:"Click & drag to draw"}};let de=null;function Cr(e){de&&(console.warn("Echo widget is already initialized. Cleaning up previous instance..."),de());try{Ft(e);const{position:n="bottom-right",primaryColor:t="#6227dc",onSubmit:r,textConfig:o={},customInputs:a=[]}=e,i=Ee(kr,o),l=document.createElement("div");l.id="echo-container",document.body.appendChild(l);const s=tt(()=>c.createComponent(br,{position:n,primaryColor:t,textConfig:i,onSubmit:r,customInputs:a}),l),d=()=>{s(),l.remove(),de=null};return window.addEventListener("unload",d,{once:!0}),de=d,d}catch(n){throw console.error("Echo initialization failed:",n),n}}D.initEcho=Cr,Object.defineProperty(D,Symbol.toStringTag,{value:"Module"})});
|