1import{o as x}from"./rolldown-runtime-ChpBd9eV.js";import{Ka as u,Pa as m,Qt as i,Tn as f,ga as w,tt as h}from"./chat-page-C-flp553.js";var b=x(u(),1),e=m(),g=({document:r,isOpen:n,onClose:c})=>{const{t:s}=w();if(!n||!r)return null;const d=t=>{if(!t.type&&!t.url)return"unknown";const a=t.type?.toLowerCase()||"",l=t.url?.toLowerCase()||"";return a.includes("pdf")||l.includes(".pdf")?"pdf":a.includes("word")||a.includes("document")||l.includes(".doc")||l.includes(".docx")?"word":a.includes("text")||l.includes(".txt")?"text":a.includes("image")||l.includes(".jpg")||l.includes(".png")||l.includes(".gif")?"image":"unknown"},o=()=>{const t=d(r);if(!r.url)return(0,e.jsx)("div",{className:"flex-1 flex items-center justify-center text-slate-400",children:(0,e.jsxs)("div",{className:"text-center",children:[(0,e.jsx)(i,{className:"w-16 h-16 mx-auto mb-4"}),(0,e.jsx)("p",{children:s("documentViewer.urlUnavailable")})]})});switch(t){case"pdf":return(0,e.jsx)("div",{className:"flex-1 relative bg-white",children:(0,e.jsx)("iframe",{src:`${r.url}#view=FitH`,className:"w-full h-full border-0",title:s("documentViewer.pdfViewerTitle",{name:r.displayName||r.name})})});case"word":return(0,e.jsx)("div",{className:"flex-1 relative bg-white",children:(0,e.jsx)("iframe",{src:`https://docs.google.com/viewer?url=${encodeURIComponent(r.url)}&embedded=true`,className:"w-full h-full border-0",title:s("documentViewer.documentViewerTitle",{name:r.displayName||r.name})})});case"text":return(0,e.jsx)("div",{className:"flex-1 overflow-auto p-6 bg-slate-800",children:(0,e.jsx)("iframe",{src:r.url,className:"w-full h-full bg-white rounded border-0",title:s("documentViewer.textViewerTitle",{name:r.displayName||r.name})})});case"image":return(0,e.jsx)("div",{className:"flex-1 flex items-center justify-center p-6 bg-slate-800",children:(0,e.jsx)("img",{src:r.url,alt:r.displayName||r.name,className:"max-w-full max-h-full object-contain rounded-lg"})});default:return(0,e.jsx)("div",{className:"flex-1 flex items-center justify-center text-slate-400",children:(0,e.jsxs)("div",{className:"text-center",children:[(0,e.jsx)(i,{className:"w-16 h-16 mx-auto mb-4"}),(0,e.jsx)("p",{className:"mb-4",children:s("documentViewer.cannotPreview")}),(0,e.jsx)("a",{href:r.url,target:"_blank",rel:"noopener noreferrer",className:"bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg transition-colors",children:s("documentViewer.downloadFile")})]})})}};return(0,e.jsx)("div",{className:"fixed inset-0 bg-black/95 z-[10000] flex items-center justify-center p-4",children:(0,e.jsxs)("div",{className:"w-full max-w-7xl h-[90vh] bg-slate-900 rounded-2xl overflow-hidden flex flex-col",children:[(0,e.jsx)("div",{className:"p-4 border-b border-slate-700/50 bg-slate-800/50 flex-shrink-0",children:(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,e.jsx)("h2",{className:"text-xl font-semibold text-white truncate",children:r.displayName||r.name||s("documentViewer.document")}),(0,e.jsxs)("p",{className:"text-slate-400 text-sm",children:[r.type&&r.type.split("/")[1]?.toUpperCase()||s("documentViewer.document"),r.size&&` ⢠${Math.round(r.size/1024)}KB`]})]}),(0,e.jsxs)("div",{className:"flex items-center gap-3 ml-4",children:[r.url&&(0,e.jsxs)("a",{href:r.url,target:"_blank",rel:"noopener noreferrer",className:"bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg text-sm transition-colors flex items-center gap-2",children:[(0,e.jsx)(f,{className:"w-4 h-4"}),s("documentViewer.openExternal")]}),(0,e.jsx)("button",{onClick:c,className:"p-2 bg-red-600 hover:bg-red-700 rounded-lg text-white transition-colors","aria-label":s("documentViewer.close"),children:(0,e.jsx)(h,{className:"w-5 h-5"})})]})]})}),o()]})})};export{g as default};
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.