@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.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 classNames3 = { "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" };
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 = css3;
2483
+ style.textContent = css4;
2450
2484
  }
2451
- var styles_module_default3 = classNames3;
2485
+ var styles_module_default4 = classNames4;
2452
2486
 
2453
2487
  // src/components/comment-thread/index.tsx
2454
- import { Fragment, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
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(`.${styles_module_default3.thread}`)) return;
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__ */ jsxs4(
2667
+ return /* @__PURE__ */ jsxs5(
2633
2668
  "div",
2634
2669
  {
2635
- className: `${styles_module_default3.thread} ${exiting ? styles_module_default3.exiting : ""}`,
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__ */ jsxs4("div", { className: styles_module_default3.header, children: [
2641
- /* @__PURE__ */ jsx4("div", { className: styles_module_default3.avatar, children: getInitials(task.authorName || currentUserName) }),
2642
- /* @__PURE__ */ jsxs4("div", { className: styles_module_default3.headerInfo, children: [
2643
- /* @__PURE__ */ jsxs4("div", { className: styles_module_default3.headerTop, children: [
2644
- /* @__PURE__ */ jsx4("span", { className: styles_module_default3.authorName, children: task.authorName || currentUserName }),
2645
- /* @__PURE__ */ jsx4("span", { className: styles_module_default3.timestamp, children: formatTime(task.createdAt) })
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__ */ jsx4("div", { className: styles_module_default3.title, children: feedbackTitle })
2682
+ /* @__PURE__ */ jsx5("div", { className: styles_module_default4.title, children: feedbackTitle })
2648
2683
  ] }),
2649
- /* @__PURE__ */ jsx4("div", { className: styles_module_default3.headerActions, children: /* @__PURE__ */ jsx4("button", { className: styles_module_default3.headerAction, onClick: handleClose, title: "\uB2EB\uAE30", type: "button", children: /* @__PURE__ */ jsx4("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx4("path", { d: "M18 6L6 18M6 6l12 12" }) }) }) })
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__ */ jsxs4(Fragment, { children: [
2652
- /* @__PURE__ */ jsx4("div", { className: styles_module_default3.divider }),
2653
- /* @__PURE__ */ jsx4("div", { className: styles_module_default3.commentsList, ref: listRef, children: task.comments.map((comment) => /* @__PURE__ */ jsxs4("div", { className: styles_module_default3.comment, children: [
2654
- /* @__PURE__ */ jsx4("div", { className: styles_module_default3.avatar, style: { width: 22, height: 22, fontSize: 10 }, children: getInitials(comment.authorName) }),
2655
- /* @__PURE__ */ jsxs4("div", { className: styles_module_default3.commentContent, children: [
2656
- /* @__PURE__ */ jsxs4("div", { className: styles_module_default3.commentTop, children: [
2657
- /* @__PURE__ */ jsx4("span", { className: styles_module_default3.commentAuthor, children: comment.authorName }),
2658
- /* @__PURE__ */ jsx4("span", { className: styles_module_default3.commentTime, children: formatTime(comment.createdAt) })
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__ */ jsx4("div", { className: styles_module_default3.commentText, children: comment.content }),
2661
- comment.imageUrl && comment.imageUrl !== "loading..." && /* @__PURE__ */ jsx4(
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: styles_module_default3.screenshot,
2703
+ className: styles_module_default4.screenshot,
2665
2704
  onClick: () => setLightboxSrc(comment.imageUrl),
2666
2705
  style: { cursor: "pointer" },
2667
- children: /* @__PURE__ */ jsx4("img", { src: comment.imageUrl, alt: "screenshot" })
2706
+ children: /* @__PURE__ */ jsx5("img", { src: comment.imageUrl, alt: "screenshot" })
2668
2707
  }
2669
2708
  ),
2670
- comment.fileUrl && /* @__PURE__ */ jsxs4(
2709
+ comment.fileUrl && /* @__PURE__ */ jsxs5(
2671
2710
  "a",
2672
2711
  {
2673
- className: styles_module_default3.fileCard,
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__ */ jsx4("span", { className: styles_module_default3.fileIcon, children: getFileIcon(comment.fileType || "") }),
2680
- /* @__PURE__ */ jsxs4("span", { className: styles_module_default3.fileInfo, children: [
2681
- /* @__PURE__ */ jsx4("span", { className: styles_module_default3.fileCardName, children: comment.fileName || "\uD30C\uC77C" }),
2682
- comment.fileSize != null && /* @__PURE__ */ jsx4("span", { className: styles_module_default3.fileCardSize, children: formatFileSize(comment.fileSize) })
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__ */ jsxs4("div", { className: styles_module_default3.pendingImage, children: [
2691
- /* @__PURE__ */ jsx4("img", { src: pendingImage, alt: "pending" }),
2692
- /* @__PURE__ */ jsx4("button", { className: styles_module_default3.pendingRemove, onClick: () => setPendingImage(null), type: "button", children: "\xD7" })
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__ */ jsxs4("div", { className: styles_module_default3.pendingFile, children: [
2695
- /* @__PURE__ */ jsx4("span", { className: styles_module_default3.fileIcon, children: getFileIcon(pendingFile.type) }),
2696
- /* @__PURE__ */ jsxs4("span", { className: styles_module_default3.fileInfo, children: [
2697
- /* @__PURE__ */ jsx4("span", { className: styles_module_default3.fileCardName, children: pendingFile.name }),
2698
- /* @__PURE__ */ jsx4("span", { className: styles_module_default3.fileCardSize, children: formatFileSize(pendingFile.size) })
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__ */ jsx4("button", { className: styles_module_default3.pendingRemove, onClick: () => setPendingFile(null), type: "button", children: "\xD7" })
2739
+ /* @__PURE__ */ jsx5("button", { className: styles_module_default4.pendingRemove, onClick: () => setPendingFile(null), type: "button", children: "\xD7" })
2701
2740
  ] }),
2702
- /* @__PURE__ */ jsx4("div", { className: styles_module_default3.replyArea, children: /* @__PURE__ */ jsx4(
2741
+ /* @__PURE__ */ jsx5("div", { className: styles_module_default4.replyArea, children: /* @__PURE__ */ jsx5(
2703
2742
  "textarea",
2704
2743
  {
2705
2744
  ref: textareaRef,
2706
- className: styles_module_default3.replyInput,
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__ */ jsxs4("div", { className: styles_module_default3.replyToolbar, children: [
2720
- /* @__PURE__ */ jsx4("button", { className: styles_module_default3.replyTool, onClick: handleAttachClick, type: "button", title: "\uD30C\uC77C \uCCA8\uBD80", children: /* @__PURE__ */ jsxs4("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
2721
- /* @__PURE__ */ jsx4("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
2722
- /* @__PURE__ */ jsx4("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
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__ */ jsx4("button", { className: styles_module_default3.replyTool, onClick: handleCameraClick, type: "button", title: "\uC694\uC18C \uC2A4\uD06C\uB9B0\uC0F7", children: /* @__PURE__ */ jsxs4("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
2725
- /* @__PURE__ */ jsx4("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" }),
2726
- /* @__PURE__ */ jsx4("circle", { cx: "12", cy: "13", r: "3" })
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__ */ jsx4(
2767
+ /* @__PURE__ */ jsx5(
2729
2768
  "button",
2730
2769
  {
2731
- className: `${styles_module_default3.replySend} ${replyText.trim() || pendingImage || pendingFile ? styles_module_default3.active : ""}`,
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__ */ jsxs4("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
2737
- /* @__PURE__ */ jsx4("line", { x1: "22", y1: "2", x2: "11", y2: "13" }),
2738
- /* @__PURE__ */ jsx4("polygon", { points: "22 2 15 22 11 13 2 9 22 2" })
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__ */ jsx4(
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__ */ jsxs4("div", { className: styles_module_default3.lightbox, onClick: () => setLightboxSrc(null), "data-impakers-debug": "", children: [
2754
- /* @__PURE__ */ jsx4("img", { src: lightboxSrc, alt: "enlarged", onClick: (e) => e.stopPropagation() }),
2755
- /* @__PURE__ */ jsx4("button", { className: styles_module_default3.lightboxClose, onClick: () => setLightboxSrc(null), type: "button", children: "\xD7" })
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 css4 = '@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}';
2767
- var classNames4 = { "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" };
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 = css4;
2814
+ style.textContent = css5;
2776
2815
  }
2777
- var styles_module_default4 = classNames4;
2816
+ var styles_module_default5 = classNames5;
2778
2817
 
2779
2818
  // src/components/fab-menu/index.tsx
2780
- import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
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__ */ jsxs5(Fragment2, { children: [
2860
- (expanded || closing) && /* @__PURE__ */ jsx5(
2898
+ return /* @__PURE__ */ jsxs6(Fragment2, { children: [
2899
+ (expanded || closing) && /* @__PURE__ */ jsx6(
2861
2900
  "div",
2862
2901
  {
2863
- className: styles_module_default4.menuItems,
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__ */ jsxs5(
2912
+ children: [...items].reverse().map((item, i) => /* @__PURE__ */ jsxs6(
2874
2913
  "button",
2875
2914
  {
2876
- className: `${styles_module_default4.menuItem} ${item.active ? styles_module_default4.active : ""} ${closing ? styles_module_default4.menuItemClosing : ""}`,
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__ */ jsx5("span", { className: styles_module_default4.tooltip, children: item.label }),
2889
- item.badge && item.badge > 0 ? /* @__PURE__ */ jsx5("span", { className: styles_module_default4.badge, children: item.badge > 99 ? "99+" : item.badge }) : null
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__ */ jsx5(
2935
+ /* @__PURE__ */ jsx6(
2897
2936
  "button",
2898
2937
  {
2899
2938
  ref: fabRef,
2900
- className: `${styles_module_default4.fab} ${expanded ? styles_module_default4.expanded : ""}`,
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__ */ jsxs5("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
2911
- /* @__PURE__ */ jsx5("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
2912
- /* @__PURE__ */ jsx5("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
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__ */ jsx5(
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__ */ jsx5(
2962
+ children: /* @__PURE__ */ jsx6(
2924
2963
  "div",
2925
2964
  {
2926
- className: styles_module_default4.contextMenu,
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__ */ jsx5(
2969
+ children: /* @__PURE__ */ jsx6(
2931
2970
  "button",
2932
2971
  {
2933
- className: styles_module_default4.contextMenuItem,
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, useMemo } from "react";
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 classNames5 = { "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_started": "styles-module__historyDot_started___0FJa0", "historyDot_completed": "styles-module__historyDot_completed___q-WGH", "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" };
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 = css5;
3003
+ style.textContent = css6;
2965
3004
  }
2966
- var styles_module_default5 = classNames5;
3005
+ var styles_module_default6 = classNames6;
2967
3006
 
2968
3007
  // src/components/inbox-panel/index.tsx
2969
- import { Fragment as Fragment3, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
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__ */ jsxs6("div", { className: styles_module_default5.lightbox, onClick: onClose, "data-impakers-debug": "", children: [
2979
- /* @__PURE__ */ jsx6("img", { src, alt: "enlarged", onClick: (e) => e.stopPropagation() }),
2980
- /* @__PURE__ */ jsx6("button", { className: styles_module_default5.lightboxClose, onClick: onClose, type: "button", children: "\xD7" })
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__ */ jsx6("div", { className: styles_module_default5.filePreviewOverlay, onClick: onClose, "data-impakers-debug": "", children: /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.filePreviewModal, onClick: (e) => e.stopPropagation(), children: [
3030
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.filePreviewHeader, children: [
3031
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.filePreviewName, children: fileName }),
3032
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.filePreviewActions, children: [
3033
- /* @__PURE__ */ jsxs6("a", { href: fileUrl, target: "_blank", rel: "noopener noreferrer", className: styles_module_default5.filePreviewOpen, children: [
3034
- /* @__PURE__ */ jsxs6("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "14", height: "14", children: [
3035
- /* @__PURE__ */ jsx6("path", { d: "M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6" }),
3036
- /* @__PURE__ */ jsx6("polyline", { points: "15 3 21 3 21 9" }),
3037
- /* @__PURE__ */ jsx6("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
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__ */ jsx6("button", { className: styles_module_default5.filePreviewClose, onClick: onClose, type: "button", children: "\xD7" })
3080
+ /* @__PURE__ */ jsx7("button", { className: styles_module_default6.filePreviewClose, onClick: onClose, type: "button", children: "\xD7" })
3042
3081
  ] })
3043
3082
  ] }),
3044
- /* @__PURE__ */ jsx6("div", { className: styles_module_default5.filePreviewBody, children: previewSrc ? /* @__PURE__ */ jsx6("iframe", { src: previewSrc, className: styles_module_default5.filePreviewIframe, title: fileName }) : /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.filePreviewFallback, children: [
3045
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.filePreviewFallbackIcon, children: getFileIcon2(fileType) }),
3046
- /* @__PURE__ */ jsx6("span", { children: "\uBBF8\uB9AC\uBCF4\uAE30\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uD30C\uC77C \uD615\uC2DD\uC785\uB2C8\uB2E4" }),
3047
- /* @__PURE__ */ jsx6("a", { href: fileUrl, target: "_blank", rel: "noopener noreferrer", children: "\uD30C\uC77C \uC5F4\uAE30" })
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
- const historyEvents = useMemo(() => {
3168
- const allSrc = allItems.length > 0 ? allItems : pageItems;
3169
- const events = [];
3170
- for (const item of allSrc) {
3171
- events.push({
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__ */ jsxs6("div", { "data-impakers-debug": "", children: [
3207
- /* @__PURE__ */ jsx6("div", { className: styles_module_default5.backdrop, onClick: handleClose }),
3208
- /* @__PURE__ */ jsxs6("div", { className: `${styles_module_default5.panel} ${exiting ? styles_module_default5.exiting : ""}`, "data-impakers-debug": "", children: [
3209
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.header, children: [
3210
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.headerLeft, children: [
3211
- selectedItem && /* @__PURE__ */ jsx6("button", { className: styles_module_default5.backBtn, onClick: handleClose, type: "button", children: /* @__PURE__ */ jsx6("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "16", height: "16", children: /* @__PURE__ */ jsx6("polyline", { points: "15 18 9 12 15 6" }) }) }),
3212
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.headerTitle, children: selectedItem ? selectedItem.title.replace(/^\[피드백\]\s*/, "") : serviceName || "Feedback" })
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__ */ jsx6("button", { className: styles_module_default5.closeBtn, onClick: () => {
3225
+ /* @__PURE__ */ jsx7("button", { className: styles_module_default6.closeBtn, onClick: () => {
3215
3226
  setExiting(true);
3216
3227
  setTimeout(() => onClose(), 150);
3217
- }, type: "button", children: /* @__PURE__ */ jsx6("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx6("path", { d: "M18 6L6 18M6 6l12 12" }) }) })
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__ */ jsxs6("div", { className: styles_module_default5.detailView, children: [
3220
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.detailHeader, children: [
3221
- /* @__PURE__ */ jsx6("div", { className: styles_module_default5.cardAvatar, children: getInitials2(selectedItem.authorName) }),
3222
- /* @__PURE__ */ jsxs6("div", { children: [
3223
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.cardMeta, children: [
3224
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.cardAuthor, children: selectedItem.authorName }),
3225
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.cardTime, children: formatTime2(selectedItem.createdAt) })
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__ */ jsx6("div", { className: styles_module_default5.detailTitle, children: selectedItem.title.replace(/^\[피드백\]\s*/, "") })
3238
+ /* @__PURE__ */ jsx7("div", { className: styles_module_default6.detailTitle, children: selectedItem.title.replace(/^\[피드백\]\s*/, "") })
3228
3239
  ] })
3229
3240
  ] }),
3230
- selectedItem.screenshot && /* @__PURE__ */ jsx6("div", { className: styles_module_default5.detailScreenshot, children: /* @__PURE__ */ jsx6("img", { src: selectedItem.screenshot, alt: "screenshot" }) }),
3231
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.commentsList, children: [
3232
- loadingComments && /* @__PURE__ */ jsx6("div", { className: styles_module_default5.loadingComments, children: "\uB313\uAE00 \uB85C\uB529 \uC911..." }),
3233
- !loadingComments && comments.length === 0 && /* @__PURE__ */ jsx6("div", { className: styles_module_default5.noComments, children: "\uC544\uC9C1 \uB313\uAE00\uC774 \uC5C6\uC2B5\uB2C8\uB2E4" }),
3234
- comments.map((c) => /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.commentItem, children: [
3235
- /* @__PURE__ */ jsx6("div", { className: styles_module_default5.commentAvatar, style: { width: 22, height: 22, fontSize: 10 }, children: getInitials2(c.authorName) }),
3236
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.commentBody, children: [
3237
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.commentMeta, children: [
3238
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.commentAuthorName, children: c.authorName }),
3239
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.commentTime, children: formatTime2(c.createdAt) })
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__ */ jsx6("div", { className: styles_module_default5.commentContent, children: c.content }),
3242
- c.imageUrl && /* @__PURE__ */ jsx6(
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: styles_module_default5.commentImage,
3256
+ className: styles_module_default6.commentImage,
3246
3257
  onClick: (e) => {
3247
3258
  e.stopPropagation();
3248
3259
  setLightboxSrc(c.imageUrl);
3249
3260
  },
3250
- children: /* @__PURE__ */ jsx6("img", { src: c.imageUrl, alt: "attachment" })
3261
+ children: /* @__PURE__ */ jsx7("img", { src: c.imageUrl, alt: "attachment" })
3251
3262
  }
3252
3263
  ),
3253
- c.fileUrl && /* @__PURE__ */ jsxs6(
3264
+ c.fileUrl && /* @__PURE__ */ jsxs7(
3254
3265
  "div",
3255
3266
  {
3256
- className: styles_module_default5.commentFileCard,
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__ */ jsx6("span", { className: styles_module_default5.commentFileIcon, children: getFileIcon2(c.fileType || "") }),
3268
- /* @__PURE__ */ jsxs6("span", { className: styles_module_default5.commentFileInfo, children: [
3269
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.commentFileName, children: c.fileName || "\uD30C\uC77C" }),
3270
- c.fileSize != null && /* @__PURE__ */ jsx6("span", { className: styles_module_default5.commentFileSize, children: formatFileSize2(c.fileSize) })
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__ */ jsx6("div", { ref: commentsEndRef })
3288
+ /* @__PURE__ */ jsx7("div", { ref: commentsEndRef })
3278
3289
  ] }),
3279
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.replyBox, children: [
3280
- /* @__PURE__ */ jsx6(
3290
+ /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.replyBox, children: [
3291
+ /* @__PURE__ */ jsx7(
3281
3292
  "textarea",
3282
3293
  {
3283
3294
  ref: replyRef,
3284
- className: styles_module_default5.replyInput,
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__ */ jsx6(
3308
+ /* @__PURE__ */ jsx7(
3298
3309
  "button",
3299
3310
  {
3300
- className: `${styles_module_default5.sendBtn} ${replyText.trim() ? styles_module_default5.active : ""}`,
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__ */ jsxs6("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "16", height: "16", children: [
3305
- /* @__PURE__ */ jsx6("line", { x1: "22", y1: "2", x2: "11", y2: "13" }),
3306
- /* @__PURE__ */ jsx6("polygon", { points: "22 2 15 22 11 13 2 9 22 2" })
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__ */ jsxs6(Fragment3, { children: [
3312
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.tabs, children: [
3313
- /* @__PURE__ */ jsxs6("button", { className: `${styles_module_default5.tab} ${tab === "page" ? styles_module_default5.active : ""}`, onClick: () => setTab("page"), type: "button", children: [
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__ */ jsx6("span", { className: styles_module_default5.tabBadge, children: pageItems.length })
3326
+ pageItems.length > 0 && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.tabBadge, children: pageItems.length })
3316
3327
  ] }),
3317
- /* @__PURE__ */ jsxs6("button", { className: `${styles_module_default5.tab} ${tab === "all" ? styles_module_default5.active : ""}`, onClick: () => setTab("all"), type: "button", children: [
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__ */ jsx6("span", { className: styles_module_default5.tabBadge, children: allItems.length })
3330
+ allItems.length > 0 && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.tabBadge, children: allItems.length })
3320
3331
  ] }),
3321
- /* @__PURE__ */ jsx6("button", { className: `${styles_module_default5.tab} ${tab === "history" ? styles_module_default5.active : ""}`, onClick: () => setTab("history"), type: "button", children: "History" })
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__ */ jsxs6(Fragment3, { children: [
3326
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.historyFilter, children: [
3327
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.historyDateWrap, ref: datePickerRef, children: [
3328
- /* @__PURE__ */ jsxs6(
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: `${styles_module_default5.filterChip} ${historyDate ? styles_module_default5.active : ""}`,
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__ */ jsxs6("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "13", height: "13", children: [
3336
- /* @__PURE__ */ jsx6("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }),
3337
- /* @__PURE__ */ jsx6("line", { x1: "16", y1: "2", x2: "16", y2: "6" }),
3338
- /* @__PURE__ */ jsx6("line", { x1: "8", y1: "2", x2: "8", y2: "6" }),
3339
- /* @__PURE__ */ jsx6("line", { x1: "3", y1: "10", x2: "21", y2: "10" })
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__ */ jsx6("div", { className: styles_module_default5.datePopover, children: /* @__PURE__ */ jsx6(
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: styles_module_default5.dateInput,
3371
+ className: styles_module_default6.dateInput,
3355
3372
  autoFocus: true
3356
3373
  }
3357
3374
  ) })
3358
3375
  ] }),
3359
- historyDate && /* @__PURE__ */ jsx6(
3376
+ historyDate && /* @__PURE__ */ jsx7(
3360
3377
  "button",
3361
3378
  {
3362
- className: styles_module_default5.filterChipClear,
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__ */ jsx6("div", { className: styles_module_default5.content, children: historyEvents.length === 0 ? /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.empty, children: [
3371
- /* @__PURE__ */ jsx6("div", { className: styles_module_default5.emptyIcon, children: /* @__PURE__ */ jsxs6("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
3372
- /* @__PURE__ */ jsx6("circle", { cx: "12", cy: "12", r: "10" }),
3373
- /* @__PURE__ */ jsx6("polyline", { points: "12 6 12 12 16 14" })
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__ */ jsxs6("div", { className: styles_module_default5.historyItem, children: [
3377
- /* @__PURE__ */ jsx6("div", { className: `${styles_module_default5.historyDot} ${styles_module_default5[`historyDot_${ev.event}`]}` }),
3378
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.historyBody, children: [
3379
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.historyMeta, children: [
3380
- /* @__PURE__ */ jsxs6("span", { className: styles_module_default5.historyEvent, children: [
3381
- ev.event === "created" && "\uD53C\uB4DC\uBC31 \uC0DD\uC131",
3382
- ev.event === "started" && "\uC9C4\uD589 \uC2DC\uC791",
3383
- ev.event === "completed" && "\uC644\uB8CC \uCC98\uB9AC"
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__ */ jsx6("span", { className: styles_module_default5.historyTime, children: formatTime2(ev.timestamp) })
3404
+ /* @__PURE__ */ jsx7("span", { className: styles_module_default6.historyTime, children: formatTime2(ev.createdAt) })
3386
3405
  ] }),
3387
- /* @__PURE__ */ jsx6("div", { className: styles_module_default5.historyTitle, children: ev.title.replace(/^\[피드백\]\s*/, "") }),
3388
- ev.feedbackUrl && /* @__PURE__ */ jsx6("div", { className: styles_module_default5.historyUrl, children: ev.feedbackUrl })
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.event}-${i}`)) })
3409
+ ] }, `${ev.id}-${ev.action}-${i}`)) })
3391
3410
  ] })
3392
- ) : /* @__PURE__ */ jsxs6(Fragment3, { children: [
3393
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.statusFilter, children: [
3394
- /* @__PURE__ */ jsxs6(
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: `${styles_module_default5.filterChip} ${statusFilter === "todo" ? styles_module_default5.active : ""}`,
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__ */ jsx6("span", { className: styles_module_default5.filterCount, children: todoCount })
3421
+ todoCount > 0 && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.filterCount, children: todoCount })
3403
3422
  ]
3404
3423
  }
3405
3424
  ),
3406
- /* @__PURE__ */ jsxs6(
3425
+ /* @__PURE__ */ jsxs7(
3407
3426
  "button",
3408
3427
  {
3409
- className: `${styles_module_default5.filterChip} ${statusFilter === "in_progress" ? styles_module_default5.active : ""}`,
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__ */ jsx6("span", { className: styles_module_default5.filterCount, children: inProgressCount })
3433
+ inProgressCount > 0 && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.filterCount, children: inProgressCount })
3415
3434
  ]
3416
3435
  }
3417
3436
  ),
3418
- /* @__PURE__ */ jsxs6(
3437
+ /* @__PURE__ */ jsxs7(
3419
3438
  "button",
3420
3439
  {
3421
- className: `${styles_module_default5.filterChip} ${statusFilter === "done" ? styles_module_default5.active : ""}`,
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__ */ jsx6("span", { className: styles_module_default5.filterCount, children: doneCount })
3445
+ doneCount > 0 && /* @__PURE__ */ jsx7("span", { className: styles_module_default6.filterCount, children: doneCount })
3427
3446
  ]
3428
3447
  }
3429
3448
  )
3430
3449
  ] }),
3431
- /* @__PURE__ */ jsx6("div", { className: styles_module_default5.content, children: items.length === 0 ? /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.empty, children: [
3432
- /* @__PURE__ */ jsx6("div", { className: styles_module_default5.emptyIcon, children: /* @__PURE__ */ jsx6("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx6("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z" }) }) }),
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__ */ jsxs6("div", { className: `${styles_module_default5.card} ${item.status === "done" ? styles_module_default5.cardDone : ""}`, onClick: () => handleItemClick(item), children: [
3435
- /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.cardHeader, children: [
3436
- /* @__PURE__ */ jsx6("div", { className: styles_module_default5.cardAvatar, children: getInitials2(item.authorName) }),
3437
- /* @__PURE__ */ jsx6("div", { className: styles_module_default5.cardInfo, children: /* @__PURE__ */ jsxs6("div", { className: styles_module_default5.cardMeta, children: [
3438
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.cardAuthor, children: item.authorName }),
3439
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.cardTime, children: formatTime2(item.createdAt) })
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__ */ jsx6("div", { className: styles_module_default5.cardTitle, children: item.title.replace(/^\[피드백\]\s*/, "") }),
3443
- item.screenshot && /* @__PURE__ */ jsx6("div", { className: styles_module_default5.cardScreenshot, children: /* @__PURE__ */ jsx6("img", { src: item.screenshot, alt: "screenshot" }) }),
3444
- tab === "all" && item.feedbackUrl && /* @__PURE__ */ jsxs6(
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: styles_module_default5.cardRoute,
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__ */ jsx6("span", { className: styles_module_default5.cardRoutePath, children: item.feedbackUrl }),
3455
- /* @__PURE__ */ jsxs6("svg", { className: styles_module_default5.cardRouteIcon, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "12", height: "12", children: [
3456
- /* @__PURE__ */ jsx6("path", { d: "M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6" }),
3457
- /* @__PURE__ */ jsx6("polyline", { points: "15 3 21 3 21 9" }),
3458
- /* @__PURE__ */ jsx6("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
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__ */ jsxs6("div", { className: styles_module_default5.cardStatusTime, children: [
3464
- item.startedAt && item.status !== "todo" && /* @__PURE__ */ jsxs6("span", { children: [
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__ */ jsxs6("span", { children: [
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__ */ jsxs6("div", { className: styles_module_default5.cardFooter, children: [
3474
- /* @__PURE__ */ jsx6("span", { className: styles_module_default5.cardReplyDot }),
3475
- /* @__PURE__ */ jsxs6("span", { className: styles_module_default5.cardReplyCount, children: [
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__ */ jsx6(ImageLightbox, { src: lightboxSrc, onClose: () => setLightboxSrc(null) }),
3486
- filePreview && /* @__PURE__ */ jsx6(
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 css6 = '@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}';
3539
- var classNames6 = { "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" };
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 = css6;
3566
+ style.textContent = css7;
3548
3567
  }
3549
- var styles_module_default6 = classNames6;
3568
+ var styles_module_default7 = classNames7;
3550
3569
 
3551
3570
  // src/components/settings-panel/index.tsx
3552
- import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
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__ */ jsxs7("div", { "data-impakers-debug": "", children: [
3569
- /* @__PURE__ */ jsx7("div", { className: styles_module_default6.backdrop, onClick: onClose }),
3570
- /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.panel, "data-impakers-debug": "", children: [
3571
- /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.header, children: [
3572
- /* @__PURE__ */ jsx7("span", { className: styles_module_default6.title, children: "\uC124\uC815" }),
3573
- /* @__PURE__ */ jsx7("button", { className: styles_module_default6.closeBtn, onClick: onClose, type: "button", children: /* @__PURE__ */ jsx7("svg", { width: "16", height: "16", 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" }) }) })
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__ */ jsxs7("div", { className: styles_module_default6.body, children: [
3576
- /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.field, children: [
3577
- /* @__PURE__ */ jsx7("div", { className: styles_module_default6.fieldLabel, children: "\uB9C8\uCEE4 \uD45C\uC2DC" }),
3578
- /* @__PURE__ */ jsx7(
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: `${styles_module_default6.toggle} ${settings.markersVisible ? styles_module_default6.on : ""}`,
3600
+ className: `${styles_module_default7.toggle} ${settings.markersVisible ? styles_module_default7.on : ""}`,
3582
3601
  onClick: handleToggleMarkers,
3583
3602
  type: "button",
3584
- children: /* @__PURE__ */ jsx7("span", { className: styles_module_default6.toggleThumb })
3603
+ children: /* @__PURE__ */ jsx8("span", { className: styles_module_default7.toggleThumb })
3585
3604
  }
3586
3605
  )
3587
3606
  ] }),
3588
- /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.field, children: [
3589
- /* @__PURE__ */ jsx7("div", { className: styles_module_default6.fieldLabel, children: "\uC644\uB8CC \uD540 \uC228\uAE30\uAE30" }),
3590
- /* @__PURE__ */ jsx7(
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: `${styles_module_default6.toggle} ${settings.hideDoneMarkers ? styles_module_default6.on : ""}`,
3612
+ className: `${styles_module_default7.toggle} ${settings.hideDoneMarkers ? styles_module_default7.on : ""}`,
3594
3613
  onClick: handleToggleHideDone,
3595
3614
  type: "button",
3596
- children: /* @__PURE__ */ jsx7("span", { className: styles_module_default6.toggleThumb })
3615
+ children: /* @__PURE__ */ jsx8("span", { className: styles_module_default7.toggleThumb })
3597
3616
  }
3598
3617
  )
3599
3618
  ] }),
3600
- /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.field, children: [
3601
- /* @__PURE__ */ jsx7("div", { className: styles_module_default6.fieldLabel, children: "\uB0B4\uAC00 \uCD94\uAC00\uD55C \uAC83\uB9CC" }),
3602
- /* @__PURE__ */ jsx7(
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: `${styles_module_default6.toggle} ${settings.showOnlyMine ? styles_module_default6.on : ""}`,
3624
+ className: `${styles_module_default7.toggle} ${settings.showOnlyMine ? styles_module_default7.on : ""}`,
3606
3625
  onClick: handleToggleShowOnlyMine,
3607
3626
  type: "button",
3608
- children: /* @__PURE__ */ jsx7("span", { className: styles_module_default6.toggleThumb })
3627
+ children: /* @__PURE__ */ jsx8("span", { className: styles_module_default7.toggleThumb })
3609
3628
  }
3610
3629
  )
3611
3630
  ] }),
3612
- /* @__PURE__ */ jsxs7("div", { className: styles_module_default6.field, children: [
3613
- /* @__PURE__ */ jsx7("div", { className: styles_module_default6.fieldLabel, children: "\uB9C8\uCEE4 \uC0C9\uC0C1" }),
3614
- /* @__PURE__ */ jsx7("div", { className: styles_module_default6.colors, children: MARKER_COLORS.map((c) => /* @__PURE__ */ jsx7(
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: `${styles_module_default6.colorBtn} ${settings.markerColor === c.value ? styles_module_default6.selected : ""}`,
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 css7 = '.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}';
3635
- var classNames7 = { "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" };
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 = css7;
3662
+ style.textContent = css8;
3644
3663
  }
3645
- var styles_module_default7 = classNames7;
3664
+ var styles_module_default8 = classNames8;
3646
3665
 
3647
3666
  // src/components/debug-widget/index.tsx
3648
- import { Fragment as Fragment4, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
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__ */ jsx8("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z" }) })
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__ */ jsxs8("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
4303
- /* @__PURE__ */ jsx8("circle", { cx: "12", cy: "12", r: "10" }),
4304
- /* @__PURE__ */ jsx8("polyline", { points: "12 6 12 12 16 14" })
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: annotations.length || void 0,
4311
- icon: /* @__PURE__ */ jsxs8("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
4312
- /* @__PURE__ */ jsx8("polyline", { points: "22 12 16 12 14 15 10 15 8 12 2 12" }),
4313
- /* @__PURE__ */ jsx8("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" })
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__ */ jsxs8("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
4320
- /* @__PURE__ */ jsx8("circle", { cx: "12", cy: "12", r: "3" }),
4321
- /* @__PURE__ */ jsx8("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" })
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__ */ jsxs8("div", { "data-impakers-debug": "", children: [
4351
- /* @__PURE__ */ jsx8(
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__ */ jsx8(
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__ */ jsx8(
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__ */ jsxs8(Fragment4, { children: [
4382
- hoverInfo?.rect && !pendingAnnotation && /* @__PURE__ */ jsx8(
4417
+ isActive && /* @__PURE__ */ jsxs9(Fragment4, { children: [
4418
+ hoverInfo?.rect && !pendingAnnotation && /* @__PURE__ */ jsx9(
4383
4419
  "div",
4384
4420
  {
4385
- className: `${styles_module_default7.hoverHighlight} ${styles_module_default7.enter}`,
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__ */ jsxs8(
4430
+ hoverInfo && !pendingAnnotation && /* @__PURE__ */ jsxs9(
4395
4431
  "div",
4396
4432
  {
4397
- className: `${styles_module_default7.hoverTooltip} ${styles_module_default7.enter}`,
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__ */ jsx8("div", { className: styles_module_default7.hoverReactPath, children: hoverInfo.reactComponents }),
4404
- /* @__PURE__ */ jsx8("div", { className: styles_module_default7.hoverElementName, children: hoverInfo.elementName })
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__ */ jsx8(
4444
+ hoveredRect && hoveredMarkerId && /* @__PURE__ */ jsx9(
4409
4445
  "div",
4410
4446
  {
4411
- className: `${styles_module_default7.singleSelectOutline} ${styles_module_default7.enter}`,
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__ */ jsx8(
4458
+ return /* @__PURE__ */ jsx9(
4423
4459
  "div",
4424
4460
  {
4425
- className: `${styles_module_default7.singleSelectOutline} ${styles_module_default7.enter}`,
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__ */ jsx8("div", { className: styles_module_default7.markersLayer, "data-impakers-debug": "", style: { display: settings.markersVisible ? void 0 : "none" }, children: visibleAnnotations.filter((a) => !a.isFixed).map((annotation, i) => /* @__PURE__ */ jsx8(
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__ */ jsxs8("div", { className: styles_module_default7.fixedMarkersLayer, "data-impakers-debug": "", style: { display: settings.markersVisible ? void 0 : "none" }, children: [
4450
- visibleAnnotations.filter((a) => a.isFixed).map((annotation, i) => /* @__PURE__ */ jsx8(
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__ */ jsx8(
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__ */ jsx8(
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__ */ jsx8(
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__ */ jsxs8("div", { className: styles_module_default7.countdownOverlay, "data-impakers-debug": "", children: [
4527
- /* @__PURE__ */ jsx8("div", { className: styles_module_default7.countdownNumber, children: delayCountdown }),
4528
- /* @__PURE__ */ jsx8("div", { className: styles_module_default7.countdownLabel, children: "\uD53C\uB4DC\uBC31 \uBAA8\uB4DC \uD65C\uC131\uD654\uAE4C\uC9C0..." }),
4529
- /* @__PURE__ */ jsx8(
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: styles_module_default7.countdownCancel,
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__ */ jsxs8("div", { className: styles_module_default7.toast, "data-impakers-debug": "", children: [
4543
- /* @__PURE__ */ jsx8("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "#16a34a", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("polyline", { points: "20 6 9 17 4 12" }) }),
4544
- /* @__PURE__ */ jsx8("span", { children: "\uD0DC\uC2A4\uD06C \uC0DD\uC131\uC774 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4" })
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__ */ jsxs8("div", { className: `${styles_module_default7.toast} ${styles_module_default7.toastError}`, "data-impakers-debug": "", children: [
4547
- /* @__PURE__ */ jsxs8("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "#ef4444", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
4548
- /* @__PURE__ */ jsx8("circle", { cx: "12", cy: "12", r: "10" }),
4549
- /* @__PURE__ */ jsx8("line", { x1: "15", y1: "9", x2: "9", y2: "15" }),
4550
- /* @__PURE__ */ jsx8("line", { x1: "9", y1: "9", x2: "15", y2: "15" })
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__ */ jsx8("span", { children: toastError })
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 jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
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__ */ jsxs9("div", { "data-impakers-debug": "", style: {
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__ */ jsx9(
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__ */ jsxs9("div", { style: {
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__ */ jsxs9("div", { style: {
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__ */ jsx9("h3", { style: { fontSize: 15, fontWeight: 600, color: "#18181b", margin: 0 }, children: "\uD53C\uB4DC\uBC31 \uC704\uC82F \uC778\uC99D" }),
4622
- /* @__PURE__ */ jsx9(
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__ */ jsx9("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx9("path", { d: "M18 6L6 18M6 6l12 12" }) })
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__ */ jsxs9("div", { style: { padding: 20 }, children: [
4644
- /* @__PURE__ */ jsxs9("p", { style: {
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__ */ jsx9("br", {}),
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__ */ jsx9("div", { style: {
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__ */ jsxs9("form", { onSubmit: handleSubmit, children: [
4665
- /* @__PURE__ */ jsx9(
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__ */ jsx9(
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 jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
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__ */ jsxs10(Fragment5, { children: [
4797
- authenticated && !hidden && /* @__PURE__ */ jsx10(DebugWidget, { endpoint, getUser, onHide: handleHide }),
4798
- showAuth && !authenticated && /* @__PURE__ */ jsx10(
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,