PageSourceSearch

https://kurzly.net/_next/static/chunks/6260-7ce9ea9fc7a502c3.js

js kurzly.net collected 2026-10-02 02:03:35 UTC 122,668 bytes, 15 lines download raw bytes

1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="027d117e-da31-410f-8d20-29d2252272f3",e._sentryDebugIdIdentifier="sentry-dbid-027d117e-da31-410f-8d20-29d2252272f3")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4193,6260],{6509:(e,t,s)=>{s.d(t,{m:()=>a});var r=s(12115),n=s(13705);function a(e,t=3500){let{t:s}=(0,n.B)(),[i,l]=(0,r.useState)(""),o=(0,r.useMemo)(()=>[s("loadingTip1"),s("loadingTip2"),s("loadingTip3"),s("loadingTip4"),s("loadingTip5"),s("loadingTip6")],[s]);return(0,r.useEffect)(()=>{let s,r=0;return e&&(queueMicrotask(()=>l(o[r%o.length])),s=setInterval(()=>{r=(r+1)%o.length;let e=o[r];l(t=>e===t?o[(r+1)%o.length]:e)},t)),()=>{s&&clearInterval(s)}},[e,o,t]),i}},7485:(e,t,s)=>{s.d(t,{y:()=>h});var r=s(12115),n=s(91531),a=s(59981),i=s(61522),l=s(99801),o=s(705),d=s(89674),c=s(81354),u=s(17996);let m={used:0,remaining:0,limit:0,loading:!1,periodStart:null,periodEnd:null,nextReset:null,error:null},x=(e,t,s)=>{let r="number"==typeof e&&Number.isFinite(e)?e:0;return{used:r,limit:t,remaining:Number.isFinite(t)?Math.max(0,t-r):1/0,loading:!1,periodStart:s.start,periodEnd:s.end,nextReset:s.next,error:null}};function h(){let{user:e}=(0,a.A)(),t=e?.uid??null,{data:s=[],isLoading:h}=(0,l.PZ)({enabled:!!t}),[p,g]=(0,r.useState)("free"),[f,v]=(0,r.useState)(!!t),[b,y]=(0,r.useState)(m),[w,j]=(0,r.useState)(m),[N,k]=(0,r.useState)(m);(0,r.useEffect)(()=>{if(!t)return void queueMicrotask(()=>{g("free"),v(!1)});let e=!1;queueMicrotask(()=>v(!0));let s=window.setTimeout(()=>{e||(0,o.i)(t).then(t=>{e||g(t)}).catch(t=>{(0,i.BZ)(t)||console.error("[plan-usage] Failed to resolve plan",t),e||g("free")}).finally(()=>{e||v(!1)})},50);return()=>{e=!0,window.clearTimeout(s)}},[t]);let S=(0,r.useMemo)(()=>(0,c.ay)(p),[p]);(0,r.useEffect)(()=>{let e=(0,u.AQ)(),s=(0,u.nl)(e);if(!t)return void queueMicrotask(()=>{y(x(0,S.aiMonthly,s)),j(x(0,S.aiAnalysisMonthly,s)),k(x(0,S.aiChatMonthly,s))});let r=!1,a={current:void 0},l=(0,n.doc)(d.db,"usage",t,"monthly",e);queueMicrotask(()=>{y(e=>({...e,loading:!0,limit:S.aiMonthly})),j(e=>({...e,loading:!0,limit:S.aiAnalysisMonthly})),k(e=>({...e,loading:!0,limit:S.aiChatMonthly}))});let o=e=>{y({...x(0,S.aiMonthly,s),error:e}),j({...x(0,S.aiAnalysisMonthly,s),error:e}),k({...x(0,S.aiChatMonthly,s),error:e})},c=window.setTimeout(()=>{if(!r){try{a.current=(0,n.onSnapshot)(l,e=>{if(r)return;let t=e.exists()?e.data()??{}:{},n=t.aiActions,a=t.aiAnalyses??n,i=t.aiChats??0;y(x(n,S.aiMonthly,s)),j(x(a,S.aiAnalysisMonthly,s)),k(x(i,S.aiChatMonthly,s))},e=>{let t=e?.code??"unknown";"permission-denied"===t||(0,i.BZ)(e)||console.warn("[plan-usage] Failed to subscribe to AI usage",e),r||o(t)})}catch(e){(0,i.BZ)(e)||console.warn("[plan-usage] onSnapshot setup failed",e),r||o(null)}r&&a.current&&(0,i.pO)(a.current,"plan-usage")}},80);return()=>{r=!0,window.clearTimeout(c),(0,i.pO)(a.current,"plan-usage"),a.current=void 0}},[t,S.aiMonthly,S.aiAnalysisMonthly,S.aiChatMonthly]);let A=(0,r.useMemo)(()=>s.filter(e=>!0!==e.isSample),[s]);return{plan:p,limits:S,caseUsage:{ownedCount:(0,r.useMemo)(()=>t?A.filter(e=>e.userId===t):[],[A,t]).length,totalCount:A.length,limit:S.caseLimit,loading:h},aiUsage:b,aiAnalysisUsage:w,aiChatUsage:N,loading:f||h}}},18349:(e,t,s)=>{s.d(t,{T:()=>l});var r=s(95155),n=s(12115),a=s(40980),i=s(10833);let l=n.forwardRef(({className:e,onChange:t,onInput:s,onCompositionStart:l,onCompositionEnd:o,onBlur:d,...c},u)=>{let m=n.useRef(!1),x=(0,i.J)({onChange:t,onInput:s,onCompositionStart:l,onCompositionEnd:o,onBlur:d},m);return(0,r.jsx)("textarea",{className:(0,a.cn)("flex min-h-[80px] w-full rounded-lg border border-input bg-background/70 px-[var(--control-px)] py-[var(--control-py)] text-base ring-offset-background backdrop-blur-[1px] motion-safe:transition-[background-color,border-color,box-shadow,color] motion-safe:duration-200 motion-safe:ease-out placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:u,...c,...x})});l.displayName="Textarea"},21600:(e,t,s)=>{s.d(t,{Qg:()=>x,Sb:()=>p,US:()=>c,aD:()=>g,eC:()=>h,tE:()=>d,y8:()=>m});var r=s(95155),n=s(12115),a=s(86183),i=s(18460),l=s(9005),o=s(40980);let d=a.Kq,c=n.forwardRef(({className:e,...t},s)=>(0,r.jsx)(a.LM,{ref:s,className:(0,o.cn)("fixed top-[env(safe-area-inset-top,0px)] z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-[env(safe-area-inset-bottom,0px)] sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));c.displayName=a.LM.displayName;let u=(0,i.F)("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-xl border p-4 pr-8 shadow-[var(--shadow-elev-2)] transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border-border/60 bg-card text-foreground",destructive:"group border-[hsl(var(--color-error-border))] bg-[hsl(var(--color-error-bg))] text-foreground",success:"group border-[hsl(var(--color-success-border))] bg-[hsl(var(--color-success-bg))]",info:"group border-[hsl(var(--color-info-border))] bg-[hsl(var(--color-info-bg))]",warning:"group border-[hsl(var(--color-warning-border))] bg-[hsl(var(--color-warning-bg))]",muted:"group border-border bg-secondary"}},defaultVariants:{variant:"default"}}),m=n.forwardRef(({className:e,variant:t,...s},n)=>(0,r.jsx)(a.bL,{ref:n,className:(0,o.cn)(u({variant:t}),e),...s}));m.displayName=a.bL.displayName;let x=n.forwardRef(({className:e,...t},s)=>(0,r.jsx)(a.rc,{ref:s,className:(0,o.cn)("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive-surface group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));x.displayName=a.rc.displayName;let h=n.forwardRef(({className:e,...t},s)=>(0,r.jsx)(a.bm,{ref:s,className:(0,o.cn)("absolute right-2 top-2 rounded-md p-1 text-foreground
1/50 transition-opacity hover:text-foreground focus:outline-none focus:ring-2 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:(0,r.jsx)(l.A,{className:"h-4 w-4"})}));h.displayName=a.bm.displayName;let p=n.forwardRef(({className:e,...t},s)=>(0,r.jsx)(a.hE,{ref:s,className:(0,o.cn)("text-sm font-semibold",e),...t}));p.displayName=a.hE.displayName;let g=n.forwardRef(({className:e,...t},s)=>(0,r.jsx)(a.VY,{ref:s,className:(0,o.cn)("text-sm opacity-90",e),...t}));g.displayName=a.VY.displayName},31828:(e,t,s)=>{function r(e){let t=0,s=0;return e.map(e=>2===e.level&&t>0?(s+=1,{...e,number:`${t}.${s}`}):(t+=1,s=0,{...e,level:1,number:`${t}`}))}function n(e){if(!e?.length)return[];let t=[],s=new Set;for(let r of e){let e="string"==typeof r?.title?r.title.trim():"";if(!e)continue;let n="list"===r.kind?"list":"narrative",a="string"==typeof r.body?r.body.trim():"",i=Array.isArray(r.items)?r.items.map(e=>({text:"string"==typeof e?.text?e.text.trim():"",evidenceIds:Array.isArray(e?.evidenceIds)?e.evidenceIds.filter(e=>"string"==typeof e&&!!e.trim()):[]})).filter(e=>e.text):[];if(!a&&!i.length)continue;let l=function(e){let t=(e||"").trim().toLowerCase().replace(/[^a-z0-9가-힣-]+/gi,"-").replace(/^-+|-+$/g,"").slice(0,60);return`case-section-${t||"extra"}`}(r.id||e);for(;s.has(l);)l=`${l}-x`;s.add(l),t.push({domId:l,sourceId:"string"==typeof r.id&&r.id.trim()||e,title:e,level:2===r.level?2:1,kind:n,body:a,items:i,evidenceIds:Array.isArray(r.evidenceIds)?r.evidenceIds.filter(e=>"string"==typeof e&&!!e.trim()):[]})}return t}s.d(t,{Dt:()=>n,_T:()=>r})},33807:(e,t,s)=>{s.d(t,{J:()=>d});var r=s(95155),n=s(12115),a=s(29486),i=s(18460),l=s(40980);let o=(0,i.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=n.forwardRef(({className:e,...t},s)=>(0,r.jsx)(a.b,{ref:s,className:(0,l.cn)(o(),e),...t}));d.displayName=a.b.displayName},34182:(e,t,s)=>{s.d(t,{k:()=>r});function r(e){if(!e)return 0;if("number"==typeof e)return Number.isFinite(e)?e:0;if(e instanceof Date)return e.getTime();if("string"==typeof e){let t=Date.parse(e);return Number.isFinite(t)?t:0}if("function"==typeof e.toDate)try{let t=e.toDate();return t instanceof Date?t.getTime():0}catch{return 0}if("function"==typeof e.toMillis)try{let t=Number(e.toMillis());return Number.isFinite(t)?t:0}catch{}return 0}},34193:(e,t,s)=>{s.r(t),s.d(t,{identify:()=>l,initAnalytics:()=>i,resetAnalytics:()=>o,stopAnalyticsForThisDevice:()=>c,track:()=>d});var r=s(20114);let n=null,a=!1;async function i(){if(a||!(0,r.MF)())return;let e="phc_wbh68nfPRjhHbniyVmudydufxQznGxFko2M5ZqJM3WE9";if(e){a=!0;try{let t=(await s.e(9432).then(s.bind(s,56122))).default;t.init(e,{api_host:"https://us.i.posthog.com",capture_pageview:!0,capture_pageleave:!0,autocapture:!1,person_profiles:"identified_only",loaded:e=>{n=e}}),n=t}catch(e){console.warn("[analytics] failed to load PostHog",e)}}}function l(e,t){if(n)try{n.identify(e,t)}catch{}}function o(){if(n)try{n.reset()}catch{}}function d(e,t){{let s=window;if("function"==typeof s.gtag)try{s.gtag("event",e,t)}catch{}}if(n)try{n.capture(e,t)}catch{}}async function c(){try{n?.opt_out_capturing?.()}catch{}try{let{disableClientMeasurement:e}=await Promise.all([s.e(8058),s.e(5583),s.e(2301),s.e(5663),s.e(3672),s.e(7293)]).then(s.bind(s,89674));await e()}catch{}}},53687:(e,t,s)=>{s.d(t,{W:()=>r});async function r(e){let t=await fetch("/api/ai/feedback",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){let e="Failed to submit feedback.";try{let s=await t.json();"string"==typeof s?.error&&(e=s.error)}catch{}throw Error(e)}}},62039:(e,t,s)=>{s.d(t,{R:()=>o,a:()=>l});var r=s(95155),n=s(7485),a=s(84347),i=s(40980);function l({language:e,credits:t=1,className:s}){let{aiAnalysisUsage:o}=(0,n.y)(),d=!o.loading&&!o.error&&o.limit>0&&Number.isFinite(o.remaining)?o.remaining:null;return(0,r.jsx)("p",{className:(0,i.cn)("text-xs text-muted-foreground",s),"data-testid":"ai-credit-note",children:(0,a.d3)(e,`AI 분석 ${t}회 사용${null!==d?` \xb7 이번 달 남은 횟수 ${d}회`:""}`,`Uses ${t} AI analysis${null!==d?` \xb7 ${d} left this month`:""}`)})}function o(e){return(0,a.d3)(e,"이번 달 AI 분석 횟수를 모두 썼어요. 다음 달에 다시 채워지고, 플랜을 올리면 바로 더 쓸 수 있어요.","You've used this month's AI analyses. They refill next month, or upgrade your plan to keep going now.")}},81250:(e,t,s)=>{s.d(t,{Q:()=>m});var r=s(95155),n=s(12115),a=s(73321),i=s(36483),l=s(9005),o=s(89239),d=s(84347),c=s(34193),u=s(90133);function m(){let{caseData:e,isKo:t,language:s,caseId:m}=(0,u.xD)(),x=(0,a.useSearchParams)(),h=(0,a.usePathname)(),p=(0,a.useParams)(),g=(0,a.useRouter)(),[f,v]=(0,n.use
1State)(!1),b="string"==typeof p?.id?p.id:m,y=x?.get("onboarding")==="1",w=!!(e?.isSample&&y&&!f);if((0,n.useEffect)(()=>{w&&m&&(0,c.track)("first_session_checklist_step",{case_id:m,step:"sample_onboarding_shown"})},[w,m]),!w)return null;let j=`/cases/${encodeURIComponent(b)}`;return(0,r.jsxs)("div",{className:"mb-3 flex flex-col gap-2 rounded-xl border border-primary/30 bg-primary/5 px-3 py-2.5 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"min-w-0 pr-6 sm:pr-0",children:[(0,r.jsx)("p",{className:"text-sm font-semibold",children:(0,d.d3)(s,"샘플 체험 — 변호사용 브리프를 먼저 보세요","Sample tour — open the lawyer brief first")}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,d.d3)(s,"이게 변호사에게 넘기는 결과물입니다. 본 뒤 내 증거를 올려 같은 흐름을 따라가 보세요.","This is what you hand a lawyer. Then upload your own evidence and repeat the flow.")})]}),(0,r.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[h?.includes("/brief")?null:(0,r.jsxs)(o.$,{size:"sm",onClick:()=>{g.push(`${j}/brief`)},children:[(0,r.jsx)(i.A,{className:"mr-1.5 h-3.5 w-3.5"}),(0,d.d3)(s,"브리프 보기","View brief")]}),(0,r.jsx)(o.$,{type:"button",size:"icon",variant:"ghost",className:"h-8 w-8",onClick:()=>{v(!0);let e=new URLSearchParams(x?.toString()??"");e.delete("onboarding");let t=e.toString(),s=h?.startsWith("/cases/")?h:j;g.replace(t?`${s}?${t}`:s)},"aria-label":(0,d.d3)(s,"닫기","Dismiss"),children:(0,r.jsx)(l.A,{className:"h-4 w-4"})})]})]})}},88394:(e,t,s)=>{s.d(t,{CT:()=>g,lE:()=>p,nc:()=>h});var r=s(95155),n=s(12115),a=s(46395),i=s(51128),l=s(64962),o=s(89239),d=s(84347),c=s(13705),u=s(90133);let m=e=>`case:${e}:briefSharedAt`,x=e=>`case:${e}:shareFollowUpDismissed`;function h(e){try{let t=window.localStorage.getItem(m(e)),s=t?Number(t):NaN;return Number.isFinite(s)&&s>0?s:null}catch{return null}}function p(e){try{window.localStorage.setItem(m(e),String(Date.now())),window.localStorage.removeItem(x(e)),window.dispatchEvent(new CustomEvent("kurzly:brief-shared",{detail:{caseId:e}}))}catch{}}function g(){let{language:e}=(0,c.B)(),{caseId:t,caseData:s}=(0,u.xD)(),[m,p]=(0,n.useState)(null),[g,f]=(0,n.useState)(!0),[v,b]=(0,n.useState)(0),y=(0,n.useCallback)(()=>{if(t){p(h(t));try{f("1"===window.localStorage.getItem(x(t)))}catch{f(!1)}}},[t]);(0,n.useEffect)(()=>{y();let e=e=>{let s=e.detail;s?.caseId&&s.caseId!==t||y()};return window.addEventListener("kurzly:brief-shared",e),()=>window.removeEventListener("kurzly:brief-shared",e)},[t,y]),(0,n.useEffect)(()=>{b(Date.now())},[m]);let w=!!(s?.lawyerBrief?.draft||s?.lawyerBrief?.final);if(!t||!m||g||!w)return null;let j=v>0?Math.max(0,Math.floor((v-m)/36e5)):0;return(0,r.jsxs)("div",{className:"rounded-md border border-amber-200/80 bg-amber-50/50 text-sm dark:border-amber-900/50 dark:bg-amber-950/20",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 border-b border-amber-200/60 px-3 py-2 dark:border-amber-900/40",children:[(0,r.jsx)(a.A,{className:"h-4 w-4 text-amber-700 dark:text-amber-300"}),(0,r.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-amber-800 dark:text-amber-200",children:(0,d.d3)(e,"공유 후 다음 할 일","After you shared")})]}),(0,r.jsxs)("div",{className:"space-y-2 px-3 py-2.5",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:j<1?(0,d.d3)(e,"방금 브리프 링크를 복사했어요. 변호사가 열면 피드백이 여기에 쌓입니다.","You just copied a brief link. Lawyer feedback will show up here when they reply."):(0,d.d3)(e,`약 ${j}시간 전에 공유했어요. 아직 피드백이 없다면 리마인드 문구를 보내보세요.`,`Shared about ${j}h ago. If there’s no feedback yet, send a short reminder.`)}),(0,r.jsxs)("ul",{className:"space-y-1.5 text-xs",children:[(0,r.jsxs)("li",{className:"flex gap-2",children:[(0,r.jsx)(i.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{children:(0,d.d3)(e,"변호사에게: “상담 전에 이 브리프만 봐주시면 됩니다”","Text your lawyer: “Please skim this brief before we meet.”")})]}),(0,r.jsxs)("li",{className:"flex gap-2",children:[(0,r.jsx)(l.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{children:(0,d.d3)(e,"부족한 증거\xb7질문이 있으면 브리프의 Missing info를 채우세요","Fill Missing info in the brief if they ask for more documents")})]})]}),(0,r.jsx)(o.$,{type:"button",size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:()=>{try{window.localStorage.setItem(x(t),"1")}catch{}f(!0)},children:(0,d.d3)(e,"확인했어요","Got it")})]})]})}},88684:(e,t,s)=>{s.d(t,{E:()=>i,Q:()=>l});var r=s(95155),n=s(12115);let a=(0,n.createContext)(null);function i({value:e,children:t}){return(0,r.jsx)(a.Provider,{value:e,children:t})}function l(){let e=(0,n.useContext)(a);if(!e)throw Error("useCaseActionItems must be used within CaseActionItemsProvi
1der");return e}},93133:(e,t,s)=>{s.d(t,{Ke:()=>i,Nt:()=>n,R6:()=>a});var r=s(19820);let n=r.bL,a=r.R6,i=r.Ke},96260:(e,t,s)=>{s.r(t),s.d(t,{default:()=>tn});var r=s(95155),n=s(12115),a=s(92571),i=s(82749),l=s(92298),o=s(64577),d=s(11012),c=s(12572),u=s(17494),m=s(58309),x=s(9005),h=s(81402),p=s(12363),g=s(45160),f=s(13705),v=s(89239),b=s(18349),y=s(60529),w=s(33807),j=s(40980),N=s(84347);function k(e){let t=String(e??"");return t?t.replace(/\[\[[^\]]*\]\]/g,"").replace(/\]{2,}(?=\[)/g,"").replace(/\[\s*\]/g,"").replace(/\(\s*\)/g,"").replace(/\s*,\s*,+/g,",").replace(/,\s*\./g,".").replace(/\.\s*,/g,".").replace(/\s+\./g,".").replace(/\s{2,}/g," ").trim():""}var S=s(70872),A=s(8169),C=s(6477),I=s(6695),E=s(53687),$=s(21600);let M=/\[([A-Za-z][A-Za-z0-9_-]{17,23})\]/g;function B(e){return e?e.replace(/\[\s*evidence summary[^\]]*\]/gi,"").replace(M,(e,t)=>t.length>=18&&t.length<=24&&/^[A-Za-z0-9_-]+$/.test(t)&&/[a-z]/.test(t)&&/[A-Z]/.test(t)?"":e).replace(/\\r\\n/g,"\n").replace(/\\n/g,"\n").replace(/\r\n/g,"\n").replace(/\u00A0/g," ").replace(/\[\s*\]/g,"").replace(/[ \t]{2,}/g," ").replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n").replace(/\s+([,.;:!?])/g,"$1").trim():""}var T=s(98811),L=s(12279);function F({language:e,sectionLabelKo:t,sectionLabelEn:s,onImprove:n}){let a=(0,L.tx)(e,t,s);return(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-950",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{className:"font-semibold",children:(0,L.tx)(e,"출처 부족","Low sources")}),(0,r.jsx)("div",{className:"mt-0.5 text-amber-900/80",children:(0,L.tx)(e,`${a} 섹션에 [[증거]] 링크가 없습니다. 일반적으로 읽힐 수 있습니다.`,`No evidence links are connected in the ${a} section. It may read generic.`)})]}),(0,r.jsx)(v.$,{type:"button",variant:"outline",size:"sm",className:"h-8 shrink-0 border-amber-300 bg-background/70 text-amber-950 dark:text-amber-200 hover:bg-background",onClick:n,children:(0,L.tx)(e,"증거 보강","Improve")})]})}function R({language:e,sectionLabelKo:t,sectionLabelEn:s,cues:n,aiSlop:a,onImprove:i}){let l=(0,L.tx)(e,t,s),o=!0===a;return(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3 rounded-md border border-orange-200 bg-orange-50 px-3 py-2 text-xs text-orange-950",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{className:"font-semibold",children:o?(0,L.tx)(e,"AI스러운 문구","AI-like phrasing"):(0,L.tx)(e,"일반적 문구","Generic phrasing")}),(0,r.jsx)("div",{className:"mt-0.5 text-orange-900/80",children:o?(0,L.tx)(e,`${l} 섹션이 템플릿처럼 읽힙니다. 더 직접적이고 구체적으로 다듬어 주세요.`,`${l} reads like generic AI copy. Tighten it with direct, concrete wording.`):(0,L.tx)(e,`${l} 섹션에서 일반적 표현\xb7어려운 법률 용어가 발견됩니다. 날짜/사람/행위로 구체화하고, 용어는 괄호로 풀어 주세요.`,`Generic phrasing or unexplained legal terms were detected in ${l}. Make it concrete and add plain-language glosses.`)}),n.length?(0,r.jsxs)("div",{className:"mt-1 text-[11px] text-orange-900/70",children:[(0,L.tx)(e,"감지된 문구","Detected cues"),": ",n.slice(0,3).join(", ")]}):null]}),(0,r.jsx)(v.$,{type:"button",variant:"outline",size:"sm",className:"h-8 shrink-0 border-orange-300 bg-background/70 text-orange-950 dar
1k:text-orange-200 hover:bg-background",onClick:i,children:(0,L.tx)(e,"다듬기","Refine")})]})}var D=s(34182);let O=["atAGlance","overview","people","chronicle","arguments","keyEvidence","notes"];function W(e){return!!(e&&"object"==typeof e&&"toDate"in e&&"function"==typeof e.toDate)}function z(e){if(null==e)return e;try{return structuredClone(e)}catch{try{return JSON.parse(JSON.stringify(e))}catch{return e}}}function P(e,t){if(e)switch(t){case"atAGlance":return e.atAGlance;case"overview":return e.overview;case"people":return e.people;case"chronicle":return e.chronicle;case"arguments":return e.arguments;case"keyEvidence":return e.keyEvidence;case"notes":return{notes:e.notes,noteBuckets:e.noteBuckets}}}function _(e){let t="string"!=typeof e?"":B(e).replace(/\[\[[^\]]+\]\]/g,"").replace(/\s+/g," ").trim();return t?Array.from(new Set(t.split(/\n+/).map(e=>e.trim()).filter(Boolean).flatMap(e=>{let t=e.split(/(?<=[.!?])\s+/).map(e=>e.trim()).filter(Boolean);return t.length>0?t:[e]}))):[]}function G(e,t=150){return e.length>t?`${e.slice(0,Math.max(0,t-1)).trim()}...`:e}function U(e,t){if(null==t)return[];let s=(e,t,s)=>{_(s).forEach(s=>{e.push(`${t}: ${s}`)})};switch(e){case"atAGlance":{if(!t)return[];let e=[];return s(e,"atAGlance.oneLiner",t.oneLiner),s(e,"atAGlance.currentStatus",t.currentStatus),(t.nextSteps??[]).forEach((t,r)=>{s(e,`atAGlance.nextStep-${r+1}`,t)}),Array.from(new Set(e))}case"overview":return _(t);case"people":{let e=[];return(t?.parties??[]).forEach((t,r)=>{let n=t.name?`party-${r+1}(${t.name})`:`party-${r+1}`;s(e,`${n}.role`,t.role),s(e,`${n}.profile`,t.profile),s(e,`${n}.relationship`,t.relationship),s(e,`${n}.credibility`,t.credibility),s(e,`${n}.notes`,t.notes)}),(t?.others??[]).forEach((t,r)=>{let n=t.name?`other-${r+1}(${t.name})`:`other-${r+1}`;s(e,`${n}.role`,t.role),s(e,`${n}.profile`,t.profile),s(e,`${n}.relationship`,t.relationship),s(e,`${n}.credibility`,t.credibility),s(e,`${n}.notes`,t.notes)}),Array.from(new Set(e))}case"chronicle":{let e=[];return s(e,"chronicle.background",t?.background),s(e,"chronicle.incident",t?.incident),s(e,"chronicle.investigation",t?.investigation),(t?.incidentItems??[]).forEach((t,r)=>{s(e,`chronicle.incidentItem-${r+1}`,[t.timeRange,t.text].filter(Boolean).join(" "))}),Array.from(new Set(e))}case"arguments":{let e=[];return(t??[]).forEach((t,r)=>{s(e,`argument-${r+1}.issue`,t.issue),s(e,`argument-${r+1}.myClaim`,t.myClaim),s(e,`argument-${r+1}.opponentClaim`,t.opponentClaim)}),Array.from(new Set(e))}case"keyEvidence":{let e=[];return(t??[]).forEach((t,r)=>{let n=t.evidenceId?`keyEvidence-${r+1}(${t.evidenceId})`:`keyEvidence-${r+1}`;s(e,`${n}.title`,t.title),s(e,`${n}.summary`,t.summary),s(e,`${n}.analysis`,t.analysis)}),Array.from(new Set(e))}case"notes":{let e=[];return(t.notes??[]).forEach((t,r)=>{s(e,`notes-${r+1}`,t)}),(t.noteBuckets?.assumptions??[]).forEach((t,r)=>{s(e,`assumption-${r+1}`,t)}),(t.noteBuckets?.uncertainties??[]).forEach((t,r)=>{s(e,`uncertainty-${r+1}`,t)}),(t.noteBuckets?.followUps??[]).forEach((t,r)=>{s(e,`followUp-${r+1}`,t)}),Array.from(new Set(e))}}}function V(e,t,s){let r=U(e,t),n=U(e,s),a=new Set(r),i=new Set(n),l=n.filter(e=>!a.has(e)),o=r.filter(e=>!i.has(e));return{added:l.slice(0,4).map(e=>G(e)),removed:o.slice(0,4).map(e=>G(e)),addedCount:l.length,removedCount:o.length,hasChanges:l.length>0||o.length>0,capturedAt:Date.now()}}var K=s(91531),J=s(89674),H=s(61522);let Z={ko:["추가 확인이 필요","추가 검토가 필요","추가 검증이 필요","추가 증거가 필요","불명확함","unclear","insufficient detail","in general","overall","요약하면","가능성이 있다","it is possible","종합하면","전반적으로"],en:["additional verification is needed","further review is required","more evidence is needed","it is difficult to determine","it remains unclear","in general","overall","to summarize","it is possible that","likely","insufficient evidence","further investigation","it is worth noting","it should be noted"]},Q=["delve","delving","crucial","landscape","tapestry","foster","underscore","showcase","garner","it's important to note","it is important to note","it's worth noting","it is worth noting","in today","at the end of the day","game-changer","game changer","revolutionize","revolutionise","unlock","empower","seamless","leverage","cutting-edge","cutting edge","holistic","navigate","dive into","without further ado","rich tapestry","multifaceted","ever-evolving"],q={ko:["완벽하게 무죄","무죄가 확정","무죄로 종결","무죄 확정","사법적으로 무죄","유죄가 확정","유죄ë¡
1œ 확정","명백히 성립","확정적으로 증명","객관적 허위임을 확정","확정적으로 입증"],en:["conclusively proven","definitively guilty","definitively innocent","acquittal is confirmed","confirmed acquittal","guilt is established","proven innocent","clearly established as a matter of law"]};function Y(e,t){if("en"!==t)return[];let s=e.replace(/\s+/g," ").trim();if(!s)return[];let r=s.toLowerCase();return Q.filter(e=>r.includes(e))}let X={ko:["구상권","채권자","채무자","소멸시효","항변","변론","가처분","가압류","준용","추완","과실상계","기판력","집행력","소송물","상계항변","위자료","불법행위","채무불이행","하자담보책임","선관주의의무","연대보증","이행지체","이행불능","부당이득","형사고소","민사소송","약식기소","불기소처분","기소유예","선고유예","집행유예"],en:["subrogation","lien","indemnification","statute of limitations","estoppel","prima facie","res judicata","habeas corpus","fiduciary duty","tortfeasor","injunctive relief","garnishment","adjudication","deposition","arbitration clause","stipulation","voir dire","pro se","amicus curiae"]},ee=[/\[\[[^\]]+\]\]/g,/\bE-\d{1,4}\b/gi,/\d{4}[./-]\d{1,2}[./-]\d{1,2}/g,/\d{1,2}\s*:\s*\d{2}/g,/\d{1,2}:\d{2}/g,/\d+\s*(?:페이지|page|pages|line|lines)/gi];function et(e,t,s){let r=B(e).replace(/\s+/g," ").trim();if(!r)return{genericCueHits:[],aiSlopHits:[],concreteSignalCount:0,textLength:0,shouldWarnGeneric:!1,shouldWarnSlop:!1,shouldWarnReadability:!1,unexplainedJargon:[]};let n=function(e,t,s=0){let r=e.replace(/\s+/g," ").trim();if(!r)return{genericCueHits:[],aiSlopHits:[],overconfidenceCueHits:[],allCueHits:[],textLength:0,shouldWarnGeneric:!1,shouldWarnSlop:!1};let n=function(e,t){let s=e.replace(/\s+/g," ").trim();if(!s)return[];let r=s.toLowerCase();return Z[t].filter(e=>r.includes(e.toLowerCase()))}(r,t),a=Y(r,t),i=function(e,t){let s=e.replace(/\s+/g," ").trim();if(!s)return[];let r=s.toLowerCase();return q[t].filter(e=>r.includes(e.toLowerCase()))}(r,t),l=Array.from(new Set([...n,...a,...i])),o="en"===t&&r.length>=40&&a.length>=1,d=r.length>=80&&(n.length>=2&&0===s||n.length>=3&&s<=1||o);return{genericCueHits:n,aiSlopHits:a,overconfidenceCueHits:i,allCueHits:l,textLength:r.length,shouldWarnGeneric:d,shouldWarnSlop:o}}(r,t,s),a=function(e,t){let s,r=B(e).replace(/\s+/g," ").trim();if(!r)return{unexplainedJargon:[],longSentenceCount:0,totalSentenceCount:0,avgSentenceLength:0,shouldWarnReadability:!1,grade:"A"};let n=X[t].filter(e=>r.toLowerCase().includes(e.toLowerCase())&&!function(e,t){let s=e.toLowerCase().indexOf(t.toLowerCase());if(-1===s)return!0;let r=e.slice(s+t.length,s+t.length+5);return/\(/.test(r)}
1(r,e)),a=r.replace(/\\n/g,"\n").split(/(?<=[.!?。!?])\s+|\n+/).map(e=>e.trim()).filter(e=>e.length>3),i="ko"===t?80:150,l=a.filter(e=>e.length>i).length,o=a.length,d=o>0?Math.round(a.reduce((e,t)=>e+t.length,0)/o):0,c=n.length,u=o>0?l/o:0,m="C"==(s=0===c&&u<=.1?"A":c<=2&&u<=.25?"B":c<=4&&u<=.4?"C":"D")||"D"===s||n.length>=3;return{unexplainedJargon:n,longSentenceCount:l,totalSentenceCount:o,avgSentenceLength:d,shouldWarnReadability:m,grade:s}}(r,t),i=ee.reduce((e,t)=>e+(r.match(t)?.length??0),0)+Math.max(0,s);return{genericCueHits:Array.from(new Set([...n.genericCueHits,...a.unexplainedJargon.slice(0,3)])),aiSlopHits:Y(r,t),concreteSignalCount:i,textLength:n.textLength,shouldWarnGeneric:n.shouldWarnGeneric||a.shouldWarnReadability,shouldWarnSlop:n.shouldWarnSlop,shouldWarnReadability:a.shouldWarnReadability,unexplainedJargon:a.unexplainedJargon}}var es=s(59680),er=s(18986),en=s(72264),ea=s(13276),ei=s(86272),el=s(7485),eo=s(17414);function ed({language:e,className:t,pool:s="analysis"}){let n=(0,el.y)(),a="analysis"===s?n.aiAnalysisUsage:"chat"===s?n.aiChatUsage:n.aiUsage;if(n.loading||a.loading||"pro"===n.plan||!Number.isFinite(a.limit)||a.limit<=0)return null;let{remaining:i,limit:l}=a,o=i<=2,d=i<=0;return(0,r.jsxs)(eo.AM,{children:[(0,r.jsx)(eo.Wv,{asChild:!0,children:(0,r.jsxs)("button",{type:"button","aria-label":(0,N.d3)(e,"AI 분석 크레딧 설명 보기","What does this mean? AI analysis credits"),className:(0,j.cn)("inline-flex items-center gap-1 rounded-full border px-1.5 py-0.5 text-[11px] font-medium tabular-nums transition-colors",d?"border-destructive/40 bg-destructive/5 text-destructive":o?"border-amber-400/40 bg-amber-50/60 text-amber-700 dark:bg-amber-950/30 dark:text-amber-300":"border-border/60 bg-muted/40 text-muted-foreground hover:bg-muted/70",t),children:[(0,r.jsx)(ei.A,{className:"h-2.5 w-2.5 shrink-0","aria-hidden":"true"}),(0,r.jsxs)("span",{children:[i,"/",l]})]})}),(0,r.jsxs)(eo.hl,{side:"bottom",align:"end",className:"w-64",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-foreground",children:(0,N.d3)(e,"AI 분석 크레딧","AI analysis credits")}),(0,r.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-muted-foreground",children:(0,N.d3)(e,`요약\xb7브리프\xb7타임라인을 "다시 분석"할 때마ë
1‹¤ 1회 차감돼요. 이번 달 ${i}/${l}회 남았고, 매월 1일 리셋됩니다.`,`Each "re-analyze" (summary, brief, timeline) uses one credit. ${i}/${l} left this month — resets on the 1st.`)})]})]})}function ec({statusMessage:e,isQueued:t,isLoading:s,t:n}){return e||t||s?(0,r.jsx)("div",{className:"mb-4 rounded-lg border border-primary/20 bg-primary/5 px-4 py-3",role:"status","aria-live":"polite",children:(0,r.jsxs)("div",{className:"flex flex-col gap-1.5",children:[e?(0,r.jsxs)("span",{className:"flex items-center gap-2 text-sm font-medium text-foreground",children:[(0,r.jsx)(i.A,{className:(0,j.cn)("h-4 w-4 shrink-0",s&&"animate-spin text-primary",!s&&"text-muted-foreground")}),e]}):t?(0,r.jsxs)("span",{className:"flex items-center gap-2 text-sm font-medium text-foreground",children:[(0,r.jsx)(i.A,{className:"h-4 w-4 shrink-0 animate-spin text-primary"}),n("summaryStageQueued")]}):null,s||t?(0,r.jsx)("p",{className:"text-xs text-muted-foreground pl-6",children:n("analysisMayTakeLong")}):null]})}):null}function eu({isLoading:e,isEditing:t,canRegenerate:s,justSaved:l,hasSummary:d,language:c,t:u,onRegenerate:m,onEditClick:p,onCancel:g,onSave:f}){let b=u("aiAnalysisRerunButton")||u("regenerateSummaryAccessible"),y=(0,N.d3)(c,"더 보기","More actions","M\xe1s"),[w,k]=(0,n.useState)(!1),S=(0,N.d3)(c,"요약과 타임라인을 다시 만들까요?","Regenerate the summary and timeline?","\xbfVolver a generar el resumen y la cronolog\xeda?"),A=(0,N.d3)(c,"기존 요약과 타임라인을 새로 만든 내용으로 바꾸고, AI 분석 크레딧 1회를 사용합니다. 증거를 다시 분석하지는 않습니다.","This replaces the current summary and timeline with newly generated ones and uses one AI analysis credit. Your evidence is not re-analyzed.","Esto reemplaza el resumen y la cronolog\xeda actuales por versiones nuevas y consume un cr\xe9dito de an\xe1lisis de IA. Las pruebas no se vuelven a analizar."),C=(0,N.d3)(c,"다시 만들기","Regenerate","Volver a generar");return t?(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsxs)(v.$,{variant:"ghost",size:"icon",onClick:g,className:"h-8 w-8 rounded-full",children:[(0,r.jsx)(x.A,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{className:"sr-only",children:u("cancel")})]}),(0,r.jsxs)(v.$,{size:"sm",onClick:f,className:(0,j.cn)("h-8 rounded-full px-2 text-xs transition-colors",l&&"bg-green-600 hover:bg-green-700"),children:[l?(0,r.jsx)(o.A,{className:"mr-1.5 h-3.5 w-3.5"}):(0,r.jsx)(h.A,{className:"mr-1.5 h-3.5 w-3.5"}),u(l?"saved":"save")]})]}):(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(ed,{language:c??"ko",pool:"analysis",className:"mr-1"}),(0,r.jsxs)(en.rI,{children:[(0,r.jsx)(en.ty,{asChild:!0,children:(0,r.jsx)(v.$,{variant:"ghost",size:"icon",disabled:e||!s&&!d,className:"h-8 w-8 rounded-full","aria-label":y,children:e?(0,r.jsx)(a.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(es.A,{className:"h-3.5 w-3.5"})})}),(0,r.jsxs)(en.SQ,{align:"end",className:"w-44",children:[(0,r.jsxs)(en._2,{onSelect:e=>{e.preventDefault(),k(!0)},disabled:!s,children:[(0,r.jsx)(i.A,{className:"mr-2 h-3.5 w-3.5"}),e?u("regenerating"):b]}),(0,r.jsxs)(en._2,{onSelect:p,disabled:!d,children:[(0,r.jsx)(er.A,{className:"mr-2 h-3.5 w-3.5"}),u("edit")]})]})]}),(0,r.jsx)(ea.Lt,{open:w,onOpenChange:k,children:(0,r.jsxs)(ea.EO,{children:[(0,r.jsxs)(ea.wd,{children:[(0,r.jsx)(ea.r7,{children:S}),(0,r.jsx)(ea.$v,{children:A})]}),(0,r.jsxs)(ea.ck,{children:[(0,r.jsx)(ea.Zr,{children:u("cancel")}),(0,r.jsx)(ea.Rx,{onClick:m,children:C})]})]})})]})}var em=s(12301),ex=s(6509);let eh=[],ep=/[가-힣]/g,eg=/\b[A-Za-z][A-Za-z'-]{2,}\b/g;var ef=s(86846);let ev=["증거 요약을 통독하고 있어요…","핵심 인물과 관계를 정리하고 있어요…","사건 전개(연대기)를 구성하고 있어요…","쟁점과 양측 주장을 대조하고 있어요…","문장마다 근거 링크를 연결하고 있어요…"],eb=["Reading through the evidence summaries…","Mapping the people and their relationships…","Building the chronology…","Weighing the issues and each side’s claims…","Linking statements to their evidence…"];function ey({language:e,isKo:t,summaryProgress:s,loadingTip:i,t:l}
1){let d,c=s?.current??0,u=(0,N.OD)(t,ev,eb),[m,x]=(0,n.useState)(0);return(0,n.useEffect)(()=>{if(x(0),2!==c)return;let e=window.setInterval(()=>{x(e=>Math.min(e+1,u.length-1))},9e3);return()=>window.clearInterval(e)},[c,u.length]),(0,r.jsxs)("div",{className:"rounded-xl border border-primary/20 bg-primary/5 p-6 space-y-4",role:"status","aria-live":"polite",children:[(d=t?["증거 수집 중...","AI 분석 중...","결과 정리 중...","품질 개선 중..."]:["Gathering evidence...","AI analyzing...","Organizing results...","Refining quality..."],(0,r.jsx)("div",{className:"flex flex-col gap-3",children:d.map((e,t)=>{let s=t+1,n=s===c,i=s<c;return(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:(0,j.cn)("flex h-7 w-7 items-center justify-center rounded-full text-xs font-medium transition-colors",i&&"bg-primary text-primary-foreground",n&&"bg-primary/20 text-primary ring-2 ring-primary/40",!i&&!n&&"bg-muted text-muted-foreground"),children:i?(0,r.jsx)(o.A,{className:"h-3.5 w-3.5"}):s}),(0,r.jsx)("span",{className:(0,j.cn)("text-sm",n&&"font-medium text-foreground",(i||!i&&!n)&&"text-muted-foreground"),children:e}),n&&(0,r.jsx)(a.A,{className:"h-3.5 w-3.5 animate-spin text-primary"})]}),n&&2===s?(0,r.jsx)("p",{className:"pl-10 text-xs text-muted-foreground transition-opacity",children:u[m]},m):null]},t)})})),i?(0,r.jsxs)("p",{className:"rounded-md border border-primary/15 bg-primary/5 px-3 py-2 text-xs text-foreground/90",children:[(0,r.jsxs)("span",{className:"font-medium text-primary",children:[(0,L.tx)(e,"팁","Tip"),": "]}),i]}):null,(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:[(0,L.tx)(e,"보통 1~2분 걸릴 수 있어요.","Usually takes 1–2 minutes.")," ",l("analysisMayTakeLong")]}),(0,r.jsxs)("div",{className:"mt-6 space-y-2","aria-hidden":!0,children:[(0,r.jsx)(ef.E,{className:"h-3 w-full max-w-[90%]"}),(0,r.jsx)(ef.E,{className:"h-3 w-full max-w-[70%]"}),(0,r.jsx)(ef.E,{className:"h-3 w-full max-w-[85%]"}),(0,r.jsx)(ef.E,{className:"h-3 w-full max-w-[60%]"})]})]})}function ew({language:e,t,hasWiki:s,wikiEvidenceBySection:n,hasAnyEvidenceForCoverage:a,sanitizedOverview:i,wikiSectionQualityBySection:l,renderNeedsSourcesCallout:o,renderWikiGenericCallout:d,renderSectionDiffPreview:c,overviewParagraphs:u,isOverviewExpanded:m,onToggleOverviewExpanded:x,overviewPreviewParagraphs:h,defaultOverviewPlaceholder:p,renderTextWithEvidenceLinks:g,renderInlineCitations:f,overviewEvidenceIds:b,renderEvidenceLinks:y,sanitizedCoreIssue:w,coreIssueEvidenceIds:j}){let N;return(0,r.jsxs)("section",{id:"case-overview",className:"min-w-0 max-w-full space-y-3",children:[(0,r.jsx)("div",{children:(0,r.jsx)("h2",{className:"case-section-heading",children:(0,L.tx)(e,"개요",t("caseOverview"))})}),s&&n&&a&&i&&0===n.overview.length?o("개요","Overview","overview"):null,s&&n&&l&&a&&i&&n.overview.length>0&&l.overview.shouldWarnGeneric?d("개요","Overview","overview",l.overview.genericCueHits,l.overview.shouldWarnSlop):null,s?c("overview"):null,(0,r.jsxs)("div",{className:"min-w-0 max-w-full space-y-3 break-words text-[15px] leading-[1.8] text-foreground/90 [overflow-wrap:break-word]",children:[(N=u.length?u:[i||t("caseOverviewPlaceholder")||p],(m?N:N.slice(0,h)).map((e,t)=>(0,r.jsx)("p",{children:g(e)},t))),f(b),s&&n?.overview?.length?y(n.overview):null]}),s&&w?(0,r.jsxs)("div",{className:"border-l-2 border-primary/40 pl-3 text-[15px] leading-[1.8] break-words",children:[(0,r.jsx)("div",{className:"text-sm font-semibold text-foreground/70",children:(0,L.tx)(e,"핵심 쟁점",t("coreIssue"))}),(0,r.jsxs)("div",{className:"mt-1 text-foreground/90",children:[g(w),f(j)]})]}):null,u.length>h&&(0,r.jsx)(v.$,{variant:"ghost",size:"sm",onClick:x,children:t(m?"showLess":"showMore")})]})}function ej({hasWiki:e,language:t,t:s,wiki:n,wikiEvidenceBySection:a,wikiSectionQualityBySection:i,hasAnyEvidenceForCoverage:l,evidenceLabelById:o,userName:d,userRole:c,opponentName:u,renderNeedsSourcesCallout:m,renderWikiGenericCallout:x,renderSectionDiffPreview:h,renderTextWithEvidence
1Links:p,renderEvidenceLinks:f,mergeEvidenceIds:v,extractEvidenceIdsFromText:b}){return e?(0,r.jsxs)("section",{id:"case-people",className:"space-y-3 border-t border-border/30 pt-6",children:[(0,r.jsx)("div",{children:(0,r.jsx)("h2",{className:"case-section-heading",children:(0,L.tx)(t,"인물","People")})}),e&&a&&l&&(n?.people?.parties?.length||n?.people?.others?.length)&&0===a.people.length?m("당사자","People","people"):null,e&&a&&i&&l&&(n?.people?.parties?.length||n?.people?.others?.length)&&a.people.length>0&&i.people.shouldWarnGeneric?x("당사자","People","people",i.people.genericCueHits,i.people.shouldWarnSlop):null,e?h("people"):null,(0,r.jsxs)("div",{className:"space-y-6 text-sm",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:(0,L.tx)(t,"당사자","Parties")}),(n?.people?.parties?.length??0)>0?(0,r.jsx)("div",{className:"space-y-3",children:n?.people?.parties?.map((e,s)=>{let n=[],a=e=>(0,T.ST)(e||"",o).replace(/\s+/g," ").trim(),i=a(e.relationship);i&&n.push(`${(0,L.tx)(t,"관계","Relation")}: ${i}`);let l=a(e.credibility);return l&&n.push(`${(0,L.tx)(t,"신빙성","Credibility")}: ${l}`),(0,r.jsxs)("div",{className:"pb-4 last:pb-0",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("div",{className:"font-semibold",children:e.name}),e.role?(0,r.jsx)(g.E,{variant:"secondary",className:"px-2 py-0 text-xs border-transparent bg-primary/10 text-primary",children:e.role}):null]}),n.length?(0,r.jsx)("div",{className:"mt-2 flex flex-wrap gap-1",children:n.map(e=>(0,r.jsxs)(eo.AM,{children:[(0,r.jsx)(eo.Wv,{asChild:!0,children:(0,r.jsx)("button",{type:"button",className:"inline-flex max-w-full items-center truncate text-xs text-muted-foreground hover:text-foreground",title:e,children:e})}),(0,r.jsx)(eo.hl,{side:"bottom",align:"start",className:"max-w-[280px] whitespace-pre-wrap break-words p-3 text-xs leading-relaxed",children:e})]},e))}):null,e.profile?(0,r.jsx)("p",{className:"mt-2 text-xs text-foreground/80",children:p(e.profile)}):null,e.notes?(0,r.jsx)("p",{className:"mt-1 text-xs text-foreground/70",children:p(e.notes)}):null,f(v(e.evidenceIds??[],b(e.profile),b(e.notes),b(e.relationship),b(e.credibility)))]},`${e.name}-${s}`)})}):(0,r.jsx)("div",{className:"text-xs text-muted-foreground",children:(0,L.tx)(t,"당사자 상세가 없습니다.","No party details.")})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:(0,L.tx)(t,"핵심 당사자","Key figures")}),(n?.people?.others?.length??0)>0?(0,r.jsx)("div",{className:"space-y-3",children:n?.people?.others?.map((e,s)=>{let n=[],a=e=>(0,T.ST)(e||"",o).replace(/\s+/g," ").trim(),i=a(e.relationship);i&&n.push(`${(0,L.tx)(t,"관계","Relation")}: ${i}`);let l=a(e.credibility);return l&&n.push(`${(0,L.tx)(t,"신빙성","Credibility")}: ${l}`),(0,r.jsxs)("div",{className:"pb-4 last:pb-0",children:[(0,r.jsx)("div",{className:"font-semibold",children:e.name}),e.role?(0,r.jsx)("div",{className:"text-xs text-muted-foreground",children:e.role}):null,n.length?(0,r.jsx)("div",{className:"mt-2 flex flex-wrap gap-1",children:n.map(e=>(0,r.jsxs)(eo.AM,{children:[(0,r.jsx)(eo.Wv,{asChild:!0,children:(0,r.jsx)("button",{type:"button",className:"inline-flex max-w-full items-center truncate text-xs text-muted-foreground hover:text-foreground",title:e,children:e})}),(0,r.jsx)(eo.hl,{side:"bottom",align:"start",className:"max-w-[280px] whitespace-pre-wrap break-words p-3 text-xs leading-relaxed",children:e})]},e))}):null,e.profile?(0,r.jsx)("p",{className:"mt-2 text-xs text-foreground/80",children:p(e.profile)}):null,e.notes?(0,r.jsx)("p",{className:"mt-1 text-xs text-foreground/70",children:p(e.notes)}):null,f(v(e.evidenceIds??[],b(e.profile),b(e.notes),b(e.relationship),b(e.credibility)))]},`${e.name}-${s}`)})}):(0,r.jsx)("div",{className:"text-xs text-muted-foreground",children:(0,L.tx)(t,"당사자 상세가 없습니다.","No additional people listed.")})]})]}),a?.people?.length?f(a.people):null]}):(0,r.jsxs)("section",{id:"case-parties",className:"space-y-3 border-t border-border/30 pt-6",children:[(0,r.jsx)("h2",{className:"case-section-heading",children:s("casePartiesLabel")||(0,L.tx)(t,"당사자","Parties")}),(0,r.jsxs)("div",{className:"grid gap-6 text-sm md:grid-cols-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-xs font-semibold text-muted-foreground",children:(0,L.tx)(t,"본인","You")}),(0,r.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2",children:[(0,r.jsx)("div",{className:"text-sm font-medium",children:d?.trim()||(0,L.tx)(t,"미제공","Not provided")}),c?(0,r.jsx)(g.E,{variant:"secondary",className:"px-2 py-0 text-xs border-transparent bg-primary/10 text-primary",children:c}):(0,r.jsx)(g.E,{variant:"secondary",className:"px-2 py-0 text-xs border-transparent bg-muted/60 text-muted-foreground",children:(0,L.tx)(t,"역할 없음","Role missing")})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-xs font-semibold text-muted-foreground",children:s("opponent")||(0,L.tx)(t,"상대방","Opposing party")}),(0,r.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2",children:[(0,r.jsx)("div",{className:"text-sm font-medium",children:u?.trim()||(0,L.tx)(t,"미제공","Not provided")}),u?.trim()?null:(0,r.jsx)(g.E,{variant:"secondary",className:"px-2 py-0 text-xs border-transparent bg-muted/60 text-muted-foreground",children:(0,L.tx)(t,"알 수 없음","Unknown")})]})]})]})]})}function eN({language:e,hasWiki:t,wiki:s,wikiEvidenceBySection:n,wikiSectionQualityBySection:a,hasAnyEvidenceForCoverage:i,chronicleIncidentItems:l,renderNeedsSourcesCallout:o,renderWikiGenericCallout:d,renderSectionDiffPreview:c,renderWikiRichText:u,renderTextWithEvidence
1Links:m,renderEvidenceLinks:x,mergeEvidenceIds:h,extractEvidenceIdsFromText:p}){return(0,r.jsxs)("section",{id:"case-chronicle",className:"space-y-3 border-t border-border/30 pt-6",children:[(0,r.jsx)("div",{children:(0,r.jsx)("h2",{className:"case-section-heading",children:(0,L.tx)(e,"핵심 연대기","Chronicle")})}),t&&n&&i&&(s?.chronicle?.background||s?.chronicle?.incident||s?.chronicle?.investigation||l.length>0)&&0===n.chronicle.length?o("핵심 연대기","Chronicle","chronicle"):null,t&&n&&a&&i&&(s?.chronicle?.background||s?.chronicle?.incident||s?.chronicle?.investigation||l.length>0)&&n.chronicle.length>0&&a.chronicle.shouldWarnGeneric?d("핵심 연대기","Chronicle","chronicle",a.chronicle.genericCueHits,a.chronicle.shouldWarnSlop):null,t?c("chronicle"):null,(0,r.jsxs)("div",{className:"space-y-5 text-[15px] leading-[1.8] text-foreground/90",children:[s?.chronicle?.background?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-base font-semibold text-foreground/80",children:(0,L.tx)(e,"배경","Background")}),(0,r.jsx)("div",{className:"mt-1",children:u(s.chronicle.background)}),x(p(s.chronicle.background))]}):null,s?.chronicle?.incident?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-base font-semibold text-foreground/80",children:(0,L.tx)(e,"사건","Incident")}),(0,r.jsx)("div",{className:"mt-1",children:u(s.chronicle.incident)}),x(p(s.chronicle.incident))]}):null,l.length>0?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("div",{className:"text-base font-semibold text-foreground/80",children:(0,L.tx)(e,"사건 단계","Incident slices")}),(0,r.jsx)("div",{className:"space-y-2",children:l.map((t,s)=>{let n=h(t.evidenceIds??[],p(t.text));return(0,r.jsxs)("div",{className:"rounded-md border border-border/50 bg-background/70 px-3 py-2",children:[(0,r.jsxs)("div",{className:"mb-1 flex items-center gap-1.5 text-xs text-muted-foreground",children:[t.timeRange?(0,r.jsx)("span",{className:"font-medium",children:t.timeRange}):(0,r.jsx)("span",{children:(0,L.tx)(e,"시점 미상","Unknown time")}),t.confidence?(0,r.jsx)(g.E,{variant:"secondary",className:"px-1.5 py-0 text-xs",children:t.confidence}):null]}),(0,r.jsx)("div",{children:m(t.text)}),n.length?x(n):null]},`incident-item-${s}`)})})]}):null,s?.chronicle?.investigation?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-base font-semibold text-foreground/80",children:(0,L.tx)(e,"조사","Investigation")}),(0,r.jsx)("div",{className:"mt-1",children:u(s.chronicle.investigation)}),x(p(s.chronicle.investigation))]}):null,s?.chronicle?.background||s?.chronicle?.incident||s?.chronicle?.investigation||0!==l.length?null:(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,L.tx)(e,"핵심 연대기 수집이 필요합니다.","No chronicle available.")})]})]})}var ek=s(59484),eS=s(93133);function eA({language:e,isKo:t,t:s,hasWiki:n,wiki:a,wikiEvidenceBySection:l,wikiSectionQualityBySection:o,hasAnyEvidenceForCoverage:c,isEvidenceExpanded:u,onEvidenceExpandedChange:x,showAllEvidence:h,onToggleShowAllEvidence:p,hasUnreferencedEvidence:g,evidenceListIds:f,visibleEvidenceIds:b,wikiEvidenceUsageById:y,evidenceUsageById:w,evidencePreviewById:N,evidenceTitleById:k,evidenceLabelById:S,unreferencedEvidenceIds:A,coveragePct:C,isLoading:I,canRegenerate:E,onOpenEvidence:$,onOpenEvidenceItem:M,onRegenerate:B,renderNeedsSourcesCallout:T,renderWikiGenericCallout:F,renderSectionDiffPreview:R,resolveEvidenceTitle:D}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("section",{id:"case-evidence",className:"space-y-3 border-t border-border/30 pt-6",children:(0,r.jsxs)(eS.Nt,{open:u,onOpenChange:x,className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-end justify-between gap-2",children:[(0,r.jsx)("h2",{className:"case-section-heading",children:n?(0,L.tx)(e,"핵심 증거","Key evidence"):s("evidenceList")||(0,L.tx)(e,"증거","Evidence")}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[n&&a?.keyEvidence?.length||!g?null:(0,r.jsx)(v.$,{type:"button",variant:"ghost",size:"sm",onClick:p,className:"h-8 px-2 text-xs text-muted-foreground hover:text-foreground",children:h?(0,L.tx)(e,"연결만","Linked only"):(0,L.tx)(e,"전체 보기","Show all")}),n&&a?.keyEvidence?.length||f.length?(0,r.jsx)(eS.R6,{asChild:!0,children:(0,r.jsx)(v.$,{type:"button",variant:"ghost",size:"sm",className:"h-8 px-2 text-xs text-muted-foreground hover:text-foreground",children:u?(0,L.tx)(e,"증거 목록 숨기기","Hide evidence list"):(0,L.tx)(e,"증거 목록 보기","Show evidence list")})}):null,(0,r.jsxs)(v.$,{type:"button",variant:"ghost",size:"sm",onClick:$,className:"h-8 gap-1 px-2 text-xs text-muted-foreground hover:text-foreground",children:[(0,r.jsx)(m.A,{className:"h-4 w-4"}),(0,L.tx)(e,"증거 탭 열기","Open evidence tab")]})]})]}),n?R("keyEvidence"):null,u?null:(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:n&&a?.keyEvidence?.length?(0,L.tx)(e,`요약에 연결된 핵심 증거 ${a.keyEvidence.length}개`,`${a.keyEvidence.length} key evidence items linked in the summary`):f.length?b.length?(0,L.tx)(e,`요약에 연결된 증거 ${b.length}개`,`${b.length} evidence items linked in the summary`):h?(0,L.tx)(e,"추가된 증거가 없습니다.","No evidence added yet."):s("summaryNoReferencedEvidenceWithTotal",{count:f.length}):(0,L.tx)(e,"연결된 증거가 없습니다.","No linked evidence.")}),(0,r.jsxs)(eS.Ke,{children:[n&&l&&c&&(a?.keyEvidence?.length??0)>
10&&0===l.keyEvidence.length?T("핵심 증거","Key evidence","keyEvidence"):null,n&&l&&o&&c&&(a?.keyEvidence?.length??0)>0&&l.keyEvidence.length>0&&o.keyEvidence.shouldWarnGeneric?F("핵심 증거","Key evidence","keyEvidence",o.keyEvidence.genericCueHits,o.keyEvidence.shouldWarnSlop):null,n&&a?.keyEvidence?.length?(0,r.jsx)("ul",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3 list-none p-0 m-0",children:a.keyEvidence.filter((e,t,s)=>{let r=e.evidenceId?String(e.evidenceId):"";return!r||s.findIndex(e=>String(e.evidenceId||"")===r)===t}).map((t,s)=>{let n=t.evidenceId?String(t.evidenceId):"",a=t.title||(n?D(n):""),i=n?N?.[n]:void 0,l=[];return l.push({label:(0,L.tx)(e,"핵심","Key"),variant:"secondary"}),(t.summary||i?.snippet)&&l.push({label:(0,L.tx)(e,"요약","Summary"),variant:"outline"}),t.analysis&&l.push({label:(0,L.tx)(e,"분석","Analysis"),variant:"outline"}),(0,r.jsx)("li",{className:"min-w-0",children:(0,r.jsxs)("button",{type:"button",onClick:()=>n&&M?.(n),className:(0,j.cn)("w-full rounded-lg bg-card p-3 text-left shadow-[var(--shadow-elev-1)] transition-colors hover:bg-muted/50",n?"cursor-pointer":"cursor-default"),title:n?(0,L.tx)(e,"클릭하면 증거 보기","Click to view evidence"):void 0,"aria-label":n?`${a||""} ${(0,L.tx)(e,"증거 보기","View evidence")}`:void 0,children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground line-clamp-2 normal-nums tabular-nums",children:a||(0,L.tx)(e,"증거","Evidence")}),i?.snippet?(0,r.jsx)("p",{className:"mt-1.5 line-clamp-2 text-xs text-muted-foreground",children:i.snippet}):null,i?.pageCount?(0,r.jsxs)("span",{className:"mt-1 block text-xs text-muted-foreground",children:[i.pageCount,(0,L.tx)(e,"p","p")]}):null,l.length?(0,r.jsxs)("span",{className:"mt-2 block text-xs leading-snug text-muted-foreground",children:[l.slice(0,3).map(e=>e.label).join(" \xb7 "),l.length>3?` \xb7 +${l.length-3}`:""]}):null]})},n||`key-ev-${s}`)})}):f.length?b.length?(0,r.jsx)("ul",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3 list-none p-0 m-0",children:b.map(t=>{let s=D(t),a=n?y?.[t]:null,i=w[t],l=N?.[t],o=[];return n&&a?(a.overview&&o.push({label:(0,L.tx)(e,"개요","Overview"),variant:"secondary"}),a.people&&o.push({label:(0,L.tx)(e,"인물","People"),variant:"secondary"}),a.chronicle&&o.push({label:(0,L.tx)(e,"핵심 연대기","Chronicle"),variant:"secondary"}),a.arguments&&o.push({label:(0,L.tx)(e,"핵심 주장 및 쟁점","Arguments"),variant:"secondary"}),a.notes&&o.push({label:(0,L.tx)(e,"메모 및 의견","Notes"),variant:"secondary"}),a.keyEvidence&&o.push({label:(0,L.tx)(e,"핵심","Key"),variant:"secondary"}),a.sections&&o.push({label:(0,L.tx)(e,"추가 섹션","Extra section"),variant:"secondary"})):(i?.overview&&o.push({label:(0,L.tx)(e,"개요","Overview"),variant:"secondary"}),i?.issue&&o.push({label:(0,L.tx)(e,"쟁점","Issue"),variant:"secondary"}),i?.facts&&o.push({label:(0,L.tx)(e,"사실","Facts"),variant:"secondary"})),o.length||o.push({label:(0,L.tx)(e,"미인용","Not referenced"),variant:"outline"}),(0,r.jsx)("li",{className:"min-w-0",children:(0,r.jsxs)("button",{type:"button",onClick:()=>M?.(t),className:"w-full cursor-pointer rounded-lg bg-card p-3 text-left shadow-[var(--shadow-elev-1)] transition-colors hover:bg-muted/50",title:(0,L.tx)(e,"클릭하면 증거 보기","Click to view evidence"),"aria-label":`${s} ${(0,L.tx)(e,"증거 보기","View evidence")}`,children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground line-clamp-2 normal-nums tabular-nums",children:s}),l?.snippet?(0,r.jsx)("p",{className:"mt-1.5 line-clamp-2 text-xs text-muted-foreground",children:l.snippet}):null,l?.pageCount?(0,r.jsxs)("span",{className:"mt-1 block text-xs text-muted-foreground",children:[l.pageCount,(0,L.tx)(e,"p","p")]}):null,o.length?(0,r.jsxs)("span",{className:"mt-2 block text-xs leading-snug text-muted-foreground",children:[o.slice(0,3).map(e=>e.label).join(" \xb7 "),o.length>3?` \xb7 +${o.length-3}`:""]}):null]})},t)})}):(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:h?(0,L.tx)(e,"추가된 증거가 없습니다.","No evidence added yet."):(0,L.tx)(t,"요약 연결된 증거가 없습니다.","No evidence referenced in the summary.")}):(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:(0,L.tx)(e,"연결된 증거가 없습니다.","No linked evidence.")})]})]})}),n&&A.length>0&&C<80?(0,r.jsx)("div",{className:"surface-inset rounded-md px-4 py-3",children:(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-foreground",children:[(0,r.jsx)(d.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,L.tx)(e,`본문에 아직 인용되지 않은 증거 ${A.length}개`,`${A.length} evidence item(s) not yet cited in the wiki`)]}),(0,r.jsxs)("div",{className:"mt-1.5 flex flex-wrap gap-1.5",children:[A.slice(0,8).map(e=>{let t=k?.[e]||S?.[e]||e;return(0,r.jsx)("button",{type:"button",className:"inline-flex items-center rounded border border-border bg-background px-2 py-0.5 text-xs text-foreground transition-colors hover:bg-muted",onClick:()=>M?.(e),title:t,children:(S?.[e]||t).slice(0,30)},`unreferenced-${e}`)}),A.length>8?(0,r.jsxs)("span",{className:"inline-flex items-center px-1 text-xs text-muted-foreground",children:["+",A.length-8]}):null]}),(0,r.jsx)("p",{className:"mt-1.5 text-xs text-muted-foreground",children:(0,L.tx)(e,"위키를 재생성하면 더 반영될 수 있습니다. 업로드 전부가 핵심 증거 목록에 실릴 필요는 없습니다.","Regenerating the wiki may cite more of them. Not every upload needs to appear in the key-evidence list.")})]}),(0,r.jsxs)(v.$,{type:"button",variant:"outline",size:"sm",className:"h-8 shrink-0",onClick:B,disabled:I||!E,children:[(0,r.jsx)(i.A,{className:"mr-1 h-3 w-3"}),(0,L.tx)(e,"재생성","Regenerate")]})]})}):null]})}function eC({language:e,hasWiki:t,wiki:s,wikiEvidenceBySection:n,wikiSectionQualityBySection:a,hasAnyEvidenceForCoverage:i,hasNoteBucketContent:l,noteBucketAssumptions:o,noteBucketUncertainties:d,noteBucketFollowUps:c,renderNeedsSourcesCallout:u,renderWikiGenericCallout:m,renderSectionDiffPreview:x,renderTextWithEvidence
1Links:h,renderEvidenceLinks:p}){return(0,r.jsxs)("section",{id:"case-notes",className:"space-y-3 border-t border-border/30 pt-6",children:[(0,r.jsx)("div",{children:(0,r.jsx)("h2",{className:"case-section-heading",children:(0,L.tx)(e,"메모 및 의견","Notes")})}),t&&n&&i&&((s?.notes?.length??0)>0||l)&&0===n.notes.length?u("메모 및 의견","Notes","notes"):null,t&&n&&a&&i&&((s?.notes?.length??0)>0||l)&&n.notes.length>0&&a.notes.shouldWarnGeneric?m("메모 및 의견","Notes","notes",a.notes.genericCueHits,a.notes.shouldWarnSlop):null,t?x("notes"):null,s?.notes?.length||l?(0,r.jsxs)("div",{className:"space-y-3 text-sm text-foreground/90",children:[s?.notes?.length?(0,r.jsx)("ul",{className:"space-y-2",children:s.notes.map((e,t)=>(0,r.jsx)("li",{className:"border-l border-border/15 pl-3",children:h(e)},`${e}-${t}`))}):null,l?(0,r.jsxs)("div",{className:"grid gap-2 md:grid-cols-3",children:[o.length?(0,r.jsxs)("div",{className:"rounded-md border border-blue-200/70 bg-blue-50/60 p-3",children:[(0,r.jsx)("div",{className:"mb-1 text-xs font-semibold text-blue-800",children:(0,L.tx)(e,"가정","Assumptions")}),(0,r.jsx)("ul",{className:"space-y-1 text-[13px]",children:o.map((e,t)=>(0,r.jsx)("li",{children:h(e)},`assumption-${t}`))})]}):null,d.length?(0,r.jsxs)("div",{className:"rounded-md border border-amber-200/70 bg-amber-50/60 p-3",children:[(0,r.jsx)("div",{className:"mb-1 text-xs font-semibold text-amber-800",children:(0,L.tx)(e,"불확실성","Uncertainties")}),(0,r.jsx)("ul",{className:"space-y-1 text-[13px]",children:d.map((e,t)=>(0,r.jsx)("li",{children:h(e)},`uncertainty-${t}`))})]}):null,c.length?(0,r.jsxs)("div",{className:"rounded-md border border-emerald-200/70 bg-emerald-50/60 p-3",children:[(0,r.jsx)("div",{className:"mb-1 text-xs font-semibold text-emerald-800",children:(0,L.tx)(e,"후속 조치","Follow-ups")}),(0,r.jsx)("ul",{className:"space-y-1 text-[13px]",children:c.map((e,t)=>(0,r.jsx)("li",{children:h(e)},`follow-up-${t}`))})]}):null]}):null]}):(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:(0,L.tx)(e,"추가 메모가 없습니다.","No additional notes.")}),n?.notes?.length?p(n.notes):null]})}function eI({section:e,renderTextWithEvidenceLinks:t,renderInlineCitations:s,renderEvidenceLinks:n}){return(0,r.jsxs)("section",{id:e.domId,className:"space-y-3 border-t border-border/30 pt-6",children:[(0,r.jsx)("h2",{className:2===e.level?"text-xl font-bold":"text-2xl font-bold",children:e.title}),e.body?(0,r.jsx)("div",{className:"space-y-2 text-sm leading-relaxed text-foreground/90",children:e.body.split(/\n{2,}|\n/).map(e=>e.trim()).filter(Boolean).map((s,n)=>(0,r.jsx)("p",{children:t(s)},`${e.domId}-p-${n}`))}):null,e.items.length?(0,r.jsx)("ul",{className:"space-y-2 text-sm text-foreground/90",children:e.items.map((n,a)=>(0,r.jsxs)("li",{className:"border-l border-border/15 pl-3",children:[t(n.text),n.evidenceIds.length?s(n.evidenceIds):null]},`${e.domId}-i-${a}`))}):null,e.evidenceIds.length?n(e.evidenceIds):null]})}var eE=s(52750),e$=s(90467);let eM={high:0,medium:1,low:2};function eB(e){return e.trim().replace(/\s+/g," ").toLowerCase()}function eT(e){if("string"!=typeof e||!e.trim())return null;let t=Date.parse(e.trim());return Number.isFinite(t)?t:null}function eL(e){return"number"!=typeof e?"medium":e>=4?"high":e>=3?"medium":"low"}var eF=s(20204),eR=s(90133),eD=s(88684);let eO={high:"bg-destructive-surface",medium:"bg-primary/55",low:"bg-muted-foreground/40"};function eW(){let{language:e}=(0,f.B)(),{caseData:t}=(0,eR.kH)(),{items:s}=(0,eD.Q)(),a=t?.summary?.wiki?.atAGlance?.nextSteps,i=(0,n.useMemo)(()=>(function(e){let t=e.limit??6,s=[],r=new Set;for(let t of e.excludeTitles??[]){let e=eB(t);e&&r.add(e)}let n=e=>{let t=eB(e.title);!t||r.has(t)||(r.add(t),s.push(e))};for(let t of e.actionItems??[])t?.title&&"done"!==t.status&&n({key:`action:${t.id}`,title:t.title.trim(),source:"action",urgency:eL(t.priority),dueMs:eT(t.dueDate)});for(let t of e.brief?.nextActions??[]){let e="string"==typeof t?.action?t.action.trim():"";e&&n({key:`brief:${eB(e)}`,title:e,source:"brief",urgency:"high"===t.urgency||"low"===t.urgency?t.urgency:"medium",dueMs:eT(t.dueBy)})}for(let t of e.plan?.tasks??[])t?.title&&"done"!==t.status&&n({key:`plan:${t.id}`,title:t.title.trim(),source:"plan",urgency:eL(t.priority),dueMs:eT(t.dueDate)});return s.sort((e,t)=>
1{let s=eM[e.urgency]-eM[t.urgency];return 0!==s?s:null!==e.dueMs&&null!==t.dueMs?e.dueMs-t.dueMs:null!==e.dueMs?-1:+(null!==t.dueMs)}),s.slice(0,t)})({actionItems:s,plan:t?.plan??null,brief:t?.lawyerBrief?.final??t?.lawyerBrief?.draft??null,excludeTitles:Array.isArray(a)?a:[],limit:5}),[s,a,t?.plan,t?.lawyerBrief]);return i.length?(0,r.jsxs)("div",{className:"surface-inset rounded-md text-sm",children:[(0,r.jsxs)("div",{className:"border-b px-3 py-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(eE.A,{className:"h-4 w-4 text-primary"}),(0,r.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:(0,L.tx)(e,"관리\xb7브리프 할 일","From Manage & brief")})]}),(0,r.jsx)("p",{className:"mt-1 text-[11px] leading-snug text-muted-foreground",children:(0,L.tx)(e,"플랜\xb7브리프\xb7할 일에서 가져온 항목입니다. 위키의 “지금 할 일”과는 별개입니다.","Pulled from plan, brief, and tasks — separate from the wiki “Next steps” lead.")})]}),(0,r.jsx)("ul",{className:"divide-y divide-border/60",children:i.map(t=>(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button",onClick:()=>(0,eF.pW)("manage"),className:"flex w-full items-start gap-2 px-3 py-2 text-left transition-colors hover:bg-muted/50",children:[(0,r.jsx)("span",{className:(0,j.cn)("mt-1.5 h-2 w-2 shrink-0 rounded-full",eO[t.urgency]),"aria-hidden":"true"}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsx)("span",{className:"block min-w-0 leading-snug [overflow-wrap:break-word]",children:t.title}),(0,r.jsx)("span",{className:"mt-0.5 block text-[11px] text-muted-foreground",children:function(e,t){switch(e){case"plan":return(0,N.d3)(t,"플랜","Plan");case"brief":return(0,N.d3)(t,"브리프","Brief");default:return(0,N.d3)(t,"할 일","Task")}}(t.source,e)})]})]})},t.key))}),(0,r.jsxs)("button",{type:"button",onClick:()=>(0,eF.pW)("manage"),className:"flex w-full items-center justify-center gap-1 border-t px-3 py-2 text-xs font-medium text-primary transition-colors hover:bg-muted/50",children:[(0,L.tx)(e,"관리 탭에서 전체 보기","View all in Manage"),(0,r.jsx)(e$.A,{className:"h-3 w-3"})]})]}):null}var ez=s(88394),eP=s(81250),e_=s(8143);let eG=[{id:"summary"},{id:"timeline",nav:"timeline"},{id:"brief",nav:"brief"}];function eU({hasSummary:e,evidence:t,timelineTotal:s,onAddEvidence:i,onGenerateSummary:l}){let{language:d}=(0,f.B)(),{caseData:c}=(0,eR.kH)(),u=c?.id?`case:${c.id}:journeyDoneDismissed`:null,[m,h]=(0,n.useState)(!1);(0,n.useEffect)(()=>{"u">typeof localStorage&&u&&h("1"===localStorage.getItem(u))},[u]);let p=!!(c?.lawyerBrief?.final||c?.lawyerBrief?.draft),g=(0,n.useMemo)(()=>{var r;let n,a,i,l,o,d,c,u,m,x;return r={evidence:t??null,timelineTotal:s??0,hasSummary:e,hasBrief:p},n=Math.max(0,Math.floor(r.evidence?.total??0)),a=Math.max(0,Math.min(Math.floor(r.evidence?.analyzed??0),n)),i=n>0?Math.round(a/n*100):0,o=(l=n>0)&&a<n,d=r.hasSummary,c=r.timelineTotal>0,u=r.hasBrief,m=l&&0===a,x=null,l?m?x=null:d?c?u||(x={id:"brief",target:"brief"}):x={id:"timeline",target:"timeline"}:x={id:"summary",target:"generate-summary"}:x={id:"evidence",target:"add-evidence"},{evidence:{analyzed:a,total:n,pct:i},steps:[{id:"evidence",done:l},{id:"summary",done:d},{id:"timeline",done:c},{id:"brief",done:u}],next:x,analyzing:o,waiting:m,complete:l&&!o&&d&&c&&u}},[t,s,e,p]),b=(0,n.useMemo)(()=>new Map(g.steps.map(e=>[e.id,e.done])),[g.steps]),{total:y,analyzed:w,pct:N}=g.evidence,k=(0,r.jsx)("div",{className:"flex flex-wrap items-center gap-1.5",children:eG.map(e=>{let t=b.get(e.id)??!1,s=function(e,t){switch(e){case"summary":return(0,L.tx)(t,"요약","Summary");case"timeline":return(0,L.tx)(t,"타임라인","Timeline");case"brief":return(0,L.tx)(t,"브리프","Brief");default:return(0,L.tx)(t,"증거","Evidence")}}(e.id,d),n=(0,j.cn)("inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px]",t?"border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-900/50 dark:bg-emerald-950/30 dark:text-emerald-300":"border-border bg-muted/40 text-muted-foreground");return t&&e.nav?(0,r.jsxs)("button",{type:"button",onClick:()=>(0,eF.pW)(e.nav),className:(0,j.cn)(n,"transition-colors hover:brightness-95"),children:[(0,r.jsx)(o.A,{className:"h-3 w-3"}),s]},e.id):(0,r.jsxs)("span",{className:n,children:[t?(0,r.jsx)(o.A,{className:"h-3 w-3"}):null,s]},e.id)})});return g.complete?m?null:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-lg bg-card px-3 py-2 shadow-[var(--shadow-elev-1)]",children:[(0,r.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:(0,r.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1.5 text-xs font-semibold text-foreground",children:[(0,r.jsx)(o.A,{className:"h-4 w-4 text-emerald-500"}),(0,L.tx)(d,"준비 완료","Case-ready")]})}),(0,r.jsx)("button",{type:"button",onClick:()=>{h(!0);try{u&&localStorage.setItem(u,"1")}
1catch{}},"aria-label":(0,L.tx)(d,"접기","Dismiss"),title:(0,L.tx)(d,"접기","Dismiss"),className:"shrink-0 rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:(0,r.jsx)(x.A,{className:"h-3.5 w-3.5"})})]}):(0,r.jsxs)("div",{className:"rounded-lg bg-card p-3 shadow-[var(--shadow-elev-1)]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(e_.A,{className:"h-4 w-4 text-primary"}),(0,r.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:(0,L.tx)(d,"다음 단계","Next step")})]}),y>0?(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs font-medium text-muted-foreground",children:[g.analyzing?(0,r.jsx)(a.A,{className:"h-3 w-3 animate-spin"}):null,(0,L.tx)(d,"증거","Evidence")," ",w,"/",y]}):null]}),y>0?(0,r.jsx)("div",{className:"mt-2 h-1.5 w-full overflow-hidden rounded-full bg-muted",children:(0,r.jsx)("div",{className:(0,j.cn)("h-full rounded-full transition-all",N>=100?"bg-emerald-500":"bg-primary"),style:{width:`${Math.max(N,4*(y>0))}%`}})}):null,g.next?(0,r.jsxs)(v.$,{type:"button",size:"sm",className:"mt-3 w-full justify-between",onClick:()=>(e=>{switch(e.target){case"add-evidence":i();break;case"generate-summary":l();break;case"timeline":(0,eF.pW)("timeline");break;case"brief":(0,eF.pW)("brief")}})(g.next),children:[(0,r.jsx)("span",{className:"truncate",children:function(e,t){switch(e.target){case"add-evidence":return(0,L.tx)(t,"증거 추가하기","Add evidence");case"generate-summary":return(0,L.tx)(t,"사건 요약 생성하기","Generate case summary");case"timeline":return(0,L.tx)(t,"타임라인 만들기","Build the timeline");case"brief":return(0,L.tx)(t,"변호사용 브리프 만들기","Create the lawyer brief")}}(g.next,d)}),(0,r.jsx)(e$.A,{className:"ml-1 h-4 w-4 shrink-0"})]}):g.waiting?(0,r.jsxs)("p",{className:"mt-3 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsx)(a.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,L.tx)(d,"증거를 분석하고 있어요…","Analyzing your evidence…")]}):null,(0,r.jsx)("div",{className:"mt-3",children:k})]})}var eV=s(98500),eK=s.n(eV),eJ=s(51128),eH=s(34e3),eZ=s(50825),eQ=s(2125),eq=s(99801);function eY(e){return(e??"").trim().toLowerCase().replace(/\s+/g,"")}var eX=s(81477),e0=s(13152),e1=s(59981);function e2({caseId:e}){let{language:t,t:s}=(0,f.B)(),{toast:i}=(0,I.dj)(),{user:l}=(0,e1.A)(),{data:o}=(0,eq.PZ)(),d=(0,eq.vE)(),c=(0,eq.q9)(),[u,m]=(0,n.useState)(!1),[h,p]=(0,n.useState)(null),g=l?.uid,b=(0,n.useMemo)(()=>o?.find(t=>t.id===e),[o,e]),y=!!b&&!!g&&b.userId===g&&!b.isSample,{linked:w,suggestions:j,unlinkedOthers:k}=(0,n.useMemo)(()=>{if(!o||!b||!g)return{linked:[],suggestions:[],unlinkedOthers:[]};let t=new Set(b.relatedCaseIds??[]),s=o.filter(t=>t.id!==e&&t.userId===g&&!t.isSample),r=function(e,t,s={}){let r=s.maxResults??5,n=new Set(e.relatedCaseIds??[]),a=new Set([eY(e.userName),eY(e.opponentName)].filter(e=>e.length>=2));if(0===a.size)return[];let i=[];for(let s of t){if(s.id===e.id||n.has(s.id))continue;let t=eY(s.userName),l=eY(s.opponentName);if(t.length>=2&&a.has(t)?i.push({caseId:s.id,name:s.name,sharedParty:s.userName??"",matchedOn:"user"}):l.length>=2&&a.has(l)&&i.push({caseId:s.id,name:s.name,sharedParty:s.opponentName??"",matchedOn:"opponent"}),i.length>=r)break}return i}(b,s,{maxResults:3});return{linked:s.filter(e=>t.has(e.id)),suggestions:r,unlinkedOthers:s.filter(e=>!t.has(e.id))}},[o,b,e,g]);if(!o||!b||!y||0===w.length&&0===j.length&&0===k.length)return null;let S=d.isPending||c.isPending,A=r=>{d.mutate({caseId:e,relatedCaseId:r},{onSuccess:()=>m(!1),onError:e=>i({variant:"destructive",description:(0,e0.Y)(e,s,void 0,t)})})};return(0,r.jsxs)(eX.Zp,{className:"border-border/60",children:[(0,r.jsx)(eX.aR,{className:"pb-2",children:(0,r.jsxs)(eX.ZB,{className:"flex items-center gap-2 text-base font-semibold",children:[(0,r.jsx)(eJ.A,{className:"h-4 w-4 text-primary"}),(0,N.d3)(t,"관련 사건","Related cases","Casos relacionados")]})}),(0,r.jsxs)(eX.Wu,{className:"space-y-3",children:[j.length>0&&(0,r.jsx)("div",{className:"space-y-1.5",children:j.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-amber-200/60 bg-amber-50/50 px-2.5 py-1.5 dark:border-amber-900/40 dark:bg-amber-950/20",children:[(0,r.jsx)(eH.A,{className:"h-3.5 w-3.5 shrink-0 text-amber-500","aria-hidden":"true"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("p",{className:"truncate text-sm font-medium",children:e.name}),(0,r.jsx)("p",{className:"truncate text-xs text-muted-foreground",children:(0,N.d3)(t,`같은 당사자: ${e.sharedParty} \xb7 관련 사건일 수 있어요`,`Shares a party: ${e.sharedParty} \xb7 may be related`,`Comparte una parte: ${e.sharedParty} \xb7 puede estar relacionado`)}
1)]}),(0,r.jsx)(v.$,{type:"button",size:"sm",variant:"outline",className:"h-7 shrink-0 px-2 text-xs",disabled:S,onClick:()=>A(e.caseId),children:(0,N.d3)(t,"연결","Link","Vincular")})]},e.caseId))}),w.length>0&&(0,r.jsx)("ul",{className:"space-y-1",children:w.map(n=>{var l;let d;return(0,r.jsxs)("li",{className:"rounded-md",children:[(0,r.jsxs)("div",{className:"group/item flex items-center gap-1 rounded-md hover:bg-muted/60",children:[(0,r.jsxs)(eK(),{href:(l=n.id,d=o.find(e=>e.id===l),d?.slug?`/cases/${encodeURIComponent(d.slug)}`:`/cases/${encodeURIComponent(l)}`),className:"min-w-0 flex-1 px-2 py-1.5",children:[(0,r.jsx)("p",{className:"truncate text-sm font-medium leading-snug",children:n.name}),n.userRole?(0,r.jsx)("p",{className:"truncate text-xs text-muted-foreground",children:n.userRole}):null]}),(n.evidence?.length??0)>0?(0,r.jsx)(v.$,{type:"button",size:"icon",variant:"ghost",className:"h-7 w-7 shrink-0 text-muted-foreground opacity-70 group-hover/item:opacity-100","aria-label":(0,N.d3)(t,"증거 가져오기","Import evidence","Importar pruebas"),title:(0,N.d3)(t,"증거 가져오기","Import evidence","Importar pruebas"),onClick:()=>p(e=>e===n.id?null:n.id),children:(0,r.jsx)(eZ.A,{className:"h-3.5 w-3.5"})}):null,(0,r.jsx)(v.$,{type:"button",size:"icon",variant:"ghost",className:"h-7 w-7 shrink-0 text-muted-foreground opacity-70 group-hover/item:opacity-100",disabled:S,"aria-label":(0,N.d3)(t,"연결 해제","Unlink","Desvincular"),title:(0,N.d3)(t,"연결 해제","Unlink","Desvincular"),onClick:()=>{var r;return r=n.id,void c.mutate({caseId:e,relatedCaseId:r},{onError:e=>i({variant:"destructive",description:(0,e0.Y)(e,s,void 0,t)})})},children:S?(0,r.jsx)(a.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(x.A,{className:"h-3.5 w-3.5"})})]}),h===n.id?(0,r.jsx)(e3,{sourceCase:n,destCaseId:e,onClose:()=>p(null)}):null]},n.id)})}),k.length>0&&(0,r.jsx)("div",{children:u?(0,r.jsx)("div",{className:"max-h-48 space-y-1 overflow-y-auto rounded-md border border-border/60 p-1.5",children:k.map(e=>(0,r.jsxs)("button",{type:"button",disabled:S,onClick:()=>A(e.id),className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-sm hover:bg-muted disabled:opacity-50",children:[(0,r.jsx)(eQ.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"truncate",children:e.name})]},e.id))}):(0,r.jsxs)(v.$,{type:"button",size:"sm",variant:"ghost",className:"h-8 gap-1.5 px-2 text-xs text-muted-foreground",onClick:()=>m(!0),children:[(0,r.jsx)(eQ.A,{className:"h-3.5 w-3.5"}),(0,N.d3)(t,"사건 연결","Link a case","Vincular un caso")]})})]})]})}function e3({sourceCase:e,destCaseId:t,onClose:s}){let{language:i,t:l}=(0,f.B)(),{toast:o}
1=(0,I.dj)(),d=(0,eq.rZ)(),[c,u]=(0,n.useState)(new Set),m=(e.evidence??[]).filter(e=>"string"==typeof e?.id).slice(0,50);return 0===m.length?(0,r.jsx)("p",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:(0,N.d3)(i,"가져올 증거가 없습니다.","No evidence to import.","No hay pruebas.")}):(0,r.jsxs)("div",{className:"ml-2 mt-1 space-y-1 rounded-md border border-border/60 p-2",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,N.d3)(i,"가져올 증거 선택 (사본이 이 사건에 추가됩니다)","Select evidence to import (a copy is added to this case)","Selecciona pruebas para importar (se a\xf1ade una copia)")}),(0,r.jsx)("div",{className:"max-h-40 space-y-0.5 overflow-y-auto",children:m.map(e=>(0,r.jsxs)("label",{className:"flex items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-muted",children:[(0,r.jsx)("input",{type:"checkbox",checked:c.has(e.id),onChange:()=>{let t;return t=e.id,u(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},disabled:d.isPending}),(0,r.jsx)("span",{className:"truncate",children:e.fileName||e.id})]},e.id))}),(0,r.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,r.jsx)(v.$,{type:"button",size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:s,disabled:d.isPending,children:(0,N.d3)(i,"취소","Cancel","Cancelar")}
1),(0,r.jsx)(v.$,{type:"button",size:"sm",className:"h-7 px-2 text-xs",onClick:()=>{let r=Array.from(c);0!==r.length&&d.mutate({sourceCaseId:e.id,destCaseId:t,evidenceIds:r},{onSuccess:({created:e})=>{o({description:(0,N.d3)(i,`증거 ${e.length}건을 가져왔어요. 분석이 진행됩니다.`,`Imported ${e.length} item(s). Analysis is running.`,`Importadas ${e.length}. Analizando.`)}),s()},onError:e=>o({variant:"destructive",description:(0,e0.Y)(e,l,void 0,i)})})},disabled:d.isPending||0===c.size,children:d.isPending?(0,r.jsx)(a.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,N.d3)(i,`${c.size}건 가져오기`,`Import ${c.size}`,`Importar ${c.size}`)})]})]})}var e5=s(31828);let e4=["auto","lead","chronicle","arguments"],e8="auto",e9=["overview","people","chronicle","arguments","evidence","notes"],e6={auto:e9,lead:e9,chronicle:["chronicle","overview","people","arguments","evidence","notes"],arguments:["arguments","overview","people","chronicle","evidence","notes"]};function e7(e){return`case:${String(e||"").trim()}:wikiLayout`}function te(e){return`case:${e}`}var tt=s(62039),ts=s(21748);function tr({language:e,value:t,onChange:s}){return(0,r.jsxs)("div",{className:"rounded-lg border bg-muted/20 px-3 py-2.5",children:[(0,r.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,r.jsx)(ts.A,{className:"h-3.5 w-3.5 text-muted-foreground","aria-hidden":"true"}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("p",{className:"text-xs font-semibold text-foreground/90",children:(0,L.tx)(e,"보기 레이아웃","View layout")}),(0,r.jsx)("p",{className:"text-[11px] leading-snug text-muted-foreground",children:(0,L.tx)(e,"같은 요약 내용 \xb7 순서만 바꿉니다 (추가 AI 비용 없음)","Same summary content — only reorders sections (no extra AI cost)")})]})]}),(0,r.jsx)("div",{className:"grid grid-cols-2 gap-1.5 lg:grid-cols-4",role:"radiogroup","aria-label":(0,L.tx)(e,"위키 레이아웃","Wiki layout"),children:e4.map(n=>{let a=t===n,i=function(e,t){switch(e){case"auto":return{title:(0,L.tx)(t,"사건에 맞게","Fits this case"),blurb:(0,L.tx)(t,"AI가 이 사건에 맞춰 정한 순서","The order the AI chose for this case")};case"lead":return{title:(0,L.tx)(t,"Lead 중심","Lead-first"),blurb:(0,L.tx)(t,"요약\xb7지금 할 일 먼저","Summary & next steps first")};case"chronicle":return{title:(0,L.tx)(t,"연대기 중심","Chronicle-first"),blurb:(0,L.tx)(t,"시간순 스토리 먼저","Timeline story first")};case"arguments":return{title:(0,L.tx)(t,"쟁점 중심","Arguments-first"),blurb:(0,L.tx)(t,"쟁점 대립표 먼저","Issue table first")};default:return e}}(n,e);return(0,r.jsxs)("button",{type:"button",role:"radio","aria-checked":a,onClick:()=>s(n),className:(0,j.cn)("rounded-md border px-2.5 py-2 text-left transition-colors",a?"border-primary/40 bg-primary/[0.06]":"border-border/70 bg-background hover:bg-muted/40"),children:[(0,r.jsx)("span",{className:"block text-xs font-semibold text-foreground",children:i.title}),(0,r.jsx)("span",{className:"mt-0.5 block text-[11px] leading-snug text-muted-foreground",children:i.blurb})]},n)})})]})}function tn({caseId:e,caseName:t,caseStatus:s,statusLabel:M,jurisdictions:_,userRole:G,userName:U,opponentName:Z,evidenceCount:Q,summary:q,lastUpdatedAt:Y,onSummaryUpdate:X,isLoading:ee,isQueued:es=!1,regenReason:er,errorState:en,onOpenContextNotes:ea,onOpenEvidence:ei,onFilesDropped:el,isSampleCase:eo=!1,evidenceTitleById:ed,evidenceLabelById:ef,evidenceCodeById:ev,evidenceIds:eb,evidencePreviewById:eS,onOpenEvidenceItem:eE,onCaseNameUpdate:e$,onRegenerate:eM,hud:eB}){let eT,{t:eL,language:eR}=(0,f.B)(),eD=eR.toLowerCase().startsWith("ko"),eO=(0,N.iG)(eR),e_=!!(ee&&!q?.caseOverview),eG=(0,ex.m)(e_,4e3),eV=(0,n.useMemo)(()=>new Intl.RelativeTimeFormat(eO||"ko-KR",{numeric:"auto"}),[eO]);eL("lastUpdated"),function(e,t){if(e)try{let s=e instanceof Date?e:W(e)?e.toDate():new Date(e);if(Number.isNaN(s.getTime()))return"";let r=s.getTime()-Date.now(),n=Math.round(r/6e4),a=Math.round(r/36e5),i=Math.round(r/864e5);if(60>Math.abs(n))return t.format(n,"minute");
1if(24>Math.abs(a))return t.format(a,"hour");t.format(i,"day")}catch{return""}}(Y,eV);let eK=(0,n.useMemo)(()=>{if(!Y)return null;try{let e=Y instanceof Date?Y:W(Y)?Y.toDate():new Date(Y);if(Number.isNaN(e.getTime()))return null;return new Intl.DateTimeFormat(eO||"ko-KR",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(e)}catch{return null}},[Y,eO]),{isEditing:eJ,editedSummary:eH,isAiFeedbackOpen:eZ,aiFeedbackMessage:eQ,aiFeedbackError:eq,isSubmittingAiFeedback:eY,canRegenerate:eX,handleEditClick:e0,handleSave:e1,handleCancel:e3,handleRegenerate:ts,handleRetry:ta,openAiAdjustDialog:ti,closeAiAdjustDialog:tl,setAiFeedbackMessage:to,setAiFeedbackError:td,handleAiAdjust:tc,setEditedSummary:tu,handleKeyFactChange:tm,addKeyFact:tx,removeKeyFact:th}=function({summary:e,isLoading:t,language:s,onSummaryUpdate:a,onRegenerate:i,t:l}){let{toast:o}=(0,I.dj)(),[d,c]=(0,n.useState)(!1),[u,m]=(0,n.useState)(e),[x,h]=(0,n.useState)(),[p,g]=(0,n.useState)(!1),[f,v]=(0,n.useState)(""),[b,y]=(0,n.useState)(""),[w,j]=(0,n.useState)(void 0),[N,k]=(0,n.useState)(!1),[S,A]=(0,n.use
1State)(0),[C,M]=(0,n.useState)(0);(0,n.useEffect)(()=>{e?m({...e,caseOverview:B(e.caseOverview),coreIssue:B(e.coreIssue),keyFacts:Array.isArray(e.keyFacts)?e.keyFacts.map(e=>B(e)):[],...e.keyFactsV2?{keyFactsV2:e.keyFactsV2.map(e=>({...e,text:B(e.text)}))}:{}}):m(e)},[e]),(0,n.useEffect)(()=>{if(!S)return void M(0);let e=()=>M(Date.now());e();let t=45e3-(Date.now()-S);if(t<=0)return;let s=window.setTimeout(e,t+50);return()=>window.clearTimeout(s)},[S]);let T=!t&&(0===S||C-S>=45e3),L=async(e,t)=>{let{dismiss:r}=o({description:l("feedbackSubmitting")});try{await (0,E.W)({originalSummary:e,editedSummary:t,language:s}),r(),o({description:l("feedbackSuccess")})}catch(e){console.error("Feedback submission failed",e),r(),o({variant:"destructive",title:l("error"),description:l("feedbackError")})}},F=()=>{g(!1),v(""),y(""),j(void 0)},R=async()=>{let e=f.trim();if(0===e.length)return void y(l("summaryAiFeedbackRequired"));try{k(!0),await i({trigger:"manual",feedback:e,...w?{section:w}:{},throwOnError:!0}),o({title:l("summaryAiSubmitted"),description:l("summaryAiSubmittedDesc")}),F()}catch(e){console.error("Summary AI adjust failed",e),y(l("aiFeedbackErrorGeneric"))}finally{k(!1)}};return{isEditing:d,editedSummary:u,isAiFeedbackOpen:p,aiFeedbackMessage:f,aiFeedbackError:b,isSubmittingAiFeedback:N,canRegenerate:T,handleEditClick:()=>{h(e),c(!0)},handleSave:()=>{u&&x&&(a(u),o({title:l("feedbackToastTitle"),description:l("feedbackToastDescription"),action:(0,r.jsx)($.Qg,{altText:l("feedbackToastAction"),onClick:()=>L(x,u),children:l("feedbackToastAction")}),duration:1e4})),c(!1),h(void 0)},handleCancel:()=>{m(e),c(!1),h(void 0)},handleRegenerate:()=>{T&&(A(Date.now()),i({trigger:"manual"}))},handleRetry:()=>{i({trigger:"manual"})},openAiAdjustDialog:e=>{v(""),y(""),j(e),g(!0)},closeAiAdjustDialog:F,setAiFeedbackMessage:v,setAiFeedbackError:y,handleAiAdjust:R,setEditedSummary:m,handleKeyFactChange:(e,t)=>
1{if(!u)return;let s=[...u.keyFacts||[]];s[e]=t,m({...u,keyFacts:s})},addKeyFact:()=>{if(!u)return;let e=[...u.keyFacts||[],""];m({...u,keyFacts:e})},removeKeyFact:e=>{if(!u)return;let t=(u.keyFacts||[]).filter((t,s)=>s!==e);m({...u,keyFacts:t})}}}({summary:q,isLoading:ee,language:eR,onSummaryUpdate:X,onRegenerate:eM,t:eL}),[tp,tg]=(0,n.useState)(!1),[tf,tv]=(0,n.useState)(!1),[tb,ty]=(0,n.useState)(!1),[tw,tj]=(0,n.useState)(!0),[tN,tk]=(0,n.useState)(!1),[tS,tA]=(0,n.useState)(t??""),tC=(0,n.useCallback)(()=>{let e=tS.trim();e$&&e&&e!==(t??"").trim()&&e$(e),e1()},[tS,t,e$,e1]),tI=()=>{tA(t??""),e3()},tE=(0,n.useRef)(null),t$=(0,n.useCallback)(()=>{tC(),tk(!0),tE.current&&clearTimeout(tE.current),tE.current=setTimeout(()=>tk(!1),2e3)},[tC]);(0,n.useEffect)(()=>()=>{tE.current&&clearTimeout(tE.current)},[]);let{sectionRegenerating:tM,sectionRegenerateErrors:tB,sectionRegenerateSuccessAt:tT,sectionDiffPreviewBySection:tL,sectionRollbackSnapshots:tF,persistedSectionRollbackSnapshots:tR,latestVersionBySection:tD,handleSectionRegenerate:tO,handleSectionRollback:tW}=function({caseId:e,language:t,summary:s,onSummaryUpdate:r,onRegenerate:a,isLoading:i,isQueued:l}
1){let[o,d]=(0,n.useState)(null),[c,u]=(0,n.useState)({}),[m,x]=(0,n.useState)({}),[h,p]=(0,n.useState)({}),[g,f]=(0,n.useState)({}),[v,b]=(0,n.useState)({}),[y,w]=(0,n.useState)({}),j=(0,n.useRef)(null),N=(0,n.useMemo)(()=>JSON.stringify(s?.wiki??null),[s?.wiki]),k=(0,n.useRef)(N),S=(0,n.useCallback)(async()=>{if(e&&J.auth.currentUser)try{let t=(0,K.collection)(J.db,"cases",e,"summary_versions"),s=await (0,K.getDocs)((0,K.query)(t,(0,K.orderBy)("createdAt","desc"),(0,K.limit)(40))),r={},n={};s.docs.forEach(e=>{let t=e.data(),s=String(t.section??"").trim();if(!O.includes(s)||r[s])return;let a="boolean"==typeof t.hasBeforeSection?t.hasBeforeSection:void 0!==t.beforeSection,i=a?z(t.beforeSection):void 0,l=(0,D.k)(t.createdAt);r[s]={id:e.id,section:s,beforeSection:i,createdAtMs:l},n[s]={hasValue:a,value:a?i:void 0,capturedAt:l||Date.now()}}),w(r),b(n)}catch(e){if((0,H.BZ)(e)||(0,H.$R)(e))return;console.warn("[summary_versions] failed to load versions",e)}},[e]);(0,n.useEffect)(()=>{S()},[S]);let A=(0,n.useCallback)(async(t,s)=>{if(!e||!J.auth.currentUser)return;let r=void 0!==s,n=(()=>{if(!r)return null;try{return JSON.parse(JSON.stringify(s??null))}catch{return z(s??null)}})();try{let s=(0,K.collection)(J.db,"cases",e,"summary_versions"),a=await (0,K.addDoc)(s,{mode:"section_regenerate",section:t,hasBeforeSection:r,beforeSection:n,actorUid:J.auth.currentUser?.uid??null,createdAt:(0,K.serverTimestamp)()}),i=Date.now(),l={hasValue:r,value:r?n:void 0,capturedAt:i};b(e=>({...e,[t]:l})),w(e=>({...e,[t]:{id:a.id,section:t,beforeSection:r?n:void 0,createdAtMs:i}}))}catch(e){if((0,H.BZ)(e)||(0,H.$R)(e))return;console.warn("[summary_versions] failed to persist snapshot",e)}},[e]),C=(0,n.useCallback)(async e=>{if(j.current||!s?.wiki)return;let r=P(s.wiki,e);f(t=>({...t,[e]:{hasValue:void 0!==r,value:z(r),capturedAt:Date.now()}})),await A(e,r),p(t=>{let s={...t};return delete s[e],s}),u(t=>({...t,[e]:""})),d(e),j.current=e;try{await a({trigger:"manual",section:e,throwOnError:!0})}catch(r){let s=r instanceof Error&&r.message?r.message:(0,L.tx)(t,"해당 섹션 재생성에 실패했습니다.","Failed to regenerate this section.");u(t=>({...t,[e]:s})),d(null),j.current=null}},[t,a,A,s]),I=(0,n.useCallback)(e=>{if(!s)return;let t=g[e]??v[e];if(!t)return;let n=function(e,t,s){let r={...e??{}};switch(t){case"atAGlance":s.hasValue?r.atAGlance=s.value:delete r.atAGlance;break;case"overview":s.hasValue?r.overview=s.value:delete r.overview;break;case"people":s.hasValue?r.people=s.value:delete r.people;break;case"chronicle":s.hasValue?r.chronicle=s.value:delete r.chronicle;break;case"arguments":s.hasValue?r.arguments=s.value:delete r.arguments;break;case"keyEvidence":s.hasValue?r.keyEvidence=s.value:delete r.keyEvidence;break;case"notes":if(s.hasValue&&s.value&&"object"==typeof s.value){let e=s.value;void 0!==e.notes?r.notes=e.notes:delete r.notes,void 0!==e.noteBuckets?r.noteBuckets=e.noteBuckets:delete r.noteBuckets}else delete r.notes,delete r.noteBuckets}return Object.keys(r).length>0?r:void 0}(s.wiki,e,t),a={...s};n?a.wiki=n:delete a.wiki,r(a),u(t=>({...t,[e]:""})),x(t=>({...t,[e]:Date.now()})),p(t=>{let s={...t};return delete s[e],s})},[r,v,g,s]);return(0,n.useEffect)(()=>{if(k.current!==N){let e=j.current;if(e){let t=g[e],r=t?.hasValue?t.value:void 0,n=P(s?.wiki,e);p(t=>({...t,[e]:V(e,r,n)})),x(t=>({...t,[e]:Date.now()})),u(t=>({...t,[e]:""})),d(null),j.current=null}k.current=N}},[g,s?.wiki,N]),(0,n.useEffect)(()=>{if(!j.current||i||l)return;let e=j.current,t=g[e],r=t?.hasValue?t.value:void 0,n=P(s?.wiki,e);p(t=>({...t,[e]:V(e,r,n)})),x(t=>({...t,[e]:Date.now()})),d(null),j.current=null},[i,l,g,s?.wiki]),(0,n.useEffect)(()=>{if(!Object.keys(m).length)return;let e=setTimeout(()=>{let e=Date.now();x(t=>{let s={};return Object.keys(t).forEach(r=>{let n=t[r];"number"==typeof n&&e-n<1e4&&(s[r]=n)}),s})},1200);return()=>clearTimeout(e)},[m]),{sectionRegenerating:o,sectionRegenerateErrors:c,sectionRegenerateSuccessAt:m,sectionDiffPreviewBySection:h,sectionRollbackSnapshots:g,persistedSectionRollbackSnapshots:v,latestVersionBySection:y,handleSectionRegenerate:C,handleSectionRollback:I}}({caseId:e,language:eR,summary:q,onSummaryUpdate:X,onRegenerate:eM,isLoading:ee,isQueued:es}),tz=(0,n.useCallback)((e,t)=>{ti(t),td(""),to(e)},[ti,td,to]),tP=(0,n.useCallback)((e,t)=>eD?`「${e}」 섹션을 증거에 더 가깝게 다시 써 주세요.
2- 핵심 문장마다 근거가 된 증거를 연결해 주세요 (실제로 올린 증거만).
3- 날짜\xb7사람\xb7행동\xb7발언을 증거에 적힌 대로 구체적으로 써 주세요.
4- 뒷받침할 증거가 없으면 "증거 부족"이라고 적고, 어떤 자료가 더 필요한지 알려 주세요.`:`Please rewrite the "${t}" section closer to the evidence.
5- Link each key sentence to the evidence it rests on (only evidence that was uploaded).
6- Use the dates, people, actions and statements as the evidence records them.
7- Where nothing supports a point, say "insufficient evidence" and name what would settle it.`,[eD]),t_=(0,n.useCallback)((e,t,s)=>{let r=s.length?s.slice(0,4).join(", "):"";return eD?`「${e}」 섹션을 더 구체적으로 다시 써 주세요.
8- 두루뭉술한 표현이 있어요${r?`: ${r}`:""}.
9- 날짜\xb7사람\xb7행동\xb7발언으로 바꿔 써 주세요.
10- 핵심 문장마다 근거가 된 증거를 연결해 주세요 (실제로 올린 증거만).
11- 뒷받침할 증거가 없으면 "증거 부족"이라고 적고, 어떤 자료가 더 필요한지 알려 주세요.`:`Please make the "${t}" section more specific.
12- Some wording is generic${r?`: ${r}`:""}.
13- Replace it with concrete dates, people, actions and statements.
14- Link each key sentence to the evidence it rests on (only evidence that was uploaded).
15- Where nothing supports a point, say "insufficient evidence" and name what would settle it.`},[eD]),tG=(0,n.useCallback)((e,t,s)=>(0,r.jsx)(F,{language:eR,sectionLabelKo:e,sectionLabelEn:t,onImprove:()=>tz(tP(e,t),s)}),[tP,eR,tz]),tU=(0,n.useCallback)((e,t,s,n,a)=>(0,r.jsx)(R,{language:eR,sectionLabelKo:e,sectionLabelEn:t,cues:n,aiSlop:a,onImprove:()=>tz(t_(e,t,n),s)}),[t_,eR,tz]);(0,n.useCallback)(e=>{let t=tM===e,s=!!(tM&&tM!==e),n=!!tB[e],c=!!tT[e],u=tF[e]??tR[e],m=tD[e],x=!!u&&!t&&!ee&&!eY&&!s;return(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsxs)(v.$,{type:"button",variant:"ghost",size:"sm",className:(0,j.cn)("h-7 px-2 text-xs",t&&"text-primary",n&&"text-destructive"),onClick:()=>void tO(e),disabled:ee||eY||s||t,children:[t?(0,r.jsx)(a.A,{className:"mr-1 h-3 w-3 animate-spin"}):(0,r.jsx)(i.A,{className:"mr-1 h-3 w-3"}),(0,L.tx)(eR,"재생성","Regenerate")]}),x?(0,r.jsxs)(v.$,{type:"button",variant:"ghost",size:"sm",className:"h-7 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:()=>tW(e),title:m?.createdAtMs?(0,L.tx)(eR,`저장된 버전: ${new Date(m.createdAtMs).toLocaleStr
15ing(eO||"ko-KR")}`,`Saved version: ${new Date(m.createdAtMs).toLocaleString(eO||"en-US")}`):void 0,children:[(0,r.jsx)(l.A,{className:"mr-1 h-3 w-3"}),(0,L.tx)(eR,"되돌리기","Rollback")]}):null,c?(0,r.jsxs)(g.E,{variant:"secondary",className:"h-6 px-2 text-xs",children:[(0,r.jsx)(o.A,{className:"mr-1 h-3 w-3"}),(0,L.tx)(eR,"업데이트됨","Updated")]}):null,n?(0,r.jsxs)(g.E,{variant:"destructive",className:"h-6 px-2 text-xs",title:tB[e],children:[(0,r.jsx)(d.A,{className:"mr-1 h-3 w-3"}),(0,L.tx)(eR,"실패","Failed")]}):null]})},[eR,tO,tW,ee,eY,tD,eO,tR,tB,tT,tM,tF]);let tV=(0,n.useCallback)(e=>{let t=tL[e];return t?t.hasChanges?(0,r.jsxs)("div",{className:"space-y-2 rounded-md border border-sky-200 bg-sky-50/70 px-3 py-2 text-xs",children:[(0,r.jsx)("div",{className:"font-semibold text-sky-900",children:(0,L.tx)(eR,`최근 섹션 변경: +${t.addedCount} / -${t.removedCount}`,`Recent section changes: +${t.addedCount} / -${t.removedCount}`)}),t.added.length?(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("div",{className:"text-xs font-semibold text-emerald-700",children:(0,L.tx)(eR,"추가됨","Added")}),(0,r.jsx)("ul",{className:"space-y-1",children:t.added.map((t,s)=>(0,r.jsxs)("li",{className:"rounded border border-emerald-200 bg-emerald-50 px-2 py-1 text-emerald-900",children:["+ ",t]},`diff-added-${e}-${s}`))})]}):null,t.removed.length?(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("div",{className:"text-xs font-semibold text-rose-700",children:(0,L.tx)(eR,"삭제됨","Removed")}),(0,r.jsx)("ul",{className:"space-y-1",children:t.removed.map((t,s)=>(0,r.jsxs)("li",{className:"rounded border border-rose-200 bg-rose-50 px-2 py-1 text-rose-900",children:["- ",t]},`diff-removed-${e}-${s}`))})]}):null]}):(0,r.jsx)("div",{className:"rounded-md border border-border bg-muted/70 px-3 py-2 text-xs text-muted-foreground",children:(0,L.tx)(eR,"변경된 문장이 없습니다.","No sentence-level changes detected.")}):null},[eR,tL]),tK=es?eL("summaryStageQueued"):ee?q?._progress?.label||eL("summaryStageGenerating"):"",tJ=eL("caseSummaryNoOverview"),tH=eL("caseSummaryNoKeyFacts"),tZ=q?.wiki,tQ=(0,n.useMemo)(()=>Array.isArray(tZ?.chronicle?.incidentItems)?tZ.chronicle.incidentItems.map(e=>({text:B(e?.text),evidenceIds:Array.isArray(e?.evidenceIds)?e.evidenceIds.map(e=>String(e||"").trim()).filter(Boolean):[],timeRange:B(e?.timeRange),confidence:e?.confidence==="high"||e?.confidence==="medium"||e?.confidence==="low"?e.confidence:void 0})).filter(e=>e.text.length>0):[],[tZ?.chronicle?.incidentItems]),tq=(0,n.useMemo)(()=>Array.isArray(tZ?.noteBuckets?.assumptions)?tZ.noteBuckets.assumptions.map(e=>B(e)).filter(Boolean):[],[tZ?.noteBuckets?.assumptions]),tY=(0,n.useMemo)(()=>Array.isArray(tZ?.noteBuckets?.uncertainties)?tZ.noteBuckets.uncertainties.map(e=>B(e)).filter(Boolean):[],[tZ?.noteBuckets?.uncertainties]),tX=(0,n.useMemo)(()=>Array.isArray(tZ?.noteBuckets?.followUps)?tZ.noteBuckets.followUps.map(e=>B(e)).filter(Boolean):[],[tZ?.noteBuckets?.followUps]),t0=(0,n.useMemo)(()=>tq.length>0||tY.length>0||tX.length>0,[tq,tY,tX]),t1=!!tZ?.atAGlance||!!tZ?.overview||!!tZ?.people?.parties?.length||!!tZ?.people?.others?.length||!!tZ?.chronicle?.background||!!tZ?.chronicle?.incident||!!tZ?.chronicle?.investigation||!!tQ.length||!!tZ?.arguments?.length||!!tZ?.keyEvidence?.length||!!tZ?.notes?.length||t0,t2=(0,n.useMemo)(()=>{if(!eD||!q)return!1;let e=q.wiki?.atAGlance,t=[q.caseOverview,q.coreIssue,...Array.isArray(q.keyFacts)?q.keyFacts:[],e?.oneLiner,e?.currentStatus,e?.currentStage,e?.caseType,...Array.isArray(e?.keyEvidence)?e.keyEvidence:[],...Array.isArray(e?.coreIssues)?e.coreIssues:[],...Array.isArray(e?.nextSteps)?e.nextSteps:[]].map(e=>B(e)).filter(Boolean).join(" ").replace(/\[\[[^\]]+\]\]/g," ").trim();if(!t)return!1;let s=t.match(ep)?.length??0;return(t.match(eg)?.length??0)>=10&&s<12},[eD,q]),t3=(0,n.useCallback)(()=>{eM({trigger:"manual",feedback:"현재 요약에 영어 문장이 남아 있습니다. 고유명사와 증거 ID는 유지하되, caseOverview/keyFacts/coreIssue/wiki의 모든 사용자 표시 문장을 자연스러운 한국어로 다시 작성하세요."})},[eM]),t5=B(tZ?.overview??q?.caseOverview),t4=t5?t5.split(/\n+/).map(e=>
15e.trim()).filter(Boolean):[],t8=Array.isArray(q?.caseOverviewEvidenceIds)?q.caseOverviewEvidenceIds:eh,t9=Array.isArray(q?.coreIssueEvidenceIds)?q.coreIssueEvidenceIds:eh,t6=B(q?.coreIssue),t7=Array.isArray(q?.keyFactsV2)?q?.keyFactsV2:null,se=t7?t7.map(e=>({...e,text:B(e.text)})).filter(e=>e.text.length>0):null,st=Array.isArray(q?.keyFacts)?q.keyFacts.map(e=>B(e)).filter(e=>e.length>0):[],ss=!!se?.length,sr=st.length>0,sn=ss?ss&&se?tf?se:se.slice(0,6):[]:tf?st:st.slice(0,6),sa=ss?se?.length??0:st.length,si=(0,n.useMemo)(()=>{let e=new Set;return t8.forEach(t=>e.add(String(t))),t9.forEach(t=>e.add(String(t))),se&&se.forEach(t=>{(t.evidenceIds||[]).forEach(t=>e.add(String(t)))}),Array.from(e).filter(Boolean)},[t9,t8,se]),sl=(0,n.useMemo)(()=>{let e={},t=t=>{let s=String(t||"").trim();return s?(e[s]||(e[s]={overview:!1,issue:!1,facts:!1}),s):null};return t8.forEach(s=>{let r=t(s);r&&(e[r].overview=!0)}),t9.forEach(s=>{let r=t(s);r&&(e[r].issue=!0)}),(se||[]).forEach(s=>{(s?.evidenceIds||[]).forEach(s=>{let r=t(s);r&&(e[r].facts=!0)})}),e},[t9,t8,se]),so=(0,n.useMemo)(()=>Array.from(new Set((eb??[]).map(e=>String(e)).filter(Boolean))),[eb]),sd=so.length?so:si,sc=("number"==typeof Q?Q:Array.isArray(eb)&&eb.length?eb.length:sd.length)>0,su=(0,n.useMemo)(()=>sd.filter(e=>{let t=sl[e];return!!(t?.overview||t?.issue||t?.facts)}),[sd,sl]),{findEvidenceIdByLabel:sm,resolveEvidenceToken:sx,getEvidenceNumber:sh,resolveEvidenceTitle:sp}=(0,C.jO)({allEvidenceIds:so,evidenceTitleById:ed,evidenceLabelById:ef,evidenceCodeById:ev,evidencePreviewById:eS,evidenceListIds:sd,isKo:eD}),{renderTextWithEvidenceLinks:sg,renderInlineCitations:sf,renderMissingCitation:sv,renderEvidenceLinks:sb,renderWikiRichText:sy}=(0,T.nJ)({findEvidenceIdByLabel:sm,getEvidenceNumber:sh,resolveEvidenceToken:sx,evidenceLabelById:ef,evidenceTitleById:ed,evidencePreviewById:eS,onOpenEvidenceItem:eE,isKo:eD,t:eL}),sw=(0,n.useCallback)((...e)=>{let t=[],s=new Set;return e.forEach(e=>{(e??[]).forEach(e=>{let r=String(e??"").trim();!r||s.has(r)||(s.add(r),t.push(r))})}),t},[]),sj=(0,n.useCallback)(e=>{let t=String(e??"").trim();if(!t)return[];let s=[],r=new Set,n=/\[\[([^\]]+)\]\]|\[([^\]]+)\]/g,a=null;for(;null!==(a=n.exec(t));){let e=(a[1]??a[2]??"").trim();if(e){if(/^\d+$/.test(e)){let t=parseInt(e,10);if(t>=1900&&t<=2100)continue}e.replace(/\]\s*,?\s*\[/g,",").replace(/\band\b/gi,",").replace(/[;|/]/g,",").split(",").flatMap(e=>e.split(/\s+/)).map(e=>(0,C.N3)(e)).filter(e=>{if(!e)return!1;if(/^\d+$/.test(e)){let t=parseInt(e,10);if(t>=1900&&t<=2100)return!1}return!0}).forEach(e=>{let t=sm(e);!t||r.has(t)||(r.add(t),s.push(t))})}}return s},[sm]),sN=(0,n.useMemo)(()=>t1&&tZ?{overview:sw(t8,t9,sj(tZ.overview),sj(q?.caseOverview),sj(q?.coreIssue)),people:sw(...(tZ.people?.parties??[]).map(e=>sw(e.evidenceIds??[],sj(e.profile),sj(e.notes),sj(e.relationship),sj(e.credibility))),...(tZ.people?.others??[]).map(e=>sw(e.evidenceIds??[],sj(e.profile),sj(e.notes),sj(e.relationship),sj(e.credibility)))),chronicle:sw(sj(tZ.chronicle?.background),sj(tZ.chronicle?.incident),sj(tZ.chronicle?.investigation),...tQ.map(e=>sw(e.evidenceIds??[],sj(e.text)))),arguments:sw(...(tZ.arguments??[]).map(e=>sw(e.evidenceIds??[],sj(e.issue),sj(e.myClaim),sj(e.opponentClaim)))),keyEvidence:sw(...(tZ.keyEvidence??[]).map(e=>sw(e.evidenceId?[String(e.evidenceId)]:[],sj(e.title),sj(e.summary),sj(e.analysis)))),notes:sw(...(tZ.notes??[]).map(e=>sj(e)),...tq.map(e=>sj(e)),...tY.map(e=>sj(e)),...tX.map(e=>sj(e))),sections:function(e,t){if(!e?.length)return[];let s=[],r=new Set,n=e=>{for(let t of e){let e=String(t??"").trim();!e||r.has(e)||(r.add(e),s.push(e))}};for(let s of e)for(let e of(n(s.evidenceIds??[]),n(t(s.body)),s.items??[]))n(e.evidenceIds??[]),n(t(e.text));return s}(tZ.sections,sj)}:null,[t9,sj,t1,sw,t8,q?.caseOverview,q?.coreIssue,tQ,tq,tY,tX,tZ]),sk=(0,n.useMemo)(()=>t1&&sN?sw(sN.overview,sN.people,sN.chronicle,sN.arguments,sN.keyEvidence,sN.notes,sN.sections):[],[t1,sw,sN]),sS=(0,n.useMemo)(()=>{if(!t1||!tZ||!sN)return null;let e=[...(tZ.people?.parties??[]).map(e=>[e.name,e.role,e.profile,e.relationship,e.credibility,e.notes].filter(
15Boolean).join(" ")),...(tZ.people?.others??[]).map(e=>[e.name,e.role,e.profile,e.relationship,e.credibility,e.notes].filter(Boolean).join(" "))].filter(Boolean).join("\n"),t=[tZ.chronicle?.background,tZ.chronicle?.incident,tZ.chronicle?.investigation,...tQ.map(e=>[e.timeRange,e.text].filter(Boolean).join(" "))].filter(Boolean).join("\n"),s=(tZ.arguments??[]).map(e=>[e.issue,e.myClaim,e.opponentClaim,...e.evidenceIds??[]].filter(Boolean).join(" ")).join("\n"),r=(tZ.keyEvidence??[]).map(e=>[e.evidenceId,e.title,e.summary,e.analysis].filter(Boolean).join(" ")).join("\n"),n=[...tZ.notes??[],...tq,...tY,...tX].filter(Boolean).join("\n"),a=eR.toLowerCase().startsWith("ko")?"ko":"en";return{overview:et([t5,t6].filter(Boolean).join("\n"),a,sN.overview.length),people:et(e,a,sN.people.length),chronicle:et(t,a,sN.chronicle.length),arguments:et(s,a,sN.arguments.length),keyEvidence:et(r,a,sN.keyEvidence.length),notes:et(n,a,sN.notes.length)}},[tQ,t1,eR,tq,tX,tY,t6,t5,tZ,sN]),sA=t1&&sk.length?sk:su,sC=(0,n.useMemo)(()=>(function(e){let t=e.allEvidenceIds.map(e=>String(e??"").trim()).filter(Boolean),s=new Set(e.referencedEvidenceIds.map(e=>String(e??"").trim()).filter(Boolean));if(!t.length)return{coveragePct:100,citedCount:0,unreferencedIds:[]};let r=t.filter(e=>s.has(e)).length,n=t.filter(e=>!s.has(e));return{coveragePct:Math.round(r/t.length*100),citedCount:r,unreferencedIds:n}})({allEvidenceIds:sd,referencedEvidenceIds:sA}),[sd,sA]),sI=sC.unreferencedIds.length>0,sE=sC.unreferencedIds,s$=sC.coveragePct,sM=sC.citedCount,sB=sN?.keyEvidence.length??0,sT=tb?sd:sA,sL=(0,n.useMemo)(()=>{if(!t1||!sN)return null;let e={},t=(t,s)=>{t.forEach(t=>{let r,n=(r=String(t||"").trim())?(e[r]||(e[r]={overview:!1,people:!1,chronicle:!1,arguments:!1,keyEvidence:!1,notes:!1,sections:!1}),r):null;n&&(e[n][s]=!0)})};return t(sN.overview,"overview"),t(sN.people,"people"),t(sN.chronicle,"chronicle"),t(sN.arguments,"arguments"),t(sN.keyEvidence,"keyEvidence"),t(sN.notes,"notes"),t(sN.sections,"sections"),e},[t1,sN]),sF=(0,n.useMemo)(()=>(0,e5.Dt)(tZ?.sections),[tZ]),[sR,sD]=(0,n.useState)("auto");(0,n.useEffect)(()=>{sD(function(e){try{let t=window.localStorage.getItem(e7(e));return"string"==typeof t&&e4.includes(t)?t:e8}catch{return e8}}(e))},[e]);let sO=(0,n.useCallback)(t=>{sD(t);try{window.localStorage.setItem(e7(e),t)}catch{}"lead"!==t&&"auto"!==t&&tg(!1)},[e]),sW=(0,n.useMemo)(()=>{let e=new Set;return(tZ?.people?.parties?.length||tZ?.people?.others?.length||U?.trim()||Z?.trim())&&e.add("people"),(tZ?.chronicle?.background||tZ?.chronicle?.incident||tZ?.chronicle?.investigation||tQ.length)&&e.add("chronicle"),tZ?.arguments?.length&&e.add("arguments"),(tZ?.notes?.length||t0)&&e.add("notes"),e},[tZ,U,Z,tQ,t0]),sz=(0,n.useMemo)(()=>(function(e,t){let s=e=>"overview"===e||"evidence"===e||t.filled.has(e),r=new Map;for(let e of t.caseSections)r.set(e.sourceId.trim().toLowerCase(),te(e.domId));let n=[],a=e=>{e&&!n.includes(e)&&n.push(e)};if("auto"===e&&t.aiOrder?.length){for(let e of(a("overview"),t.aiOrder)){let t=String(e??"").trim().toLowerCase();e9.includes(t)?s(t)&&a(t):a(r.get(t))}for(let e of e9)s(e)&&a(e)}else for(let t of e6[e]??e9)s(t)&&a(t);let i=t.caseSections.map(e=>te(e.domId)).filter(e=>!n.includes(e));if(0===i.length)return n;let l=["chronicle","people","overview"].find(e=>n.includes(e)),o=l?n.indexOf(l)+1:n.length;return[...n.slice(0,o),...i,...n.slice(o)]})(sR,{filled:sW,caseSections:sF,aiOrder:tZ?.sectionOrder}),[sR,sW,sF,tZ?.sectionOrder]),sP=(0,n.useMemo)(()=>new Map(sz.map((e,t)=>[e,t+1])),[sz]),s_=(0,n.useCallback)(e=>t1?{order:sP.get(e)??50}:void 0,[t1,sP]),sG=e=>!t1||sP.has(e),sU=(0,n.useMemo)(()=>{if(t1){let e={overview:{id:"case-overview",label:(0,L.tx)(eR,"개요",eL("caseOverview")),level:1},people:{id:"case-people",label:(0,L.tx)(eR,"인물","People"),level:1},chronicle:{id:"case-chronicle",label:(0,L.tx)(eR,"핵심 연대기","Chronicle"),level:1},arguments:{id:"case-arguments",label:(0,L.tx)(eR,"핵심 주장 및 쟁점","Arguments"),level:1},evidence:{id:"case-evidence",label:(0,L.tx)(eR,"핵심 증거","Key evidence"),level:1},notes:{id:"case-notes",label:(0,L.tx)(eR,"메모 및 의견","Notes"),level:1}};return(0,e5._T)(sz.flatMap(t=>t.startsWith("case:")?sF.filter(e=>te(e.domId)===t).map(e=>({id:e.domId,label:e.title,level:e.level})):[e[t]]))}let e=[{id:"case-overview",label:(0,L.tx)(eR,"개요",eL("caseOverview")),level:1},{id:"case-parties",label:eL("casePartiesLabel")||(0,L.tx)(eR,"당사자","Parties"),level:1},{id:"case-facts",label:(0,L.tx)(eR,"Key facts",eL("keyFacts")),level:1},{id:"case-issues",label:(0,L.tx)(eR,"핵심 쟁점",eL("coreIssue")),level:1},{id:"case-evidence",label:eL("evidenceList")||(0,L.tx)(eR,"증거","Evidence"),level:1}];return(0,e5._T)(e)}
15,[t1,eR,eL,sF,sz]),sV=function(e,t=140){let[s,r]=(0,n.useState)(null),a=e.join("|");return(0,n.useEffect)(()=>{if(!e.length||"u"<typeof IntersectionObserver)return;let s=()=>{let s=null,n=-1/0;for(let r of e){let e=document.getElementById(r);if(!e)continue;let a=e.getBoundingClientRect().top;a<=t&&a>n&&(s=r,n=a)}r(s??e[0]??null)},n=new IntersectionObserver(s,{rootMargin:"-15% 0px -60% 0px",threshold:[0,1]});return e.forEach(e=>{let t=document.getElementById(e);t&&n.observe(t)}),s(),()=>n.disconnect()},[a,t]),s}((0,n.useMemo)(()=>sU.map(e=>e.id),[sU])),[sK,sJ]=(0,n.useState)(!0),sH=t1?tZ?.atAGlance:void 0,sZ=k((sH?.oneLiner??"").trim()),sQ=k((sH?.currentStatus??sH?.currentStage??"").trim()),sq=k((sH?.caseType??"").trim()),sY=Array.isArray(sH?.coreIssues)?sH.coreIssues.map(e=>k(e.trim())).filter(Boolean):[],sX=Array.isArray(sH?.nextSteps)?sH.nextSteps.map(e=>k(e.trim())).filter(Boolean).slice(0,3):[],s0=(()=>{switch(s){case"Investigation":case"Closed":return"outline";default:return"secondary"}})(),s1=ee&&!q?.caseOverview;return(0,r.jsxs)("div",{"data-case-summary":!0,className:"min-w-0 max-w-full space-y-6",children:[(0,r.jsx)(eP.Q,{}),!s1&&(0,r.jsx)(ec,{statusMessage:tK,isQueued:es??!1,isLoading:ee,t:eL}),!eJ&&(0,r.jsx)(eU,{hasSummary:!!q,evidence:eB?.evidence,timelineTotal:eB?.timeline?.total??0,onAddEvidence:ei,onGenerateSummary:()=>void ts()}),s1||eJ||!t2?null:(0,r.jsx)("div",{className:"rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-950 dark:border-amber-800/50 dark:bg-amber-950/30 dark:text-amber-100",children:(0,r.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"flex min-w-0 items-start gap-2",children:[(0,r.jsx)(d.A,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"font-medium",children:"요약에 영어 문장이 남아 있어요."}),(0,r.jsx)("p",{className:"text-xs text-amber-800/80 dark:text-amber-100/75",children:"현재 화면 언어에 맞춰 AI 요약을 한국어로 다시 작성할 수 있습니다."})]})]}),(0,r.jsxs)(v.$,{type:"button",size:"sm",variant:"outline",onClick:t3,disabled:ee||!eX,className:"shrink-0 border-amber-300 bg-white/80 text-amber-950 hover:bg-amber-100 dark:border-amber-700 dark:bg-amber-950/40 dark:text-amber-50",children:[(0,r.jsx)(i.A,{className:"mr-1.5 h-3.5 w-3.5"}),"한국어로 다시 생성"]})]})}),s1?(0,r.jsx)(ey,{language:eR,isKo:eD,summaryProgress:q?._progress,loadingTip:eG,t:eL}):eJ&&eH?(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(w.J,{htmlFor:"caseName",className:"flex items-center gap-2 text-sm font-semibold uppercase tracking-wide",children:(0,L.tx)(eR,"사건 제목","Case Title")}),(0,r.jsx)(y.p,{id:"caseName",value:tS,onChange:e=>tA(e.target.value),className:"text-sm",placeholder:(0,L.tx)(eR,"사건 제목을 입력하세요","Enter case title")})]}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)(w.J,{htmlFor:"caseOverview",className:"flex items-center gap-2 text-sm font-semibold uppercase tracking-wide",children:[(0,r.jsx)(c.A,{className:"h-4 w-4"}),eL("caseOverview")]}),(0,r.jsx)(b.T,{id:"caseOverview",value:eH.caseOverview,onChange:e=>tu({...eH,caseOverview:e.target.value}),className:"text-sm",rows:4})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)(w.J,{className:"flex items-center gap-2 text-sm font-semibold uppercase tracking-wide",children:[(0,r.jsx)(u.A,{className:"h-4 w-4"}),eL("coreIssue")]}),(0,r.jsx)(b.T,{value:eH.coreIssue,onChange:e=>tu({...eH,coreIssue:e.target.value}),className:"text-sm",rows:4})]})]}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)(w.J,{className:"flex items-center gap-2 text-sm font-semibold uppercase tracking-wide",children:[(0,r.jsx)(m.A,{className:"h-4 w-4"}),eL("keyFacts")]}),(0,r.jsx)("div",{className:"space-y-2",children:(eH.keyFacts||[]).map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(y.p,{value:e,onCh
15ange:e=>tm(t,e.target.value),className:"text-sm flex-1"}),(0,r.jsx)(v.$,{variant:"ghost",size:"icon","aria-label":(0,L.tx)(eR,"핵심 사실 삭제","Remove key fact"),onClick:()=>th(t),children:(0,r.jsx)(x.A,{className:"h-4 w-4 text-destructive"})})]},t))}),(0,r.jsx)(v.$,{variant:"secondary",size:"sm",onClick:tx,children:eL("addKeyFact")})]}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t pt-4",children:[(0,r.jsx)(v.$,{variant:"outline",size:"sm",onClick:tI,children:eL("cancel")}),(0,r.jsxs)(v.$,{size:"sm",onClick:tC,children:[(0,r.jsx)(h.A,{className:"mr-1.5 h-3.5 w-3.5"}),eL("save")]})]})]}):q?(0,r.jsx)("div",{className:"relative min-w-0 max-w-full px-4 md:px-6",children:(0,r.jsxs)("div",{className:"grid min-w-0 max-w-full grid-cols-1 gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(0,320px)]",children:[(0,r.jsxs)("div",{className:"min-w-0 space-y-8",children:[(0,r.jsxs)("div",{className:"pb-1",children:[(0,r.jsxs)("div",{className:"min-w-0 flex flex-wrap items-baseline gap-x-2 gap-y-1",children:[(0,r.jsx)("h2",{className:"case-section-heading min-w-0 max-w-full break-words [overflow-wrap:break-word]",children:t?.trim()||(0,L.tx)(eR,"사건 제목","Case Title")}),eK?(0,r.jsxs)("span",{className:"text-xs text-muted-foreground",children:[eL("lastUpdated"),": ",eK]}):(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:eL("summaryNoTimestamp")})]}),sZ?(0,r.jsx)("p",{className:"mt-2 max-w-prose text-[15px] leading-relaxed text-foreground/90",children:sZ}):null,sQ||sq?(0,r.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:[sq,sQ].filter(Boolean).join(" \xb7 ")}):null,sX.length?(0,r.jsxs)("div",{className:(0,j.cn)("mt-3 max-w-prose rounded-lg border border-primary/20 bg-primary/[0.04] px-3 py-2.5","arguments"===sR&&"opacity-90"),children:[(0,r.jsx)("p",{className:"mb-0.5 text-xs font-semibold uppercase tracking-wide text-primary",children:(0,L.tx)(eR,"지금 할 일","Next steps")}),(0,r.jsx)("p",{className:"mb-1.5 text-xs leading-snug text-muted-foreground",children:(0,L.tx)(eR,"위키 요약에서 제안하는 바로 다음 행동입니다.","Immediate actions suggested by the wiki summary.")}),(0,r.jsx)("ol",{className:"space-y-1 text-sm leading-snug text-foreground/90",children:sX.map((e,t)=>(0,r.jsxs)("li",{className:"flex gap-2",children:[(0,r.jsxs)("span",{className:"shrink-0 font-semibold text-primary/70",children:[t+1,"."]}),(0,r.jsx)("span",{className:"min-w-0 [overflow-wrap:break-word]",children:e})]},`${e}-${t}`))})]}):null,t1?(0,r.jsx)("div",{className:"mt-3 max-w-prose",children:(0,r.jsx)(tr,{language:eR,value:sR,onChange:sO})}):null]}),(0,r.jsxs)("div",{className:"surface-inset w-full min-w-0 max-w-full rounded-lg px-3 py-2 text-muted-foreground md:w-fit md:min-w-[200px] md:p-4",children:[(0,r.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-2 md:pointer-events-none",onClick:()=>sJ(e=>!e),"aria-expanded":sK,children:[(0,r.jsx)("h4",{className:"mb-1.5 text-xs font-semibold text-foreground/80 md:mb-2 md:text-sm",children:eL("tableOfContents")||(0,L.tx)(eR,"목차","Contents")}),(0,r.jsx)(p.A,{className:(0,j.cn)("h-3.5 w-3.5 shrink-0 transition-transform md:hidden",sK&&"rotate-180"),"aria-hidden":"true"})]}),(0,r.jsx)("ul",{className:(0,j.cn)("grid grid-cols-2 gap-x-3 gap-y-1 text-xs text-primary md:flex md:flex-col md:space-y-1.5 md:text-sm",!sK&&"hidden md:flex"),children:sU.map(e=>(0,r.jsx)("li",{className:(0,j.cn)(2===e.level&&"md:pl-3"),children:(0,r.jsx)("button",{type:"button",className:(0,j.cn)("flex w-full items-center justify-between gap-2 border-l-2 border-transparent pl-1.5 text-left transition-colors hover:underline",sV===e.id?"border-primary font-semibold text-foreground":"text-primary"),"aria-current":sV===e.id?"location":void 0,onClick:()=>{let t=document.getElementById(e.id);t&&t.scrollIntoView({behavior:"smooth",block:"start"})},children:(0,r.jsxs)("span",{className:"min-w-0 truncate",children:[e.number,". ",e.label]})})},e.id))})]})]}),(0,r.jsx)("aside",{className:"min-w-0 max-w-full space-y-4",children:(0,r.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:(0,L.tx)(eR,"사건 정보","Case infobox")}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(eu,{isLoading:ee,isEditing:eJ,canRegenerate:eX,justSaved:tN,hasSummary:!!q,language:eR,t:eL,onRegenerate:ts,onEditClick:()=>{tA(t??""),e0()},onCancel:tI,onSave:t$}),(0,r.jsx)(em.X,{})]})]}),(0,r.jsxs)("div",{className:"surface-inset min-w-0 divide-y divide-border rounded-md text-sm dark:bg-muted/20 [&>div>*:nth-child(2)]:border-l [&>div>*:nth-child(2)]:border-border/60 [&>div>*:nth-child(2)]:pl-2.5",children:[(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(5.5rem,90px)_minmax(0,1fr)] gap-2 px-3 py-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:(0,L.tx)(eR,"관할","Jurisdiction")}),(0,r.jsx)("span",{className:"min-w-0 break-words [overflow-wrap:break-word]",children:_?.length?_.join(", "):"-"})]}),(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(5.5rem,90px)_minmax(0,1fr)] gap-2 px-3 py-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:(0,L.tx)(eR,"단계","Stage")}),(0,r.jsx)("span",{className:"min-w-0",children:(0,r.jsx)(g.E,{variant:s0,className:"font-normal",children:M||s||"-"})})]}),sq?(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(5.5rem,90px)_minmax(0,1fr)] gap-2 px-3 py-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:(0,L.tx)(eR,"사건 유형","Case type")}),(0,r.jsx)("span",{className:"min-w-0 break-words [overflow-wrap:break-word]",children:sq})]}
15):null,sY.length?(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(5.5rem,90px)_minmax(0,1fr)] gap-2 px-3 py-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:(0,L.tx)(eR,"핵심 쟁점","Core issues")}),(0,r.jsx)("ul",{className:"min-w-0 space-y-1",children:sY.slice(0,3).map((e,t)=>(0,r.jsxs)("li",{className:"break-words [overflow-wrap:break-word]",children:["\xb7 ",e]},`${e}-${t}`))})]}):null,(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(5.5rem,90px)_minmax(0,1fr)] gap-2 px-3 py-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:(0,L.tx)(eR,"의뢰인 역할","Role")}),(0,r.jsx)("span",{className:"min-w-0 break-words [overflow-wrap:break-word]",children:G?.trim()||"-"})]}),(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(5.5rem,90px)_minmax(0,1fr)] gap-2 px-3 py-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:(0,L.tx)(eR,"증거","Evidence")}),(0,r.jsx)("span",{className:"min-w-0",children:"number"==typeof Q?`${Q}${(0,L.tx)(eR,"개","")}`:"-"})]}),t1&&sd.length>0?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(5.5rem,90px)_minmax(0,1fr)] gap-2 px-3 py-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:(0,r.jsx)(S.Bc,{delayDuration:200,children:(0,r.jsxs)(S.m_,{children:[(0,r.jsx)(S.k$,{asChild:!0,children:(0,r.jsx)("span",{className:"cursor-help underline decoration-dotted decoration-muted-foreground/50 underline-offset-2",children:(0,L.tx)(eR,"인용된 증거","Cited evidence")})}),(0,r.jsx)(S.ZI,{side:"right",className:"max-w-xs",children:(0,L.tx)(eR,"위키 본문\xb7섹션에 [[증거]]로 연결된 개수입니다. 핵심 증거 목록에 실리지 않아도 인용으로 잡힙니다.","Count of uploads linked via [[evidence]] across wiki body and sections. Items need not appear in the key-evidence list.")})]})})}),(0,r.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,r.jsx)("div",{className:"h-2 w-16 shrink-0 overflow-hidden rounded-full bg-muted",children:(0,r.jsx)("div",{className:(0,j.cn)("h-full rounded-full transition-all",s$>=80?"bg-primary":s$>=50?"bg-primary/55":"bg-muted-foreground/35"),style:{width:`${s$}%`}})}),(0,r.jsxs)("span",{className:"text-xs font-medium text-muted-foreground",children:[sM,"/",sd.length," (",s$,"%)"]})]})]}),(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(5.5rem,90px)_minmax(0,1fr)] gap-2 px-3 py-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:(0,r.jsx)(S.Bc,{delayDuration:200,children:(0,r.jsxs)(S.m_,{children:[(0,r.jsx)(S.k$,{asChild:!0,children:(0,r.jsx)("span",{className:"cursor-help underline decoration-dotted decoration-muted-foreground/50 underline-offset-2",children:(0,L.tx)(eR,"핵심 증거","Key evidence")})}),(0,r.jsx)(S.ZI,{side:"right",className:"max-w-xs",children:(0,L.tx)(eR,"핵심 증거 섹션에 실린 개수입니다(상한 있음). 업로드 전부가 여기 들어갈 필요는 없습니다.","Items listed in the key-evidence section (capped). Not every upload needs to appear here.")})]})})}),(0,r.jsxs)("span",{className:"min-w-0 text-xs",children:[sB,(0,L.tx)(eR,"개","")]})]})]}):null]}),(0,r.jsx)(ez.CT,{}),(0,r.jsx)(eW,{})]})}),(0,r.jsxs)("div",{className:(0,j.cn)("col-span-full min-w-0",t1?"flex flex-col gap-8":"space-y-8"),children:[(0,r.jsx)("div",{style:s_("overview"),children:(0,r.jsx)(ew,{language:eR,t:eL,hasWiki:t1,wikiEvidenceBySection:sN,hasAnyEvidenceForCoverage:sc,sanitizedOverview:t5,wikiSectionQualityBySection:sS,renderNeedsSourcesCallout:tG,renderWikiGenericCallout:tU,renderSectionDiffPreview:tV,overviewParagraphs:t4,isOverviewExpanded:tp,onToggleOverviewExpanded:()=>tg(e=>!e),overviewPreviewParagraphs:2,defaultOverviewPlaceholder:tJ,renderTextWithEvidenceLinks:sg,renderInlineCitations:sf,overviewEvidenceIds:t8,renderEvidenceLinks:sb,sanitizedCoreIssue:t6,coreIssueEvidenceIds:t9})}),sG("people")?(0,r.jsx)("div",{style:s_("people"),children:(0,r.jsx)(ej,{hasWiki:t1,language:eR,t:eL,wiki:tZ,wikiEvidenceBySection:sN,wikiSectionQualityBySection:sS,hasAnyEvidenceForCoverage:sc,evidenceLabelById:ef,userName:U,userRole:G,opponentName:Z,renderNeedsSourcesCallout:tG,renderWikiGenericCallout:tU,renderSectionDiffPreview:tV,renderTextWithEvidence
15Links:sg,renderEvidenceLinks:sb,mergeEvidenceIds:sw,extractEvidenceIdsFromText:sj})}):null,t1?sG("chronicle")?(0,r.jsx)("div",{style:s_("chronicle"),children:(0,r.jsx)(eN,{language:eR,hasWiki:t1,wiki:tZ,wikiEvidenceBySection:sN,wikiSectionQualityBySection:sS,hasAnyEvidenceForCoverage:sc,chronicleIncidentItems:tQ,renderNeedsSourcesCallout:tG,renderWikiGenericCallout:tU,renderSectionDiffPreview:tV,renderWikiRichText:sy,renderTextWithEvidenceLinks:sg,renderEvidenceLinks:sb,mergeEvidenceIds:sw,extractEvidenceIdsFromText:sj})}):null:(0,r.jsxs)("section",{id:"case-facts",className:"space-y-3 border-t border-border/30 pt-6",children:[(0,r.jsx)("h2",{className:"case-section-heading",children:(0,L.tx)(eR,"Key facts",eL("keyFacts"))}),ss||sr?(0,r.jsx)("div",{className:"space-y-6",children:sn.map((e,t)=>{let s="string"==typeof e?e:e?.text??"",{headline:n,detail:a}=(0,T.wN)(s),i="string"!=typeof e?sf(e?.evidenceIds??[])??sv():null,l=`${t}-${n||s}`;return(0,r.jsxs)("article",{className:"space-y-1",children:[n?(0,r.jsxs)("h3",{className:"text-sm font-semibold leading-snug text-foreground",children:[sg(n),a?null:i]}):null,a?(0,r.jsxs)("p",{className:(0,j.cn)("text-sm leading-relaxed text-foreground/90",n?"mt-1":void 0),children:[sg(a),i]}):n?null:(0,r.jsxs)("p",{className:"text-sm leading-relaxed text-foreground/90",children:[sg(s),i]})]},l)})}):(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:tH}),sa>6&&(0,r.jsx)(v.$,{variant:"ghost",size:"sm",onClick:()=>tv(e=>!e),children:tf?eL("showLess"):eL("showMore")})]}),t1?null:(0,r.jsxs)("section",{id:"case-issues",className:"space-y-3 border-t border-border/30 pt-6",children:[(0,r.jsx)("h2",{className:"case-section-heading",children:(0,L.tx)(eR,"핵심 쟁점",eL("coreIssue"))}),(0,r.jsx)("div",{className:"space-y-3 text-sm leading-relaxed text-foreground/90",children:t6?t6.split(/\n{2,}/).map(e=>e.trim()).filter(Boolean).map((e,t,s)=>(0,r.jsxs)("p",{className:"leading-relaxed",children:[sg(e),t===s.length-1?sf(t9):null]},`${t}-${e.slice(0,24)}`)):(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:eL("caseSummaryNoCoreIssue")})})]}),t1&&sG("arguments")?(0,r.jsx)("div",{style:s_("arguments"),children:(0,r.jsx)(ek.k,{language:eR,hasWiki:t1,wiki:tZ,wikiEvidenceBySection:sN,wikiSectionQualityBySection:sS,hasAnyEvidenceForCoverage:sc,renderNeedsSourcesCallout:tG,renderWikiGenericCallout:tU,renderSectionDiffPreview:tV,renderTextWithEvidenceLinks:sg,renderEvidenceLinks:sb})}):null,(0,r.jsx)("div",{style:s_("evidence"),children:(0,r.jsx)(eA,{language:eR,isKo:eD,t:eL,hasWiki:t1,wiki:tZ,wikiEvidenceBySection:sN,wikiSectionQualityBySection:sS,hasAnyEvidenceForCoverage:sc,isEvidenceExpanded:tw,onEvidenceExpandedChange:tj,showAllEvidence:tb,onToggleShowAllEvidence:()=>ty(e=>!e),hasUnreferencedEvidence:sI,evidenceListIds:sd,visibleEvidenceIds:sT,wikiEvi
15denceUsageById:sL,evidenceUsageById:sl,evidencePreviewById:eS,evidenceTitleById:ed,evidenceLabelById:ef,unreferencedEvidenceIds:sE,coveragePct:s$,isLoading:ee,canRegenerate:eX,onOpenEvidence:()=>(0,eF.pW)("evidence"),onOpenEvidenceItem:eE,onRegenerate:()=>void ts(),renderNeedsSourcesCallout:tG,renderWikiGenericCallout:tU,renderSectionDiffPreview:tV,resolveEvidenceTitle:sp})}),t1&&sG("notes")?(0,r.jsx)("div",{style:s_("notes"),children:(0,r.jsx)(eC,{language:eR,hasWiki:t1,wiki:tZ,wikiEvidenceBySection:sN,wikiSectionQualityBySection:sS,hasAnyEvidenceForCoverage:sc,hasNoteBucketContent:t0,noteBucketAssumptions:tq,noteBucketUncertainties:tY,noteBucketFollowUps:tX,renderNeedsSourcesCallout:tG,renderWikiGenericCallout:tU,renderSectionDiffPreview:tV,renderTextWithEvidenceLinks:sg,renderEvidenceLinks:sb})}):null,t1?sF.map(e=>(0,r.jsx)("div",{style:s_(te(e.domId)),children:(0,r.jsx)(eI,{section:e,renderTextWithEvidenceLinks:sg,renderInlineCitations:sf,renderEvidenceLinks:sb})},e.domId)):null]})]})}):(0,r.jsx)("div",{className:"space-y-4",children:(eT=(Q??0)===0&&!eo,(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.cp,{errorState:(Q??0)===0?{code:"no-evidence"}:en,isLoading:ee,onOpenContextNotes:ea,onRetry:ta,onAddEvidence:ei,hideAddEvidenceAction:eT,t:eL}),eT?(0,r.jsx)(T.uh,{language:eR,onAddEvidence:ei,onOpenNotes:ea}):null,el?(0,r.jsx)("div",{className:"hidden md:block",children:(0,r.jsx)(T.KC,{onDrop:el,t:eL,disabled:ee,isSampleCase:eo})}):null]}))}),(0,r.jsx)(e2,{caseId:e}),(0,r.jsx)(A.lG,{open:eZ,onOpenChange:e=>{e||eY||tl()},children:(0,r.jsxs)(A.Cf,{className:"sm:max-w-lg",children:[(0,r.jsxs)(A.c7,{children:[(0,r.jsx)(A.L3,{children:eL("summaryAiFix")}),(0,r.jsx)(A.rr,{children:eL("summaryAiFixDescription")})]}),(0,r.jsxs)("div",{className:"grid gap-2",children:[(0,r.jsx)(w.J,{htmlFor:"summary-ai-feedback",children:eL("summaryAiFeedbackLabel")}),(0,r.jsx)(b.T,{id:"summary-ai-feedback",placeholder:eL("summaryAiFeedbackPlaceholder"),value:eQ,onChange:e=>{to(e.target.value),eq&&td("")},rows:5,disabled:eY}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:eL("summaryAiFeedbackHint")}),(0,r.jsx)(tt.a,{language:eR}),eq&&(0,r.jsx)("p",{className:"text-xs text-destructive",children:eq})]}),(0,r.jsxs)(A.Es,{className:"flex items-center gap-2",children:[(0,r.jsx)(v.$,{variant:"secondary",disabled:eY,onClick:tl,children:eL("summaryAiCancel")}),(0,r.jsx)(v.$,{onClick:tc,disabled:eY,children:eY?eL("summaryAiSubmitting"):eL("summaryAiSubmit")})]})]})})]})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.