PageSourceSearch

https://footballkenya.org/assets/ResourceView-BVpOdBLv.js

js footballkenya.org collected 2026-10-02 04:34:43 UTC 21,055 bytes, 174 lines download raw bytes

1import{j as e}from"./query-vendor-DXqhmV0v.js";import{c as V,H as S,f as X,A as q,l as J,J as T,g as W,E as Q,d as Z,B as U,S as ee,s as te}from"./index-DyvJc3G2.js";import{r as s,L as H,h as re,u as ne}from"./react-vendor-DCo7HDpb.js";import{a as se,b as ae}from"./htmlUtils-45wo_HRR.js";import{C as oe}from"./calendar-clock-q8aRakmK.js";import{L as _}from"./loader-circle-DncUT6kW.js";import{D as K}from"./download-VVP_qfGC.js";import{P as ie}from"./printer-BObtaFAi.js";import{F as le}from"./file-exclamation-point-Dse0SHCP.js";import"./supabase-vendor-BvQ-EHLW.js";/**
2 * @license lucide-react v0.563.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const ce=[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]],Y=V("list-tree",ce),de={regulation:"Rules & Regulations",policy:"Policy",constitution:"Constitution",report:"Financial Report",tender:"Tender",other:"Document"},me={"fifa-laws":"FIFA Laws of the Game","fkf-regulations":"FKF Regulations","disciplinary-code":"Disciplinary Code","competition-rules":"Competition Rules",other:"Other"},P=n=>{if(!n)return null;const o=new Date(n);return Number.isNaN(o.getTime())?null:o.toLocaleDateString("en-GB",{day:"2-digit",month:"long",year:"numeric"})},xe=n=>{if(!n)return null;if(n<1024)return`${n} B`;const o=n/1024;return o<1024?`${o.toFixed(0)} KB`:`${(o/1024).toFixed(1)} MB`};function he(n,o){if(!n)return;n.replaceChildren();const f=document.createRange();f.selectNodeContents(n);const t=f.createContextualFragment(o);n.appendChild(t)}function pe({title:n,contentHtml:o,contentSummary:f,category:t,documentType:y,effectiveDate:O,lastUpdated:C,publishedDate:k,fileUrl:h,fileSize:E,onDownload:N,downloading:g,backTo:p,seoDescription:b}){const{html:v,outline:d}=s.useMemo(()=>{const r=se(o);return ae(r)},[o]),[D,R]=s.useState(null),[a,i]=s.useState(0),[m,w]=s.useState(!1),j=s.useRef(null);s.useEffect(()=>{he(j.current,v)},[v]),s.useEffect(()=>{const r=()=>{const x=j.current;if(!x)return;const c=x.getBoundingClientRect().top+window.scrollY,u=x.scrollHeight-window.innerHeight*.6,L=Math.min(Math.max(window.scrollY-c+window.innerHeight*.2,0),u);i(u>0?Math.round(L/u*100):0)};return r(),window.addEventListener("scroll",r,{passive:!0}),()=>window.removeEventListener("scroll",r)},[v]),s.useEffect(()=>{if(!d.length)return;const r=new IntersectionObserver(x=>{var u;const c=x.filter(L=>L.isIntersecting).sort((L,G)=>L.boundingClientRect.top-G.boundingClientRect.top);(u=c[0])!=null&&u.target.id&&R(c[0].target.id)},{rootMargin:"-25% 0px -60% 0px",threshold:[0,1]});return d.forEach(x=>{const c=document.getElementById(x.id);c&&r.observe(c)}),()=>r.disconnect()},[d]);const l=r=>x=>{x.preventDefault();const c=document.getElementById(r);if(!c)return;const u=c.getBoundingClientRect().top+window.scrollY-100;window.scrollTo({top:u,behavior:"smooth"}),R(r),w(!1)},$=()=>window.print(),F=y?de[y]||y:null,B=t?me[t]||t:null,z=xe(E),I=P(O)||P(k),M=P(C)||P(k);return e.jsxs("div",{className:"min-h-screen flex flex-col",style:{backgroundColor:"hsl(156, 40%, 8%)"},children:[e.jsx("title",{children:`${n} | Football Kenya Federation`}),b&&e.jsx("meta",{name:"description",content:b}),e.jsx(S,{}),e.jsx("div",{"aria-hidden":!0,className:"fixed top-0 left-0 right-0 h-[3px] z-50 pointer-events-none print:hidden",style:{background:"rgba(255,255,255,0.05)"},children:e.jsx("div",{className:"h-full transition-[width] duration-150 ease-out",style:{width:`${a}%`,background:"linear-gradient(90deg, hsl(156 100% 50%) 0%, hsl(42 90% 60%) 100%)"}})}),e.jsxs("div",{className:"fixed inset-0 pointer-events-none z-0 print:hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"radial-gradient(circle at 1px 1px, white 1px, transparent 0)",backgroundSize:"24px 24px"}}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:e.jsx("img",{src:X,alt:"",className:"w-[500px] h-[500px] opacity-[0.03] rounded-full"})})]}),e.jsxs("section",{className:"relative overflow-hidden pt-24 pb-10 sm:pb-14 z-10 print:hidden",style:{background:"linear-gradient(135deg, hsl(156 100% 8%) 0%, hsl(156 80% 14%) 50%, hsl(156 60% 18%) 100%)"},children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.04]",style:{backgroundImage:"repeating-linear-gradient(45deg, transparent, transparent 10
6px, rgba(255,255,255,0.02) 10px, rgba(255,255,255,0.02) 20px)"}}),e.jsxs("div",{className:"container mx-auto px-4 relative",children:[e.jsxs(H,{to:(p==null?void 0:p.to)||"/rules-regulations",className:"inline-flex items-center gap-2 text-sm text-white/40 hover:text-white/70 transition-colors mb-6",children:[e.jsx(q,{className:"h-4 w-4"}),(p==null?void 0:p.label)||"Back to Rules & Regulations"]}),e.jsxs("div",{className:"grid lg:grid-cols-[1fr_auto] gap-6 items-end",children:[e.jsxs("div",{className:"min-w-0",children:[(F||B)&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-4",children:[F&&e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-emerald-400/15 border border-emerald-400/30 px-2.5 py-1 text-[11px] uppercase tracking-[0.14em] font-semibold text-emerald-200",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-400 animate-pulse"}),F]}),B&&B!==F&&e.jsx("span",{className:"inline-flex items-center rounded-full bg-amber-300/10 border border-amber-300/25 px-2.5 py-1 text-[11px] uppercase tracking-[0.14em] font-semibold text-amber-200/90",children:B})]}),e.jsx("h1",{className:"text-3xl sm:text-4xl lg:text-5xl font-black tracking-tight text-white leading-[1.05] max-w-3xl",children:n}),f&&e.jsx("p",{className:"mt-4 text-base sm:text-lg text-white/70 max-w-2xl leading-relaxed",children:f}),e.jsxs("div",{className:"flex flex-wrap gap-x-5 gap-y-2 mt-6 text-xs sm:text-sm text-white/55",children:[I&&e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(J,{className:"h-3.5 w-3.5"}),"Effective: ",e.jsx("span",{className:"text-white/80",children:I})]}),M&&M!==I&&e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(oe,{className:"h-3.5 w-3.5"}),"Last updated: ",e.jsx("span",{className:"text-white/80",children:M})]}),z&&h&&e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(T,{className:"h-3.5 w-3.5"}),"PDF · ",e.jsx("span",{className:"text-white/80",children:z})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[h&&N&&e.jsxs("button",{type:"button",onClick:N,disabled:g,className:"inline-flex items-center gap-2 rounded-full bg-white text-[hsl(156_100%_10%)] px-5 py-2.5 text-sm font-semibold shadow-lg shadow-emerald-900/40 hover:bg-emerald-50 active:scale-[0.98] transition disabled:opacity-60",children:[g?e.jsx(_,{className:"h-4 w-4 animate-spin"}):e.jsx(K,{className:"h-4 w-4"}),g?"Preparing…":"Download PDF"]}),e.jsxs("button",{type:"button",onClick:$,className:"inline-flex items-center gap-2 rounded-full bg-white/[0.06] border border-white/[0.12] text-white/80 px-4 py-2.5 text-sm font-medium hover:bg-white/[0.1] transition",children:[e.jsx(ie,{className:"h-4 w-4"}),"Print"]})]})]})]})]}),e.jsx("section",{className:"py-8 sm:py-12 relative z-10 flex-1",children:e.jsxs("div",{className:"container mx-auto px-4",children:[e.jsxs("div",{className:"max-w-7xl mx-auto grid lg:grid-cols-[260px_1fr] gap-6 lg:gap-10",children:[d.length>0&&e.jsx("aside",{className:"lg:sticky lg:top-24 lg:self-start print:hidden",children:e.jsxs("div",{className:"lg:block",children:[e.jsxs("button",{type:"button",onClick:()=>w(r=>!r),className:"lg:hidden flex w-full items-center justify-between rounded-xl border border-white/[0.1] bg-white/[0.05] backdrop-blur-sm px-4 py-3 text-sm text-white/80","aria-expanded":m,children:[e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(Y,{className:"h-4 w-4 text-emerald-300/80"}),"Contents · ",d.length," sections"]}),e.jsx(W,{className:`h-4 w-4 transition-transform ${m?"rotate-90":""}`})]}),e.jsxs("nav",{className:`${m?"block":"hidden"}
6 lg:block mt-2 lg:mt-0 rounded-xl lg:rounded-2xl border border-white/[0.08] bg-white/[0.04] backdrop-blur-sm p-4 lg:p-5`,"aria-label":"Table of contents",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3 text-[11px] uppercase tracking-[0.18em] text-white/50 font-semibold",children:[e.jsx(Y,{className:"h-3.5 w-3.5"}),"In this document"]}),e.jsx("ol",{className:"space-y-0.5 text-sm",children:d.map(r=>e.jsx("li",{children:e.jsxs("a",{href:`#${r.id}`,onClick:l(r.id),"data-active":D===r.id?"true":"false","data-level":r.level,className:"dr-toc-link group flex gap-2 py-1.5 px-2 rounded-md transition",children:[e.jsx("span",{className:"dr-toc-bar","aria-hidden":!0}),e.jsx("span",{className:"leading-snug",children:r.text})]})},r.id))})]})]})}),e.jsx("div",{ref:j,className:"min-w-0 rounded-2xl border border-white/[0.1] bg-white/[0.06] backdrop-blur-sm p-6 sm:p-10 dr-content"})]}),h&&N&&e.jsx("div",{className:"max-w-7xl mx-auto mt-10 lg:mt-14 print:hidden",children:e.jsxs("div",{className:"rounded-2xl border border-emerald-400/20 bg-emerald-400/[0.06] p-5 sm:p-7 flex flex-wrap items-center justify-between gap-4",children:[e.jsxs("div",{className:"min-w-0 flex items-center gap-4",children:[e.jsx("div",{className:"w-11 h-11 rounded-xl bg-emerald-400/15 border border-emerald-400/30 flex items-center justify-center shrink-0",children:e.jsx(T,{className:"h-5 w-5 text-emerald-300"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm sm:text-base font-semibold text-white",children:"Need the official PDF?"}),e.jsxs("div",{className:"text-xs sm:text-sm text-white/60 truncate",children:["Download the signed source document for your records.",z&&e.jsxs("span",{className:"text-white/45",children:[" · ",z]})]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:N,disabled:g,className:"inline-flex items-center gap-2 rounded-full bg-emerald-400 text-emerald-950 px-5 py-2.5 text-sm font-semibold hover:bg-emerald-300 active:scale-[0.98] transition disabled:opacity-60",children:[g?e.jsx(_,{className:"h-4 w-4 animate-spin"}):e.jsx(K,{className:"h-4 w-4"}),g?"Preparing…":"Download PDF"]}),h&&e.jsxs("a",{href:h,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 rounded-full border border-white/15 text-white/80 px-4 py-2.5 text-sm font-medium hover:bg-white/[0.06] transition",children:[e.jsx(Q,{className:"h-4 w-4"}),"Open"]})]})]})})]})}),e.jsx(Z,{}),e.jsx("style",{children:`
7        .dr-content h1 {
8          font-size: 1.5rem;
9          font-weight: 800;
10          color: #fff;
11          margin-top: 3rem;
12          margin-bottom: 1.25rem;
13          padding-bottom: 0.75rem;
14          border-bottom: 1px solid rgba(255,255,255,0.1);
15          letter-spacing: -0.02em;
16          scroll-margin-top: 6rem;
17        }
18        .dr-content h1:first-child { margin-top: 0; }
19        .dr-content h2 {
20          font-size: 1.2rem;
21          font-weight: 700;
22          color: rgba(255,255,255,0.92);
23          margin-top: 2rem;
24          margin-bottom: 1rem;
25          padding-left: 0.75rem;
26          border-left: 3px solid rgba(0,107,63,0.55);
27          scroll-margin-top: 6rem;
28        }
29        .dr-content h3 {
30          font-size: 1.05rem;
31          font-weight: 600;
32          color: rgba(255,255,255,0.85);
33          margin-top: 1.5rem;
34          margin-bottom: 0.75rem;
35          scroll-margin-top: 6rem;
36        }
37        .dr-content h4 {
38          font-size: 0.95rem;
39          font-weight: 600;
40          color: rgba(255,255,255,0.78);
41          margin-top: 1.25rem;
42          margin-bottom: 0.6rem;
43        }
44        .dr-content p {
45          color: rgba(255,255,255,0.74);
46          line-height: 1.85;
47          margin-bottom: 1rem;
48          font-size: 0.95rem;
49        }
50        .dr-content strong {
51          color: rgba(255,255,255,0.95);
52          font-weight: 600;
53        }
54        .dr-content em { color: rgba(255,255,255,0.85); }
55        .dr-content code {
56          background: rgba(255,255,255,0.08);
57          color: rgba(255,255,255,0.92);
58          padding: 0.1rem 0.4rem;
59          border-radius: 0.35rem;
60          font-size: 0.85em;
61          font-family: ui-monospace, SFMono-Regular, monospace;
62        }
63        .dr-content pre {
64          background: rgba(0,0,0,0.3);
65          border: 1px solid rgba(255,255,255,0.06);
66          padding: 1rem;
67          border-radius: 0.75rem;
68          overflow-x: auto;
69          margin: 1.25rem 0;
70        }
71        .dr-content pre code { background: transparent; padding: 0; }
72        .dr-content blockquote {
73          border-left: 3px solid rgba(0,107,63,0.55);
74          background: rgba(255,255,255,0.03);
75          padding: 0.75rem 1rem;
76          margin: 1.25rem 0;
77          border-radius: 0 0.5rem 0.5rem 0;
78          color: rgba(255,255,255,0.78);
79          font-style: italic;
80        }
81        .dr-content ul, .dr-content ol {
82          margin-top: 0.5rem;
83          margin-bottom: 1.25rem;
84          padding-left: 1.5rem;
85        }
86        .dr-content ul { list-style-type: disc; }
87        .dr-content ol { list-style-type: decimal; }
88        .dr-content li {
89          color: rgba(255,255,255,0.72);
90          line-height: 1.8;
91          margin-bottom: 0.4rem;
92          font-size: 0.95rem;
93        }
94        .dr-content li::marker { color: rgba(255,255,255,0.3); }
95        .dr-content hr {
96          border: 0;
97          border-top: 1px solid rgba(255,255,255,0.1);
98          margin: 2rem 0;
99        }
100        .dr-content table {
101          width: 100%;
102          border-collapse: collapse;
103          margin: 1.25rem 0;
104          font-size: 0.9rem;
105          border-radius: 0.75rem;
106          display: block;
107          overflow-x: auto;
108          -webkit-overflow-scrolling: touch;
109        }
110        .dr-content th {
111          background: rgba(255,255,255,0.08);
112          color: rgba(255,255,255,0.92);
113          font-weight: 600;
114          padding: 0.75rem 1rem;
115          text-align: left;
116          border-bottom: 1px solid rgba(255,255,255,0.1);
117        }
118        .dr-content td {
119          color: rgba(255,255,255,0.72);
120          padding: 0.65rem 1rem;
121          border-bottom: 1px solid rgba(255,255,255,0.06);
122        }
123        .dr-content a {
124          color: hsl(156 100% 60%);
125          text-decoration: underline;
126          text-underline-offset: 2px;
127        }
128        .dr-content a:hover { color: hsl(156 100% 80%); }
129        .dr-content img {
130          border-radius: 0.5rem;
131          margin: 1rem 0;
132          max-width: 100%;
133          height: auto;
134        }
135
136        .dr-toc-link {
137          color: rgba(255,255,255,0.55);
138          position: relative;
139        }
140        .dr-toc-link .dr-toc-bar {
141          width: 2px;
142          background: transparent;
143          border-radius: 1px;
144          flex-shrink: 0;
145        }
146        .dr-toc-link:hover {
147          color: rgba(255,255,255,0.95);
148          background: rgba(255,255,255,0.04);
149        }
150        .dr-toc-link[data-active="true"] {
151          color: hsl(156 100% 75%);
152          background: rgba(0,107,63,0.12);
153        }
154        .dr-toc-link[data-active="true"] .dr-toc-bar {
155          background: hsl(156 100% 60%);
156        }
157        .dr-toc-link[data-level="2"] { padding-left: 1rem; font-size: 0.85rem; }
158        .dr-toc-link[data-level="3"] { padding-left: 1.75rem; font-size: 0.8rem; opacity: 0.9; }
159
160        @media print {
161          body { background: white !important; }
162          .dr-content {
163            background: white !important;
164            border: none !important;
165            color: black !important;
166            padding: 0 !important;
167          }
168          .dr-content h1, .dr-content h2, .dr-content h3, .dr-content h4,
169          .dr-content p, .dr-content li, .dr-content td, .dr-content th {
170            color: black !important;
171          }
172          .dr-content blockquote { background: #f5f5f5 !important; color: #333 !important; }
173        }
174      `})]})}const A="https://wmcfdzqntemdnrguqijw.supabase.co/functions/v1/download-pdf",ue={regulation:{to:"/rules-regulations",label:"Back to Rules & Regulations"},report:{to:"/reports",label:"Back to Reports & Tenders"},tender:{to:"/reports",label:"Back to Reports & Tenders"},policy:{to:"/resources",label:"Back to Resources"},constitution:{to:"/resources",label:"Back to Resources"}};function Le(){var R;const{id:n}=re(),f=(R=ne().state)==null?void 0:R.title,[t,y]=s.useState(null),[O,C]=s.useState(!0),[k,h]=s.useState(null),[E,N]=s.useState(null),[g,p]=s.useState("document.pdf"),[b,v]=s.useState(!1);s.useEffect(()=>{if(!n)return;(async()=>{C(!0),h(null);try{const{data:i,error:m}
174=await te.from("reports_tenders").select("id,title,description,document_type,category,file_url,file_size,published_date,content_html,content_summary,effective_date,last_updated").eq("id",n).maybeSingle();if(m||!i)throw new Error("Document not found");y(i)}catch{h("Unable to load document. It may have been removed or is temporarily unavailable.")}finally{C(!1)}})()},[n]),s.useEffect(()=>{if(!t||t.content_html)return;let a=!1,i=null;return(async()=>{try{const w=await fetch(`${A}?id=${t.id}&mode=view`);if(!w.ok)throw new Error;const l=(w.headers.get("content-disposition")||"").match(/filename="(.+?)"/);l&&l[1]&&p(l[1]);const $=await w.blob();if(a)return;i=URL.createObjectURL($),N(i)}catch{}})(),()=>{a=!0,i&&URL.revokeObjectURL(i)}},[t]);const d=s.useCallback(async()=>{if(t){v(!0);try{const a=await fetch(`${A}?id=${t.id}&mode=download`);if(!a.ok)throw new Error("Download failed");const i=await a.blob(),m=URL.createObjectURL(i),j=(a.headers.get("content-disposition")||"").match(/filename="(.+?)"/),l=document.createElement("a");l.href=m,l.download=j?j[1]:`${t.title}.pdf`,document.body.appendChild(l),l.click(),l.remove(),URL.revokeObjectURL(m)}catch{const a=document.createElement("a");a.href=`${A}?id=${t.id}&mode=download`,a.click()}finally{v(!1)}}},[t]);if(O)return e.jsxs("div",{className:"min-h-screen flex flex-col",style:{backgroundColor:"hsl(156, 40%, 8%)"},children:[e.jsx(S,{}),e.jsxs("main",{className:"flex-1 flex items-center justify-center pt-20",children:[e.jsx(_,{className:"h-10 w-10 animate-spin text-emerald-400"}),e.jsx("span",{className:"ml-3 text-white/60",children:"Loading document…"})]})]});if(k||!t)return e.jsxs("div",{className:"min-h-screen flex flex-col",style:{backgroundColor:"hsl(156, 40%, 8%)"},children:[e.jsx(S,{}),e.jsxs("main",{className:"flex-1 flex flex-col items-center justify-center pt-20 px-4 text-center",children:[e.jsx(le,{className:"h-16 w-16 text-white/30 mb-4"}),e.jsx("h2",{className:"text-xl font-semibold text-white mb-2",children:"Document Unavailable"}),e.jsx("p",{className:"text-white/60 max-w-md mb-6",children:k||"We couldn't find that document."}),e.jsx(H,{to:"/resources",children:e.jsx(U,{children:"Back to Resources"})})]})]});const D=ue[t.document_type]||{to:"/resources",label:"Back to Resources"};if(t.content_html&&t.content_html.trim().length>0){const a=t.content_summary||t.description||`Official ${t.document_type} from the Football Kenya Federation.`;return e.jsx(pe,{title:f||t.title,contentHtml:t.content_html,contentSummary:a,category:t.category,documentType:t.document_type,effectiveDate:t.effective_date,lastUpdated:t.last_updated,publishedDate:t.published_date,fileUrl:t.file_url,fileSize:t.file_size,onDownload:d,downloading:b,backTo:D,seoDescription:a.slice(0,160)})}return e.jsxs("div",{className:"min-h-screen flex flex-col",style:{backgroundColor:"hsl(156, 40%, 8%)"},children:[e.jsx(ee,{title:"Document Viewer | Football Kenya Federation",description:"Read official Football Kenya Federation documents and resources online."}),e.jsx(S,{}),e.jsxs("main",{className:"flex-1 flex flex-col pt-20",children:[e.jsx("div",{className:"bg-white/[0.04] border-b border-white/[0.08] backdrop-blur-sm",children:e.jsxs("div",{className:"container mx-auto px-4 py-3 flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx(H,{to:D.to,className:"shrink-0",children:e.jsxs(U,{variant:"ghost",size:"sm",className:"text-white/80 hover:text-white hover:bg-white/[0.08]",children:[e.jsx(q,{className:"h-4 w-4 mr-1"}),"Back"]})}),e.jsx("h1",{className:"text-sm font-semibold text-white truncate",children:t.title})]}),e.jsxs(U,{size:"sm",onClick:d,disabled:b,className:"shrink-0",children:[b?e.jsx(_,{className:"h-4 w-4 mr-1 animate-spin"}):e.jsx(K,{className:"h-4 w-4 mr-1"}),b?"Preparing…":"Download"]})]})}),E?e.jsx("iframe",{src:E,className:"flex-1 w-full border-0 bg-white",title:t.title}):e.jsxs("div",{className:"flex-1 flex items-center justify-center",children:[e.jsx(_,{className:"h-10 w-10 animate-spin text-emerald-400"}),e.jsx("span",{className:"ml-3 text-white/60",children:"Preparing PDF preview…"})]})]})]})}export{Le 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.