1import{c as Q,u as ge,r as t,t as i,b as n,j as e,x as b,B as d,g as me,L as Y,X as xe,E as J,D as K}from"./index-CAgTsS9I.js";import{L as B}from"./Layout-D_oP4nSj.js";import{I as m}from"./input-B8nvoARq.js";import{L as pe}from"./LazyImage-OpU2Nkis.js";import{S as he}from"./shield-D7osdQuE.js";import{A as ue}from"./arrow-left-BuPJNO5W.js";import{S as O}from"./search-CkMXx1d0.js";import{P as Z}from"./plus-CYsBLBd-.js";import{I as W}from"./image-BBpOV5gw.js";import{U as ye}from"./upload-DMS0svb8.js";import{C as be}from"./check-DXYeM_Sd.js";import{P as Ae}from"./pencil-BTK4UZ6F.js";import{T as Ge}from"./trash-2-B8kvyBWw.js";import{G as fe}from"./globe-Cl9IuGQG.js";import{L as Me}from"./lock-B324poJk.js";import"./settings-Dqu1Zn_r.js";import"./mail-SHgAPKVI.js";import"./dialog-70VskD_D.js";import"./index-CSdx2VRY.js";import"./user-Bzsp7ULD.js";import"./camera-DxANKcNo.js";import"./shield-check-BgNs-s5f.js";import"./house-CVZTxZpZ.js";import"./useComposition-EK3NmjJ_.js";/** 2 * @license lucide-react v0.453.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 je=Q("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);/** 7 * @license lucide-react v0.453.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const ve=Q("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** 12 * @license lucide-react v0.453.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */const Ne=Q("Scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]);function we({onSelectArticle:w}){const[g,z]=t.useState(!1),[l,x]=t.useState(""),[P,A]=t.useState(""),[o,G]=t.useState(null),[f,M]=t.useState(""),j=i.useUtils(),{data:p,isLoading:I,refetch:k}=i.admin.scanMatchroomIndex.useQuery(void 0,{enabled:g}),{data:h}=i.admin.searchArticlesForGallery.useQuery({searchTerm:f},{enabled:f.length>=2}),S=i.admin.scrapeMatchroomGalleries.useMutation({onSuccess:s=>{n.success(`Scrape complete: ${s.imagesImported} images imported from ${s.galleriesProcessed} galleries`),j.admin.getArticlesWithGalleries.invalidate()},onError:s=>n.error(s.message)}),u=i.admin.importMatchroomGallery.useMutation({onSuccess:s=>{s.success?(n.success(`Imported ${s.imagesImported} images${s.articleTitle?` to "${s.articleTitle}"`:""}`),j.admin.getArticlesWithGalleries.invalidate(),x(""),A(""),G(null),M("")):n.error(s.error||"Import failed")},onError:s=>n.error(s.message)});return e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:74",className:"mb-8",children:[e.jsxs("button",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:75",onClick:()=>z(!g),className:"flex items-center gap-2 text-sm font-heading uppercase tracking-wider text-muted-foreground hover:text-white mb-4",children:[e.jsx(fe,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:79",className:"h-4 w-4"}),"Matchroom Photoshelter Importer",e.jsx("span",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:81",className:"text-xs",children:g?"â²":"â¼"})]}),g&&e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:85",className:"bg-card/20 border border-border rounded-xl p-5 space-y-5",children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:87",className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[e.jsxs(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:88",className:"bg-boxing-red hover:bg-boxing-red/80 text-white gap-2",onClick:()=>S.mutate(),disabled:S.isPending,children:[S.isPending?e.jsx(b,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:93",className:"h-4 w-4 animate-spin"}):e.jsx(Ne,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:93",className:"h-4 w-4"}),"Auto-Scan & Import"]}),e.jsxs(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:96",variant:"outline",className:"gap-2",onClick:()=>k(),disabled:I,children:[I?e.jsx(b,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:102",className:"h-4 w-4 animate-spin"}):e.jsx(O,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:102",className:"h-4 w-4"}),"Scan Gallery Index"]}),e.jsx("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:105",className:"text-xs text-muted-foreground",children:"Auto-scan matches Matchroom galleries to articles by fighter names and imports photos automatically."})]}),p&&p.length>0&&e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:112",children:[e.jsxs("h3",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:113",className:"text-sm font-heading uppercase tracking-wider text-muted-foreground mb-2",children:["Available Galleries (",p.length,")"]}),e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:116",className:"grid gap-2 max-h-60 overflow-y-auto",children:p.map((s,D)=>e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:118",className:"flex items-center justify-between bg-black/30 rounded-lg px-3 py-2 text-sm",children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:119",className:"min-w-0",children:[e.jsx("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:120",className:"truncate",children:s.title}),s.eventDate&&e.jsx("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:121",className:"text-xs text-muted-foreground",children:s.eventDate})]}),e.jsx(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:123",size:"sm",variant:"ghost",className:"shrink-0 text-boxing-red hover:text-boxing-red/80",onClick:()=>
16x(s.galleryUrl),children:e.jsx(K,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:129",className:"h-3 w-3"})})]},D))})]}),e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:138",className:"border-t border-border/50 pt-4",children:[e.jsx("h3",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:139",className:"text-sm font-heading uppercase tracking-wider text-muted-foreground mb-3",children:"Manual Gallery Import"}),e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:142",className:"space-y-3",children:[e.jsx(m,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:143",placeholder:"Photoshelter gallery URL (https://matchroomboxing.photoshelter.com/galleries/...)",value:l,onChange:s=>x(s.target.value),className:"bg-black/30 border-border"}),e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:149",className:"flex gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:150",className:"relative flex-1",children:[e.jsx(Me,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:151",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/50"}),e.jsx(m,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:152",placeholder:"Gallery password (if required)",type:"password",value:P,onChange:s=>A(s.target.value),className:"pl-9 bg-black/30 border-border"})]}),e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:160",className:"relative flex-1",children:[e.jsx(O,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:161",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/50"}),e.jsx(m,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:162",placeholder:"Search article to import into...",value:f,onChange:s=>{M(s.target.value),G(null)},className:"pl-9 bg-black/30 border-border"})]})]}),f.length>=2&&!o&&h&&h.length>0&&e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:176",className:"bg-black/40 border border-border rounded-lg overflow-hidden",children:h.map(s=>e.jsx("button",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:178",onClick:()=>{G(s.id),M(s.title)},className:"w-full text-left px-3 py-2 hover:bg-white/5 border-b border-border/50 last:border-b-0 text-sm",children:s.title},s.id))}),o&&e.jsxs("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:193",className:"text-xs text-green-400",children:["â Target article selected (ID: ",o,")"]}),e.jsxs(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:196",className:"bg-boxing-red hover:bg-boxing-red/80 text-white gap-2",onClick:()=>{if(!l||!o){n.error("Please provide a gallery URL and select a target article");return}u.mutate({galleryUrl:l,articleId:o,password:P||void 0})},disabled:!l||!o||u.isPending,children:[u.isPending?e.jsx(b,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:211",className:"h-4 w-4 animate-spin"}):e.jsx(K,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:211",className:"h-4 w-4"}),"Import Gallery"]})]})]})]})]})}function Ke(){const{user:w,isAuthenticated:g,loading:z}=ge(),[l,x]=t.useState(null),[P,A]=t.useState(""),[o,G]=t.useState(""),[f,M]=t.useState(!1),[j,p]=t.useState(""),[I,k]=t.useState(""),[h,S]=t.useState("Mark Robinson / Matchroom Boxing"),[u,s]=t.useState(null),[D,V]=t.useState(""),[q,H]=t.useState(""),[C,X]=t.useState(null),U=t.useRef(null),y=i.useUtils(),{data:E,isLoading:_}=i.admin.getArticlesWithGalleries.useQuery(void 0,{enabled:g&&w?.role==="admin"&&!l}),{data:T}=i.admin.searchArticlesForGallery.useQuery({searchTerm:o},{enabled:g&&w?.role==="admin"&&o.length>=2&&!l}),{data:v,isLoading:ee}=i.admin.getGalleryImages.useQuery({articleId:l},{enabled:g&&w?.role==="admin"&&!!l}),$=i.admin.addGalleryImage.useMutation({onSuccess:()=>{n.success("Image added to gallery"),y.admin.getGalleryImages.invalidate(),y.admin.getArticlesWithGalleries.invalidate(),p(""),k(""),M(!1)},onError:a=>n.error(a.message)}),R=i.admin.uploadGalleryImage.useMutation({onSuccess:()=>{n.success("Image uploaded and added to gallery"),y.admin.getGalleryImages.invalidate(),y.admin.getArticlesWithGalleries.invalidate()},onError:a=>n.error(a.message)}),ae=i.admin.updateGalleryImage.useMutation({onSuccess:()=>{n.success("Image updated"),y.admin.getGalleryImages.invalidate(),s(null)},onError:a=>n.error(a.message)}),se=i.admin.deleteGalleryImage.useMutation({onSuccess:()=>{n.success("Image removed from gallery"),y.admin.getGalleryImages.invalidate(),y.admin.getArticlesWithGalleries.invalidate()},onError:a=>n.error(a.message)}),le=i.admin.reorderGalleryImages.useMutation({onSuccess:()=>{n.success("Gallery order updated"),y.admin.getGalleryImages.invalidate()},onError:a=>n.error(a.message)}),te=t.useCallback(async a=>{const r=a.target.files;if(!(!r||!l)){for(const c of Array.from(r)){if(c.size>10*1024*1024){n.error(`${c.name} is too large (max 10MB)`);continue}const N=new FileReader;N.onload=()=>{const F=N.result.split(",")[1];R.mutate({articleId:l,imageData:F,fileName:c.name,caption:"",credit:h})},N.readAsDataURL(c)}U.current&&(U.current.value="")}},[l,h,R]),re=()=>{if(!l||!j)return;const a=v||[],r=a.length>0?Math.max(...a.map(c=>c.sortOrder)):0;$.mutate({articleId:l,imageUrl:j,caption:I||void 0,credit:h||void 0,sortOrder:r+1})},ne=a=>{s(a.id),V(a.caption||""),H(a.credit||"")},ce=()=>{u&&ae.mutate({id:u,caption:D,credit:q})},ie=a=>{X(a)},de=(a,r)=>{a.preventDefault()},oe=a=>{if(C===null||!v)return;const r=[...v],c=r.findIndex(L=>L.id===C),N=r.findIndex(L=>L.id===a);if(c===-1||N===-1)return;const[F]=r.splice(c,1);r.splice(N,0,F),le.mutate({imageIds:r.map(L=>L.id)}),X(null)};return z?e.jsx(B,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:384",children:e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:385",className:"w-full bg-[#0a0a0a] min-h-screen flex items-center justify-center",children:e.jsx(b,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:386",className:"h-8 w-8 animate-spin text-boxing-red"})})}):!g||w?.role!=="admin"?e.jsx(B,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:394",children:e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:395",className:"relative w-full overflow-hidden bg-black min-h-[calc(100vh-200px)] flex items-center justify-center",children:e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:396",className:"w-full px-4 sm:px-6 md:px-10 lg:px-16 relative z-10 text-center",children:[e.jsx(he,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:397",className:"h-16 w-16 text-boxing-red/30 mx-auto mb-4"}),e.jsx("h2",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:398",className:"font-heading text-3xl md:text-4xl mb-4",children:"Admin Access Required"}),e.jsx("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:399",className:"text-muted-foreground max-w-md mx-auto mb-8",children:"You need to be an authenticated administrator to manage galleries."}),!g&&e.jsx(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:403",onClick:()=>{window.location.href=me()},className:"bg-boxing-red hover:bg-boxing-red/80 text-white font-bold uppercase tracking-wider px-8 py-6",children:"Sign In"})]})})}):e.jsxs(B,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:417",children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:419",className:"relative w-full overflow-hidden bg-black min-h-[180px] sm:min-h-[220px]",children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:420",className:"absolute inset-0 pointer-events-none",children:[e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:421",className:"absolute top-0 left-0 w-1/2 h-full bg-boxing-red/10 blur-[200px]"}),e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:422",className:"absolute top-0 right-0 w-1/2 h-full bg-amber-500/10 blur-[200px]"}),e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:423",className:"absolute inset-0",style:{backgroundImage:"radial-gradient(rgba(255,255,255,0.015) 1px, transparent 1px)",backgroundSize:"40px 40px"}})]}),e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:431",className:"w-full px-4 sm:px-6 md:px-10 lg:px-16 relative z-10 flex items-center min-h-[180px] sm:min-h-[220px]",children:e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:432",children:[e.jsx(Y,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:433",href:l?"#":"/admin",children:e.jsxs(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:434",variant:"ghost",className:"text-muted-foreground hover:text-white mb-2 -ml-3 gap-1",onClick:a=>{l&&(a.preventDefault(),x(null),A(""))},children:[e.jsx(ue,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:445",className:"h-4 w-4"})," ",l?"All Galleries":"Admin Dashboard"]})}),e.jsxs("h1",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:448",className:"font-heading text-3xl md:text-4xl lg:text-5xl tracking-tight flex items-center gap-3",children:[e.jsx(je,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:449",className:"h-8 w-8 text-boxing-red"}),l?"Manage Gallery":"Photo Galleries"]}),e.jsx("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:452",className:"text-muted-foreground mt-2 max-w-2xl",children:l?P:`Manage photo galleries for articles. ${E?.length||0} articles have galleries.`})]})})]}),e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:462",className:"w-full bg-[#0a0a0a] min-h-screen",children:e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:463",className:"w-full px-4 sm:px-6 md:px-10 lg:px-16 py-8",children:l?e.jsxs(e.Fragment,{children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:555",className:"flex flex-col sm:flex-row items-start sm:items-center gap-3 mb-6",children:[e.jsxs(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:556",variant:"outline",className:"gap-2",onClick:()=>{U.current&&U.current.click()},disabled:R.isPending,children:[R.isPending?e.jsx(b,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:565",className:"h-4 w-4 animate-spin"}):e.jsx(ye,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:567",className:"h-4 w-4"}),"Upload Photos"]}),e.jsx("input",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:571",ref:U,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:te}),e.jsxs(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:580",variant:"outline",className:"gap-2",onClick:()=>M(!f),children:[e.jsx(J,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:585",className:"h-4 w-4"}),"Add by URL"]}),e.jsx(Y,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:589",href:`/news/${l}`,children:e.jsxs(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:590",variant:"ghost",className:"gap-2 text-muted-foreground",children:[e.jsx(J,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:591",className:"h-4 w-4"}),"View Article"]})})]}),f&&e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:599",className:"bg-card/30 border border-border rounded-xl p-4 mb-6 space-y-3",children:[e.jsx(m,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:600",placeholder:"Image URL (https://...)",value:j,onChange:a=>p(a.target.value),className:"bg-black/30 border-border"}),e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:606",className:"flex gap-3",children:[e.jsx(m,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:607",placeholder:"Caption (optional)",value:I,onChange:a=>k(a.target.value),className:"bg-black/30 border-border"}),e.jsx(m,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:613",placeholder:"Credit",value:h,onChange:a=>S(a.target.value),className:"bg-black/30 border-border max-w-xs"})]}),e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:620",className:"flex gap-2",children:[e.jsxs(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:621",className:"bg-boxing-red hover:bg-boxing-red/80 text-white gap-2",onClick:re,disabled:!j||$.isPending,children:[$.isPending?e.jsx(b,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:626",className:"h-4 w-4 animate-spin"}):e.jsx(Z,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:626",className:"h-4 w-4"}),"Add Image"]}),e.jsx(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:629",variant:"ghost",onClick:()=>{M(!1),p(""),k("")},children:"Cancel"})]})]}),ee?e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:638",className:"flex items-center justify-center py-12",children:e.jsx(b,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:639",className:"h-6 w-6 animate-spin text-boxing-red"})}):!v||v.length===0?e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:642",className:"text-center py-16 text-muted-foreground",children:[e.jsx(W,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:643",className:"h-12 w-12 mx-auto mb-3 opacity-30"}),e.jsx("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:644",children:"No photos in this gallery yet. Upload or add images above."})]}):e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:647",className:"space-y-3",children:[e.jsxs("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:648",className:"text-xs text-muted-foreground uppercase tracking-wider font-heading",children:[v.length," photos â drag to reorder"]}
16),e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:651",className:"grid gap-3",children:v.map((a,r)=>e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:653",draggable:!0,onDragStart:()=>ie(a.id),onDragOver:c=>de(c,a.id),onDrop:()=>oe(a.id),className:`bg-card/30 border rounded-xl overflow-hidden flex items-stretch transition-all ${C===a.id?"border-boxing-red opacity-50":"border-border"}`,children:[e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:664",className:"flex items-center px-2 cursor-grab active:cursor-grabbing bg-white/5 border-r border-border/50",children:e.jsx(ve,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:665",className:"h-5 w-5 text-muted-foreground/50"})}),e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:669",className:"w-24 h-24 sm:w-32 sm:h-24 shrink-0 bg-black/50",children:e.jsx(pe,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:670",src:a.imageUrl,alt:a.caption||`Gallery image ${r+1}`,className:"w-full h-full object-cover"})}),e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:678",className:"flex-1 px-4 py-3 min-w-0",children:u===a.id?e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:680",className:"space-y-2",children:[e.jsx(m,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:681",placeholder:"Caption",value:D,onChange:c=>V(c.target.value),className:"bg-black/30 border-border text-sm h-8"}),e.jsx(m,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:687",placeholder:"Credit",value:q,onChange:c=>H(c.target.value),className:"bg-black/30 border-border text-sm h-8"}),e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:693",className:"flex gap-2",children:[e.jsxs(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:694",size:"sm",className:"bg-boxing-red hover:bg-boxing-red/80 text-white h-7 gap-1",onClick:ce,children:[e.jsx(be,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:695",className:"h-3 w-3"})," Save"]}),e.jsx(d,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:697",size:"sm",variant:"ghost",className:"h-7",onClick:()=>s(null),children:"Cancel"})]})]}):e.jsxs(e.Fragment,{children:[e.jsx("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:704",className:"text-sm truncate",children:a.caption||e.jsx("span",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:704",className:"text-muted-foreground italic",children:"No caption"})}),e.jsx("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:705",className:"text-xs text-muted-foreground mt-1",children:a.credit||"No credit"}),e.jsxs("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:706",className:"text-xs text-muted-foreground/50 mt-1",children:["Position: ",r+1]})]})}),u!==a.id&&e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:713",className:"flex items-center gap-1 px-3",children:[e.jsx("button",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:714",onClick:()=>ne(a),className:"p-2 text-muted-foreground hover:text-white rounded-lg hover:bg-white/10",title:"Edit caption/credit",children:e.jsx(Ae,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:719",className:"h-4 w-4"})}),e.jsx("button",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:721",onClick:()=>{confirm("Remove this image from the gallery?")&&se.mutate({id:a.id})},className:"p-2 text-muted-foreground hover:text-red-400 rounded-lg hover:bg-red-500/10",title:"Delete image",children:e.jsx(Ge,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:730",className:"h-4 w-4"})})]})]},a.id))})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:467",className:"mb-8",children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:468",className:"relative max-w-lg",children:[e.jsx(O,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:469",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/50"}),e.jsx(m,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:470",placeholder:"Search articles to add a gallery...",value:o,onChange:a=>G(a.target.value),className:"pl-9 bg-card/30 border-border text-sm"}),o&&e.jsx("button",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:477",onClick:()=>G(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground
16/50 hover:text-white",children:e.jsx(xe,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:481",className:"h-4 w-4"})})]}),o.length>=2&&T&&T.length>0&&e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:488",className:"mt-3 bg-card/30 border border-border rounded-xl overflow-hidden max-w-lg",children:T.map(a=>e.jsxs("button",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:490",onClick:()=>{x(a.id),A(a.title),G("")},className:"w-full text-left px-4 py-3 hover:bg-white/5 border-b border-border/50 last:border-b-0 flex items-center justify-between gap-3",children:[e.jsx("span",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:499",className:"text-sm truncate",children:a.title}),e.jsx(Z,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:500",className:"h-4 w-4 text-boxing-red shrink-0"})]},a.id))})]}),e.jsx(we,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:508",onSelectArticle:(a,r)=>{x(a),A(r)}}),e.jsx("h2",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:516",className:"font-heading text-xl mb-4 uppercase tracking-wider text-muted-foreground",children:"Articles with Galleries"}),_?e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:521",className:"flex items-center justify-center py-12",children:e.jsx(b,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:522",className:"h-6 w-6 animate-spin text-boxing-red"})}):!E||E.length===0?e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:525",className:"text-center py-16 text-muted-foreground",children:[e.jsx(W,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:526",className:"h-12 w-12 mx-auto mb-3 opacity-30"}),e.jsx("p",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:527",children:"No galleries yet. Search for an article above to create one."})]}):e.jsx("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:530",className:"grid gap-3",children:E.map(a=>e.jsxs("button",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:532",onClick:()=>{x(a.articleId),A(a.title)},className:"w-full text-left bg-card/30 border border-border rounded-xl px-5 py-4 hover:bg-card/50 transition-colors flex items-center justify-between gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:540",className:"flex items-center gap-3 min-w-0",children:[e.jsx(W,{"data-loc":"client/src/pages/AdminGalleryManager.tsx:541",className:"h-5 w-5 text-boxing-red shrink-0"}),e.jsx("span",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:542",className:"truncate",children:a.title})]}),e.jsxs("span",{"data-loc":"client/src/pages/AdminGalleryManager.tsx:544",className:"text-xs bg-boxing-red/20 text-boxing-red px-2 py-1 rounded-full font-heading shrink-0",children:[a.imageCount," photos"]})]},a.articleId))})]})})})]})}export{Ke 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.