@impakers/debug 1.4.18 → 1.4.19
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/react.js +403 -366
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +404 -367
- package/dist/react.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react.mjs
CHANGED
|
@@ -2261,6 +2261,17 @@ async function uploadFile(endpoint, file, context, taskId) {
|
|
|
2261
2261
|
}
|
|
2262
2262
|
return res.json();
|
|
2263
2263
|
}
|
|
2264
|
+
async function fetchHistory(endpoint, options = {}) {
|
|
2265
|
+
const params = new URLSearchParams();
|
|
2266
|
+
if (options.since) params.set("since", options.since);
|
|
2267
|
+
if (options.date) params.set("date", options.date);
|
|
2268
|
+
if (options.limit) params.set("limit", String(options.limit));
|
|
2269
|
+
const qs = params.toString();
|
|
2270
|
+
const url = `${endpoint}/history${qs ? `?${qs}` : ""}`;
|
|
2271
|
+
const res = await apiFetch(url);
|
|
2272
|
+
const data = await res.json();
|
|
2273
|
+
return data.events || [];
|
|
2274
|
+
}
|
|
2264
2275
|
|
|
2265
2276
|
// src/core/sourcemap-resolver.ts
|
|
2266
2277
|
import { AnyMap, originalPositionFor } from "@jridgewell/trace-mapping";
|
|
@@ -2436,9 +2447,32 @@ function PendingMarker({ x, y, accentColor }) {
|
|
|
2436
2447
|
// src/components/comment-thread/index.tsx
|
|
2437
2448
|
import { useState as useState2, useRef as useRef2, useEffect as useEffect2, useCallback as useCallback2 } from "react";
|
|
2438
2449
|
|
|
2450
|
+
// src/components/loading-spinner/styles.module.scss
|
|
2451
|
+
var css3 = "@keyframes styles-module__spin___h0C6p {\n to {\n transform: rotate(360deg);\n }\n}\n.styles-module__container___YKn1h {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 24px 16px;\n}\n\n.styles-module__spinner___4ELZK {\n width: 20px;\n height: 20px;\n border: 2px solid #e5e7eb;\n border-top-color: #6b7280;\n border-radius: 50%;\n animation: styles-module__spin___h0C6p 0.6s linear infinite;\n}\n\n.styles-module__message___70Ayy {\n font-size: 12px;\n color: #9ca3af;\n}";
|
|
2452
|
+
var classNames3 = { "container": "styles-module__container___YKn1h", "spinner": "styles-module__spinner___4ELZK", "spin": "styles-module__spin___h0C6p", "message": "styles-module__message___70Ayy" };
|
|
2453
|
+
if (typeof document !== "undefined") {
|
|
2454
|
+
let style = document.getElementById("impakers-debug-styles-loading-spinner-styles");
|
|
2455
|
+
if (!style) {
|
|
2456
|
+
style = document.createElement("style");
|
|
2457
|
+
style.id = "impakers-debug-styles-loading-spinner-styles";
|
|
2458
|
+
document.head.appendChild(style);
|
|
2459
|
+
}
|
|
2460
|
+
style.textContent = css3;
|
|
2461
|
+
}
|
|
2462
|
+
var styles_module_default3 = classNames3;
|
|
2463
|
+
|
|
2464
|
+
// src/components/loading-spinner/index.tsx
|
|
2465
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
2466
|
+
function LoadingSpinner({ message = "\uB85C\uB529 \uC911..." }) {
|
|
2467
|
+
return /* @__PURE__ */ jsxs4("div", { className: styles_module_default3.container, children: [
|
|
2468
|
+
/* @__PURE__ */ jsx4("div", { className: styles_module_default3.spinner }),
|
|
2469
|
+
/* @__PURE__ */ jsx4("span", { className: styles_module_default3.message, children: message })
|
|
2470
|
+
] });
|
|
2471
|
+
}
|
|
2472
|
+
|
|
2439
2473
|
// src/components/comment-thread/styles.module.scss
|
|
2440
|
-
var css3 = '@keyframes styles-module__threadIn___pBTFZ {\n from {\n opacity: 0;\n transform: scale(0.96) translateY(4px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n}\n@keyframes styles-module__threadOut___-ccKh {\n from {\n opacity: 1;\n transform: scale(1);\n }\n to {\n opacity: 0;\n transform: scale(0.96);\n }\n}\n.styles-module__thread___ua2EO {\n position: fixed;\n width: 340px;\n max-height: min(480px, 100vh - 40px);\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);\n z-index: 100002;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n font-size: 13px;\n color: #1a1a1a;\n animation: styles-module__threadIn___pBTFZ 0.15s ease-out;\n -webkit-font-smoothing: antialiased;\n}\n.styles-module__thread___ua2EO.styles-module__exiting___RIPeX {\n animation: styles-module__threadOut___-ccKh 0.12s ease-in forwards;\n pointer-events: none;\n}\n\n.styles-module__header___GiEBq {\n padding: 14px 16px 10px;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n flex-shrink: 0;\n}\n\n.styles-module__avatar___JElAd {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: #16a34a;\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.styles-module__headerInfo___E8809 {\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__headerTop___eDiCd {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 4px;\n}\n\n.styles-module__authorName___T1BfB {\n font-size: 13px;\n font-weight: 600;\n color: #1a1a1a;\n}\n\n.styles-module__timestamp___WusBf {\n font-size: 12px;\n color: #9ca3af;\n}\n\n.styles-module__headerActions___8FsMY {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n}\n\n.styles-module__headerAction___Tinmq {\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #9ca3af;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n.styles-module__headerAction___Tinmq:hover {\n background: #f3f4f6;\n color: #374151;\n}\n.styles-module__headerAction___Tinmq svg {\n width: 16px;\n height: 16px;\n}\n\n.styles-module__title___qkfqY {\n font-size: 13px;\n color: #1a1a1a;\n line-height: 1.5;\n word-break: break-word;\n}\n\n.styles-module__commentsList___kYqAR {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 0;\n}\n.styles-module__commentsList___kYqAR::-webkit-scrollbar {\n width: 4px;\n}\n.styles-module__commentsList___kYqAR::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 2px;\n}\n\n.styles-module__comment___pW3IO {\n padding: 10px 16px;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n.styles-module__comment___pW3IO:hover {\n background: #f9fafb;\n}\n.styles-module__comment___pW3IO:hover .styles-module__commentActions___wO0fs {\n opacity: 1;\n}\n\n.styles-module__commentHighlight___EiTmx {\n background: #eff6ff;\n border-left: 2px solid #3b82f6;\n padding-left: 14px;\n}\n\n.styles-module__commentContent___RObGr {\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__commentTop___BbTF3 {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 2px;\n}\n\n.styles-module__commentAuthor___tBjpl {\n font-size: 13px;\n font-weight: 600;\n color: #1a1a1a;\n}\n\n.styles-module__commentTime___0OLrz {\n font-size: 12px;\n color: #9ca3af;\n}\n\n.styles-module__commentActions___wO0fs {\n display: flex;\n gap: 2px;\n opacity: 0;\n transition: opacity 0.12s;\n}\n\n.styles-module__commentText___ldy2V {\n font-size: 13px;\n color: #374151;\n line-height: 1.5;\n word-break: break-word;\n white-space: pre-wrap;\n}\n\n.styles-module__screenshot___jUqau {\n margin-top: 8px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n position: relative;\n max-width: 200px;\n}\n.styles-module__screenshot___jUqau img {\n width: 100%;\n height: auto;\n display: block;\n}\n.styles-module__screenshot___jUqau .styles-module__screenshotBadge___roEqY {\n position: absolute;\n top: 6px;\n right: 6px;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n font-size: 10px;\n padding: 2px 6px;\n border-radius: 4px;\n font-weight: 500;\n}\n\n.styles-module__fileCard___-iOro {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 8px;\n padding: 8px 10px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n background: #f9fafb;\n text-decoration: none;\n color: inherit;\n cursor: pointer;\n transition: background 0.12s;\n max-width: 200px;\n}\n.styles-module__fileCard___-iOro:hover {\n background: #f3f4f6;\n}\n\n.styles-module__fileIcon___dNJMT {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: #e5e7eb;\n color: #374151;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n flex-shrink: 0;\n letter-spacing: 0.5px;\n}\n\n.styles-module__fileInfo___dVrLV {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.styles-module__fileCardName___SHOj- {\n font-size: 12px;\n font-weight: 500;\n color: #1a1a1a;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.styles-module__fileCardSize___W53JL {\n font-size: 11px;\n color: #9ca3af;\n}\n\n.styles-module__pendingFile___-OSRs {\n position: relative;\n margin: 0 16px 8px;\n padding: 8px 10px;\n padding-right: 30px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n background: #f9fafb;\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.styles-module__divider___kDjxN {\n height: 1px;\n background: #f3f4f6;\n margin: 0;\n flex-shrink: 0;\n}\n\n.styles-module__pendingImage___gHaF3 {\n position: relative;\n margin: 0 16px 8px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n max-height: 120px;\n flex-shrink: 0;\n}\n.styles-module__pendingImage___gHaF3 img {\n width: 100%;\n height: auto;\n display: block;\n object-fit: cover;\n max-height: 120px;\n}\n\n.styles-module__pendingRemove___FRL4h {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n line-height: 1;\n padding: 0;\n}\n.styles-module__pendingRemove___FRL4h:hover {\n background: rgba(0, 0, 0, 0.8);\n}\n\n.styles-module__replyArea___VQn9b {\n padding: 10px 16px 8px;\n border-top: 1px solid #f3f4f6;\n flex-shrink: 0;\n}\n\n.styles-module__replyInput___uZNBW {\n width: 100%;\n border: none;\n outline: none;\n font-size: 13px;\n font-family: inherit;\n color: #1a1a1a;\n resize: none;\n padding: 0;\n min-height: 36px;\n max-height: 120px;\n line-height: 1.55;\n transition: height 0.1s ease;\n}\n.styles-module__replyInput___uZNBW::placeholder {\n color: #9ca3af;\n}\n\n.styles-module__replyToolbar___fTFJU {\n display: flex;\n align-items: center;\n padding: 4px 16px 10px;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.styles-module__replyTool___Ho-Rx {\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #9ca3af;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n.styles-module__replyTool___Ho-Rx:hover {\n background: #f3f4f6;\n color: #374151;\n}\n.styles-module__replyTool___Ho-Rx svg {\n width: 16px;\n height: 16px;\n}\n\n.styles-module__replySend___e0VSb {\n margin-left: auto;\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #9ca3af;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n.styles-module__replySend___e0VSb:hover {\n color: #3b82f6;\n}\n.styles-module__replySend___e0VSb.styles-module__active___R--Jj {\n color: #3b82f6;\n}\n.styles-module__replySend___e0VSb svg {\n width: 16px;\n height: 16px;\n}\n\n.styles-module__empty___XXGiw {\n padding: 24px 16px;\n text-align: center;\n color: #9ca3af;\n font-size: 13px;\n}\n\n.styles-module__statusBadge___el8ml {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n font-weight: 500;\n padding: 2px 8px;\n border-radius: 10px;\n margin-left: auto;\n}\n.styles-module__statusBadge___el8ml.styles-module__todo___rUWBr {\n background: #fef3c7;\n color: #92400e;\n}\n.styles-module__statusBadge___el8ml.styles-module__inProgress___HEWgU {\n background: #dbeafe;\n color: #1e40af;\n}\n.styles-module__statusBadge___el8ml.styles-module__done___zC12n {\n background: #dcfce7;\n color: #166534;\n}\n\n.styles-module__lightbox___KoWEF {\n position: fixed;\n inset: 0;\n z-index: 2147483647;\n background: rgba(0, 0, 0, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: zoom-out;\n}\n.styles-module__lightbox___KoWEF img {\n max-width: 90vw;\n max-height: 90vh;\n border-radius: 8px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n cursor: default;\n}\n\n.styles-module__lightboxClose___tGZlm {\n position: absolute;\n top: 16px;\n right: 16px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.15);\n color: #fff;\n border: none;\n cursor: pointer;\n font-size: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.styles-module__lightboxClose___tGZlm:hover {\n background: rgba(255, 255, 255, 0.25);\n}';
|
|
2441
|
-
var
|
|
2474
|
+
var css4 = '@keyframes styles-module__threadIn___pBTFZ {\n from {\n opacity: 0;\n transform: scale(0.96) translateY(4px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n}\n@keyframes styles-module__threadOut___-ccKh {\n from {\n opacity: 1;\n transform: scale(1);\n }\n to {\n opacity: 0;\n transform: scale(0.96);\n }\n}\n.styles-module__thread___ua2EO {\n position: fixed;\n width: 340px;\n max-height: min(480px, 100vh - 40px);\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);\n z-index: 100002;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n font-size: 13px;\n color: #1a1a1a;\n animation: styles-module__threadIn___pBTFZ 0.15s ease-out;\n -webkit-font-smoothing: antialiased;\n}\n.styles-module__thread___ua2EO.styles-module__exiting___RIPeX {\n animation: styles-module__threadOut___-ccKh 0.12s ease-in forwards;\n pointer-events: none;\n}\n\n.styles-module__header___GiEBq {\n padding: 14px 16px 10px;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n flex-shrink: 0;\n background: #f5f5f5;\n}\n\n.styles-module__avatar___JElAd {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: #16a34a;\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.styles-module__headerInfo___E8809 {\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__headerTop___eDiCd {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 4px;\n}\n\n.styles-module__authorName___T1BfB {\n font-size: 13px;\n font-weight: 600;\n color: #1a1a1a;\n}\n\n.styles-module__timestamp___WusBf {\n font-size: 12px;\n color: #9ca3af;\n}\n\n.styles-module__headerActions___8FsMY {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n}\n\n.styles-module__headerAction___Tinmq {\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #9ca3af;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n.styles-module__headerAction___Tinmq:hover {\n background: #f3f4f6;\n color: #374151;\n}\n.styles-module__headerAction___Tinmq svg {\n width: 16px;\n height: 16px;\n}\n\n.styles-module__title___qkfqY {\n font-size: 13px;\n color: #1a1a1a;\n line-height: 1.5;\n word-break: break-word;\n}\n\n.styles-module__commentsList___kYqAR {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 0;\n}\n.styles-module__commentsList___kYqAR::-webkit-scrollbar {\n width: 4px;\n}\n.styles-module__commentsList___kYqAR::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 2px;\n}\n\n.styles-module__comment___pW3IO {\n padding: 10px 16px;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n.styles-module__comment___pW3IO:hover {\n background: #f9fafb;\n}\n.styles-module__comment___pW3IO:hover .styles-module__commentActions___wO0fs {\n opacity: 1;\n}\n\n.styles-module__commentHighlight___EiTmx {\n background: #eff6ff;\n border-left: 2px solid #3b82f6;\n padding-left: 14px;\n}\n\n.styles-module__commentContent___RObGr {\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__commentTop___BbTF3 {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 2px;\n}\n\n.styles-module__commentAuthor___tBjpl {\n font-size: 13px;\n font-weight: 600;\n color: #1a1a1a;\n}\n\n.styles-module__commentTime___0OLrz {\n font-size: 12px;\n color: #9ca3af;\n}\n\n.styles-module__commentActions___wO0fs {\n display: flex;\n gap: 2px;\n opacity: 0;\n transition: opacity 0.12s;\n}\n\n.styles-module__commentText___ldy2V {\n font-size: 13px;\n color: #374151;\n line-height: 1.5;\n word-break: break-word;\n white-space: pre-wrap;\n}\n\n.styles-module__screenshot___jUqau {\n margin-top: 8px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n position: relative;\n max-width: 200px;\n}\n.styles-module__screenshot___jUqau img {\n width: 100%;\n height: auto;\n display: block;\n}\n.styles-module__screenshot___jUqau .styles-module__screenshotBadge___roEqY {\n position: absolute;\n top: 6px;\n right: 6px;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n font-size: 10px;\n padding: 2px 6px;\n border-radius: 4px;\n font-weight: 500;\n}\n\n.styles-module__fileCard___-iOro {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 8px;\n padding: 8px 10px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n background: #f9fafb;\n text-decoration: none;\n color: inherit;\n cursor: pointer;\n transition: background 0.12s;\n max-width: 200px;\n}\n.styles-module__fileCard___-iOro:hover {\n background: #f3f4f6;\n}\n\n.styles-module__fileIcon___dNJMT {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: #e5e7eb;\n color: #374151;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n flex-shrink: 0;\n letter-spacing: 0.5px;\n}\n\n.styles-module__fileInfo___dVrLV {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.styles-module__fileCardName___SHOj- {\n font-size: 12px;\n font-weight: 500;\n color: #1a1a1a;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.styles-module__fileCardSize___W53JL {\n font-size: 11px;\n color: #9ca3af;\n}\n\n.styles-module__pendingFile___-OSRs {\n position: relative;\n margin: 0 16px 8px;\n padding: 8px 10px;\n padding-right: 30px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n background: #f9fafb;\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.styles-module__divider___kDjxN {\n height: 1px;\n background: #f3f4f6;\n margin: 0;\n flex-shrink: 0;\n}\n\n.styles-module__pendingImage___gHaF3 {\n position: relative;\n margin: 0 16px 8px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n max-height: 120px;\n flex-shrink: 0;\n}\n.styles-module__pendingImage___gHaF3 img {\n width: 100%;\n height: auto;\n display: block;\n object-fit: cover;\n max-height: 120px;\n}\n\n.styles-module__pendingRemove___FRL4h {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n line-height: 1;\n padding: 0;\n}\n.styles-module__pendingRemove___FRL4h:hover {\n background: rgba(0, 0, 0, 0.8);\n}\n\n.styles-module__replyArea___VQn9b {\n padding: 10px 16px 8px;\n border-top: 1px solid #f3f4f6;\n flex-shrink: 0;\n}\n\n.styles-module__replyInput___uZNBW {\n width: 100%;\n border: none;\n outline: none;\n font-size: 13px;\n font-family: inherit;\n color: #1a1a1a;\n resize: none;\n padding: 0;\n min-height: 36px;\n max-height: 120px;\n line-height: 1.55;\n transition: height 0.1s ease;\n}\n.styles-module__replyInput___uZNBW::placeholder {\n color: #9ca3af;\n}\n\n.styles-module__replyToolbar___fTFJU {\n display: flex;\n align-items: center;\n padding: 4px 16px 10px;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.styles-module__replyTool___Ho-Rx {\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #9ca3af;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n.styles-module__replyTool___Ho-Rx:hover {\n background: #f3f4f6;\n color: #374151;\n}\n.styles-module__replyTool___Ho-Rx svg {\n width: 16px;\n height: 16px;\n}\n\n.styles-module__replySend___e0VSb {\n margin-left: auto;\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #9ca3af;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n.styles-module__replySend___e0VSb:hover {\n color: #3b82f6;\n}\n.styles-module__replySend___e0VSb.styles-module__active___R--Jj {\n color: #3b82f6;\n}\n.styles-module__replySend___e0VSb svg {\n width: 16px;\n height: 16px;\n}\n\n.styles-module__empty___XXGiw {\n padding: 24px 16px;\n text-align: center;\n color: #9ca3af;\n font-size: 13px;\n}\n\n.styles-module__statusBadge___el8ml {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n font-weight: 500;\n padding: 2px 8px;\n border-radius: 10px;\n margin-left: auto;\n}\n.styles-module__statusBadge___el8ml.styles-module__todo___rUWBr {\n background: #fef3c7;\n color: #92400e;\n}\n.styles-module__statusBadge___el8ml.styles-module__inProgress___HEWgU {\n background: #dbeafe;\n color: #1e40af;\n}\n.styles-module__statusBadge___el8ml.styles-module__done___zC12n {\n background: #dcfce7;\n color: #166534;\n}\n\n.styles-module__lightbox___KoWEF {\n position: fixed;\n inset: 0;\n z-index: 2147483647;\n background: rgba(0, 0, 0, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: zoom-out;\n}\n.styles-module__lightbox___KoWEF img {\n max-width: 90vw;\n max-height: 90vh;\n border-radius: 8px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n cursor: default;\n}\n\n.styles-module__lightboxClose___tGZlm {\n position: absolute;\n top: 16px;\n right: 16px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.15);\n color: #fff;\n border: none;\n cursor: pointer;\n font-size: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.styles-module__lightboxClose___tGZlm:hover {\n background: rgba(255, 255, 255, 0.25);\n}';
|
|
2475
|
+
var classNames4 = { "thread": "styles-module__thread___ua2EO", "threadIn": "styles-module__threadIn___pBTFZ", "exiting": "styles-module__exiting___RIPeX", "threadOut": "styles-module__threadOut___-ccKh", "header": "styles-module__header___GiEBq", "avatar": "styles-module__avatar___JElAd", "headerInfo": "styles-module__headerInfo___E8809", "headerTop": "styles-module__headerTop___eDiCd", "authorName": "styles-module__authorName___T1BfB", "timestamp": "styles-module__timestamp___WusBf", "headerActions": "styles-module__headerActions___8FsMY", "headerAction": "styles-module__headerAction___Tinmq", "title": "styles-module__title___qkfqY", "commentsList": "styles-module__commentsList___kYqAR", "comment": "styles-module__comment___pW3IO", "commentActions": "styles-module__commentActions___wO0fs", "commentHighlight": "styles-module__commentHighlight___EiTmx", "commentContent": "styles-module__commentContent___RObGr", "commentTop": "styles-module__commentTop___BbTF3", "commentAuthor": "styles-module__commentAuthor___tBjpl", "commentTime": "styles-module__commentTime___0OLrz", "commentText": "styles-module__commentText___ldy2V", "screenshot": "styles-module__screenshot___jUqau", "screenshotBadge": "styles-module__screenshotBadge___roEqY", "fileCard": "styles-module__fileCard___-iOro", "fileIcon": "styles-module__fileIcon___dNJMT", "fileInfo": "styles-module__fileInfo___dVrLV", "fileCardName": "styles-module__fileCardName___SHOj-", "fileCardSize": "styles-module__fileCardSize___W53JL", "pendingFile": "styles-module__pendingFile___-OSRs", "divider": "styles-module__divider___kDjxN", "pendingImage": "styles-module__pendingImage___gHaF3", "pendingRemove": "styles-module__pendingRemove___FRL4h", "replyArea": "styles-module__replyArea___VQn9b", "replyInput": "styles-module__replyInput___uZNBW", "replyToolbar": "styles-module__replyToolbar___fTFJU", "replyTool": "styles-module__replyTool___Ho-Rx", "replySend": "styles-module__replySend___e0VSb", "active": "styles-module__active___R--Jj", "empty": "styles-module__empty___XXGiw", "statusBadge": "styles-module__statusBadge___el8ml", "todo": "styles-module__todo___rUWBr", "inProgress": "styles-module__inProgress___HEWgU", "done": "styles-module__done___zC12n", "lightbox": "styles-module__lightbox___KoWEF", "lightboxClose": "styles-module__lightboxClose___tGZlm" };
|
|
2442
2476
|
if (typeof document !== "undefined") {
|
|
2443
2477
|
let style = document.getElementById("impakers-debug-styles-comment-thread-styles");
|
|
2444
2478
|
if (!style) {
|
|
@@ -2446,12 +2480,12 @@ if (typeof document !== "undefined") {
|
|
|
2446
2480
|
style.id = "impakers-debug-styles-comment-thread-styles";
|
|
2447
2481
|
document.head.appendChild(style);
|
|
2448
2482
|
}
|
|
2449
|
-
style.textContent =
|
|
2483
|
+
style.textContent = css4;
|
|
2450
2484
|
}
|
|
2451
|
-
var
|
|
2485
|
+
var styles_module_default4 = classNames4;
|
|
2452
2486
|
|
|
2453
2487
|
// src/components/comment-thread/index.tsx
|
|
2454
|
-
import { Fragment, jsx as
|
|
2488
|
+
import { Fragment, jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
2455
2489
|
function formatTime(dateStr) {
|
|
2456
2490
|
const date = new Date(dateStr);
|
|
2457
2491
|
const diff = Date.now() - date.getTime();
|
|
@@ -2490,6 +2524,7 @@ function CommentThread({
|
|
|
2490
2524
|
left,
|
|
2491
2525
|
top,
|
|
2492
2526
|
bottom,
|
|
2527
|
+
loading,
|
|
2493
2528
|
onClose,
|
|
2494
2529
|
onReply
|
|
2495
2530
|
}) {
|
|
@@ -2510,7 +2545,7 @@ function CommentThread({
|
|
|
2510
2545
|
if (capturingDom) return;
|
|
2511
2546
|
const handler = (e) => {
|
|
2512
2547
|
const target = e.target;
|
|
2513
|
-
if (target.closest(`.${
|
|
2548
|
+
if (target.closest(`.${styles_module_default4.thread}`)) return;
|
|
2514
2549
|
if (target.closest("[data-annotation-marker]")) return;
|
|
2515
2550
|
if (target.closest("[data-impakers-debug]")) return;
|
|
2516
2551
|
handleClose();
|
|
@@ -2629,57 +2664,61 @@ function CommentThread({
|
|
|
2629
2664
|
...top !== void 0 ? { top } : {},
|
|
2630
2665
|
...bottom !== void 0 ? { bottom } : {}
|
|
2631
2666
|
};
|
|
2632
|
-
return /* @__PURE__ */
|
|
2667
|
+
return /* @__PURE__ */ jsxs5(
|
|
2633
2668
|
"div",
|
|
2634
2669
|
{
|
|
2635
|
-
className: `${
|
|
2670
|
+
className: `${styles_module_default4.thread} ${exiting ? styles_module_default4.exiting : ""}`,
|
|
2636
2671
|
style: positionStyle,
|
|
2637
2672
|
"data-impakers-debug": "",
|
|
2638
2673
|
onClick: (e) => e.stopPropagation(),
|
|
2639
2674
|
children: [
|
|
2640
|
-
/* @__PURE__ */
|
|
2641
|
-
/* @__PURE__ */
|
|
2642
|
-
/* @__PURE__ */
|
|
2643
|
-
/* @__PURE__ */
|
|
2644
|
-
/* @__PURE__ */
|
|
2645
|
-
/* @__PURE__ */
|
|
2675
|
+
/* @__PURE__ */ jsxs5("div", { className: styles_module_default4.header, children: [
|
|
2676
|
+
/* @__PURE__ */ jsx5("div", { className: styles_module_default4.avatar, children: getInitials(task.authorName || currentUserName) }),
|
|
2677
|
+
/* @__PURE__ */ jsxs5("div", { className: styles_module_default4.headerInfo, children: [
|
|
2678
|
+
/* @__PURE__ */ jsxs5("div", { className: styles_module_default4.headerTop, children: [
|
|
2679
|
+
/* @__PURE__ */ jsx5("span", { className: styles_module_default4.authorName, children: task.authorName || currentUserName }),
|
|
2680
|
+
/* @__PURE__ */ jsx5("span", { className: styles_module_default4.timestamp, children: formatTime(task.createdAt) })
|
|
2646
2681
|
] }),
|
|
2647
|
-
/* @__PURE__ */
|
|
2682
|
+
/* @__PURE__ */ jsx5("div", { className: styles_module_default4.title, children: feedbackTitle })
|
|
2648
2683
|
] }),
|
|
2649
|
-
/* @__PURE__ */
|
|
2684
|
+
/* @__PURE__ */ jsx5("div", { className: styles_module_default4.headerActions, children: /* @__PURE__ */ jsx5("button", { className: styles_module_default4.headerAction, onClick: handleClose, title: "\uB2EB\uAE30", type: "button", children: /* @__PURE__ */ jsx5("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx5("path", { d: "M18 6L6 18M6 6l12 12" }) }) }) })
|
|
2685
|
+
] }),
|
|
2686
|
+
loading && task.comments.length === 0 && /* @__PURE__ */ jsxs5(Fragment, { children: [
|
|
2687
|
+
/* @__PURE__ */ jsx5("div", { className: styles_module_default4.divider }),
|
|
2688
|
+
/* @__PURE__ */ jsx5(LoadingSpinner, { message: "\uB313\uAE00 \uB85C\uB529 \uC911..." })
|
|
2650
2689
|
] }),
|
|
2651
|
-
task.comments.length > 0 && /* @__PURE__ */
|
|
2652
|
-
/* @__PURE__ */
|
|
2653
|
-
/* @__PURE__ */
|
|
2654
|
-
/* @__PURE__ */
|
|
2655
|
-
/* @__PURE__ */
|
|
2656
|
-
/* @__PURE__ */
|
|
2657
|
-
/* @__PURE__ */
|
|
2658
|
-
/* @__PURE__ */
|
|
2690
|
+
task.comments.length > 0 && /* @__PURE__ */ jsxs5(Fragment, { children: [
|
|
2691
|
+
/* @__PURE__ */ jsx5("div", { className: styles_module_default4.divider }),
|
|
2692
|
+
/* @__PURE__ */ jsx5("div", { className: styles_module_default4.commentsList, ref: listRef, children: task.comments.map((comment) => /* @__PURE__ */ jsxs5("div", { className: styles_module_default4.comment, children: [
|
|
2693
|
+
/* @__PURE__ */ jsx5("div", { className: styles_module_default4.avatar, style: { width: 22, height: 22, fontSize: 10 }, children: getInitials(comment.authorName) }),
|
|
2694
|
+
/* @__PURE__ */ jsxs5("div", { className: styles_module_default4.commentContent, children: [
|
|
2695
|
+
/* @__PURE__ */ jsxs5("div", { className: styles_module_default4.commentTop, children: [
|
|
2696
|
+
/* @__PURE__ */ jsx5("span", { className: styles_module_default4.commentAuthor, children: comment.authorName }),
|
|
2697
|
+
/* @__PURE__ */ jsx5("span", { className: styles_module_default4.commentTime, children: formatTime(comment.createdAt) })
|
|
2659
2698
|
] }),
|
|
2660
|
-
comment.content && /* @__PURE__ */
|
|
2661
|
-
comment.imageUrl && comment.imageUrl !== "loading..." && /* @__PURE__ */
|
|
2699
|
+
comment.content && /* @__PURE__ */ jsx5("div", { className: styles_module_default4.commentText, children: comment.content }),
|
|
2700
|
+
comment.imageUrl && comment.imageUrl !== "loading..." && /* @__PURE__ */ jsx5(
|
|
2662
2701
|
"div",
|
|
2663
2702
|
{
|
|
2664
|
-
className:
|
|
2703
|
+
className: styles_module_default4.screenshot,
|
|
2665
2704
|
onClick: () => setLightboxSrc(comment.imageUrl),
|
|
2666
2705
|
style: { cursor: "pointer" },
|
|
2667
|
-
children: /* @__PURE__ */
|
|
2706
|
+
children: /* @__PURE__ */ jsx5("img", { src: comment.imageUrl, alt: "screenshot" })
|
|
2668
2707
|
}
|
|
2669
2708
|
),
|
|
2670
|
-
comment.fileUrl && /* @__PURE__ */
|
|
2709
|
+
comment.fileUrl && /* @__PURE__ */ jsxs5(
|
|
2671
2710
|
"a",
|
|
2672
2711
|
{
|
|
2673
|
-
className:
|
|
2712
|
+
className: styles_module_default4.fileCard,
|
|
2674
2713
|
href: comment.fileUrl,
|
|
2675
2714
|
target: "_blank",
|
|
2676
2715
|
rel: "noopener noreferrer",
|
|
2677
2716
|
onClick: (e) => e.stopPropagation(),
|
|
2678
2717
|
children: [
|
|
2679
|
-
/* @__PURE__ */
|
|
2680
|
-
/* @__PURE__ */
|
|
2681
|
-
/* @__PURE__ */
|
|
2682
|
-
comment.fileSize != null && /* @__PURE__ */
|
|
2718
|
+
/* @__PURE__ */ jsx5("span", { className: styles_module_default4.fileIcon, children: getFileIcon(comment.fileType || "") }),
|
|
2719
|
+
/* @__PURE__ */ jsxs5("span", { className: styles_module_default4.fileInfo, children: [
|
|
2720
|
+
/* @__PURE__ */ jsx5("span", { className: styles_module_default4.fileCardName, children: comment.fileName || "\uD30C\uC77C" }),
|
|
2721
|
+
comment.fileSize != null && /* @__PURE__ */ jsx5("span", { className: styles_module_default4.fileCardSize, children: formatFileSize(comment.fileSize) })
|
|
2683
2722
|
] })
|
|
2684
2723
|
]
|
|
2685
2724
|
}
|
|
@@ -2687,23 +2726,23 @@ function CommentThread({
|
|
|
2687
2726
|
] })
|
|
2688
2727
|
] }, comment.id)) })
|
|
2689
2728
|
] }),
|
|
2690
|
-
pendingImage && /* @__PURE__ */
|
|
2691
|
-
/* @__PURE__ */
|
|
2692
|
-
/* @__PURE__ */
|
|
2729
|
+
pendingImage && /* @__PURE__ */ jsxs5("div", { className: styles_module_default4.pendingImage, children: [
|
|
2730
|
+
/* @__PURE__ */ jsx5("img", { src: pendingImage, alt: "pending" }),
|
|
2731
|
+
/* @__PURE__ */ jsx5("button", { className: styles_module_default4.pendingRemove, onClick: () => setPendingImage(null), type: "button", children: "\xD7" })
|
|
2693
2732
|
] }),
|
|
2694
|
-
pendingFile && /* @__PURE__ */
|
|
2695
|
-
/* @__PURE__ */
|
|
2696
|
-
/* @__PURE__ */
|
|
2697
|
-
/* @__PURE__ */
|
|
2698
|
-
/* @__PURE__ */
|
|
2733
|
+
pendingFile && /* @__PURE__ */ jsxs5("div", { className: styles_module_default4.pendingFile, children: [
|
|
2734
|
+
/* @__PURE__ */ jsx5("span", { className: styles_module_default4.fileIcon, children: getFileIcon(pendingFile.type) }),
|
|
2735
|
+
/* @__PURE__ */ jsxs5("span", { className: styles_module_default4.fileInfo, children: [
|
|
2736
|
+
/* @__PURE__ */ jsx5("span", { className: styles_module_default4.fileCardName, children: pendingFile.name }),
|
|
2737
|
+
/* @__PURE__ */ jsx5("span", { className: styles_module_default4.fileCardSize, children: formatFileSize(pendingFile.size) })
|
|
2699
2738
|
] }),
|
|
2700
|
-
/* @__PURE__ */
|
|
2739
|
+
/* @__PURE__ */ jsx5("button", { className: styles_module_default4.pendingRemove, onClick: () => setPendingFile(null), type: "button", children: "\xD7" })
|
|
2701
2740
|
] }),
|
|
2702
|
-
/* @__PURE__ */
|
|
2741
|
+
/* @__PURE__ */ jsx5("div", { className: styles_module_default4.replyArea, children: /* @__PURE__ */ jsx5(
|
|
2703
2742
|
"textarea",
|
|
2704
2743
|
{
|
|
2705
2744
|
ref: textareaRef,
|
|
2706
|
-
className:
|
|
2745
|
+
className: styles_module_default4.replyInput,
|
|
2707
2746
|
placeholder: "Reply...",
|
|
2708
2747
|
value: replyText,
|
|
2709
2748
|
onChange: (e) => {
|
|
@@ -2716,31 +2755,31 @@ function CommentThread({
|
|
|
2716
2755
|
rows: 2
|
|
2717
2756
|
}
|
|
2718
2757
|
) }),
|
|
2719
|
-
/* @__PURE__ */
|
|
2720
|
-
/* @__PURE__ */
|
|
2721
|
-
/* @__PURE__ */
|
|
2722
|
-
/* @__PURE__ */
|
|
2758
|
+
/* @__PURE__ */ jsxs5("div", { className: styles_module_default4.replyToolbar, children: [
|
|
2759
|
+
/* @__PURE__ */ jsx5("button", { className: styles_module_default4.replyTool, onClick: handleAttachClick, type: "button", title: "\uD30C\uC77C \uCCA8\uBD80", children: /* @__PURE__ */ jsxs5("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
2760
|
+
/* @__PURE__ */ jsx5("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
2761
|
+
/* @__PURE__ */ jsx5("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
|
|
2723
2762
|
] }) }),
|
|
2724
|
-
/* @__PURE__ */
|
|
2725
|
-
/* @__PURE__ */
|
|
2726
|
-
/* @__PURE__ */
|
|
2763
|
+
/* @__PURE__ */ jsx5("button", { className: styles_module_default4.replyTool, onClick: handleCameraClick, type: "button", title: "\uC694\uC18C \uC2A4\uD06C\uB9B0\uC0F7", children: /* @__PURE__ */ jsxs5("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
2764
|
+
/* @__PURE__ */ jsx5("path", { d: "M14.5 4h-5L7 7H4a2 2 0 00-2 2v9a2 2 0 002 2h16a2 2 0 002-2V9a2 2 0 00-2-2h-3l-2.5-3z" }),
|
|
2765
|
+
/* @__PURE__ */ jsx5("circle", { cx: "12", cy: "13", r: "3" })
|
|
2727
2766
|
] }) }),
|
|
2728
|
-
/* @__PURE__ */
|
|
2767
|
+
/* @__PURE__ */ jsx5(
|
|
2729
2768
|
"button",
|
|
2730
2769
|
{
|
|
2731
|
-
className: `${
|
|
2770
|
+
className: `${styles_module_default4.replySend} ${replyText.trim() || pendingImage || pendingFile ? styles_module_default4.active : ""}`,
|
|
2732
2771
|
onClick: handleSend,
|
|
2733
2772
|
disabled: !replyText.trim() && !pendingImage && !pendingFile,
|
|
2734
2773
|
type: "button",
|
|
2735
2774
|
title: "\uC804\uC1A1",
|
|
2736
|
-
children: /* @__PURE__ */
|
|
2737
|
-
/* @__PURE__ */
|
|
2738
|
-
/* @__PURE__ */
|
|
2775
|
+
children: /* @__PURE__ */ jsxs5("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
2776
|
+
/* @__PURE__ */ jsx5("line", { x1: "22", y1: "2", x2: "11", y2: "13" }),
|
|
2777
|
+
/* @__PURE__ */ jsx5("polygon", { points: "22 2 15 22 11 13 2 9 22 2" })
|
|
2739
2778
|
] })
|
|
2740
2779
|
}
|
|
2741
2780
|
)
|
|
2742
2781
|
] }),
|
|
2743
|
-
/* @__PURE__ */
|
|
2782
|
+
/* @__PURE__ */ jsx5(
|
|
2744
2783
|
"input",
|
|
2745
2784
|
{
|
|
2746
2785
|
ref: fileInputRef,
|
|
@@ -2750,9 +2789,9 @@ function CommentThread({
|
|
|
2750
2789
|
onChange: handleFileChange
|
|
2751
2790
|
}
|
|
2752
2791
|
),
|
|
2753
|
-
lightboxSrc && /* @__PURE__ */
|
|
2754
|
-
/* @__PURE__ */
|
|
2755
|
-
/* @__PURE__ */
|
|
2792
|
+
lightboxSrc && /* @__PURE__ */ jsxs5("div", { className: styles_module_default4.lightbox, onClick: () => setLightboxSrc(null), "data-impakers-debug": "", children: [
|
|
2793
|
+
/* @__PURE__ */ jsx5("img", { src: lightboxSrc, alt: "enlarged", onClick: (e) => e.stopPropagation() }),
|
|
2794
|
+
/* @__PURE__ */ jsx5("button", { className: styles_module_default4.lightboxClose, onClick: () => setLightboxSrc(null), type: "button", children: "\xD7" })
|
|
2756
2795
|
] })
|
|
2757
2796
|
]
|
|
2758
2797
|
}
|
|
@@ -2763,8 +2802,8 @@ function CommentThread({
|
|
|
2763
2802
|
import { useState as useState3, useRef as useRef3, useCallback as useCallback3, useEffect as useEffect3 } from "react";
|
|
2764
2803
|
|
|
2765
2804
|
// src/components/fab-menu/styles.module.scss
|
|
2766
|
-
var
|
|
2767
|
-
var
|
|
2805
|
+
var css5 = '@keyframes styles-module__fabEnter___DMJoo {\n from {\n opacity: 0;\n transform: scale(0.5);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n@keyframes styles-module__menuItemIn___GfmJ3 {\n from {\n opacity: 0;\n transform: scale(0.3);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n@keyframes styles-module__menuItemOut___s0nQD {\n from {\n opacity: 1;\n transform: scale(1);\n }\n to {\n opacity: 0;\n transform: scale(0.3);\n }\n}\n.styles-module__fab___wShP- {\n touch-action: none;\n z-index: 99999;\n width: 44px;\n height: 44px;\n border-radius: 50%;\n background: #18181b;\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 1px 3px rgba(0, 0, 0, 0.1);\n transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;\n animation: styles-module__fabEnter___DMJoo 0.3s cubic-bezier(0.22, 1, 0.36, 1);\n position: relative;\n}\n.styles-module__fab___wShP- svg {\n width: 20px;\n height: 20px;\n transition: transform 0.2s ease;\n}\n.styles-module__fab___wShP-:hover {\n transform: scale(1.08);\n box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.12);\n}\n.styles-module__fab___wShP-:active {\n transform: scale(0.96);\n}\n.styles-module__fab___wShP-.styles-module__expanded___qyto6 svg {\n transform: rotate(45deg);\n}\n\n.styles-module__menuItems___1qNsE {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n z-index: 99999;\n}\n\n.styles-module__menuItem___pB75H {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: #fff;\n color: #374151;\n border: 1px solid #e5e7eb;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);\n transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.12s ease, border-color 0.12s ease;\n position: relative;\n}\n.styles-module__menuItem___pB75H svg {\n width: 18px;\n height: 18px;\n}\n.styles-module__menuItem___pB75H:hover {\n transform: scale(1.08);\n background: #f9fafb;\n border-color: #d1d5db;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n}\n.styles-module__menuItem___pB75H:active {\n transform: scale(0.96);\n}\n.styles-module__menuItem___pB75H.styles-module__active___7ktmc {\n background: #18181b;\n color: #fff;\n border-color: #18181b;\n}\n\n.styles-module__menuItem___pB75H:nth-child(1) {\n animation: styles-module__menuItemIn___GfmJ3 0.15s cubic-bezier(0.22, 1, 0.36, 1) 0ms both;\n}\n\n.styles-module__menuItem___pB75H:nth-child(2) {\n animation: styles-module__menuItemIn___GfmJ3 0.15s cubic-bezier(0.22, 1, 0.36, 1) 40ms both;\n}\n\n.styles-module__menuItem___pB75H:nth-child(3) {\n animation: styles-module__menuItemIn___GfmJ3 0.15s cubic-bezier(0.22, 1, 0.36, 1) 80ms both;\n}\n\n.styles-module__menuItem___pB75H:nth-child(4) {\n animation: styles-module__menuItemIn___GfmJ3 0.15s cubic-bezier(0.22, 1, 0.36, 1) 120ms both;\n}\n\n.styles-module__menuItemClosing___m4o-a:nth-child(1) {\n animation: styles-module__menuItemOut___s0nQD 0.1s ease-in 40ms both;\n}\n\n.styles-module__menuItemClosing___m4o-a:nth-child(2) {\n animation: styles-module__menuItemOut___s0nQD 0.1s ease-in 0ms both;\n}\n\n.styles-module__tooltip___Cy6kg {\n position: absolute;\n right: calc(100% + 10px);\n white-space: nowrap;\n background: rgba(0, 0, 0, 0.85);\n color: #fff;\n font-size: 12px;\n font-weight: 500;\n padding: 5px 10px;\n border-radius: 6px;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.12s ease;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n}\n\n.styles-module__menuItem___pB75H:hover .styles-module__tooltip___Cy6kg {\n opacity: 1;\n}\n\n.styles-module__contextMenu___A8fQt {\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16), 0 1px 4px rgba(0, 0, 0, 0.08);\n padding: 4px;\n min-width: 140px;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n animation: styles-module__menuItemIn___GfmJ3 0.1s ease-out;\n}\n\n.styles-module__contextMenuItem___1u9io {\n display: block;\n width: 100%;\n padding: 8px 12px;\n border: none;\n background: none;\n font-size: 13px;\n color: #18181b;\n text-align: left;\n cursor: pointer;\n border-radius: 6px;\n font-family: inherit;\n}\n.styles-module__contextMenuItem___1u9io:hover {\n background: #f4f4f5;\n}\n\n.styles-module__badge___zmiZx {\n position: absolute;\n top: -4px;\n right: -4px;\n min-width: 16px;\n height: 16px;\n border-radius: 8px;\n background: #ef4444;\n color: #fff;\n font-size: 10px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 4px;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n}';
|
|
2806
|
+
var classNames5 = { "fab": "styles-module__fab___wShP-", "fabEnter": "styles-module__fabEnter___DMJoo", "expanded": "styles-module__expanded___qyto6", "menuItems": "styles-module__menuItems___1qNsE", "menuItem": "styles-module__menuItem___pB75H", "active": "styles-module__active___7ktmc", "menuItemIn": "styles-module__menuItemIn___GfmJ3", "menuItemClosing": "styles-module__menuItemClosing___m4o-a", "menuItemOut": "styles-module__menuItemOut___s0nQD", "tooltip": "styles-module__tooltip___Cy6kg", "contextMenu": "styles-module__contextMenu___A8fQt", "contextMenuItem": "styles-module__contextMenuItem___1u9io", "badge": "styles-module__badge___zmiZx" };
|
|
2768
2807
|
if (typeof document !== "undefined") {
|
|
2769
2808
|
let style = document.getElementById("impakers-debug-styles-fab-menu-styles");
|
|
2770
2809
|
if (!style) {
|
|
@@ -2772,12 +2811,12 @@ if (typeof document !== "undefined") {
|
|
|
2772
2811
|
style.id = "impakers-debug-styles-fab-menu-styles";
|
|
2773
2812
|
document.head.appendChild(style);
|
|
2774
2813
|
}
|
|
2775
|
-
style.textContent =
|
|
2814
|
+
style.textContent = css5;
|
|
2776
2815
|
}
|
|
2777
|
-
var
|
|
2816
|
+
var styles_module_default5 = classNames5;
|
|
2778
2817
|
|
|
2779
2818
|
// src/components/fab-menu/index.tsx
|
|
2780
|
-
import { Fragment as Fragment2, jsx as
|
|
2819
|
+
import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2781
2820
|
function FabMenu({ items, onSelect, onHide, onDoubleTap }) {
|
|
2782
2821
|
const [expanded, setExpanded] = useState3(false);
|
|
2783
2822
|
const [closing, setClosing] = useState3(false);
|
|
@@ -2856,11 +2895,11 @@ function FabMenu({ items, onSelect, onHide, onDoubleTap }) {
|
|
|
2856
2895
|
document.addEventListener("mousedown", handler);
|
|
2857
2896
|
return () => document.removeEventListener("mousedown", handler);
|
|
2858
2897
|
}, [expanded, showContextMenu, closeMenu]);
|
|
2859
|
-
return /* @__PURE__ */
|
|
2860
|
-
(expanded || closing) && /* @__PURE__ */
|
|
2898
|
+
return /* @__PURE__ */ jsxs6(Fragment2, { children: [
|
|
2899
|
+
(expanded || closing) && /* @__PURE__ */ jsx6(
|
|
2861
2900
|
"div",
|
|
2862
2901
|
{
|
|
2863
|
-
className:
|
|
2902
|
+
className: styles_module_default5.menuItems,
|
|
2864
2903
|
style: {
|
|
2865
2904
|
position: "fixed",
|
|
2866
2905
|
right: position.right + (44 - 40) / 2,
|
|
@@ -2870,10 +2909,10 @@ function FabMenu({ items, onSelect, onHide, onDoubleTap }) {
|
|
|
2870
2909
|
},
|
|
2871
2910
|
"data-impakers-debug": "",
|
|
2872
2911
|
"data-impakers-fab": "",
|
|
2873
|
-
children: [...items].reverse().map((item, i) => /* @__PURE__ */
|
|
2912
|
+
children: [...items].reverse().map((item, i) => /* @__PURE__ */ jsxs6(
|
|
2874
2913
|
"button",
|
|
2875
2914
|
{
|
|
2876
|
-
className: `${
|
|
2915
|
+
className: `${styles_module_default5.menuItem} ${item.active ? styles_module_default5.active : ""} ${closing ? styles_module_default5.menuItemClosing : ""}`,
|
|
2877
2916
|
style: { animationDelay: closing ? `${i * 30}ms` : `${(items.length - 1 - i) * 40}ms` },
|
|
2878
2917
|
onClick: (e) => {
|
|
2879
2918
|
e.stopPropagation();
|
|
@@ -2885,19 +2924,19 @@ function FabMenu({ items, onSelect, onHide, onDoubleTap }) {
|
|
|
2885
2924
|
"data-impakers-debug": "",
|
|
2886
2925
|
children: [
|
|
2887
2926
|
item.icon,
|
|
2888
|
-
/* @__PURE__ */
|
|
2889
|
-
item.badge && item.badge > 0 ? /* @__PURE__ */
|
|
2927
|
+
/* @__PURE__ */ jsx6("span", { className: styles_module_default5.tooltip, children: item.label }),
|
|
2928
|
+
item.badge && item.badge > 0 ? /* @__PURE__ */ jsx6("span", { className: styles_module_default5.badge, children: item.badge > 99 ? "99+" : item.badge }) : null
|
|
2890
2929
|
]
|
|
2891
2930
|
},
|
|
2892
2931
|
item.id
|
|
2893
2932
|
))
|
|
2894
2933
|
}
|
|
2895
2934
|
),
|
|
2896
|
-
/* @__PURE__ */
|
|
2935
|
+
/* @__PURE__ */ jsx6(
|
|
2897
2936
|
"button",
|
|
2898
2937
|
{
|
|
2899
2938
|
ref: fabRef,
|
|
2900
|
-
className: `${
|
|
2939
|
+
className: `${styles_module_default5.fab} ${expanded ? styles_module_default5.expanded : ""}`,
|
|
2901
2940
|
style: { position: "fixed", right: position.right, bottom: position.bottom },
|
|
2902
2941
|
onPointerDown: handleFabPointerDown,
|
|
2903
2942
|
onPointerMove: handleFabPointerMove,
|
|
@@ -2907,30 +2946,30 @@ function FabMenu({ items, onSelect, onHide, onDoubleTap }) {
|
|
|
2907
2946
|
"aria-label": "\uD53C\uB4DC\uBC31 \uBA54\uB274",
|
|
2908
2947
|
"data-impakers-debug": "",
|
|
2909
2948
|
"data-impakers-fab": "",
|
|
2910
|
-
children: /* @__PURE__ */
|
|
2911
|
-
/* @__PURE__ */
|
|
2912
|
-
/* @__PURE__ */
|
|
2949
|
+
children: /* @__PURE__ */ jsxs6("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
2950
|
+
/* @__PURE__ */ jsx6("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
2951
|
+
/* @__PURE__ */ jsx6("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
|
|
2913
2952
|
] })
|
|
2914
2953
|
}
|
|
2915
2954
|
),
|
|
2916
|
-
showContextMenu && /* @__PURE__ */
|
|
2955
|
+
showContextMenu && /* @__PURE__ */ jsx6(
|
|
2917
2956
|
"div",
|
|
2918
2957
|
{
|
|
2919
2958
|
style: { position: "fixed", inset: 0, zIndex: 2147483647 },
|
|
2920
2959
|
onMouseDown: () => setShowContextMenu(null),
|
|
2921
2960
|
"data-impakers-debug": "",
|
|
2922
2961
|
"data-impakers-fab": "",
|
|
2923
|
-
children: /* @__PURE__ */
|
|
2962
|
+
children: /* @__PURE__ */ jsx6(
|
|
2924
2963
|
"div",
|
|
2925
2964
|
{
|
|
2926
|
-
className:
|
|
2965
|
+
className: styles_module_default5.contextMenu,
|
|
2927
2966
|
style: { position: "fixed", left: showContextMenu.x, top: showContextMenu.y, zIndex: 2147483647 },
|
|
2928
2967
|
onMouseDown: (e) => e.stopPropagation(),
|
|
2929
2968
|
"data-impakers-fab": "",
|
|
2930
|
-
children: /* @__PURE__ */
|
|
2969
|
+
children: /* @__PURE__ */ jsx6(
|
|
2931
2970
|
"button",
|
|
2932
2971
|
{
|
|
2933
|
-
className:
|
|
2972
|
+
className: styles_module_default5.contextMenuItem,
|
|
2934
2973
|
onMouseDown: (e) => {
|
|
2935
2974
|
e.stopPropagation();
|
|
2936
2975
|
setShowContextMenu(null);
|
|
@@ -2948,12 +2987,12 @@ function FabMenu({ items, onSelect, onHide, onDoubleTap }) {
|
|
|
2948
2987
|
}
|
|
2949
2988
|
|
|
2950
2989
|
// src/components/inbox-panel/index.tsx
|
|
2951
|
-
import { useState as useState4, useCallback as useCallback4, useEffect as useEffect4, useRef as useRef4
|
|
2990
|
+
import { useState as useState4, useCallback as useCallback4, useEffect as useEffect4, useRef as useRef4 } from "react";
|
|
2952
2991
|
import { createPortal } from "react-dom";
|
|
2953
2992
|
|
|
2954
2993
|
// src/components/inbox-panel/styles.module.scss
|
|
2955
|
-
var css5 = '@keyframes styles-module__slideIn___0o0s- {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0);\n }\n}\n@keyframes styles-module__slideOut___nKrBX {\n from {\n transform: translateX(0);\n }\n to {\n transform: translateX(100%);\n }\n}\n@keyframes styles-module__fadeIn___j09Ts {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n.styles-module__backdrop___zYhcU {\n position: fixed;\n inset: 0;\n z-index: 100003;\n animation: styles-module__fadeIn___j09Ts 0.15s ease-out;\n}\n\n.styles-module__panel___6YS8k {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n width: 420px;\n max-width: 100vw;\n background: #fafafa;\n z-index: 100004;\n display: flex;\n flex-direction: column;\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.08);\n animation: styles-module__slideIn___0o0s- 0.2s ease-out;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n}\n.styles-module__panel___6YS8k.styles-module__exiting___6A-Ag {\n animation: styles-module__slideOut___nKrBX 0.15s ease-in forwards;\n}\n\n.styles-module__header___fBbGz {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e5e7eb;\n background: #fff;\n flex-shrink: 0;\n}\n\n.styles-module__headerLeft___e0YLf {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.styles-module__headerTitle___oEPJa {\n font-size: 14px;\n font-weight: 600;\n color: #18181b;\n}\n\n.styles-module__closeBtn___-H8ra {\n width: 32px;\n height: 32px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #6b7280;\n transition: background 0.12s, color 0.12s;\n}\n.styles-module__closeBtn___-H8ra:hover {\n background: #f3f4f6;\n color: #18181b;\n}\n.styles-module__closeBtn___-H8ra svg {\n width: 18px;\n height: 18px;\n}\n\n.styles-module__tabs___nfuX7 {\n display: flex;\n padding: 0 20px;\n gap: 0;\n border-bottom: 1px solid #e5e7eb;\n background: #fff;\n flex-shrink: 0;\n}\n\n.styles-module__tab___Hc-jn {\n padding: 10px 16px;\n font-size: 13px;\n font-weight: 500;\n color: #6b7280;\n border: none;\n background: none;\n cursor: pointer;\n border-bottom: 2px solid transparent;\n transition: color 0.12s, border-color 0.12s;\n font-family: inherit;\n}\n.styles-module__tab___Hc-jn:hover {\n color: #374151;\n}\n.styles-module__tab___Hc-jn.styles-module__active___ZQzA5 {\n color: #18181b;\n border-bottom-color: #18181b;\n}\n\n.styles-module__tabBadge___IdFDQ {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n border-radius: 9px;\n background: #e5e7eb;\n color: #374151;\n font-size: 11px;\n font-weight: 600;\n padding: 0 5px;\n margin-left: 6px;\n}\n\n.styles-module__statusFilter___qtBXs {\n display: flex;\n gap: 6px;\n padding: 10px 20px;\n border-bottom: 1px solid #f3f4f6;\n background: #fff;\n flex-shrink: 0;\n}\n\n.styles-module__filterChip___l2s74 {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n font-size: 12px;\n font-weight: 500;\n color: #6b7280;\n background: #f3f4f6;\n border: 1px solid transparent;\n border-radius: 16px;\n cursor: pointer;\n transition: all 0.12s;\n font-family: inherit;\n}\n.styles-module__filterChip___l2s74:hover {\n color: #374151;\n background: #e5e7eb;\n}\n.styles-module__filterChip___l2s74.styles-module__active___ZQzA5 {\n color: #18181b;\n background: #fff;\n border-color: #d1d5db;\n}\n\n.styles-module__filterCount___KukiQ {\n font-size: 11px;\n font-weight: 600;\n color: inherit;\n opacity: 0.7;\n}\n\n.styles-module__content___L2lRw {\n flex: 1;\n overflow-y: auto;\n padding: 12px;\n}\n.styles-module__content___L2lRw::-webkit-scrollbar {\n width: 4px;\n}\n.styles-module__content___L2lRw::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 2px;\n}\n\n.styles-module__card___F8qwd {\n background: #fff;\n border-radius: 12px;\n border: 1px solid #e5e7eb;\n margin-bottom: 12px;\n overflow: hidden;\n transition: box-shadow 0.12s;\n cursor: pointer;\n}\n.styles-module__card___F8qwd:hover {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n}\n\n.styles-module__cardHeader___QOVGR {\n padding: 14px 16px 8px;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.styles-module__cardAvatar___FfKmW {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: #16a34a;\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.styles-module__cardInfo___BmrdF {\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__cardMeta___7p9KD {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 4px;\n}\n\n.styles-module__cardAuthor___YvnuR {\n font-size: 13px;\n font-weight: 600;\n color: #18181b;\n}\n\n.styles-module__cardTime___N1Png {\n font-size: 12px;\n color: #9ca3af;\n}\n\n.styles-module__cardActions___7QF72 {\n display: flex;\n gap: 2px;\n flex-shrink: 0;\n}\n\n.styles-module__cardAction___t4b3V {\n width: 26px;\n height: 26px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 5px;\n color: #9ca3af;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n.styles-module__cardAction___t4b3V:hover {\n background: #f3f4f6;\n color: #374151;\n}\n.styles-module__cardAction___t4b3V svg {\n width: 14px;\n height: 14px;\n}\n\n.styles-module__cardTitle___xJxDN {\n font-size: 13px;\n color: #1a1a1a;\n line-height: 1.5;\n padding: 0 16px 8px;\n}\n\n.styles-module__cardScreenshot___I5-QL {\n margin: 0 16px 8px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n position: relative;\n max-height: 160px;\n}\n.styles-module__cardScreenshot___I5-QL img {\n width: 100%;\n height: auto;\n display: block;\n object-fit: cover;\n}\n\n.styles-module__cardRoute___U4gB6 {\n margin: 0 16px 10px;\n padding: 8px 12px;\n background: #f9fafb;\n border: 1px solid #f3f4f6;\n border-radius: 8px;\n font-size: 12px;\n color: #6b7280;\n line-height: 1.4;\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n transition: background 0.12s, border-color 0.12s;\n}\n.styles-module__cardRoute___U4gB6:hover {\n background: #f3f4f6;\n border-color: #d1d5db;\n color: #3b82f6;\n}\n.styles-module__cardRoute___U4gB6:hover .styles-module__cardRoutePath___zP-fh {\n color: #3b82f6;\n}\n.styles-module__cardRoute___U4gB6:hover .styles-module__cardRouteIcon___SBqGj {\n color: #3b82f6;\n}\n\n.styles-module__cardRouteName___BDH75 {\n font-weight: 500;\n color: #374151;\n}\n\n.styles-module__cardRoutePath___zP-fh {\n flex: 1;\n min-width: 0;\n color: #9ca3af;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: color 0.12s;\n}\n\n.styles-module__cardRouteIcon___SBqGj {\n flex-shrink: 0;\n color: #9ca3af;\n transition: color 0.12s;\n}\n\n.styles-module__cardStatusTime___S62W1 {\n padding: 0 16px 6px;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.styles-module__cardStatusTime___S62W1 span {\n font-size: 11px;\n color: #9ca3af;\n}\n\n.styles-module__cardFooter___wfPa4 {\n padding: 8px 16px 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.styles-module__cardReplyDot___YnqzI {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #16a34a;\n flex-shrink: 0;\n}\n\n.styles-module__cardReplyCount___O1khL {\n font-size: 12px;\n font-weight: 500;\n color: #374151;\n}\n\n.styles-module__statusDot___l4IHG {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n.styles-module__statusDot___l4IHG.styles-module__todo___894P6 {\n background: #f59e0b;\n}\n.styles-module__statusDot___l4IHG.styles-module__inProgress___IZ1mJ {\n background: #3b82f6;\n}\n.styles-module__statusDot___l4IHG.styles-module__done___n4cWP {\n background: #16a34a;\n}\n\n.styles-module__empty___IADrw {\n text-align: center;\n padding: 48px 20px;\n color: #9ca3af;\n font-size: 13px;\n line-height: 1.6;\n}\n\n.styles-module__emptyIcon___1x5wT {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: #f3f4f6;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 auto 12px;\n color: #9ca3af;\n}\n.styles-module__emptyIcon___1x5wT svg {\n width: 24px;\n height: 24px;\n}\n\n.styles-module__checkBtn___KjHxm {\n width: 28px;\n height: 28px;\n border: 2px solid #d1d5db;\n border-radius: 50%;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: transparent;\n transition: all 0.15s;\n padding: 0;\n flex-shrink: 0;\n}\n.styles-module__checkBtn___KjHxm svg {\n width: 14px;\n height: 14px;\n}\n.styles-module__checkBtn___KjHxm:hover {\n border-color: #16a34a;\n color: #16a34a;\n}\n.styles-module__checkBtn___KjHxm.styles-module__checked___8pype {\n border-color: #16a34a;\n background: #16a34a;\n color: #fff;\n}\n\n.styles-module__cardDone___-m4w- {\n opacity: 0.6;\n}\n.styles-module__cardDone___-m4w- .styles-module__cardTitle___xJxDN {\n text-decoration: line-through;\n color: #9ca3af;\n}\n\n.styles-module__backBtn___PTIAl {\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #6b7280;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n flex-shrink: 0;\n}\n.styles-module__backBtn___PTIAl:hover {\n background: #f3f4f6;\n color: #18181b;\n}\n\n.styles-module__detailView___36cvH {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.styles-module__detailHeader___Hepgq {\n display: flex;\n gap: 10px;\n padding: 16px 20px;\n border-bottom: 1px solid #f3f4f6;\n}\n\n.styles-module__detailTitle___7TvrX {\n font-size: 13px;\n color: #1a1a1a;\n line-height: 1.5;\n margin-top: 4px;\n}\n\n.styles-module__detailScreenshot___UPF0f {\n margin: 0 20px 0;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n max-height: 180px;\n}\n.styles-module__detailScreenshot___UPF0f img {\n width: 100%;\n height: auto;\n display: block;\n object-fit: cover;\n}\n\n.styles-module__commentsList___5Uigg {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n}\n.styles-module__commentsList___5Uigg::-webkit-scrollbar {\n width: 4px;\n}\n.styles-module__commentsList___5Uigg::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 2px;\n}\n\n.styles-module__commentItem___5u78u {\n display: flex;\n gap: 10px;\n padding: 10px 20px;\n}\n.styles-module__commentItem___5u78u:hover {\n background: #f9fafb;\n}\n\n.styles-module__commentAvatar___OatKg {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: #16a34a;\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.styles-module__commentBody___gmv1J {\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__commentMeta___JNJa3 {\n display: flex;\n gap: 6px;\n align-items: center;\n margin-bottom: 2px;\n}\n\n.styles-module__commentAuthorName___XNVRk {\n font-size: 13px;\n font-weight: 600;\n color: #1a1a1a;\n}\n\n.styles-module__commentTime___CokGf {\n font-size: 12px;\n color: #9ca3af;\n}\n\n.styles-module__commentContent___yMiLR {\n font-size: 13px;\n color: #374151;\n line-height: 1.5;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.styles-module__loadingComments___zpATD, .styles-module__noComments___kvl90 {\n text-align: center;\n padding: 24px 20px;\n color: #9ca3af;\n font-size: 13px;\n}\n\n.styles-module__replyBox___FO-XS {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n padding: 12px 20px;\n border-top: 1px solid #f3f4f6;\n background: #fff;\n}\n\n.styles-module__replyInput___k8C9e {\n flex: 1;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n padding: 8px 12px;\n font-size: 13px;\n font-family: inherit;\n color: #1a1a1a;\n resize: none;\n outline: none;\n min-height: 20px;\n max-height: 80px;\n line-height: 1.5;\n transition: border-color 0.12s;\n}\n.styles-module__replyInput___k8C9e:focus {\n border-color: #18181b;\n}\n.styles-module__replyInput___k8C9e::placeholder {\n color: #9ca3af;\n}\n\n.styles-module__sendBtn___pBzWa {\n width: 32px;\n height: 32px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #d1d5db;\n transition: color 0.12s;\n padding: 0;\n flex-shrink: 0;\n}\n.styles-module__sendBtn___pBzWa.styles-module__active___ZQzA5 {\n color: #3b82f6;\n}\n.styles-module__sendBtn___pBzWa:hover {\n color: #3b82f6;\n}\n\n.styles-module__commentImage___LuH8X {\n margin-top: 6px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n max-width: 240px;\n cursor: pointer;\n transition: opacity 0.12s;\n}\n.styles-module__commentImage___LuH8X:hover {\n opacity: 0.9;\n}\n.styles-module__commentImage___LuH8X img {\n width: 100%;\n height: auto;\n display: block;\n}\n\n.styles-module__commentFileCard___XE44y {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 6px;\n padding: 8px 10px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n background: #f9fafb;\n cursor: pointer;\n transition: background 0.12s;\n max-width: 240px;\n}\n.styles-module__commentFileCard___XE44y:hover {\n background: #f3f4f6;\n}\n\n.styles-module__commentFileIcon___G58-y {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: #e5e7eb;\n color: #374151;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n flex-shrink: 0;\n letter-spacing: 0.5px;\n}\n\n.styles-module__commentFileInfo___OFIhR {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.styles-module__commentFileName___NUoII {\n font-size: 12px;\n font-weight: 500;\n color: #1a1a1a;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.styles-module__commentFileSize___sokU8 {\n font-size: 11px;\n color: #9ca3af;\n}\n\n.styles-module__filePreviewOverlay___5RxYd {\n position: fixed;\n inset: 0;\n z-index: 2147483647;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.styles-module__filePreviewModal___MGJLW {\n width: 90vw;\n max-width: 960px;\n height: 80vh;\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n}\n\n.styles-module__filePreviewHeader___E9SWJ {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n}\n\n.styles-module__filePreviewName___z8t-L {\n font-size: 14px;\n font-weight: 600;\n color: #18181b;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__filePreviewActions___weizo {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.styles-module__filePreviewOpen___JpaEs {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n font-weight: 500;\n color: #3b82f6;\n text-decoration: none;\n padding: 4px 8px;\n border-radius: 6px;\n transition: background 0.12s;\n}\n.styles-module__filePreviewOpen___JpaEs:hover {\n background: #eff6ff;\n}\n\n.styles-module__filePreviewClose___TFcbr {\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #6b7280;\n font-size: 18px;\n transition: background 0.12s, color 0.12s;\n}\n.styles-module__filePreviewClose___TFcbr:hover {\n background: #f3f4f6;\n color: #18181b;\n}\n\n.styles-module__filePreviewBody___gwg1S {\n flex: 1;\n overflow: hidden;\n}\n\n.styles-module__filePreviewIframe___OQ3Oo {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n.styles-module__filePreviewFallback___U1rB2 {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n gap: 12px;\n color: #6b7280;\n font-size: 14px;\n}\n.styles-module__filePreviewFallback___U1rB2 a {\n color: #3b82f6;\n text-decoration: none;\n font-weight: 500;\n}\n.styles-module__filePreviewFallback___U1rB2 a:hover {\n text-decoration: underline;\n}\n\n.styles-module__filePreviewFallbackIcon___0--41 {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n background: #f3f4f6;\n color: #6b7280;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n font-weight: 700;\n}\n\n.styles-module__lightbox___8CDdt {\n position: fixed;\n inset: 0;\n z-index: 2147483647;\n background: rgba(0, 0, 0, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: zoom-out;\n}\n.styles-module__lightbox___8CDdt img {\n max-width: 90vw;\n max-height: 90vh;\n border-radius: 8px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n cursor: default;\n}\n\n.styles-module__lightboxClose___VGfjh {\n position: absolute;\n top: 16px;\n right: 16px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.15);\n color: #fff;\n border: none;\n cursor: pointer;\n font-size: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.styles-module__lightboxClose___VGfjh:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.styles-module__historyFilter___IoWL4 {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 10px 20px;\n border-bottom: 1px solid #f3f4f6;\n background: #fff;\n flex-shrink: 0;\n}\n\n.styles-module__historyDateWrap___reBzb {\n position: relative;\n}\n\n.styles-module__filterChipClear___Sx4c3 {\n width: 22px;\n height: 22px;\n border: none;\n background: #e5e7eb;\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 13px;\n color: #6b7280;\n line-height: 1;\n transition: background 0.12s;\n font-family: inherit;\n}\n.styles-module__filterChipClear___Sx4c3:hover {\n background: #d1d5db;\n}\n\n.styles-module__datePopover___AYzLr {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n z-index: 10;\n background: #fff;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n padding: 8px;\n}\n\n.styles-module__dateInput___Ofr3Y {\n border: 1px solid #e5e7eb;\n border-radius: 6px;\n padding: 6px 10px;\n font-size: 13px;\n font-family: inherit;\n color: #1a1a1a;\n outline: none;\n cursor: pointer;\n}\n.styles-module__dateInput___Ofr3Y:focus {\n border-color: #18181b;\n}\n\n.styles-module__historyItem___G4kbt {\n display: flex;\n gap: 12px;\n padding: 12px 20px;\n position: relative;\n transition: background 0.12s;\n}\n.styles-module__historyItem___G4kbt:hover {\n background: #f9fafb;\n}\n.styles-module__historyItem___G4kbt:not(:last-child)::before {\n content: "";\n position: absolute;\n left: 29px;\n top: 24px;\n bottom: -12px;\n width: 1px;\n background: #e5e7eb;\n}\n\n.styles-module__historyDot___0z439 {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n flex-shrink: 0;\n margin-top: 4px;\n background: #d1d5db;\n}\n\n.styles-module__historyDot_created___G-qjM {\n background: #6366f1;\n}\n\n.styles-module__historyDot_started___0FJa0 {\n background: #3b82f6;\n}\n\n.styles-module__historyDot_completed___q-WGH {\n background: #16a34a;\n}\n\n.styles-module__historyBody___i-k1p {\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__historyMeta___khk0e {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 2px;\n}\n\n.styles-module__historyEvent___P6rQ5 {\n font-size: 12px;\n font-weight: 600;\n color: #374151;\n}\n\n.styles-module__historyTime___bWpM4 {\n font-size: 11px;\n color: #9ca3af;\n}\n\n.styles-module__historyTitle___gUvXd {\n font-size: 13px;\n color: #1a1a1a;\n line-height: 1.4;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.styles-module__historyUrl___5xfKq {\n font-size: 11px;\n color: #9ca3af;\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}';
|
|
2956
|
-
var
|
|
2994
|
+
var css6 = '@keyframes styles-module__slideIn___0o0s- {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0);\n }\n}\n@keyframes styles-module__slideOut___nKrBX {\n from {\n transform: translateX(0);\n }\n to {\n transform: translateX(100%);\n }\n}\n@keyframes styles-module__fadeIn___j09Ts {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n.styles-module__backdrop___zYhcU {\n position: fixed;\n inset: 0;\n z-index: 100003;\n animation: styles-module__fadeIn___j09Ts 0.15s ease-out;\n}\n\n.styles-module__panel___6YS8k {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n width: 420px;\n max-width: 100vw;\n background: #fafafa;\n z-index: 100004;\n display: flex;\n flex-direction: column;\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.08);\n animation: styles-module__slideIn___0o0s- 0.2s ease-out;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n}\n.styles-module__panel___6YS8k.styles-module__exiting___6A-Ag {\n animation: styles-module__slideOut___nKrBX 0.15s ease-in forwards;\n}\n\n.styles-module__header___fBbGz {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e5e7eb;\n background: #fff;\n flex-shrink: 0;\n}\n\n.styles-module__headerLeft___e0YLf {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.styles-module__headerTitle___oEPJa {\n font-size: 14px;\n font-weight: 600;\n color: #18181b;\n}\n\n.styles-module__closeBtn___-H8ra {\n width: 32px;\n height: 32px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #6b7280;\n transition: background 0.12s, color 0.12s;\n}\n.styles-module__closeBtn___-H8ra:hover {\n background: #f3f4f6;\n color: #18181b;\n}\n.styles-module__closeBtn___-H8ra svg {\n width: 18px;\n height: 18px;\n}\n\n.styles-module__tabs___nfuX7 {\n display: flex;\n padding: 0 20px;\n gap: 0;\n border-bottom: 1px solid #e5e7eb;\n background: #fff;\n flex-shrink: 0;\n}\n\n.styles-module__tab___Hc-jn {\n padding: 10px 16px;\n font-size: 13px;\n font-weight: 500;\n color: #6b7280;\n border: none;\n background: none;\n cursor: pointer;\n border-bottom: 2px solid transparent;\n transition: color 0.12s, border-color 0.12s;\n font-family: inherit;\n}\n.styles-module__tab___Hc-jn:hover {\n color: #374151;\n}\n.styles-module__tab___Hc-jn.styles-module__active___ZQzA5 {\n color: #18181b;\n border-bottom-color: #18181b;\n}\n\n.styles-module__tabBadge___IdFDQ {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n border-radius: 9px;\n background: #e5e7eb;\n color: #374151;\n font-size: 11px;\n font-weight: 600;\n padding: 0 5px;\n margin-left: 6px;\n}\n\n.styles-module__statusFilter___qtBXs {\n display: flex;\n gap: 6px;\n padding: 10px 20px;\n border-bottom: 1px solid #f3f4f6;\n background: #fff;\n flex-shrink: 0;\n}\n\n.styles-module__filterChip___l2s74 {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n font-size: 12px;\n font-weight: 500;\n color: #6b7280;\n background: #f3f4f6;\n border: 1px solid transparent;\n border-radius: 16px;\n cursor: pointer;\n transition: all 0.12s;\n font-family: inherit;\n}\n.styles-module__filterChip___l2s74:hover {\n color: #374151;\n background: #e5e7eb;\n}\n.styles-module__filterChip___l2s74.styles-module__active___ZQzA5 {\n color: #18181b;\n background: #fff;\n border-color: #d1d5db;\n}\n\n.styles-module__filterCount___KukiQ {\n font-size: 11px;\n font-weight: 600;\n color: inherit;\n opacity: 0.7;\n}\n\n.styles-module__content___L2lRw {\n flex: 1;\n overflow-y: auto;\n padding: 12px;\n}\n.styles-module__content___L2lRw::-webkit-scrollbar {\n width: 4px;\n}\n.styles-module__content___L2lRw::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 2px;\n}\n\n.styles-module__card___F8qwd {\n background: #fff;\n border-radius: 12px;\n border: 1px solid #e5e7eb;\n margin-bottom: 12px;\n overflow: hidden;\n transition: box-shadow 0.12s;\n cursor: pointer;\n}\n.styles-module__card___F8qwd:hover {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n}\n\n.styles-module__cardHeader___QOVGR {\n padding: 14px 16px 8px;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.styles-module__cardAvatar___FfKmW {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: #16a34a;\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.styles-module__cardInfo___BmrdF {\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__cardMeta___7p9KD {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 4px;\n}\n\n.styles-module__cardAuthor___YvnuR {\n font-size: 13px;\n font-weight: 600;\n color: #18181b;\n}\n\n.styles-module__cardTime___N1Png {\n font-size: 12px;\n color: #9ca3af;\n}\n\n.styles-module__cardActions___7QF72 {\n display: flex;\n gap: 2px;\n flex-shrink: 0;\n}\n\n.styles-module__cardAction___t4b3V {\n width: 26px;\n height: 26px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 5px;\n color: #9ca3af;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n.styles-module__cardAction___t4b3V:hover {\n background: #f3f4f6;\n color: #374151;\n}\n.styles-module__cardAction___t4b3V svg {\n width: 14px;\n height: 14px;\n}\n\n.styles-module__cardTitle___xJxDN {\n font-size: 13px;\n color: #1a1a1a;\n line-height: 1.5;\n padding: 0 16px 8px;\n}\n\n.styles-module__cardScreenshot___I5-QL {\n margin: 0 16px 8px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n position: relative;\n max-height: 160px;\n}\n.styles-module__cardScreenshot___I5-QL img {\n width: 100%;\n height: auto;\n display: block;\n object-fit: cover;\n}\n\n.styles-module__cardRoute___U4gB6 {\n margin: 0 16px 10px;\n padding: 8px 12px;\n background: #f9fafb;\n border: 1px solid #f3f4f6;\n border-radius: 8px;\n font-size: 12px;\n color: #6b7280;\n line-height: 1.4;\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n transition: background 0.12s, border-color 0.12s;\n}\n.styles-module__cardRoute___U4gB6:hover {\n background: #f3f4f6;\n border-color: #d1d5db;\n color: #3b82f6;\n}\n.styles-module__cardRoute___U4gB6:hover .styles-module__cardRoutePath___zP-fh {\n color: #3b82f6;\n}\n.styles-module__cardRoute___U4gB6:hover .styles-module__cardRouteIcon___SBqGj {\n color: #3b82f6;\n}\n\n.styles-module__cardRouteName___BDH75 {\n font-weight: 500;\n color: #374151;\n}\n\n.styles-module__cardRoutePath___zP-fh {\n flex: 1;\n min-width: 0;\n color: #9ca3af;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: color 0.12s;\n}\n\n.styles-module__cardRouteIcon___SBqGj {\n flex-shrink: 0;\n color: #9ca3af;\n transition: color 0.12s;\n}\n\n.styles-module__cardStatusTime___S62W1 {\n padding: 0 16px 6px;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.styles-module__cardStatusTime___S62W1 span {\n font-size: 11px;\n color: #9ca3af;\n}\n\n.styles-module__cardFooter___wfPa4 {\n padding: 8px 16px 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.styles-module__cardReplyDot___YnqzI {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #16a34a;\n flex-shrink: 0;\n}\n\n.styles-module__cardReplyCount___O1khL {\n font-size: 12px;\n font-weight: 500;\n color: #374151;\n}\n\n.styles-module__statusDot___l4IHG {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n.styles-module__statusDot___l4IHG.styles-module__todo___894P6 {\n background: #f59e0b;\n}\n.styles-module__statusDot___l4IHG.styles-module__inProgress___IZ1mJ {\n background: #3b82f6;\n}\n.styles-module__statusDot___l4IHG.styles-module__done___n4cWP {\n background: #16a34a;\n}\n\n.styles-module__empty___IADrw {\n text-align: center;\n padding: 48px 20px;\n color: #9ca3af;\n font-size: 13px;\n line-height: 1.6;\n}\n\n.styles-module__emptyIcon___1x5wT {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: #f3f4f6;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 auto 12px;\n color: #9ca3af;\n}\n.styles-module__emptyIcon___1x5wT svg {\n width: 24px;\n height: 24px;\n}\n\n.styles-module__checkBtn___KjHxm {\n width: 28px;\n height: 28px;\n border: 2px solid #d1d5db;\n border-radius: 50%;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: transparent;\n transition: all 0.15s;\n padding: 0;\n flex-shrink: 0;\n}\n.styles-module__checkBtn___KjHxm svg {\n width: 14px;\n height: 14px;\n}\n.styles-module__checkBtn___KjHxm:hover {\n border-color: #16a34a;\n color: #16a34a;\n}\n.styles-module__checkBtn___KjHxm.styles-module__checked___8pype {\n border-color: #16a34a;\n background: #16a34a;\n color: #fff;\n}\n\n.styles-module__cardDone___-m4w- {\n opacity: 0.6;\n}\n.styles-module__cardDone___-m4w- .styles-module__cardTitle___xJxDN {\n text-decoration: line-through;\n color: #9ca3af;\n}\n\n.styles-module__backBtn___PTIAl {\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #6b7280;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n flex-shrink: 0;\n}\n.styles-module__backBtn___PTIAl:hover {\n background: #f3f4f6;\n color: #18181b;\n}\n\n.styles-module__detailView___36cvH {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.styles-module__detailHeader___Hepgq {\n display: flex;\n gap: 10px;\n padding: 16px 20px;\n background: #f5f5f5;\n border-bottom: 1px solid #e5e7eb;\n}\n\n.styles-module__detailTitle___7TvrX {\n font-size: 13px;\n color: #1a1a1a;\n line-height: 1.5;\n margin-top: 4px;\n}\n\n.styles-module__detailScreenshot___UPF0f {\n margin: 0 20px 0;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n max-height: 180px;\n}\n.styles-module__detailScreenshot___UPF0f img {\n width: 100%;\n height: auto;\n display: block;\n object-fit: cover;\n}\n\n.styles-module__commentsList___5Uigg {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n}\n.styles-module__commentsList___5Uigg::-webkit-scrollbar {\n width: 4px;\n}\n.styles-module__commentsList___5Uigg::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 2px;\n}\n\n.styles-module__commentItem___5u78u {\n display: flex;\n gap: 10px;\n padding: 10px 20px;\n}\n.styles-module__commentItem___5u78u:hover {\n background: #f9fafb;\n}\n\n.styles-module__commentAvatar___OatKg {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: #16a34a;\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.styles-module__commentBody___gmv1J {\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__commentMeta___JNJa3 {\n display: flex;\n gap: 6px;\n align-items: center;\n margin-bottom: 2px;\n}\n\n.styles-module__commentAuthorName___XNVRk {\n font-size: 13px;\n font-weight: 600;\n color: #1a1a1a;\n}\n\n.styles-module__commentTime___CokGf {\n font-size: 12px;\n color: #9ca3af;\n}\n\n.styles-module__commentContent___yMiLR {\n font-size: 13px;\n color: #374151;\n line-height: 1.5;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.styles-module__loadingComments___zpATD, .styles-module__noComments___kvl90 {\n text-align: center;\n padding: 24px 20px;\n color: #9ca3af;\n font-size: 13px;\n}\n\n.styles-module__replyBox___FO-XS {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n padding: 12px 20px;\n border-top: 1px solid #f3f4f6;\n background: #fff;\n}\n\n.styles-module__replyInput___k8C9e {\n flex: 1;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n padding: 8px 12px;\n font-size: 13px;\n font-family: inherit;\n color: #1a1a1a;\n resize: none;\n outline: none;\n min-height: 20px;\n max-height: 80px;\n line-height: 1.5;\n transition: border-color 0.12s;\n}\n.styles-module__replyInput___k8C9e:focus {\n border-color: #18181b;\n}\n.styles-module__replyInput___k8C9e::placeholder {\n color: #9ca3af;\n}\n\n.styles-module__sendBtn___pBzWa {\n width: 32px;\n height: 32px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #d1d5db;\n transition: color 0.12s;\n padding: 0;\n flex-shrink: 0;\n}\n.styles-module__sendBtn___pBzWa.styles-module__active___ZQzA5 {\n color: #3b82f6;\n}\n.styles-module__sendBtn___pBzWa:hover {\n color: #3b82f6;\n}\n\n.styles-module__commentImage___LuH8X {\n margin-top: 6px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n max-width: 240px;\n cursor: pointer;\n transition: opacity 0.12s;\n}\n.styles-module__commentImage___LuH8X:hover {\n opacity: 0.9;\n}\n.styles-module__commentImage___LuH8X img {\n width: 100%;\n height: auto;\n display: block;\n}\n\n.styles-module__commentFileCard___XE44y {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 6px;\n padding: 8px 10px;\n border-radius: 8px;\n border: 1px solid #e5e7eb;\n background: #f9fafb;\n cursor: pointer;\n transition: background 0.12s;\n max-width: 240px;\n}\n.styles-module__commentFileCard___XE44y:hover {\n background: #f3f4f6;\n}\n\n.styles-module__commentFileIcon___G58-y {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: #e5e7eb;\n color: #374151;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n flex-shrink: 0;\n letter-spacing: 0.5px;\n}\n\n.styles-module__commentFileInfo___OFIhR {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.styles-module__commentFileName___NUoII {\n font-size: 12px;\n font-weight: 500;\n color: #1a1a1a;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.styles-module__commentFileSize___sokU8 {\n font-size: 11px;\n color: #9ca3af;\n}\n\n.styles-module__filePreviewOverlay___5RxYd {\n position: fixed;\n inset: 0;\n z-index: 2147483647;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.styles-module__filePreviewModal___MGJLW {\n width: 90vw;\n max-width: 960px;\n height: 80vh;\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n}\n\n.styles-module__filePreviewHeader___E9SWJ {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n}\n\n.styles-module__filePreviewName___z8t-L {\n font-size: 14px;\n font-weight: 600;\n color: #18181b;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__filePreviewActions___weizo {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.styles-module__filePreviewOpen___JpaEs {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n font-weight: 500;\n color: #3b82f6;\n text-decoration: none;\n padding: 4px 8px;\n border-radius: 6px;\n transition: background 0.12s;\n}\n.styles-module__filePreviewOpen___JpaEs:hover {\n background: #eff6ff;\n}\n\n.styles-module__filePreviewClose___TFcbr {\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #6b7280;\n font-size: 18px;\n transition: background 0.12s, color 0.12s;\n}\n.styles-module__filePreviewClose___TFcbr:hover {\n background: #f3f4f6;\n color: #18181b;\n}\n\n.styles-module__filePreviewBody___gwg1S {\n flex: 1;\n overflow: hidden;\n}\n\n.styles-module__filePreviewIframe___OQ3Oo {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n.styles-module__filePreviewFallback___U1rB2 {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n gap: 12px;\n color: #6b7280;\n font-size: 14px;\n}\n.styles-module__filePreviewFallback___U1rB2 a {\n color: #3b82f6;\n text-decoration: none;\n font-weight: 500;\n}\n.styles-module__filePreviewFallback___U1rB2 a:hover {\n text-decoration: underline;\n}\n\n.styles-module__filePreviewFallbackIcon___0--41 {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n background: #f3f4f6;\n color: #6b7280;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n font-weight: 700;\n}\n\n.styles-module__lightbox___8CDdt {\n position: fixed;\n inset: 0;\n z-index: 2147483647;\n background: rgba(0, 0, 0, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: zoom-out;\n}\n.styles-module__lightbox___8CDdt img {\n max-width: 90vw;\n max-height: 90vh;\n border-radius: 8px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n cursor: default;\n}\n\n.styles-module__lightboxClose___VGfjh {\n position: absolute;\n top: 16px;\n right: 16px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.15);\n color: #fff;\n border: none;\n cursor: pointer;\n font-size: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.styles-module__lightboxClose___VGfjh:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.styles-module__historyFilter___IoWL4 {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 10px 20px;\n border-bottom: 1px solid #f3f4f6;\n background: #fff;\n flex-shrink: 0;\n}\n\n.styles-module__historyDateWrap___reBzb {\n position: relative;\n}\n\n.styles-module__filterChipClear___Sx4c3 {\n width: 22px;\n height: 22px;\n border: none;\n background: #e5e7eb;\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 13px;\n color: #6b7280;\n line-height: 1;\n transition: background 0.12s;\n font-family: inherit;\n}\n.styles-module__filterChipClear___Sx4c3:hover {\n background: #d1d5db;\n}\n\n.styles-module__datePopover___AYzLr {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n z-index: 10;\n background: #fff;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n padding: 8px;\n}\n\n.styles-module__dateInput___Ofr3Y {\n border: 1px solid #e5e7eb;\n border-radius: 6px;\n padding: 6px 10px;\n font-size: 13px;\n font-family: inherit;\n color: #1a1a1a;\n outline: none;\n cursor: pointer;\n}\n.styles-module__dateInput___Ofr3Y:focus {\n border-color: #18181b;\n}\n\n.styles-module__historyItem___G4kbt {\n display: flex;\n gap: 12px;\n padding: 12px 20px;\n position: relative;\n transition: background 0.12s;\n}\n.styles-module__historyItem___G4kbt:hover {\n background: #f9fafb;\n}\n.styles-module__historyItem___G4kbt:not(:last-child)::before {\n content: "";\n position: absolute;\n left: 29px;\n top: 24px;\n bottom: -12px;\n width: 1px;\n background: #e5e7eb;\n}\n\n.styles-module__historyDot___0z439 {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n flex-shrink: 0;\n margin-top: 4px;\n background: #d1d5db;\n}\n\n.styles-module__historyDot_created___G-qjM {\n background: #6366f1;\n}\n\n.styles-module__historyDot_status_changed___jsanw {\n background: #3b82f6;\n}\n\n.styles-module__historyDot_comment_added___5-lrl {\n background: #f59e0b;\n}\n\n.styles-module__historyBody___i-k1p {\n flex: 1;\n min-width: 0;\n}\n\n.styles-module__historyMeta___khk0e {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 2px;\n}\n\n.styles-module__historyEvent___P6rQ5 {\n font-size: 12px;\n font-weight: 600;\n color: #374151;\n}\n\n.styles-module__historyTime___bWpM4 {\n font-size: 11px;\n color: #9ca3af;\n}\n\n.styles-module__historyTitle___gUvXd {\n font-size: 13px;\n color: #1a1a1a;\n line-height: 1.4;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.styles-module__historyUrl___5xfKq {\n font-size: 11px;\n color: #9ca3af;\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}';
|
|
2995
|
+
var classNames6 = { "backdrop": "styles-module__backdrop___zYhcU", "fadeIn": "styles-module__fadeIn___j09Ts", "panel": "styles-module__panel___6YS8k", "slideIn": "styles-module__slideIn___0o0s-", "exiting": "styles-module__exiting___6A-Ag", "slideOut": "styles-module__slideOut___nKrBX", "header": "styles-module__header___fBbGz", "headerLeft": "styles-module__headerLeft___e0YLf", "headerTitle": "styles-module__headerTitle___oEPJa", "closeBtn": "styles-module__closeBtn___-H8ra", "tabs": "styles-module__tabs___nfuX7", "tab": "styles-module__tab___Hc-jn", "active": "styles-module__active___ZQzA5", "tabBadge": "styles-module__tabBadge___IdFDQ", "statusFilter": "styles-module__statusFilter___qtBXs", "filterChip": "styles-module__filterChip___l2s74", "filterCount": "styles-module__filterCount___KukiQ", "content": "styles-module__content___L2lRw", "card": "styles-module__card___F8qwd", "cardHeader": "styles-module__cardHeader___QOVGR", "cardAvatar": "styles-module__cardAvatar___FfKmW", "cardInfo": "styles-module__cardInfo___BmrdF", "cardMeta": "styles-module__cardMeta___7p9KD", "cardAuthor": "styles-module__cardAuthor___YvnuR", "cardTime": "styles-module__cardTime___N1Png", "cardActions": "styles-module__cardActions___7QF72", "cardAction": "styles-module__cardAction___t4b3V", "cardTitle": "styles-module__cardTitle___xJxDN", "cardScreenshot": "styles-module__cardScreenshot___I5-QL", "cardRoute": "styles-module__cardRoute___U4gB6", "cardRoutePath": "styles-module__cardRoutePath___zP-fh", "cardRouteIcon": "styles-module__cardRouteIcon___SBqGj", "cardRouteName": "styles-module__cardRouteName___BDH75", "cardStatusTime": "styles-module__cardStatusTime___S62W1", "cardFooter": "styles-module__cardFooter___wfPa4", "cardReplyDot": "styles-module__cardReplyDot___YnqzI", "cardReplyCount": "styles-module__cardReplyCount___O1khL", "statusDot": "styles-module__statusDot___l4IHG", "todo": "styles-module__todo___894P6", "inProgress": "styles-module__inProgress___IZ1mJ", "done": "styles-module__done___n4cWP", "empty": "styles-module__empty___IADrw", "emptyIcon": "styles-module__emptyIcon___1x5wT", "checkBtn": "styles-module__checkBtn___KjHxm", "checked": "styles-module__checked___8pype", "cardDone": "styles-module__cardDone___-m4w-", "backBtn": "styles-module__backBtn___PTIAl", "detailView": "styles-module__detailView___36cvH", "detailHeader": "styles-module__detailHeader___Hepgq", "detailTitle": "styles-module__detailTitle___7TvrX", "detailScreenshot": "styles-module__detailScreenshot___UPF0f", "commentsList": "styles-module__commentsList___5Uigg", "commentItem": "styles-module__commentItem___5u78u", "commentAvatar": "styles-module__commentAvatar___OatKg", "commentBody": "styles-module__commentBody___gmv1J", "commentMeta": "styles-module__commentMeta___JNJa3", "commentAuthorName": "styles-module__commentAuthorName___XNVRk", "commentTime": "styles-module__commentTime___CokGf", "commentContent": "styles-module__commentContent___yMiLR", "loadingComments": "styles-module__loadingComments___zpATD", "noComments": "styles-module__noComments___kvl90", "replyBox": "styles-module__replyBox___FO-XS", "replyInput": "styles-module__replyInput___k8C9e", "sendBtn": "styles-module__sendBtn___pBzWa", "commentImage": "styles-module__commentImage___LuH8X", "commentFileCard": "styles-module__commentFileCard___XE44y", "commentFileIcon": "styles-module__commentFileIcon___G58-y", "commentFileInfo": "styles-module__commentFileInfo___OFIhR", "commentFileName": "styles-module__commentFileName___NUoII", "commentFileSize": "styles-module__commentFileSize___sokU8", "filePreviewOverlay": "styles-module__filePreviewOverlay___5RxYd", "filePreviewModal": "styles-module__filePreviewModal___MGJLW", "filePreviewHeader": "styles-module__filePreviewHeader___E9SWJ", "filePreviewName": "styles-module__filePreviewName___z8t-L", "filePreviewActions": "styles-module__filePreviewActions___weizo", "filePreviewOpen": "styles-module__filePreviewOpen___JpaEs", "filePreviewClose": "styles-module__filePreviewClose___TFcbr", "filePreviewBody": "styles-module__filePreviewBody___gwg1S", "filePreviewIframe": "styles-module__filePreviewIframe___OQ3Oo", "filePreviewFallback": "styles-module__filePreviewFallback___U1rB2", "filePreviewFallbackIcon": "styles-module__filePreviewFallbackIcon___0--41", "lightbox": "styles-module__lightbox___8CDdt", "lightboxClose": "styles-module__lightboxClose___VGfjh", "historyFilter": "styles-module__historyFilter___IoWL4", "historyDateWrap": "styles-module__historyDateWrap___reBzb", "filterChipClear": "styles-module__filterChipClear___Sx4c3", "datePopover": "styles-module__datePopover___AYzLr", "dateInput": "styles-module__dateInput___Ofr3Y", "historyItem": "styles-module__historyItem___G4kbt", "historyDot": "styles-module__historyDot___0z439", "historyDot_created": "styles-module__historyDot_created___G-qjM", "historyDot_status_changed": "styles-module__historyDot_status_changed___jsanw", "historyDot_comment_added": "styles-module__historyDot_comment_added___5-lrl", "historyBody": "styles-module__historyBody___i-k1p", "historyMeta": "styles-module__historyMeta___khk0e", "historyEvent": "styles-module__historyEvent___P6rQ5", "historyTime": "styles-module__historyTime___bWpM4", "historyTitle": "styles-module__historyTitle___gUvXd", "historyUrl": "styles-module__historyUrl___5xfKq" };
|
|
2957
2996
|
if (typeof document !== "undefined") {
|
|
2958
2997
|
let style = document.getElementById("impakers-debug-styles-inbox-panel-styles");
|
|
2959
2998
|
if (!style) {
|
|
@@ -2961,12 +3000,12 @@ if (typeof document !== "undefined") {
|
|
|
2961
3000
|
style.id = "impakers-debug-styles-inbox-panel-styles";
|
|
2962
3001
|
document.head.appendChild(style);
|
|
2963
3002
|
}
|
|
2964
|
-
style.textContent =
|
|
3003
|
+
style.textContent = css6;
|
|
2965
3004
|
}
|
|
2966
|
-
var
|
|
3005
|
+
var styles_module_default6 = classNames6;
|
|
2967
3006
|
|
|
2968
3007
|
// src/components/inbox-panel/index.tsx
|
|
2969
|
-
import { Fragment as Fragment3, jsx as
|
|
3008
|
+
import { Fragment as Fragment3, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2970
3009
|
function ImageLightbox({ src, onClose }) {
|
|
2971
3010
|
useEffect4(() => {
|
|
2972
3011
|
const handler = (e) => {
|
|
@@ -2975,9 +3014,9 @@ function ImageLightbox({ src, onClose }) {
|
|
|
2975
3014
|
document.addEventListener("keydown", handler);
|
|
2976
3015
|
return () => document.removeEventListener("keydown", handler);
|
|
2977
3016
|
}, [onClose]);
|
|
2978
|
-
return /* @__PURE__ */
|
|
2979
|
-
/* @__PURE__ */
|
|
2980
|
-
/* @__PURE__ */
|
|
3017
|
+
return /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.lightbox, onClick: onClose, "data-impakers-debug": "", children: [
|
|
3018
|
+
/* @__PURE__ */ jsx7("img", { src, alt: "enlarged", onClick: (e) => e.stopPropagation() }),
|
|
3019
|
+
/* @__PURE__ */ jsx7("button", { className: styles_module_default6.lightboxClose, onClick: onClose, type: "button", children: "\xD7" })
|
|
2981
3020
|
] });
|
|
2982
3021
|
}
|
|
2983
3022
|
function formatFileSize2(bytes) {
|
|
@@ -3026,25 +3065,25 @@ function FilePreviewModal({
|
|
|
3026
3065
|
return () => document.removeEventListener("keydown", handler);
|
|
3027
3066
|
}, [onClose]);
|
|
3028
3067
|
const previewSrc = getPreviewSrc(fileUrl, fileType, fileSource);
|
|
3029
|
-
return /* @__PURE__ */
|
|
3030
|
-
/* @__PURE__ */
|
|
3031
|
-
/* @__PURE__ */
|
|
3032
|
-
/* @__PURE__ */
|
|
3033
|
-
/* @__PURE__ */
|
|
3034
|
-
/* @__PURE__ */
|
|
3035
|
-
/* @__PURE__ */
|
|
3036
|
-
/* @__PURE__ */
|
|
3037
|
-
/* @__PURE__ */
|
|
3068
|
+
return /* @__PURE__ */ jsx7("div", { className: styles_module_default6.filePreviewOverlay, onClick: onClose, "data-impakers-debug": "", children: /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.filePreviewModal, onClick: (e) => e.stopPropagation(), children: [
|
|
3069
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.filePreviewHeader, children: [
|
|
3070
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.filePreviewName, children: fileName }),
|
|
3071
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.filePreviewActions, children: [
|
|
3072
|
+
/* @__PURE__ */ jsxs7("a", { href: fileUrl, target: "_blank", rel: "noopener noreferrer", className: styles_module_default6.filePreviewOpen, children: [
|
|
3073
|
+
/* @__PURE__ */ jsxs7("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "14", height: "14", children: [
|
|
3074
|
+
/* @__PURE__ */ jsx7("path", { d: "M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6" }),
|
|
3075
|
+
/* @__PURE__ */ jsx7("polyline", { points: "15 3 21 3 21 9" }),
|
|
3076
|
+
/* @__PURE__ */ jsx7("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
|
|
3038
3077
|
] }),
|
|
3039
3078
|
"\uC5F4\uAE30"
|
|
3040
3079
|
] }),
|
|
3041
|
-
/* @__PURE__ */
|
|
3080
|
+
/* @__PURE__ */ jsx7("button", { className: styles_module_default6.filePreviewClose, onClick: onClose, type: "button", children: "\xD7" })
|
|
3042
3081
|
] })
|
|
3043
3082
|
] }),
|
|
3044
|
-
/* @__PURE__ */
|
|
3045
|
-
/* @__PURE__ */
|
|
3046
|
-
/* @__PURE__ */
|
|
3047
|
-
/* @__PURE__ */
|
|
3083
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.filePreviewBody, children: previewSrc ? /* @__PURE__ */ jsx7("iframe", { src: previewSrc, className: styles_module_default6.filePreviewIframe, title: fileName }) : /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.filePreviewFallback, children: [
|
|
3084
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.filePreviewFallbackIcon, children: getFileIcon2(fileType) }),
|
|
3085
|
+
/* @__PURE__ */ jsx7("span", { children: "\uBBF8\uB9AC\uBCF4\uAE30\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uD30C\uC77C \uD615\uC2DD\uC785\uB2C8\uB2E4" }),
|
|
3086
|
+
/* @__PURE__ */ jsx7("a", { href: fileUrl, target: "_blank", rel: "noopener noreferrer", children: "\uD30C\uC77C \uC5F4\uAE30" })
|
|
3048
3087
|
] }) })
|
|
3049
3088
|
] }) });
|
|
3050
3089
|
}
|
|
@@ -3072,13 +3111,17 @@ function InboxPanel({
|
|
|
3072
3111
|
endpoint,
|
|
3073
3112
|
currentUserName,
|
|
3074
3113
|
currentUserId,
|
|
3075
|
-
onClose
|
|
3114
|
+
onClose,
|
|
3115
|
+
onHistoryViewed,
|
|
3116
|
+
newNotiCount
|
|
3076
3117
|
}) {
|
|
3077
3118
|
const [tab, setTab] = useState4("page");
|
|
3078
3119
|
const [statusFilter, setStatusFilter] = useState4("todo");
|
|
3079
3120
|
const [historyDate, setHistoryDate] = useState4("");
|
|
3080
3121
|
const [showDatePicker, setShowDatePicker] = useState4(false);
|
|
3081
3122
|
const datePickerRef = useRef4(null);
|
|
3123
|
+
const [historyEvents, setHistoryEvents] = useState4([]);
|
|
3124
|
+
const [historyLoading, setHistoryLoading] = useState4(false);
|
|
3082
3125
|
const [exiting, setExiting] = useState4(false);
|
|
3083
3126
|
const [selectedItem, setSelectedItem] = useState4(null);
|
|
3084
3127
|
const [comments, setComments] = useState4([]);
|
|
@@ -3164,96 +3207,64 @@ function InboxPanel({
|
|
|
3164
3207
|
const todoCount = rawItems.filter((item) => item.status === "todo").length;
|
|
3165
3208
|
const inProgressCount = rawItems.filter((item) => item.status === "in_progress").length;
|
|
3166
3209
|
const doneCount = rawItems.filter((item) => item.status === "done").length;
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
id: item.id,
|
|
3173
|
-
title: item.title,
|
|
3174
|
-
authorName: item.authorName,
|
|
3175
|
-
event: "created",
|
|
3176
|
-
timestamp: item.createdAt,
|
|
3177
|
-
feedbackUrl: item.feedbackUrl
|
|
3178
|
-
});
|
|
3179
|
-
if (item.startedAt) {
|
|
3180
|
-
events.push({
|
|
3181
|
-
id: item.id,
|
|
3182
|
-
title: item.title,
|
|
3183
|
-
authorName: item.authorName,
|
|
3184
|
-
event: "started",
|
|
3185
|
-
timestamp: item.startedAt,
|
|
3186
|
-
feedbackUrl: item.feedbackUrl
|
|
3187
|
-
});
|
|
3188
|
-
}
|
|
3189
|
-
if (item.completedAt) {
|
|
3190
|
-
events.push({
|
|
3191
|
-
id: item.id,
|
|
3192
|
-
title: item.title,
|
|
3193
|
-
authorName: item.authorName,
|
|
3194
|
-
event: "completed",
|
|
3195
|
-
timestamp: item.completedAt,
|
|
3196
|
-
feedbackUrl: item.feedbackUrl
|
|
3197
|
-
});
|
|
3198
|
-
}
|
|
3199
|
-
}
|
|
3200
|
-
const sorted = events.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
3201
|
-
if (!historyDate) return sorted;
|
|
3202
|
-
return sorted.filter((ev) => ev.timestamp.startsWith(historyDate));
|
|
3203
|
-
}, [allItems, pageItems, historyDate]);
|
|
3210
|
+
useEffect4(() => {
|
|
3211
|
+
if (tab !== "history") return;
|
|
3212
|
+
setHistoryLoading(true);
|
|
3213
|
+
fetchHistory(endpoint, { date: historyDate || void 0, limit: 200 }).then(setHistoryEvents).catch(() => setHistoryEvents([])).finally(() => setHistoryLoading(false));
|
|
3214
|
+
}, [tab, historyDate, endpoint]);
|
|
3204
3215
|
if (typeof document === "undefined") return null;
|
|
3205
3216
|
return createPortal(
|
|
3206
|
-
/* @__PURE__ */
|
|
3207
|
-
/* @__PURE__ */
|
|
3208
|
-
/* @__PURE__ */
|
|
3209
|
-
/* @__PURE__ */
|
|
3210
|
-
/* @__PURE__ */
|
|
3211
|
-
selectedItem && /* @__PURE__ */
|
|
3212
|
-
/* @__PURE__ */
|
|
3217
|
+
/* @__PURE__ */ jsxs7("div", { "data-impakers-debug": "", children: [
|
|
3218
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.backdrop, onClick: handleClose }),
|
|
3219
|
+
/* @__PURE__ */ jsxs7("div", { className: `${styles_module_default6.panel} ${exiting ? styles_module_default6.exiting : ""}`, "data-impakers-debug": "", children: [
|
|
3220
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.header, children: [
|
|
3221
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.headerLeft, children: [
|
|
3222
|
+
selectedItem && /* @__PURE__ */ jsx7("button", { className: styles_module_default6.backBtn, onClick: handleClose, type: "button", children: /* @__PURE__ */ jsx7("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "16", height: "16", children: /* @__PURE__ */ jsx7("polyline", { points: "15 18 9 12 15 6" }) }) }),
|
|
3223
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.headerTitle, children: selectedItem ? "\uD53C\uB4DC\uBC31 \uC0C1\uC138" : serviceName || "Feedback" })
|
|
3213
3224
|
] }),
|
|
3214
|
-
/* @__PURE__ */
|
|
3225
|
+
/* @__PURE__ */ jsx7("button", { className: styles_module_default6.closeBtn, onClick: () => {
|
|
3215
3226
|
setExiting(true);
|
|
3216
3227
|
setTimeout(() => onClose(), 150);
|
|
3217
|
-
}, type: "button", children: /* @__PURE__ */
|
|
3228
|
+
}, type: "button", children: /* @__PURE__ */ jsx7("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx7("path", { d: "M18 6L6 18M6 6l12 12" }) }) })
|
|
3218
3229
|
] }),
|
|
3219
|
-
selectedItem ? /* @__PURE__ */
|
|
3220
|
-
/* @__PURE__ */
|
|
3221
|
-
/* @__PURE__ */
|
|
3222
|
-
/* @__PURE__ */
|
|
3223
|
-
/* @__PURE__ */
|
|
3224
|
-
/* @__PURE__ */
|
|
3225
|
-
/* @__PURE__ */
|
|
3230
|
+
selectedItem ? /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.detailView, children: [
|
|
3231
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.detailHeader, children: [
|
|
3232
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.cardAvatar, children: getInitials2(selectedItem.authorName) }),
|
|
3233
|
+
/* @__PURE__ */ jsxs7("div", { children: [
|
|
3234
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.cardMeta, children: [
|
|
3235
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.cardAuthor, children: selectedItem.authorName }),
|
|
3236
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.cardTime, children: formatTime2(selectedItem.createdAt) })
|
|
3226
3237
|
] }),
|
|
3227
|
-
/* @__PURE__ */
|
|
3238
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.detailTitle, children: selectedItem.title.replace(/^\[피드백\]\s*/, "") })
|
|
3228
3239
|
] })
|
|
3229
3240
|
] }),
|
|
3230
|
-
selectedItem.screenshot && /* @__PURE__ */
|
|
3231
|
-
/* @__PURE__ */
|
|
3232
|
-
loadingComments && /* @__PURE__ */
|
|
3233
|
-
!loadingComments && comments.length === 0 && /* @__PURE__ */
|
|
3234
|
-
comments.map((c) => /* @__PURE__ */
|
|
3235
|
-
/* @__PURE__ */
|
|
3236
|
-
/* @__PURE__ */
|
|
3237
|
-
/* @__PURE__ */
|
|
3238
|
-
/* @__PURE__ */
|
|
3239
|
-
/* @__PURE__ */
|
|
3241
|
+
selectedItem.screenshot && /* @__PURE__ */ jsx7("div", { className: styles_module_default6.detailScreenshot, children: /* @__PURE__ */ jsx7("img", { src: selectedItem.screenshot, alt: "screenshot" }) }),
|
|
3242
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.commentsList, children: [
|
|
3243
|
+
loadingComments && /* @__PURE__ */ jsx7(LoadingSpinner, { message: "\uB313\uAE00 \uB85C\uB529 \uC911..." }),
|
|
3244
|
+
!loadingComments && comments.length === 0 && /* @__PURE__ */ jsx7("div", { className: styles_module_default6.noComments, children: "\uC544\uC9C1 \uB313\uAE00\uC774 \uC5C6\uC2B5\uB2C8\uB2E4" }),
|
|
3245
|
+
comments.map((c) => /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.commentItem, children: [
|
|
3246
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.commentAvatar, style: { width: 22, height: 22, fontSize: 10 }, children: getInitials2(c.authorName) }),
|
|
3247
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.commentBody, children: [
|
|
3248
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.commentMeta, children: [
|
|
3249
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.commentAuthorName, children: c.authorName }),
|
|
3250
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.commentTime, children: formatTime2(c.createdAt) })
|
|
3240
3251
|
] }),
|
|
3241
|
-
c.content && /* @__PURE__ */
|
|
3242
|
-
c.imageUrl && /* @__PURE__ */
|
|
3252
|
+
c.content && /* @__PURE__ */ jsx7("div", { className: styles_module_default6.commentContent, children: c.content }),
|
|
3253
|
+
c.imageUrl && /* @__PURE__ */ jsx7(
|
|
3243
3254
|
"div",
|
|
3244
3255
|
{
|
|
3245
|
-
className:
|
|
3256
|
+
className: styles_module_default6.commentImage,
|
|
3246
3257
|
onClick: (e) => {
|
|
3247
3258
|
e.stopPropagation();
|
|
3248
3259
|
setLightboxSrc(c.imageUrl);
|
|
3249
3260
|
},
|
|
3250
|
-
children: /* @__PURE__ */
|
|
3261
|
+
children: /* @__PURE__ */ jsx7("img", { src: c.imageUrl, alt: "attachment" })
|
|
3251
3262
|
}
|
|
3252
3263
|
),
|
|
3253
|
-
c.fileUrl && /* @__PURE__ */
|
|
3264
|
+
c.fileUrl && /* @__PURE__ */ jsxs7(
|
|
3254
3265
|
"div",
|
|
3255
3266
|
{
|
|
3256
|
-
className:
|
|
3267
|
+
className: styles_module_default6.commentFileCard,
|
|
3257
3268
|
onClick: (e) => {
|
|
3258
3269
|
e.stopPropagation();
|
|
3259
3270
|
setFilePreview({
|
|
@@ -3264,24 +3275,24 @@ function InboxPanel({
|
|
|
3264
3275
|
});
|
|
3265
3276
|
},
|
|
3266
3277
|
children: [
|
|
3267
|
-
/* @__PURE__ */
|
|
3268
|
-
/* @__PURE__ */
|
|
3269
|
-
/* @__PURE__ */
|
|
3270
|
-
c.fileSize != null && /* @__PURE__ */
|
|
3278
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.commentFileIcon, children: getFileIcon2(c.fileType || "") }),
|
|
3279
|
+
/* @__PURE__ */ jsxs7("span", { className: styles_module_default6.commentFileInfo, children: [
|
|
3280
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.commentFileName, children: c.fileName || "\uD30C\uC77C" }),
|
|
3281
|
+
c.fileSize != null && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.commentFileSize, children: formatFileSize2(c.fileSize) })
|
|
3271
3282
|
] })
|
|
3272
3283
|
]
|
|
3273
3284
|
}
|
|
3274
3285
|
)
|
|
3275
3286
|
] })
|
|
3276
3287
|
] }, c.id)),
|
|
3277
|
-
/* @__PURE__ */
|
|
3288
|
+
/* @__PURE__ */ jsx7("div", { ref: commentsEndRef })
|
|
3278
3289
|
] }),
|
|
3279
|
-
/* @__PURE__ */
|
|
3280
|
-
/* @__PURE__ */
|
|
3290
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.replyBox, children: [
|
|
3291
|
+
/* @__PURE__ */ jsx7(
|
|
3281
3292
|
"textarea",
|
|
3282
3293
|
{
|
|
3283
3294
|
ref: replyRef,
|
|
3284
|
-
className:
|
|
3295
|
+
className: styles_module_default6.replyInput,
|
|
3285
3296
|
placeholder: "Reply...",
|
|
3286
3297
|
value: replyText,
|
|
3287
3298
|
onChange: (e) => {
|
|
@@ -3294,55 +3305,61 @@ function InboxPanel({
|
|
|
3294
3305
|
rows: 2
|
|
3295
3306
|
}
|
|
3296
3307
|
),
|
|
3297
|
-
/* @__PURE__ */
|
|
3308
|
+
/* @__PURE__ */ jsx7(
|
|
3298
3309
|
"button",
|
|
3299
3310
|
{
|
|
3300
|
-
className: `${
|
|
3311
|
+
className: `${styles_module_default6.sendBtn} ${replyText.trim() ? styles_module_default6.active : ""}`,
|
|
3301
3312
|
onClick: handleSendReply,
|
|
3302
3313
|
disabled: !replyText.trim(),
|
|
3303
3314
|
type: "button",
|
|
3304
|
-
children: /* @__PURE__ */
|
|
3305
|
-
/* @__PURE__ */
|
|
3306
|
-
/* @__PURE__ */
|
|
3315
|
+
children: /* @__PURE__ */ jsxs7("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "16", height: "16", children: [
|
|
3316
|
+
/* @__PURE__ */ jsx7("line", { x1: "22", y1: "2", x2: "11", y2: "13" }),
|
|
3317
|
+
/* @__PURE__ */ jsx7("polygon", { points: "22 2 15 22 11 13 2 9 22 2" })
|
|
3307
3318
|
] })
|
|
3308
3319
|
}
|
|
3309
3320
|
)
|
|
3310
3321
|
] })
|
|
3311
|
-
] }) : /* @__PURE__ */
|
|
3312
|
-
/* @__PURE__ */
|
|
3313
|
-
/* @__PURE__ */
|
|
3322
|
+
] }) : /* @__PURE__ */ jsxs7(Fragment3, { children: [
|
|
3323
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.tabs, children: [
|
|
3324
|
+
/* @__PURE__ */ jsxs7("button", { className: `${styles_module_default6.tab} ${tab === "page" ? styles_module_default6.active : ""}`, onClick: () => setTab("page"), type: "button", children: [
|
|
3314
3325
|
"This Page",
|
|
3315
|
-
pageItems.length > 0 && /* @__PURE__ */
|
|
3326
|
+
pageItems.length > 0 && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.tabBadge, children: pageItems.length })
|
|
3316
3327
|
] }),
|
|
3317
|
-
/* @__PURE__ */
|
|
3328
|
+
/* @__PURE__ */ jsxs7("button", { className: `${styles_module_default6.tab} ${tab === "all" ? styles_module_default6.active : ""}`, onClick: () => setTab("all"), type: "button", children: [
|
|
3318
3329
|
"All",
|
|
3319
|
-
allItems.length > 0 && /* @__PURE__ */
|
|
3330
|
+
allItems.length > 0 && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.tabBadge, children: allItems.length })
|
|
3320
3331
|
] }),
|
|
3321
|
-
/* @__PURE__ */
|
|
3332
|
+
/* @__PURE__ */ jsxs7("button", { className: `${styles_module_default6.tab} ${tab === "history" ? styles_module_default6.active : ""}`, onClick: () => {
|
|
3333
|
+
setTab("history");
|
|
3334
|
+
onHistoryViewed?.();
|
|
3335
|
+
}, type: "button", children: [
|
|
3336
|
+
"History",
|
|
3337
|
+
newNotiCount && newNotiCount > 0 ? /* @__PURE__ */ jsx7("span", { className: styles_module_default6.tabBadge, children: newNotiCount }) : null
|
|
3338
|
+
] })
|
|
3322
3339
|
] }),
|
|
3323
3340
|
tab === "history" ? (
|
|
3324
3341
|
/* === History 뷰 === */
|
|
3325
|
-
/* @__PURE__ */
|
|
3326
|
-
/* @__PURE__ */
|
|
3327
|
-
/* @__PURE__ */
|
|
3328
|
-
/* @__PURE__ */
|
|
3342
|
+
/* @__PURE__ */ jsxs7(Fragment3, { children: [
|
|
3343
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.historyFilter, children: [
|
|
3344
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.historyDateWrap, ref: datePickerRef, children: [
|
|
3345
|
+
/* @__PURE__ */ jsxs7(
|
|
3329
3346
|
"button",
|
|
3330
3347
|
{
|
|
3331
|
-
className: `${
|
|
3348
|
+
className: `${styles_module_default6.filterChip} ${historyDate ? styles_module_default6.active : ""}`,
|
|
3332
3349
|
onClick: () => setShowDatePicker((v) => !v),
|
|
3333
3350
|
type: "button",
|
|
3334
3351
|
children: [
|
|
3335
|
-
/* @__PURE__ */
|
|
3336
|
-
/* @__PURE__ */
|
|
3337
|
-
/* @__PURE__ */
|
|
3338
|
-
/* @__PURE__ */
|
|
3339
|
-
/* @__PURE__ */
|
|
3352
|
+
/* @__PURE__ */ jsxs7("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "13", height: "13", children: [
|
|
3353
|
+
/* @__PURE__ */ jsx7("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }),
|
|
3354
|
+
/* @__PURE__ */ jsx7("line", { x1: "16", y1: "2", x2: "16", y2: "6" }),
|
|
3355
|
+
/* @__PURE__ */ jsx7("line", { x1: "8", y1: "2", x2: "8", y2: "6" }),
|
|
3356
|
+
/* @__PURE__ */ jsx7("line", { x1: "3", y1: "10", x2: "21", y2: "10" })
|
|
3340
3357
|
] }),
|
|
3341
3358
|
historyDate ? `${new Date(historyDate).getMonth() + 1}/${new Date(historyDate).getDate()}` : "\uB0A0\uC9DC"
|
|
3342
3359
|
]
|
|
3343
3360
|
}
|
|
3344
3361
|
),
|
|
3345
|
-
showDatePicker && /* @__PURE__ */
|
|
3362
|
+
showDatePicker && /* @__PURE__ */ jsx7("div", { className: styles_module_default6.datePopover, children: /* @__PURE__ */ jsx7(
|
|
3346
3363
|
"input",
|
|
3347
3364
|
{
|
|
3348
3365
|
type: "date",
|
|
@@ -3351,15 +3368,15 @@ function InboxPanel({
|
|
|
3351
3368
|
setHistoryDate(e.target.value);
|
|
3352
3369
|
setShowDatePicker(false);
|
|
3353
3370
|
},
|
|
3354
|
-
className:
|
|
3371
|
+
className: styles_module_default6.dateInput,
|
|
3355
3372
|
autoFocus: true
|
|
3356
3373
|
}
|
|
3357
3374
|
) })
|
|
3358
3375
|
] }),
|
|
3359
|
-
historyDate && /* @__PURE__ */
|
|
3376
|
+
historyDate && /* @__PURE__ */ jsx7(
|
|
3360
3377
|
"button",
|
|
3361
3378
|
{
|
|
3362
|
-
className:
|
|
3379
|
+
className: styles_module_default6.filterChipClear,
|
|
3363
3380
|
onClick: () => setHistoryDate(""),
|
|
3364
3381
|
type: "button",
|
|
3365
3382
|
title: "\uD544\uD130 \uCD08\uAE30\uD654",
|
|
@@ -3367,112 +3384,114 @@ function InboxPanel({
|
|
|
3367
3384
|
}
|
|
3368
3385
|
)
|
|
3369
3386
|
] }),
|
|
3370
|
-
/* @__PURE__ */
|
|
3371
|
-
/* @__PURE__ */
|
|
3372
|
-
/* @__PURE__ */
|
|
3373
|
-
/* @__PURE__ */
|
|
3387
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.content, children: historyLoading ? /* @__PURE__ */ jsx7("div", { className: styles_module_default6.empty, children: "\uB85C\uB529 \uC911..." }) : historyEvents.length === 0 ? /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.empty, children: [
|
|
3388
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.emptyIcon, children: /* @__PURE__ */ jsxs7("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
3389
|
+
/* @__PURE__ */ jsx7("circle", { cx: "12", cy: "12", r: "10" }),
|
|
3390
|
+
/* @__PURE__ */ jsx7("polyline", { points: "12 6 12 12 16 14" })
|
|
3374
3391
|
] }) }),
|
|
3375
3392
|
"\uD788\uC2A4\uD1A0\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4"
|
|
3376
|
-
] }) : historyEvents.map((ev, i) => /* @__PURE__ */
|
|
3377
|
-
/* @__PURE__ */
|
|
3378
|
-
/* @__PURE__ */
|
|
3379
|
-
/* @__PURE__ */
|
|
3380
|
-
/* @__PURE__ */
|
|
3381
|
-
ev.
|
|
3382
|
-
ev.
|
|
3383
|
-
ev.
|
|
3393
|
+
] }) : historyEvents.map((ev, i) => /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.historyItem, children: [
|
|
3394
|
+
/* @__PURE__ */ jsx7("div", { className: `${styles_module_default6.historyDot} ${styles_module_default6[`historyDot_${ev.action}`]}` }),
|
|
3395
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.historyBody, children: [
|
|
3396
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.historyMeta, children: [
|
|
3397
|
+
/* @__PURE__ */ jsxs7("span", { className: styles_module_default6.historyEvent, children: [
|
|
3398
|
+
ev.action === "created" && "\uD53C\uB4DC\uBC31 \uC0DD\uC131",
|
|
3399
|
+
ev.action === "status_changed" && ev.toStatus === "in_progress" && "\uC9C4\uD589 \uC2DC\uC791",
|
|
3400
|
+
ev.action === "status_changed" && ev.toStatus === "done" && "\uC644\uB8CC \uCC98\uB9AC",
|
|
3401
|
+
ev.action === "status_changed" && ev.toStatus === "todo" && "\uC7AC\uC624\uD508",
|
|
3402
|
+
ev.action === "comment_added" && `\uB313\uAE00 (${ev.actorName || "\uC775\uBA85"})`
|
|
3384
3403
|
] }),
|
|
3385
|
-
/* @__PURE__ */
|
|
3404
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.historyTime, children: formatTime2(ev.createdAt) })
|
|
3386
3405
|
] }),
|
|
3387
|
-
/* @__PURE__ */
|
|
3388
|
-
ev.feedbackUrl && /* @__PURE__ */
|
|
3406
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.historyTitle, children: (ev.taskTitle || "").replace(/^\[피드백\]\s*/, "") }),
|
|
3407
|
+
ev.feedbackUrl && /* @__PURE__ */ jsx7("div", { className: styles_module_default6.historyUrl, children: ev.feedbackUrl })
|
|
3389
3408
|
] })
|
|
3390
|
-
] }, `${ev.id}-${ev.
|
|
3409
|
+
] }, `${ev.id}-${ev.action}-${i}`)) })
|
|
3391
3410
|
] })
|
|
3392
|
-
) : /* @__PURE__ */
|
|
3393
|
-
/* @__PURE__ */
|
|
3394
|
-
/* @__PURE__ */
|
|
3411
|
+
) : /* @__PURE__ */ jsxs7(Fragment3, { children: [
|
|
3412
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.statusFilter, children: [
|
|
3413
|
+
/* @__PURE__ */ jsxs7(
|
|
3395
3414
|
"button",
|
|
3396
3415
|
{
|
|
3397
|
-
className: `${
|
|
3416
|
+
className: `${styles_module_default6.filterChip} ${statusFilter === "todo" ? styles_module_default6.active : ""}`,
|
|
3398
3417
|
onClick: () => setStatusFilter("todo"),
|
|
3399
3418
|
type: "button",
|
|
3400
3419
|
children: [
|
|
3401
3420
|
"\uC9C4\uD589\uC804",
|
|
3402
|
-
todoCount > 0 && /* @__PURE__ */
|
|
3421
|
+
todoCount > 0 && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.filterCount, children: todoCount })
|
|
3403
3422
|
]
|
|
3404
3423
|
}
|
|
3405
3424
|
),
|
|
3406
|
-
/* @__PURE__ */
|
|
3425
|
+
/* @__PURE__ */ jsxs7(
|
|
3407
3426
|
"button",
|
|
3408
3427
|
{
|
|
3409
|
-
className: `${
|
|
3428
|
+
className: `${styles_module_default6.filterChip} ${statusFilter === "in_progress" ? styles_module_default6.active : ""}`,
|
|
3410
3429
|
onClick: () => setStatusFilter("in_progress"),
|
|
3411
3430
|
type: "button",
|
|
3412
3431
|
children: [
|
|
3413
3432
|
"\uC9C4\uD589\uC911",
|
|
3414
|
-
inProgressCount > 0 && /* @__PURE__ */
|
|
3433
|
+
inProgressCount > 0 && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.filterCount, children: inProgressCount })
|
|
3415
3434
|
]
|
|
3416
3435
|
}
|
|
3417
3436
|
),
|
|
3418
|
-
/* @__PURE__ */
|
|
3437
|
+
/* @__PURE__ */ jsxs7(
|
|
3419
3438
|
"button",
|
|
3420
3439
|
{
|
|
3421
|
-
className: `${
|
|
3440
|
+
className: `${styles_module_default6.filterChip} ${statusFilter === "done" ? styles_module_default6.active : ""}`,
|
|
3422
3441
|
onClick: () => setStatusFilter("done"),
|
|
3423
3442
|
type: "button",
|
|
3424
3443
|
children: [
|
|
3425
3444
|
"\uC644\uB8CC",
|
|
3426
|
-
doneCount > 0 && /* @__PURE__ */
|
|
3445
|
+
doneCount > 0 && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.filterCount, children: doneCount })
|
|
3427
3446
|
]
|
|
3428
3447
|
}
|
|
3429
3448
|
)
|
|
3430
3449
|
] }),
|
|
3431
|
-
/* @__PURE__ */
|
|
3432
|
-
/* @__PURE__ */
|
|
3450
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.content, children: items.length === 0 ? /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.empty, children: [
|
|
3451
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.emptyIcon, children: /* @__PURE__ */ jsx7("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx7("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z" }) }) }),
|
|
3433
3452
|
tab === "page" ? "\uC774 \uD398\uC774\uC9C0\uC5D0 \uD53C\uB4DC\uBC31\uC774 \uC5C6\uC2B5\uB2C8\uB2E4" : "\uD53C\uB4DC\uBC31\uC774 \uC5C6\uC2B5\uB2C8\uB2E4"
|
|
3434
|
-
] }) : items.map((item) => /* @__PURE__ */
|
|
3435
|
-
/* @__PURE__ */
|
|
3436
|
-
/* @__PURE__ */
|
|
3437
|
-
/* @__PURE__ */
|
|
3438
|
-
/* @__PURE__ */
|
|
3439
|
-
/* @__PURE__ */
|
|
3453
|
+
] }) : items.map((item) => /* @__PURE__ */ jsxs7("div", { className: `${styles_module_default6.card} ${item.status === "done" ? styles_module_default6.cardDone : ""}`, onClick: () => handleItemClick(item), children: [
|
|
3454
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.cardHeader, children: [
|
|
3455
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.cardAvatar, children: getInitials2(item.authorName) }),
|
|
3456
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.cardInfo, children: /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.cardMeta, children: [
|
|
3457
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.cardAuthor, children: item.authorName }),
|
|
3458
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.cardTime, children: formatTime2(item.createdAt) })
|
|
3440
3459
|
] }) })
|
|
3441
3460
|
] }),
|
|
3442
|
-
/* @__PURE__ */
|
|
3443
|
-
item.screenshot && /* @__PURE__ */
|
|
3444
|
-
tab === "all" && item.feedbackUrl && /* @__PURE__ */
|
|
3461
|
+
/* @__PURE__ */ jsx7("div", { className: styles_module_default6.cardTitle, children: item.title.replace(/^\[피드백\]\s*/, "") }),
|
|
3462
|
+
item.screenshot && /* @__PURE__ */ jsx7("div", { className: styles_module_default6.cardScreenshot, children: /* @__PURE__ */ jsx7("img", { src: item.screenshot, alt: "screenshot" }) }),
|
|
3463
|
+
tab === "all" && item.feedbackUrl && /* @__PURE__ */ jsxs7(
|
|
3445
3464
|
"div",
|
|
3446
3465
|
{
|
|
3447
|
-
className:
|
|
3466
|
+
className: styles_module_default6.cardRoute,
|
|
3448
3467
|
onClick: (e) => {
|
|
3449
3468
|
e.stopPropagation();
|
|
3450
3469
|
window.location.href = item.feedbackUrl;
|
|
3451
3470
|
},
|
|
3452
3471
|
title: "\uD398\uC774\uC9C0\uB85C \uC774\uB3D9",
|
|
3453
3472
|
children: [
|
|
3454
|
-
/* @__PURE__ */
|
|
3455
|
-
/* @__PURE__ */
|
|
3456
|
-
/* @__PURE__ */
|
|
3457
|
-
/* @__PURE__ */
|
|
3458
|
-
/* @__PURE__ */
|
|
3473
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.cardRoutePath, children: item.feedbackUrl }),
|
|
3474
|
+
/* @__PURE__ */ jsxs7("svg", { className: styles_module_default6.cardRouteIcon, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "12", height: "12", children: [
|
|
3475
|
+
/* @__PURE__ */ jsx7("path", { d: "M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6" }),
|
|
3476
|
+
/* @__PURE__ */ jsx7("polyline", { points: "15 3 21 3 21 9" }),
|
|
3477
|
+
/* @__PURE__ */ jsx7("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
|
|
3459
3478
|
] })
|
|
3460
3479
|
]
|
|
3461
3480
|
}
|
|
3462
3481
|
),
|
|
3463
|
-
(item.startedAt || item.completedAt) && /* @__PURE__ */
|
|
3464
|
-
item.startedAt && item.status !== "todo" && /* @__PURE__ */
|
|
3482
|
+
(item.startedAt || item.completedAt) && /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.cardStatusTime, children: [
|
|
3483
|
+
item.startedAt && item.status !== "todo" && /* @__PURE__ */ jsxs7("span", { children: [
|
|
3465
3484
|
"\uC9C4\uD589 \uC2DC\uC791: ",
|
|
3466
3485
|
formatTime2(item.startedAt)
|
|
3467
3486
|
] }),
|
|
3468
|
-
item.completedAt && item.status === "done" && /* @__PURE__ */
|
|
3487
|
+
item.completedAt && item.status === "done" && /* @__PURE__ */ jsxs7("span", { children: [
|
|
3469
3488
|
"\uC644\uB8CC: ",
|
|
3470
3489
|
formatTime2(item.completedAt)
|
|
3471
3490
|
] })
|
|
3472
3491
|
] }),
|
|
3473
|
-
/* @__PURE__ */
|
|
3474
|
-
/* @__PURE__ */
|
|
3475
|
-
/* @__PURE__ */
|
|
3492
|
+
/* @__PURE__ */ jsxs7("div", { className: styles_module_default6.cardFooter, children: [
|
|
3493
|
+
/* @__PURE__ */ jsx7("span", { className: styles_module_default6.cardReplyDot }),
|
|
3494
|
+
/* @__PURE__ */ jsxs7("span", { className: styles_module_default6.cardReplyCount, children: [
|
|
3476
3495
|
item.commentCount,
|
|
3477
3496
|
" ",
|
|
3478
3497
|
item.commentCount === 1 ? "Reply" : "Replies"
|
|
@@ -3482,8 +3501,8 @@ function InboxPanel({
|
|
|
3482
3501
|
] })
|
|
3483
3502
|
] })
|
|
3484
3503
|
] }),
|
|
3485
|
-
lightboxSrc && /* @__PURE__ */
|
|
3486
|
-
filePreview && /* @__PURE__ */
|
|
3504
|
+
lightboxSrc && /* @__PURE__ */ jsx7(ImageLightbox, { src: lightboxSrc, onClose: () => setLightboxSrc(null) }),
|
|
3505
|
+
filePreview && /* @__PURE__ */ jsx7(
|
|
3487
3506
|
FilePreviewModal,
|
|
3488
3507
|
{
|
|
3489
3508
|
fileUrl: filePreview.url,
|
|
@@ -3535,8 +3554,8 @@ var MARKER_COLORS = [
|
|
|
3535
3554
|
];
|
|
3536
3555
|
|
|
3537
3556
|
// src/components/settings-panel/styles.module.scss
|
|
3538
|
-
var
|
|
3539
|
-
var
|
|
3557
|
+
var css7 = '@keyframes styles-module__panelIn___SmRh6 {\n from {\n opacity: 0;\n transform: translateY(8px) scale(0.96);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n.styles-module__backdrop___--cMp {\n position: fixed;\n inset: 0;\n z-index: 100005;\n}\n\n.styles-module__panel___z6xiJ {\n position: fixed;\n bottom: 80px;\n right: 24px;\n width: 280px;\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);\n z-index: 100006;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n animation: styles-module__panelIn___SmRh6 0.15s ease-out;\n -webkit-font-smoothing: antialiased;\n}\n\n.styles-module__header___NkOur {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid #f3f4f6;\n}\n\n.styles-module__title___tsKZw {\n font-size: 14px;\n font-weight: 600;\n color: #18181b;\n}\n\n.styles-module__closeBtn___-OQ4Y {\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: #6b7280;\n}\n.styles-module__closeBtn___-OQ4Y:hover {\n background: #f3f4f6;\n color: #18181b;\n}\n\n.styles-module__body___9pyCP {\n padding: 12px 16px 16px;\n}\n\n.styles-module__field___vnQMl {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 0;\n}\n\n.styles-module__fieldLabel___2WUKB {\n font-size: 13px;\n font-weight: 500;\n color: #374151;\n}\n\n.styles-module__toggle___uWsqC {\n width: 40px;\n height: 22px;\n border-radius: 11px;\n background: #d1d5db;\n border: none;\n cursor: pointer;\n position: relative;\n transition: background 0.2s;\n padding: 0;\n}\n.styles-module__toggle___uWsqC.styles-module__on___W27kf {\n background: #18181b;\n}\n\n.styles-module__toggleThumb___wyckC {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background: #fff;\n transition: transform 0.2s;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n}\n.styles-module__on___W27kf .styles-module__toggleThumb___wyckC {\n transform: translateX(18px);\n}\n\n.styles-module__colors___vgFGZ {\n display: flex;\n gap: 6px;\n}\n\n.styles-module__colorBtn___N7dGu {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 2px solid transparent;\n cursor: pointer;\n transition: transform 0.12s, border-color 0.12s;\n padding: 0;\n}\n.styles-module__colorBtn___N7dGu:hover {\n transform: scale(1.15);\n}\n.styles-module__colorBtn___N7dGu.styles-module__selected___0tVDH {\n border-color: #18181b;\n transform: scale(1.15);\n}';
|
|
3558
|
+
var classNames7 = { "backdrop": "styles-module__backdrop___--cMp", "panel": "styles-module__panel___z6xiJ", "panelIn": "styles-module__panelIn___SmRh6", "header": "styles-module__header___NkOur", "title": "styles-module__title___tsKZw", "closeBtn": "styles-module__closeBtn___-OQ4Y", "body": "styles-module__body___9pyCP", "field": "styles-module__field___vnQMl", "fieldLabel": "styles-module__fieldLabel___2WUKB", "toggle": "styles-module__toggle___uWsqC", "on": "styles-module__on___W27kf", "toggleThumb": "styles-module__toggleThumb___wyckC", "colors": "styles-module__colors___vgFGZ", "colorBtn": "styles-module__colorBtn___N7dGu", "selected": "styles-module__selected___0tVDH" };
|
|
3540
3559
|
if (typeof document !== "undefined") {
|
|
3541
3560
|
let style = document.getElementById("impakers-debug-styles-settings-panel-styles");
|
|
3542
3561
|
if (!style) {
|
|
@@ -3544,12 +3563,12 @@ if (typeof document !== "undefined") {
|
|
|
3544
3563
|
style.id = "impakers-debug-styles-settings-panel-styles";
|
|
3545
3564
|
document.head.appendChild(style);
|
|
3546
3565
|
}
|
|
3547
|
-
style.textContent =
|
|
3566
|
+
style.textContent = css7;
|
|
3548
3567
|
}
|
|
3549
|
-
var
|
|
3568
|
+
var styles_module_default7 = classNames7;
|
|
3550
3569
|
|
|
3551
3570
|
// src/components/settings-panel/index.tsx
|
|
3552
|
-
import { jsx as
|
|
3571
|
+
import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
3553
3572
|
function SettingsPanel({ settings, onChange, onClose }) {
|
|
3554
3573
|
const handleToggleMarkers = useCallback5(() => {
|
|
3555
3574
|
onChange({ ...settings, markersVisible: !settings.markersVisible });
|
|
@@ -3565,56 +3584,56 @@ function SettingsPanel({ settings, onChange, onClose }) {
|
|
|
3565
3584
|
}, [settings, onChange]);
|
|
3566
3585
|
if (typeof document === "undefined") return null;
|
|
3567
3586
|
return createPortal2(
|
|
3568
|
-
/* @__PURE__ */
|
|
3569
|
-
/* @__PURE__ */
|
|
3570
|
-
/* @__PURE__ */
|
|
3571
|
-
/* @__PURE__ */
|
|
3572
|
-
/* @__PURE__ */
|
|
3573
|
-
/* @__PURE__ */
|
|
3587
|
+
/* @__PURE__ */ jsxs8("div", { "data-impakers-debug": "", children: [
|
|
3588
|
+
/* @__PURE__ */ jsx8("div", { className: styles_module_default7.backdrop, onClick: onClose }),
|
|
3589
|
+
/* @__PURE__ */ jsxs8("div", { className: styles_module_default7.panel, "data-impakers-debug": "", children: [
|
|
3590
|
+
/* @__PURE__ */ jsxs8("div", { className: styles_module_default7.header, children: [
|
|
3591
|
+
/* @__PURE__ */ jsx8("span", { className: styles_module_default7.title, children: "\uC124\uC815" }),
|
|
3592
|
+
/* @__PURE__ */ jsx8("button", { className: styles_module_default7.closeBtn, onClick: onClose, type: "button", children: /* @__PURE__ */ jsx8("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("path", { d: "M18 6L6 18M6 6l12 12" }) }) })
|
|
3574
3593
|
] }),
|
|
3575
|
-
/* @__PURE__ */
|
|
3576
|
-
/* @__PURE__ */
|
|
3577
|
-
/* @__PURE__ */
|
|
3578
|
-
/* @__PURE__ */
|
|
3594
|
+
/* @__PURE__ */ jsxs8("div", { className: styles_module_default7.body, children: [
|
|
3595
|
+
/* @__PURE__ */ jsxs8("div", { className: styles_module_default7.field, children: [
|
|
3596
|
+
/* @__PURE__ */ jsx8("div", { className: styles_module_default7.fieldLabel, children: "\uB9C8\uCEE4 \uD45C\uC2DC" }),
|
|
3597
|
+
/* @__PURE__ */ jsx8(
|
|
3579
3598
|
"button",
|
|
3580
3599
|
{
|
|
3581
|
-
className: `${
|
|
3600
|
+
className: `${styles_module_default7.toggle} ${settings.markersVisible ? styles_module_default7.on : ""}`,
|
|
3582
3601
|
onClick: handleToggleMarkers,
|
|
3583
3602
|
type: "button",
|
|
3584
|
-
children: /* @__PURE__ */
|
|
3603
|
+
children: /* @__PURE__ */ jsx8("span", { className: styles_module_default7.toggleThumb })
|
|
3585
3604
|
}
|
|
3586
3605
|
)
|
|
3587
3606
|
] }),
|
|
3588
|
-
/* @__PURE__ */
|
|
3589
|
-
/* @__PURE__ */
|
|
3590
|
-
/* @__PURE__ */
|
|
3607
|
+
/* @__PURE__ */ jsxs8("div", { className: styles_module_default7.field, children: [
|
|
3608
|
+
/* @__PURE__ */ jsx8("div", { className: styles_module_default7.fieldLabel, children: "\uC644\uB8CC \uD540 \uC228\uAE30\uAE30" }),
|
|
3609
|
+
/* @__PURE__ */ jsx8(
|
|
3591
3610
|
"button",
|
|
3592
3611
|
{
|
|
3593
|
-
className: `${
|
|
3612
|
+
className: `${styles_module_default7.toggle} ${settings.hideDoneMarkers ? styles_module_default7.on : ""}`,
|
|
3594
3613
|
onClick: handleToggleHideDone,
|
|
3595
3614
|
type: "button",
|
|
3596
|
-
children: /* @__PURE__ */
|
|
3615
|
+
children: /* @__PURE__ */ jsx8("span", { className: styles_module_default7.toggleThumb })
|
|
3597
3616
|
}
|
|
3598
3617
|
)
|
|
3599
3618
|
] }),
|
|
3600
|
-
/* @__PURE__ */
|
|
3601
|
-
/* @__PURE__ */
|
|
3602
|
-
/* @__PURE__ */
|
|
3619
|
+
/* @__PURE__ */ jsxs8("div", { className: styles_module_default7.field, children: [
|
|
3620
|
+
/* @__PURE__ */ jsx8("div", { className: styles_module_default7.fieldLabel, children: "\uB0B4\uAC00 \uCD94\uAC00\uD55C \uAC83\uB9CC" }),
|
|
3621
|
+
/* @__PURE__ */ jsx8(
|
|
3603
3622
|
"button",
|
|
3604
3623
|
{
|
|
3605
|
-
className: `${
|
|
3624
|
+
className: `${styles_module_default7.toggle} ${settings.showOnlyMine ? styles_module_default7.on : ""}`,
|
|
3606
3625
|
onClick: handleToggleShowOnlyMine,
|
|
3607
3626
|
type: "button",
|
|
3608
|
-
children: /* @__PURE__ */
|
|
3627
|
+
children: /* @__PURE__ */ jsx8("span", { className: styles_module_default7.toggleThumb })
|
|
3609
3628
|
}
|
|
3610
3629
|
)
|
|
3611
3630
|
] }),
|
|
3612
|
-
/* @__PURE__ */
|
|
3613
|
-
/* @__PURE__ */
|
|
3614
|
-
/* @__PURE__ */
|
|
3631
|
+
/* @__PURE__ */ jsxs8("div", { className: styles_module_default7.field, children: [
|
|
3632
|
+
/* @__PURE__ */ jsx8("div", { className: styles_module_default7.fieldLabel, children: "\uB9C8\uCEE4 \uC0C9\uC0C1" }),
|
|
3633
|
+
/* @__PURE__ */ jsx8("div", { className: styles_module_default7.colors, children: MARKER_COLORS.map((c) => /* @__PURE__ */ jsx8(
|
|
3615
3634
|
"button",
|
|
3616
3635
|
{
|
|
3617
|
-
className: `${
|
|
3636
|
+
className: `${styles_module_default7.colorBtn} ${settings.markerColor === c.value ? styles_module_default7.selected : ""}`,
|
|
3618
3637
|
style: { background: c.value },
|
|
3619
3638
|
onClick: () => handleColorChange(c.value),
|
|
3620
3639
|
title: c.label,
|
|
@@ -3631,8 +3650,8 @@ function SettingsPanel({ settings, onChange, onClose }) {
|
|
|
3631
3650
|
}
|
|
3632
3651
|
|
|
3633
3652
|
// src/components/debug-widget/styles.module.scss
|
|
3634
|
-
var
|
|
3635
|
-
var
|
|
3653
|
+
var css8 = '.styles-module__markersLayer___VR1cD svg[fill=none],\n.styles-module__fixedMarkersLayer___wBuxm svg[fill=none] {\n fill: none !important;\n}\n.styles-module__markersLayer___VR1cD svg[fill=none] :not([fill]),\n.styles-module__fixedMarkersLayer___wBuxm svg[fill=none] :not([fill]) {\n fill: none !important;\n}\n\n@keyframes styles-module__fadeIn___PpRqy {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes styles-module__fadeOut___tZb9S {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes styles-module__hoverHighlightIn___ljC4F {\n from {\n opacity: 0;\n transform: scale(0.98);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n@keyframes styles-module__hoverTooltipIn___tncNM {\n from {\n opacity: 0;\n transform: translateY(4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes styles-module__fabEnter___9koyT {\n from {\n opacity: 0;\n transform: scale(0.5);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n.styles-module__fab___6FrCF {\n position: fixed;\n bottom: 24px;\n right: 24px;\n width: 44px;\n height: 44px;\n border-radius: 50%;\n background: #18181b;\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 1px 3px rgba(0, 0, 0, 0.1);\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n z-index: 99999;\n animation: styles-module__fabEnter___9koyT 0.3s cubic-bezier(0.22, 1, 0.36, 1);\n touch-action: none;\n}\n.styles-module__fab___6FrCF svg {\n width: 20px;\n height: 20px;\n}\n.styles-module__fab___6FrCF:hover {\n transform: scale(1.08);\n box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.12);\n}\n.styles-module__fab___6FrCF:active {\n transform: scale(0.96);\n}\n.styles-module__fab___6FrCF.styles-module__active___X5PRD {\n background: #dc2626;\n}\n\n.styles-module__hoverHighlight___9kGLL {\n position: fixed;\n border: 2px solid rgba(0, 136, 255, 0.5);\n border-radius: 4px;\n background-color: rgba(0, 136, 255, 0.04);\n pointer-events: none !important;\n box-sizing: border-box;\n will-change: opacity;\n z-index: 99997;\n}\n.styles-module__hoverHighlight___9kGLL.styles-module__enter___jAi-c {\n animation: styles-module__hoverHighlightIn___ljC4F 0.12s ease-out forwards;\n}\n\n.styles-module__singleSelectOutline___2meUm {\n position: fixed;\n border: 2px solid rgba(0, 136, 255, 0.6);\n border-radius: 4px;\n pointer-events: none !important;\n background-color: rgba(0, 136, 255, 0.05);\n box-sizing: border-box;\n will-change: opacity;\n z-index: 99997;\n}\n.styles-module__singleSelectOutline___2meUm.styles-module__enter___jAi-c {\n animation: styles-module__fadeIn___PpRqy 0.15s ease-out forwards;\n}\n\n.styles-module__hoverTooltip___JE1Bs {\n position: fixed;\n font-size: 0.6875rem;\n font-weight: 500;\n color: #fff;\n background: rgba(0, 0, 0, 0.85);\n padding: 0.35rem 0.6rem;\n border-radius: 0.375rem;\n pointer-events: none !important;\n white-space: nowrap;\n max-width: 280px;\n overflow: hidden;\n text-overflow: ellipsis;\n z-index: 99999;\n}\n.styles-module__hoverTooltip___JE1Bs.styles-module__enter___jAi-c {\n animation: styles-module__hoverTooltipIn___tncNM 0.1s ease-out forwards;\n}\n\n.styles-module__hoverReactPath___wPGYi {\n font-size: 0.625rem;\n color: rgba(255, 255, 255, 0.6);\n margin-bottom: 0.15rem;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.styles-module__hoverElementName___lNqTP {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.styles-module__markersLayer___VR1cD {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 0;\n z-index: 99998;\n pointer-events: none;\n}\n.styles-module__markersLayer___VR1cD > * {\n pointer-events: auto;\n}\n\n.styles-module__fixedMarkersLayer___wBuxm {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 99998;\n pointer-events: none;\n}\n.styles-module__fixedMarkersLayer___wBuxm > * {\n pointer-events: auto;\n}\n\n.styles-module__contextMenu___nDXft {\n position: fixed;\n z-index: 2147483647;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16), 0 1px 4px rgba(0, 0, 0, 0.08);\n padding: 4px;\n min-width: 140px;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n animation: styles-module__fadeIn___PpRqy 0.1s ease-out;\n}\n\n.styles-module__contextMenuItem___69GKu {\n display: block;\n width: 100%;\n padding: 8px 12px;\n border: none;\n background: none;\n font-size: 13px;\n color: #18181b;\n text-align: left;\n cursor: pointer;\n border-radius: 6px;\n font-family: inherit;\n}\n.styles-module__contextMenuItem___69GKu:hover {\n background: #f4f4f5;\n}\n\n@keyframes styles-module__toastIn___V382h {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes styles-module__toastOut___zlqxG {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n.styles-module__toast___gV3Sa {\n position: fixed;\n bottom: 80px;\n right: 24px;\n display: flex;\n align-items: center;\n gap: 8px;\n background: white;\n border: 1px solid #e5e5e5;\n border-radius: 8px;\n padding: 10px 16px;\n font-size: 13px;\n font-weight: 500;\n color: #18181b;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n z-index: 100000;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n animation: styles-module__toastIn___V382h 0.2s ease-out, styles-module__toastOut___zlqxG 0.3s ease-in 2.7s forwards;\n max-width: 320px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.styles-module__toast___gV3Sa span {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.styles-module__toast___gV3Sa.styles-module__toastError___Q-8dn {\n border-color: #fecaca;\n background: #fef2f2;\n color: #991b1b;\n animation: styles-module__toastIn___V382h 0.2s ease-out, styles-module__toastOut___zlqxG 0.3s ease-in 3.7s forwards;\n}\n\n@keyframes styles-module__countdownPulse___ngZrL {\n 0%, 100% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.15);\n }\n}\n.styles-module__countdownOverlay___GruQJ {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n z-index: 100002;\n pointer-events: auto;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n animation: styles-module__fadeIn___PpRqy 0.2s ease-out;\n}\n\n.styles-module__countdownNumber___VAmkI {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n background: rgba(24, 24, 27, 0.9);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 28px;\n font-weight: 700;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);\n animation: styles-module__countdownPulse___ngZrL 1s ease-in-out infinite;\n}\n\n.styles-module__countdownLabel___px-ao {\n font-size: 13px;\n font-weight: 500;\n color: #18181b;\n background: rgba(255, 255, 255, 0.95);\n padding: 6px 14px;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.styles-module__countdownCancel___8cRgZ {\n font-size: 12px;\n color: #6b7280;\n background: rgba(255, 255, 255, 0.9);\n border: 1px solid #d1d5db;\n border-radius: 6px;\n padding: 4px 12px;\n cursor: pointer;\n font-family: inherit;\n transition: background 0.12s;\n}\n.styles-module__countdownCancel___8cRgZ:hover {\n background: #f3f4f6;\n}\n\nhtml.impakers-selecting {\n cursor: crosshair !important;\n}\nhtml.impakers-selecting * {\n cursor: crosshair !important;\n}';
|
|
3654
|
+
var classNames8 = { "markersLayer": "styles-module__markersLayer___VR1cD", "fixedMarkersLayer": "styles-module__fixedMarkersLayer___wBuxm", "fab": "styles-module__fab___6FrCF", "fabEnter": "styles-module__fabEnter___9koyT", "active": "styles-module__active___X5PRD", "hoverHighlight": "styles-module__hoverHighlight___9kGLL", "enter": "styles-module__enter___jAi-c", "hoverHighlightIn": "styles-module__hoverHighlightIn___ljC4F", "singleSelectOutline": "styles-module__singleSelectOutline___2meUm", "fadeIn": "styles-module__fadeIn___PpRqy", "hoverTooltip": "styles-module__hoverTooltip___JE1Bs", "hoverTooltipIn": "styles-module__hoverTooltipIn___tncNM", "hoverReactPath": "styles-module__hoverReactPath___wPGYi", "hoverElementName": "styles-module__hoverElementName___lNqTP", "contextMenu": "styles-module__contextMenu___nDXft", "contextMenuItem": "styles-module__contextMenuItem___69GKu", "toast": "styles-module__toast___gV3Sa", "toastIn": "styles-module__toastIn___V382h", "toastOut": "styles-module__toastOut___zlqxG", "toastError": "styles-module__toastError___Q-8dn", "countdownOverlay": "styles-module__countdownOverlay___GruQJ", "countdownNumber": "styles-module__countdownNumber___VAmkI", "countdownPulse": "styles-module__countdownPulse___ngZrL", "countdownLabel": "styles-module__countdownLabel___px-ao", "countdownCancel": "styles-module__countdownCancel___8cRgZ", "fadeOut": "styles-module__fadeOut___tZb9S" };
|
|
3636
3655
|
if (typeof document !== "undefined") {
|
|
3637
3656
|
let style = document.getElementById("impakers-debug-styles-debug-widget-styles");
|
|
3638
3657
|
if (!style) {
|
|
@@ -3640,12 +3659,12 @@ if (typeof document !== "undefined") {
|
|
|
3640
3659
|
style.id = "impakers-debug-styles-debug-widget-styles";
|
|
3641
3660
|
document.head.appendChild(style);
|
|
3642
3661
|
}
|
|
3643
|
-
style.textContent =
|
|
3662
|
+
style.textContent = css8;
|
|
3644
3663
|
}
|
|
3645
|
-
var
|
|
3664
|
+
var styles_module_default8 = classNames8;
|
|
3646
3665
|
|
|
3647
3666
|
// src/components/debug-widget/index.tsx
|
|
3648
|
-
import { Fragment as Fragment4, jsx as
|
|
3667
|
+
import { Fragment as Fragment4, jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
3649
3668
|
function deepElementFromPoint(x, y) {
|
|
3650
3669
|
let element = document.elementFromPoint(x, y);
|
|
3651
3670
|
if (!element) return null;
|
|
@@ -3764,6 +3783,7 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
3764
3783
|
const [toastError, setToastError] = useState5(null);
|
|
3765
3784
|
const [activeThread, setActiveThread] = useState5(null);
|
|
3766
3785
|
const [threadComments, setThreadComments] = useState5({});
|
|
3786
|
+
const [threadLoading, setThreadLoading] = useState5(false);
|
|
3767
3787
|
const [serverTasks, setServerTasks] = useState5([]);
|
|
3768
3788
|
const [allServerTasks, setAllServerTasks] = useState5([]);
|
|
3769
3789
|
const [showInbox, setShowInbox] = useState5(false);
|
|
@@ -3771,6 +3791,7 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
3771
3791
|
const [settings, setSettings] = useState5(() => loadSettings());
|
|
3772
3792
|
const [routePath, setRoutePath] = useState5(() => window.location.pathname);
|
|
3773
3793
|
const [hasHydratedServerTasks, setHasHydratedServerTasks] = useState5(false);
|
|
3794
|
+
const [newNotiCount, setNewNotiCount] = useState5(0);
|
|
3774
3795
|
const [delayCountdown, setDelayCountdown] = useState5(null);
|
|
3775
3796
|
const delayTimerRef = useRef5(null);
|
|
3776
3797
|
const popupRef = useRef5(null);
|
|
@@ -3870,6 +3891,16 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
3870
3891
|
});
|
|
3871
3892
|
return unsubscribe;
|
|
3872
3893
|
}, [endpoint, routePath]);
|
|
3894
|
+
const LAST_SEEN_KEY = "impakers-debug-history-last-seen";
|
|
3895
|
+
useEffect5(() => {
|
|
3896
|
+
const lastSeen = localStorage.getItem(LAST_SEEN_KEY) || (/* @__PURE__ */ new Date(0)).toISOString();
|
|
3897
|
+
fetchHistory(endpoint, { since: lastSeen, limit: 100 }).then((events) => setNewNotiCount(events.length)).catch(() => {
|
|
3898
|
+
});
|
|
3899
|
+
}, [endpoint]);
|
|
3900
|
+
const handleHistoryViewed = useCallback6(() => {
|
|
3901
|
+
localStorage.setItem(LAST_SEEN_KEY, (/* @__PURE__ */ new Date()).toISOString());
|
|
3902
|
+
setNewNotiCount(0);
|
|
3903
|
+
}, []);
|
|
3873
3904
|
useEffect5(() => {
|
|
3874
3905
|
if (!hasHydratedServerTasks) return;
|
|
3875
3906
|
const serverAnnotations = serverTasks.map(taskToAnnotation).filter((annotation) => annotation !== null);
|
|
@@ -4220,12 +4251,15 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4220
4251
|
const cached = getCachedSnapshot(cacheKey);
|
|
4221
4252
|
if (cached) {
|
|
4222
4253
|
setThreadComments((prev) => ({ ...prev, [activeThread]: cached }));
|
|
4254
|
+
setThreadLoading(false);
|
|
4255
|
+
} else {
|
|
4256
|
+
setThreadLoading(true);
|
|
4223
4257
|
}
|
|
4224
4258
|
const unsubscribe = subscribeCache(cacheKey, (comments) => {
|
|
4225
4259
|
setThreadComments((prev) => ({ ...prev, [activeThread]: comments }));
|
|
4260
|
+
setThreadLoading(false);
|
|
4226
4261
|
});
|
|
4227
|
-
fetchComments(endpoint, activeThread, { staleWhileRevalidate: true }).catch(() =>
|
|
4228
|
-
});
|
|
4262
|
+
fetchComments(endpoint, activeThread, { staleWhileRevalidate: true }).then(() => setThreadLoading(false)).catch(() => setThreadLoading(false));
|
|
4229
4263
|
return unsubscribe;
|
|
4230
4264
|
}, [activeThread, endpoint]);
|
|
4231
4265
|
const handleThreadReply = useCallback6(async (taskId, content, screenshot, file) => {
|
|
@@ -4294,31 +4328,31 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4294
4328
|
id: "comment",
|
|
4295
4329
|
label: "\uD53C\uB4DC\uBC31",
|
|
4296
4330
|
active: isActive,
|
|
4297
|
-
icon: /* @__PURE__ */
|
|
4331
|
+
icon: /* @__PURE__ */ jsx9("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx9("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z" }) })
|
|
4298
4332
|
},
|
|
4299
4333
|
{
|
|
4300
4334
|
id: "delay-capture",
|
|
4301
4335
|
label: "\uB51C\uB808\uC774 \uCEA1\uCC98",
|
|
4302
|
-
icon: /* @__PURE__ */
|
|
4303
|
-
/* @__PURE__ */
|
|
4304
|
-
/* @__PURE__ */
|
|
4336
|
+
icon: /* @__PURE__ */ jsxs9("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
4337
|
+
/* @__PURE__ */ jsx9("circle", { cx: "12", cy: "12", r: "10" }),
|
|
4338
|
+
/* @__PURE__ */ jsx9("polyline", { points: "12 6 12 12 16 14" })
|
|
4305
4339
|
] })
|
|
4306
4340
|
},
|
|
4307
4341
|
{
|
|
4308
4342
|
id: "inbox",
|
|
4309
4343
|
label: "Inbox",
|
|
4310
|
-
badge:
|
|
4311
|
-
icon: /* @__PURE__ */
|
|
4312
|
-
/* @__PURE__ */
|
|
4313
|
-
/* @__PURE__ */
|
|
4344
|
+
badge: newNotiCount || void 0,
|
|
4345
|
+
icon: /* @__PURE__ */ jsxs9("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
4346
|
+
/* @__PURE__ */ jsx9("polyline", { points: "22 12 16 12 14 15 10 15 8 12 2 12" }),
|
|
4347
|
+
/* @__PURE__ */ jsx9("path", { d: "M5.45 5.11L2 12v6a2 2 0 002 2h16a2 2 0 002-2v-6l-3.45-6.89A2 2 0 0016.76 4H7.24a2 2 0 00-1.79 1.11z" })
|
|
4314
4348
|
] })
|
|
4315
4349
|
},
|
|
4316
4350
|
{
|
|
4317
4351
|
id: "settings",
|
|
4318
4352
|
label: "\uC124\uC815",
|
|
4319
|
-
icon: /* @__PURE__ */
|
|
4320
|
-
/* @__PURE__ */
|
|
4321
|
-
/* @__PURE__ */
|
|
4353
|
+
icon: /* @__PURE__ */ jsxs9("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
4354
|
+
/* @__PURE__ */ jsx9("circle", { cx: "12", cy: "12", r: "3" }),
|
|
4355
|
+
/* @__PURE__ */ jsx9("path", { d: "M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 010 2.83 2 2 0 01-2.83 0l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.68a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06A1.65 1.65 0 0019.4 9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z" })
|
|
4322
4356
|
] })
|
|
4323
4357
|
}
|
|
4324
4358
|
];
|
|
@@ -4347,8 +4381,8 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4347
4381
|
const allInboxItems = serverTasks.map((t) => toInboxItem(t, currentPath));
|
|
4348
4382
|
const allRouteItems = allServerTasks.map((t) => toInboxItem(t, ""));
|
|
4349
4383
|
return createPortal3(
|
|
4350
|
-
/* @__PURE__ */
|
|
4351
|
-
/* @__PURE__ */
|
|
4384
|
+
/* @__PURE__ */ jsxs9("div", { "data-impakers-debug": "", children: [
|
|
4385
|
+
/* @__PURE__ */ jsx9(
|
|
4352
4386
|
FabMenu,
|
|
4353
4387
|
{
|
|
4354
4388
|
items: fabItems,
|
|
@@ -4357,7 +4391,7 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4357
4391
|
onDoubleTap: toggleActive
|
|
4358
4392
|
}
|
|
4359
4393
|
),
|
|
4360
|
-
showInbox && /* @__PURE__ */
|
|
4394
|
+
showInbox && /* @__PURE__ */ jsx9(
|
|
4361
4395
|
InboxPanel,
|
|
4362
4396
|
{
|
|
4363
4397
|
pageItems: allInboxItems,
|
|
@@ -4367,10 +4401,12 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4367
4401
|
endpoint,
|
|
4368
4402
|
currentUserName: getUser?.()?.name ? String(getUser().name) : "\uC775\uBA85",
|
|
4369
4403
|
currentUserId: getUser?.()?.id ? String(getUser().id) : void 0,
|
|
4370
|
-
onClose: () => setShowInbox(false)
|
|
4404
|
+
onClose: () => setShowInbox(false),
|
|
4405
|
+
onHistoryViewed: handleHistoryViewed,
|
|
4406
|
+
newNotiCount
|
|
4371
4407
|
}
|
|
4372
4408
|
),
|
|
4373
|
-
showSettings && /* @__PURE__ */
|
|
4409
|
+
showSettings && /* @__PURE__ */ jsx9(
|
|
4374
4410
|
SettingsPanel,
|
|
4375
4411
|
{
|
|
4376
4412
|
settings,
|
|
@@ -4378,11 +4414,11 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4378
4414
|
onClose: () => setShowSettings(false)
|
|
4379
4415
|
}
|
|
4380
4416
|
),
|
|
4381
|
-
isActive && /* @__PURE__ */
|
|
4382
|
-
hoverInfo?.rect && !pendingAnnotation && /* @__PURE__ */
|
|
4417
|
+
isActive && /* @__PURE__ */ jsxs9(Fragment4, { children: [
|
|
4418
|
+
hoverInfo?.rect && !pendingAnnotation && /* @__PURE__ */ jsx9(
|
|
4383
4419
|
"div",
|
|
4384
4420
|
{
|
|
4385
|
-
className: `${
|
|
4421
|
+
className: `${styles_module_default8.hoverHighlight} ${styles_module_default8.enter}`,
|
|
4386
4422
|
style: {
|
|
4387
4423
|
left: hoverInfo.rect.left,
|
|
4388
4424
|
top: hoverInfo.rect.top,
|
|
@@ -4391,24 +4427,24 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4391
4427
|
}
|
|
4392
4428
|
}
|
|
4393
4429
|
),
|
|
4394
|
-
hoverInfo && !pendingAnnotation && /* @__PURE__ */
|
|
4430
|
+
hoverInfo && !pendingAnnotation && /* @__PURE__ */ jsxs9(
|
|
4395
4431
|
"div",
|
|
4396
4432
|
{
|
|
4397
|
-
className: `${
|
|
4433
|
+
className: `${styles_module_default8.hoverTooltip} ${styles_module_default8.enter}`,
|
|
4398
4434
|
style: {
|
|
4399
4435
|
left: Math.min(hoverPosition.x + 14, window.innerWidth - 200),
|
|
4400
4436
|
top: hoverPosition.y + 14
|
|
4401
4437
|
},
|
|
4402
4438
|
children: [
|
|
4403
|
-
hoverInfo.reactComponents && /* @__PURE__ */
|
|
4404
|
-
/* @__PURE__ */
|
|
4439
|
+
hoverInfo.reactComponents && /* @__PURE__ */ jsx9("div", { className: styles_module_default8.hoverReactPath, children: hoverInfo.reactComponents }),
|
|
4440
|
+
/* @__PURE__ */ jsx9("div", { className: styles_module_default8.hoverElementName, children: hoverInfo.elementName })
|
|
4405
4441
|
]
|
|
4406
4442
|
}
|
|
4407
4443
|
),
|
|
4408
|
-
hoveredRect && hoveredMarkerId && /* @__PURE__ */
|
|
4444
|
+
hoveredRect && hoveredMarkerId && /* @__PURE__ */ jsx9(
|
|
4409
4445
|
"div",
|
|
4410
4446
|
{
|
|
4411
|
-
className: `${
|
|
4447
|
+
className: `${styles_module_default8.singleSelectOutline} ${styles_module_default8.enter}`,
|
|
4412
4448
|
style: {
|
|
4413
4449
|
left: hoveredRect.left,
|
|
4414
4450
|
top: hoveredRect.top,
|
|
@@ -4419,16 +4455,16 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4419
4455
|
),
|
|
4420
4456
|
pendingAnnotation?.targetElement && (() => {
|
|
4421
4457
|
const r = pendingAnnotation.targetElement.getBoundingClientRect();
|
|
4422
|
-
return /* @__PURE__ */
|
|
4458
|
+
return /* @__PURE__ */ jsx9(
|
|
4423
4459
|
"div",
|
|
4424
4460
|
{
|
|
4425
|
-
className: `${
|
|
4461
|
+
className: `${styles_module_default8.singleSelectOutline} ${styles_module_default8.enter}`,
|
|
4426
4462
|
style: { left: r.left, top: r.top, width: r.width, height: r.height }
|
|
4427
4463
|
}
|
|
4428
4464
|
);
|
|
4429
4465
|
})()
|
|
4430
4466
|
] }),
|
|
4431
|
-
/* @__PURE__ */
|
|
4467
|
+
/* @__PURE__ */ jsx9("div", { className: styles_module_default8.markersLayer, "data-impakers-debug": "", style: { display: settings.markersVisible ? void 0 : "none" }, children: visibleAnnotations.filter((a) => !a.isFixed).map((annotation, i) => /* @__PURE__ */ jsx9(
|
|
4432
4468
|
AnnotationMarker,
|
|
4433
4469
|
{
|
|
4434
4470
|
annotation,
|
|
@@ -4446,8 +4482,8 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4446
4482
|
},
|
|
4447
4483
|
annotation.id
|
|
4448
4484
|
)) }),
|
|
4449
|
-
/* @__PURE__ */
|
|
4450
|
-
visibleAnnotations.filter((a) => a.isFixed).map((annotation, i) => /* @__PURE__ */
|
|
4485
|
+
/* @__PURE__ */ jsxs9("div", { className: styles_module_default8.fixedMarkersLayer, "data-impakers-debug": "", style: { display: settings.markersVisible ? void 0 : "none" }, children: [
|
|
4486
|
+
visibleAnnotations.filter((a) => a.isFixed).map((annotation, i) => /* @__PURE__ */ jsx9(
|
|
4451
4487
|
AnnotationMarker,
|
|
4452
4488
|
{
|
|
4453
4489
|
annotation,
|
|
@@ -4465,7 +4501,7 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4465
4501
|
},
|
|
4466
4502
|
annotation.id
|
|
4467
4503
|
)),
|
|
4468
|
-
pendingAnnotation && /* @__PURE__ */
|
|
4504
|
+
pendingAnnotation && /* @__PURE__ */ jsx9(
|
|
4469
4505
|
PendingMarker,
|
|
4470
4506
|
{
|
|
4471
4507
|
x: pendingAnnotation.x,
|
|
@@ -4475,7 +4511,7 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4475
4511
|
}
|
|
4476
4512
|
)
|
|
4477
4513
|
] }),
|
|
4478
|
-
pendingAnnotation && /* @__PURE__ */
|
|
4514
|
+
pendingAnnotation && /* @__PURE__ */ jsx9(
|
|
4479
4515
|
AnnotationPopupCSS,
|
|
4480
4516
|
{
|
|
4481
4517
|
ref: popupRef,
|
|
@@ -4510,7 +4546,7 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4510
4546
|
createdAt: taskData?.createdAt || new Date(annotation.timestamp).toISOString(),
|
|
4511
4547
|
comments: threadComments[annotation.id] || []
|
|
4512
4548
|
};
|
|
4513
|
-
return /* @__PURE__ */
|
|
4549
|
+
return /* @__PURE__ */ jsx9(
|
|
4514
4550
|
CommentThread,
|
|
4515
4551
|
{
|
|
4516
4552
|
task,
|
|
@@ -4518,18 +4554,19 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4518
4554
|
currentUserId: getUser?.()?.id ? String(getUser().id) : void 0,
|
|
4519
4555
|
left: threadLeft,
|
|
4520
4556
|
top: threadTop,
|
|
4557
|
+
loading: threadLoading,
|
|
4521
4558
|
onClose: handleThreadClose,
|
|
4522
4559
|
onReply: handleThreadReply
|
|
4523
4560
|
}
|
|
4524
4561
|
);
|
|
4525
4562
|
})(),
|
|
4526
|
-
delayCountdown !== null && /* @__PURE__ */
|
|
4527
|
-
/* @__PURE__ */
|
|
4528
|
-
/* @__PURE__ */
|
|
4529
|
-
/* @__PURE__ */
|
|
4563
|
+
delayCountdown !== null && /* @__PURE__ */ jsxs9("div", { className: styles_module_default8.countdownOverlay, "data-impakers-debug": "", children: [
|
|
4564
|
+
/* @__PURE__ */ jsx9("div", { className: styles_module_default8.countdownNumber, children: delayCountdown }),
|
|
4565
|
+
/* @__PURE__ */ jsx9("div", { className: styles_module_default8.countdownLabel, children: "\uD53C\uB4DC\uBC31 \uBAA8\uB4DC \uD65C\uC131\uD654\uAE4C\uC9C0..." }),
|
|
4566
|
+
/* @__PURE__ */ jsx9(
|
|
4530
4567
|
"button",
|
|
4531
4568
|
{
|
|
4532
|
-
className:
|
|
4569
|
+
className: styles_module_default8.countdownCancel,
|
|
4533
4570
|
onClick: () => {
|
|
4534
4571
|
if (delayTimerRef.current) clearTimeout(delayTimerRef.current);
|
|
4535
4572
|
setDelayCountdown(null);
|
|
@@ -4539,17 +4576,17 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4539
4576
|
}
|
|
4540
4577
|
)
|
|
4541
4578
|
] }),
|
|
4542
|
-
showToast && /* @__PURE__ */
|
|
4543
|
-
/* @__PURE__ */
|
|
4544
|
-
/* @__PURE__ */
|
|
4579
|
+
showToast && /* @__PURE__ */ jsxs9("div", { className: styles_module_default8.toast, "data-impakers-debug": "", children: [
|
|
4580
|
+
/* @__PURE__ */ jsx9("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "#16a34a", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx9("polyline", { points: "20 6 9 17 4 12" }) }),
|
|
4581
|
+
/* @__PURE__ */ jsx9("span", { children: "\uD0DC\uC2A4\uD06C \uC0DD\uC131\uC774 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4" })
|
|
4545
4582
|
] }),
|
|
4546
|
-
toastError && /* @__PURE__ */
|
|
4547
|
-
/* @__PURE__ */
|
|
4548
|
-
/* @__PURE__ */
|
|
4549
|
-
/* @__PURE__ */
|
|
4550
|
-
/* @__PURE__ */
|
|
4583
|
+
toastError && /* @__PURE__ */ jsxs9("div", { className: `${styles_module_default8.toast} ${styles_module_default8.toastError}`, "data-impakers-debug": "", children: [
|
|
4584
|
+
/* @__PURE__ */ jsxs9("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "#ef4444", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
4585
|
+
/* @__PURE__ */ jsx9("circle", { cx: "12", cy: "12", r: "10" }),
|
|
4586
|
+
/* @__PURE__ */ jsx9("line", { x1: "15", y1: "9", x2: "9", y2: "15" }),
|
|
4587
|
+
/* @__PURE__ */ jsx9("line", { x1: "9", y1: "9", x2: "15", y2: "15" })
|
|
4551
4588
|
] }),
|
|
4552
|
-
/* @__PURE__ */
|
|
4589
|
+
/* @__PURE__ */ jsx9("span", { children: toastError })
|
|
4553
4590
|
] })
|
|
4554
4591
|
] }),
|
|
4555
4592
|
document.body
|
|
@@ -4559,7 +4596,7 @@ function DebugWidget({ endpoint, getUser, onHide }) {
|
|
|
4559
4596
|
// src/ui/AuthPromptPortal.tsx
|
|
4560
4597
|
import { useState as useState6, useCallback as useCallback7 } from "react";
|
|
4561
4598
|
import { createPortal as createPortal4 } from "react-dom";
|
|
4562
|
-
import { jsx as
|
|
4599
|
+
import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
4563
4600
|
function AuthPromptPortal({ endpoint, onSuccess, onClose }) {
|
|
4564
4601
|
const [code, setCode] = useState6("");
|
|
4565
4602
|
const [loading, setLoading] = useState6(false);
|
|
@@ -4583,7 +4620,7 @@ function AuthPromptPortal({ endpoint, onSuccess, onClose }) {
|
|
|
4583
4620
|
);
|
|
4584
4621
|
if (typeof document === "undefined") return null;
|
|
4585
4622
|
return createPortal4(
|
|
4586
|
-
/* @__PURE__ */
|
|
4623
|
+
/* @__PURE__ */ jsxs10("div", { "data-impakers-debug": "", style: {
|
|
4587
4624
|
position: "fixed",
|
|
4588
4625
|
inset: 0,
|
|
4589
4626
|
zIndex: 2147483647,
|
|
@@ -4592,7 +4629,7 @@ function AuthPromptPortal({ endpoint, onSuccess, onClose }) {
|
|
|
4592
4629
|
justifyContent: "center",
|
|
4593
4630
|
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif"
|
|
4594
4631
|
}, children: [
|
|
4595
|
-
/* @__PURE__ */
|
|
4632
|
+
/* @__PURE__ */ jsx10(
|
|
4596
4633
|
"div",
|
|
4597
4634
|
{
|
|
4598
4635
|
onClick: onClose,
|
|
@@ -4603,7 +4640,7 @@ function AuthPromptPortal({ endpoint, onSuccess, onClose }) {
|
|
|
4603
4640
|
}
|
|
4604
4641
|
}
|
|
4605
4642
|
),
|
|
4606
|
-
/* @__PURE__ */
|
|
4643
|
+
/* @__PURE__ */ jsxs10("div", { style: {
|
|
4607
4644
|
position: "relative",
|
|
4608
4645
|
width: 360,
|
|
4609
4646
|
background: "white",
|
|
@@ -4611,15 +4648,15 @@ function AuthPromptPortal({ endpoint, onSuccess, onClose }) {
|
|
|
4611
4648
|
boxShadow: "0 16px 48px rgba(0,0,0,0.16)",
|
|
4612
4649
|
overflow: "hidden"
|
|
4613
4650
|
}, children: [
|
|
4614
|
-
/* @__PURE__ */
|
|
4651
|
+
/* @__PURE__ */ jsxs10("div", { style: {
|
|
4615
4652
|
display: "flex",
|
|
4616
4653
|
alignItems: "center",
|
|
4617
4654
|
justifyContent: "space-between",
|
|
4618
4655
|
padding: "16px 20px",
|
|
4619
4656
|
borderBottom: "1px solid #e5e5e5"
|
|
4620
4657
|
}, children: [
|
|
4621
|
-
/* @__PURE__ */
|
|
4622
|
-
/* @__PURE__ */
|
|
4658
|
+
/* @__PURE__ */ jsx10("h3", { style: { fontSize: 15, fontWeight: 600, color: "#18181b", margin: 0 }, children: "\uD53C\uB4DC\uBC31 \uC704\uC82F \uC778\uC99D" }),
|
|
4659
|
+
/* @__PURE__ */ jsx10(
|
|
4623
4660
|
"button",
|
|
4624
4661
|
{
|
|
4625
4662
|
onClick: onClose,
|
|
@@ -4636,12 +4673,12 @@ function AuthPromptPortal({ endpoint, onSuccess, onClose }) {
|
|
|
4636
4673
|
borderRadius: 6,
|
|
4637
4674
|
color: "#71717a"
|
|
4638
4675
|
},
|
|
4639
|
-
children: /* @__PURE__ */
|
|
4676
|
+
children: /* @__PURE__ */ jsx10("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx10("path", { d: "M18 6L6 18M6 6l12 12" }) })
|
|
4640
4677
|
}
|
|
4641
4678
|
)
|
|
4642
4679
|
] }),
|
|
4643
|
-
/* @__PURE__ */
|
|
4644
|
-
/* @__PURE__ */
|
|
4680
|
+
/* @__PURE__ */ jsxs10("div", { style: { padding: 20 }, children: [
|
|
4681
|
+
/* @__PURE__ */ jsxs10("p", { style: {
|
|
4645
4682
|
fontSize: 13,
|
|
4646
4683
|
color: "#71717a",
|
|
4647
4684
|
textAlign: "center",
|
|
@@ -4649,10 +4686,10 @@ function AuthPromptPortal({ endpoint, onSuccess, onClose }) {
|
|
|
4649
4686
|
lineHeight: 1.5
|
|
4650
4687
|
}, children: [
|
|
4651
4688
|
"\uC11C\uBE44\uC2A4 \uC2DC\uD06C\uB9BF \uCF54\uB4DC\uB97C \uC785\uB825\uD574\uC8FC\uC138\uC694.",
|
|
4652
|
-
/* @__PURE__ */
|
|
4689
|
+
/* @__PURE__ */ jsx10("br", {}),
|
|
4653
4690
|
"\uCF54\uB4DC\uB294 \uC784\uD328\uCEE4\uC2A4 OS\uC5D0\uC11C \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."
|
|
4654
4691
|
] }),
|
|
4655
|
-
error && /* @__PURE__ */
|
|
4692
|
+
error && /* @__PURE__ */ jsx10("div", { style: {
|
|
4656
4693
|
background: "#fef2f2",
|
|
4657
4694
|
border: "1px solid #fecaca",
|
|
4658
4695
|
color: "#dc2626",
|
|
@@ -4661,8 +4698,8 @@ function AuthPromptPortal({ endpoint, onSuccess, onClose }) {
|
|
|
4661
4698
|
fontSize: 13,
|
|
4662
4699
|
marginBottom: 12
|
|
4663
4700
|
}, children: error }),
|
|
4664
|
-
/* @__PURE__ */
|
|
4665
|
-
/* @__PURE__ */
|
|
4701
|
+
/* @__PURE__ */ jsxs10("form", { onSubmit: handleSubmit, children: [
|
|
4702
|
+
/* @__PURE__ */ jsx10(
|
|
4666
4703
|
"input",
|
|
4667
4704
|
{
|
|
4668
4705
|
type: "text",
|
|
@@ -4689,7 +4726,7 @@ function AuthPromptPortal({ endpoint, onSuccess, onClose }) {
|
|
|
4689
4726
|
}
|
|
4690
4727
|
}
|
|
4691
4728
|
),
|
|
4692
|
-
/* @__PURE__ */
|
|
4729
|
+
/* @__PURE__ */ jsx10(
|
|
4693
4730
|
"button",
|
|
4694
4731
|
{
|
|
4695
4732
|
type: "submit",
|
|
@@ -4719,7 +4756,7 @@ function AuthPromptPortal({ endpoint, onSuccess, onClose }) {
|
|
|
4719
4756
|
}
|
|
4720
4757
|
|
|
4721
4758
|
// src/react.tsx
|
|
4722
|
-
import { Fragment as Fragment5, jsx as
|
|
4759
|
+
import { Fragment as Fragment5, jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
4723
4760
|
function ImpakersDebugProvider({ endpoint, getUser }) {
|
|
4724
4761
|
const [authenticated, setAuthenticated] = useState7(false);
|
|
4725
4762
|
const [showAuth, setShowAuth] = useState7(false);
|
|
@@ -4793,9 +4830,9 @@ function ImpakersDebugProvider({ endpoint, getUser }) {
|
|
|
4793
4830
|
} catch {
|
|
4794
4831
|
}
|
|
4795
4832
|
}, []);
|
|
4796
|
-
return /* @__PURE__ */
|
|
4797
|
-
authenticated && !hidden && /* @__PURE__ */
|
|
4798
|
-
showAuth && !authenticated && /* @__PURE__ */
|
|
4833
|
+
return /* @__PURE__ */ jsxs11(Fragment5, { children: [
|
|
4834
|
+
authenticated && !hidden && /* @__PURE__ */ jsx11(DebugWidget, { endpoint, getUser, onHide: handleHide }),
|
|
4835
|
+
showAuth && !authenticated && /* @__PURE__ */ jsx11(
|
|
4799
4836
|
AuthPromptPortal,
|
|
4800
4837
|
{
|
|
4801
4838
|
endpoint,
|