PageSourceSearch

https://app.rackd.net/assets/_id-C0tFOe5t.js

js rackd.net collected 2026-10-06 03:14:59 UTC 28,775 bytes, 2 lines download raw bytes

1import{c as ge,b as $,r as w,j as e,E as be,N as Ne,aG as ye,a as J,I as n,ap as ce,M as B,aH as we,f as oe,a7 as H,aI as ke,am as de,_ as me,q as xe,ag as Te,aJ as Ce,o as Se}from"./main-DwC-38zK.js";import{u as Ie}from"./use-current-user-DWlcSYXN.js";import{B as b}from"./button-nVHlHfKI.js";import{C as x,a as S,b as I,d as h,L as g,H as F}from"./card-SZVbN0Ru.js";import{B as A}from"./badge-DzG9LLcq.js";import{u as Ae,d as Pe}from"./index.esm-e-OnCppY.js";import{I as P}from"./input-C_A6BASF.js";import{S as ae,a as re,b as ie,c as ne,d as v}from"./select-CFgmFJqY.js";import{T as Ue}from"./textarea--_FpUvUz.js";import{V as Le,P as Fe,G as he,L as $e,Y as _e,T as Me,I as De,F as Ve}from"./venue-image-upload-D_WJjwvl.js";import{X as Ee}from"./progress-BnTlFM7f.js";import{T as le}from"./tournament-page-card-BkYmvswR.js";import{T as ze,a as Be,b as Q,c as X}from"./tabs-4MD3Ms2_.js";import{P as He}from"./page-header-IIfSmBO2.js";import{C as ue}from"./country-flag-D0Qv_kXb.js";import{A as Oe,b as Re,c as qe,d as We,e as Ye,f as Je,g as Qe,h as Xe}from"./alert-dialog-BxDDkbdA.js";import"./index-DB4PWhUA.js";import"./index-mPa5hTav.js";import"./index-DiU2aRtx.js";import"./index-OKEw7fbB.js";import"./index-YBZqpkWC.js";import"./index-BApZdyZ_.js";import"./createLucideIcon-D6fyrcde.js";import"./check-BAgd6fa2.js";import"./tournament-utils--Szn-kQI.js";import"./index-BRqF1tfy.js";import"./hasFlag-ClewINvF.js";function Ke({venue:a,onVenueUpdated:O,onCancel:K}){const U=ge($.venues.update),{register:p,handleSubmit:L,control:Z,formState:{isSubmitting:_},reset:j,setValue:k,watch:T}=Ae({defaultValues:{name:a.name||"",type:a.type||"other",description:a.description||"",operatingHours:a.operatingHours||"",address:a.address||"",phone:a.phone||"",email:a.email||"",website:a.website||"",socialLinks:a.socialLinks||[],access:a.access||"public",imageStorageId:a.images?.[0]}}),{fields:G,append:t,remove:N}
1=Pe({control:Z,name:"socialLinks"});w.useEffect(()=>{a&&j({name:a.name||"",type:a.type||"other",description:a.description||"",operatingHours:a.operatingHours||"",address:a.address||"",phone:a.phone||"",email:a.email||"",website:a.website||"",socialLinks:a.socialLinks||[],access:a.access||"public",imageStorageId:a.images?.[0]})},[a,j]);const f=async i=>{try{await U({id:a._id,name:i.name,type:i.type,description:i.description,operatingHours:i.operatingHours,address:i.address,phone:i.phone,email:i.email,website:i.website,socialLinks:i.socialLinks,access:i.access,imageStorageId:i.imageStorageId}),O?.()}catch(d){console.error("Failed to update venue:",d)}},R=[{value:"facebook",label:"Facebook",icon:"facebook"},{value:"instagram",label:"Instagram",icon:"instagram"},{value:"twitter",label:"Twitter",icon:"twitter"},{value:"website",label:"Website",icon:"globe"},{value:"youtube",label:"YouTube",icon:"youtube"},{value:"linkedin",label:"LinkedIn",icon:"linkedin"}],C=i=>{const d={className:"h-4 w-4"};switch(i){case"facebook":return e.jsx(Ve,{...d});case"instagram":return e.jsx(De,{...d});case"twitter":return e.jsx(Me,{...d});case"globe":return e.jsx(he,{...d});case"youtube":return e.jsx(_e,{...d});case"linkedin":return e.jsx($e,{...d});default:return e.jsx(he,{...d})}},q=T("imageStorageId"),M=a.imageUrl;return e.jsxs(x,{children:[e.jsx(S,{children:e.jsx(I,{children:"Edit Venue"})}),e.jsx(h,{children:e.jsxs("form",{onSubmit:L(f),className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(g,{htmlFor:"venue-name",children:"Venue Name *"}),e.jsx(P,{id:"venue-name",...p("name",{required:!0}),placeholder:"e.g. Downtown Pool Hall"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(g,{htmlFor:"venue-type",children:"Venue Type *"}),e.jsxs(ae,{value:T("type"),onValueChange:i=>k("type",i),children:[e.jsx(re,{children:e.jsx(ie,{placeholder:"Select Type"})}),e.jsxs(ne,{children:[e.jsx(v,{value:"residence",children:"Residence"}),e.jsx(v,{value:"business",children:"Business"}),e.jsx(v,{value:"pool_hall",children:"Pool Hall"}),e.jsx(v,{value:"sports_facility",children:"Sports Facility"}),e.jsx(v,{value:"bar",children:"Bar"}),e.jsx(v,{value:"other",children:"Other"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(g,{htmlFor:"venue-access",children:"Access *"}),e.jsxs(ae,{value:T("access"),onValueChange:i=>k("access",i),children:[e.jsx(re,{children:e.jsx(ie,{placeholder:"Select Access"})}),e.jsxs(ne,{children:[e.jsx(v,{value:"public",children:"Public"}),e.jsx(v,{value:"private",children:"Private"}),e.jsx(v,{value:"membership_needed",children:"Membership Needed"})]})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(g,{htmlFor:"venue-address",children:"Address"}),e.jsx(P,{id:"venue-address",...p("address"),placeholder:"123 Main St, City, State, ZIP"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(g,{htmlFor:"venue-description",children:"Description"}),e.jsx(Ue,{id:"venue-description",...p("description"),rows:3,placeholder:"Describe the venue, amenities, etc."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(g,{htmlFor:"venue-hours",children:"Operating Hours"}),e.jsx(P,{id:"venue-hours",...p("operatingHours"),placeholder:"e.g. Mon-Fri 9AM-11PM, Sat-Sun 10AM-12AM"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(g,{htmlFor:"venue-phone",children:"Phone Number"}),e.jsx(P,{id:"venue-phone",...p("phone"),placeholder:"(555) 123-4567"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(g,{htmlFor:"venue-email",children:"Email"}),e.jsx(P,{id:"venue-email",...p("email"),type:"email",placeholder:"[email protected]"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(g,{htmlFor:"venue-website",children:"Website"}),e.jsx(P,{id:"venue-website",...p("website"),placeholder:"https://www.venue.com"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(g,{children:"Venue Image"}),e.jsx(Le,{currentStorageId:q,currentUrl:M,onUpload:i=>k("imageStorageId",i),onDelete:()=>k("imageStorageId",void 0),onError:i=>{console.error("Image upload error:",i)}})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(g,{children:"Social Links"}),e.jsxs(b,{type:"button",variant:"outline",size:"sm",onClick:()=>t({platform:"",url:"",icon:""}),children:[e.jsx(Fe,{className:"h-4 w-4 mr-1"}),"Add Social Link"]})]}),G.map((i,d)=>e.jsxs("div",{className:"flex gap-2",children:[e.jsx("div",{className:"w-48",children:e.jsxs(ae,{value:T(`socialLinks.${d}.platform`),onValueChange:c=>{k(`socialLinks.${d}.platform`,c);const W=R.find(ee=>ee.value===c);W&&k(`socialLinks.${d}.icon`,W.icon)},children:[e.jsx(re,{children:e.jsx(ie,{placeholder:"Select Platform"})}),e.jsx(ne,{children:R.map(c=>e.jsx(v,{value:c.value,children:e.jsxs("div",{className:"flex items-center gap-2",children:[C(c.icon),c.label]})},c.value))})]})}),e.jsx(P,{...p(`socialLinks.${d}.url`),placeholder:"URL",className:"flex-1"}),e.jsx(b,{type:"button",variant:"outline",size:"sm",onClick:()=>N(d),children:e.jsx(Ee,{className:"h-4 w-4"})})]},i.id))]}),e.jsxs("div",{className:"flex gap-2 pt-4",children:[e.jsx(b,{type:"submit",disabled:_,className:"flex-1",children:_?"Saving...":"Save Changes"}),e.jsx(b,{type:"button",variant:"outline",onClick:K,children:"Cancel"})]})]})})]})}function Cs(){const a=be(),{user:O}=Ie(),{resolvedTheme:K}=Ne(),{id:U}=ye.useParams(),[p,L]=w.useState(!1),[Z,_]=w.useState(!1),[j,k]=w.useState("list"),[T,G]=w.useState("overview"),t=J($.venues.getById,{id:U}),N=J($.venues.getTournamentsByVenue,{venueId:U}),f=J($.venues.getTablesByVenue,{venueId:U}),R=ge($.venues.remove),C=w.useMemo(()=>N?.filter(s=>s.status==="active")||[],[N]),q=C.length>0?C[0]._id:void 0,M=J($.matches.getByTournament,q?{tournamentId:q}:"skip"),i=w.useMemo(()=>!M||C.length===0?[]:M,[M,C]),d=t&&O&&t.organizerId===O._id,c=w.useMemo(()=>
1{if(!N)return{upcoming:[],active:[],completed:[],draft:[]};const s={upcoming:[],active:[],completed:[],draft:[]};return N.forEach(r=>{const o=r.status||"upcoming";o in s&&s[o].push(r)}),s.upcoming.sort((r,o)=>r.date-o.date),s.active.sort((r,o)=>r.date-o.date),s.completed.sort((r,o)=>o.date-r.date),s.draft.sort((r,o)=>o.date-r.date),s},[N]),W=w.useMemo(()=>{if(!f||f.length===0)return{};const s={};return f.forEach(r=>{const o=`${r.manufacturer}-${r.size}`;s[o]||(s[o]=[]),s[o].push(r)}),s},[f]),ee=s=>i.filter(r=>r.tableNumber===s&&r.status==="in_progress")||[];if(!t)return e.jsx("div",{className:"container mx-auto px-4 py-8",children:e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"text-2xl font-bold mb-4",children:"Venue Not Found"}),e.jsxs(b,{variant:"outline",onClick:()=>a({to:"/venues"}),children:[e.jsx(n,{icon:ce,className:"h-4 w-4 mr-2"}),"Back to Venues"]})]})});const pe=async()=>{try{await R({id:U}),a({to:"/venues"})}catch(s){console.error("Failed to delete venue:",s)}},je=()=>{L(!1)};if(p&&d)return e.jsxs("div",{className:"container mx-auto px-4 py-8 max-w-4xl",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsxs(b,{variant:"ghost",size:"sm",onClick:()=>L(!1),children:[e.jsx(n,{icon:ce,className:"h-4 w-4 mr-2"}),"Cancel Edit"]}),e.jsxs("h1",{className:"text-2xl font-bold",children:["Edit Venue: ",t.name]})]}),e.jsx(Ke,{venue:t,onVenueUpdated:je,onCancel:()=>L(!1)})]});const fe=s=>s.replace("_"," ").replace(/\b\w/g,r=>r.toUpperCase()),se=(s=>{switch(s){case"public":return{bg:"bg-green-100",text:"text-green-800",label:"Public"};case"private":return{bg:"bg-red-100",text:"text-red-800",label:"Private"};case"membership_needed":return{bg:"bg-yellow-100",text:"text-yellow-800",label:"Membership Required"};default:return{bg:"bg-muted",text:"text-muted-foreground",label:"Unknown"}}})(t.access),u=[t.city,t.region,t.country].filter(Boolean).join(", "),te=N?.length||0,D=c.upcoming.length,V=c.active.length,E=c.completed.length,z=f?.length||0,ve=d?e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(b,{variant:"outline",onClick:()=>L(!0),children:[e.jsx(n,{icon:Ce,className:"h-4 w-4"}),"Edit"]}),e.jsxs(b,{variant:"destructive",onClick:()=>_(!0),children:[e.jsx(n,{icon:Se,className:"h-4 w-4"}),"Delete"]})]}):void 0;return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(He,{title:t.name,description:t.address,actionButton:ve,viewMode:T==="tournaments"?j:void 0,onViewModeChange:T==="tournaments"?k:void 0,sticky:!1,onBack:()=>a({to:"/venues"}),backLabel:"Back to Venues",showSearch:!1}),e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pb-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap mb-6",children:[e.jsx(A,{className:`${se.bg} ${se.text}`,children:se.label}),e.jsx(A,{variant:"outline",children:fe(t.type)}),u&&e.jsxs("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(n,{icon:B,className:"h-4 w-4"}),e.jsx("span",{children:u})]})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-8",children:[e.jsxs("div",{className:"lg:col-span-2",children:[t.imageUrl&&e.jsx("div",{className:"aspect-[21/9] w-full rounded-lg overflow-hidden bg-muted mb-8",children:e.jsx("img",{src:t.imageUrl,alt:t.name,className:"w-full h-full object-cover"})}),e.jsxs(ze,{value:T,onValueChange:G,className:"w-full",children:[e.jsxs(Be,{className:"grid w-full grid-cols-4 mb-6 bg-muted/50 p-1 h-auto rounded-lg border border-border/50 shadow-sm",children:[e.jsxs(Q,{value:"overview",className:"data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm data-[state=active]:font-semibold text-muted-foreground hover:text-foreground px-4 py-2.5 rounded-md transition-all duration-200",children:[e.jsx(n,{icon:we,className:"h-4 w-4 mr-2"}),e.jsx(F,{size:"sm",children:"Overview"})]}),e.jsxs(Q,{value:"tournaments",className:"data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm data-[state=active]:font-semibold text-muted-foreground hover:text-foreground px-4 py-2.5 rounded-md transition-all duration-200",children:[e.jsx(n,{icon:oe,className:"h-4 w-4 mr-2"}
1),e.jsx(F,{size:"sm",children:"Tournaments"}),te>0&&e.jsx(A,{variant:"secondary",className:"ml-2 text-xs",children:te})]}),e.jsxs(Q,{value:"tables",className:"data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm data-[state=active]:font-semibold text-muted-foreground hover:text-foreground px-4 py-2.5 rounded-md transition-all duration-200",children:[e.jsx(n,{icon:B,className:"h-4 w-4 mr-2"}),e.jsx(F,{size:"sm",children:"Tables"}),z>0&&e.jsx(A,{variant:"secondary",className:"ml-2 text-xs",children:z})]}),e.jsxs(Q,{value:"location",className:"data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm data-[state=active]:font-semibold text-muted-foreground hover:text-foreground px-4 py-2.5 rounded-md transition-all duration-200",children:[e.jsx(n,{icon:H,className:"h-4 w-4 mr-2"}),e.jsx(F,{size:"sm",children:"Location"})]})]}),e.jsxs(X,{value:"overview",className:"space-y-6",children:[t.description&&e.jsxs(x,{children:[e.jsx(S,{children:e.jsx(I,{children:"About the space"})}),e.jsx(h,{children:e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:t.description})})]}),e.jsxs(x,{children:[e.jsx(S,{children:e.jsx(I,{children:"Details"})}),e.jsxs(h,{className:"space-y-4",children:[t.address&&e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(n,{icon:H,className:"h-5 w-5 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-1",children:"Address"}),e.jsx("p",{className:"text-muted-foreground",children:t.address})]})]}),t.operatingHours&&e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(n,{icon:ke,className:"h-5 w-5 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-1",children:"Operating Hours"}),e.jsx("p",{className:"text-muted-foreground",children:t.operatingHours})]})]}),(t.phone||t.email||t.website)&&e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-3",children:"Contact Information"}),e.jsxs("div",{className:"space-y-2",children:[t.phone&&e.jsxs("a",{href:`tel:${t.phone}`,className:"flex items-center gap-2 text-muted-foreground hover:text-primary transition-colors",children:[e.jsx(n,{icon:de,className:"h-4 w-4"}),t.phone]}),t.email&&e.jsxs("a",{href:`mailto:${t.email}`,className:"flex items-center gap-2 text-muted-foreground hover:text-primary transition-colors",children:[e.jsx(n,{icon:me,className:"h-4 w-4"}),t.email]}),t.website&&e.jsxs("a",{href:t.website,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-muted-foreground hover:text-primary transition-colors",children:[e.jsx(n,{icon:xe,className:"h-4 w-4"}),"Visit Website"]})]})]}),t.socialLinks&&t.socialLinks.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-3",children:"Social Links"}),e.jsx("div",{className:"flex flex-wrap gap-3",children:t.socialLinks.map((s,r)=>e.jsx("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-primary hover:underline",children:s.platform},r))})]})]})]})]}),e.jsxs(X,{value:"tournaments",className:"space-y-6",children:[e.jsx("div",{className:"flex items-center gap-4",children:e.jsxs("div",{className:"text-sm text-muted-foreground",children:[D>0&&e.jsx("span",{className:"text-foreground font-medium",children:D})," ","Upcoming",V>0&&e.jsxs(e.Fragment,{children:[" • ",e.jsx("span",{className:"text-foreground font-medium",children:V})," ","Active"]}),E>0&&e.jsxs(e.Fragment,{children:[" • ",e.jsx("span",{className:"text-foreground font-medium",children:E})," ","Past"]})]})}),c.upcoming.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4 text-foreground",children:"Upcoming Tournaments"}),e.jsx("div",{className:j==="grid"?"grid grid-cols-1 md:grid-cols-2 gap-6":"space-y-3",children:c.upcoming.map(s=>e.jsx(le,{tournament:{_id:s._id,name:s.name,date:s.date,gameType:s.gameType||"eight_ball",type:s.type||"single",status:s.status||"upcoming",flyerUrl:s.flyerUrl,venue:s.venue||{name:t.name,city:t.city,region:t.region,country:t.country},entryFee:s.entryFee,registeredCount:s.registeredCount,maxPlayers:s.maxPlayers,organizerName:s.organizerName||"Unknown"},viewMode:j},s._id))})]}),c.active.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4 text-foreground",children:"Active Tourn
1aments"}),e.jsx("div",{className:j==="grid"?"grid grid-cols-1 md:grid-cols-2 gap-6":"space-y-3",children:c.active.map(s=>e.jsx(le,{tournament:{_id:s._id,name:s.name,date:s.date,gameType:s.gameType||"eight_ball",type:s.type||"single",status:s.status||"active",flyerUrl:s.flyerUrl,venue:s.venue||{name:t.name,city:t.city,region:t.region,country:t.country},entryFee:s.entryFee,registeredCount:s.registeredCount,maxPlayers:s.maxPlayers,organizerName:s.organizerName||"Unknown"},viewMode:j},s._id))})]}),c.completed.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4 text-foreground",children:"Past Tournaments"}),e.jsx("div",{className:j==="grid"?"grid grid-cols-1 md:grid-cols-2 gap-6":"space-y-3",children:c.completed.map(s=>e.jsx(le,{tournament:{_id:s._id,name:s.name,date:s.date,gameType:s.gameType||"eight_ball",type:s.type||"single",status:s.status||"completed",flyerUrl:s.flyerUrl,venue:s.venue||{name:t.name,city:t.city,region:t.region,country:t.country},entryFee:s.entryFee,registeredCount:s.registeredCount,maxPlayers:s.maxPlayers,organizerName:s.organizerName||"Unknown"},viewMode:j},s._id))})]}),N&&c.upcoming.length===0&&c.active.length===0&&c.completed.length===0&&e.jsx(x,{children:e.jsx(h,{className:"flex items-center justify-center py-12",children:e.jsxs("div",{className:"text-center",children:[e.jsx(n,{icon:oe,className:"h-12 w-12 mx-auto text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"No tournaments yet"}),e.jsx("p",{className:"text-muted-foreground",children:"This venue doesn't have any tournaments scheduled yet."})]})})})]}),e.jsx(X,{value:"tables",className:"space-y-6",children:f===void 0?e.jsx(x,{children:e.jsx(h,{className:"flex items-center justify-center py-12",children:e.jsx("div",{className:"text-center",children:e.jsx("p",{className:"text-muted-foreground",children:"Loading tables..."})})})}):z===0?e.jsx(x,{children:e.jsx(h,{className:"flex items-center justify-center py-12",children:e.jsxs("div",{className:"text-center",children:[e.jsx(n,{icon:B,className:"h-12 w-12 mx-auto text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"No tables found"}),e.jsx("p",{className:"text-muted-foreground",children:"This venue doesn't have any tables registered yet."})]})})}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:f.map(s=>{const r=s.tableNumber||s.startNumber,o=ee(r),y=s.status==="IN_USE"||o.length>0,m=s.status==="CLOSED",l=o[0];return e.jsx(x,{className:"relative",children:e.jsxs(h,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("span",{className:"text-lg font-semibold",children:s.label||`Table ${r}`}),e.jsx("div",{className:"flex items-center gap-2",children:y?e.jsx("span",{className:"px-2 py-1 text-xs bg-green-500/20 text-green-400 rounded font-medium",children:"IN_USE"}):m?e.jsx("span",{className:"px-2 py-1 text-xs bg-gray-500/20 text-gray-400 rounded font-medium",children:"CLOSED"}):e.jsx("span",{className:"px-2 py-1 text-xs bg-blue-500/20 text-blue-400 rounded font-medium",children:"OPEN"})})]}),e.jsxs("div",{className:"text-xs text-muted-foreground mb-3",children:[e.jsx("div",{children:s.manufacturer}),e.jsx("div",{children:s.size})]}),e.jsx("div",{className:`aspect-video rounded-lg flex items-center justify-center mb-3 relative overflow-hidden ${m?"bg-gray-900/30":"bg-blue-900/30"}`,children:e.jsxs("div",{className:"w-full h-full relative",children:[e.jsx("img",{src:"/pool-table.svg",alt:"Pool Table",className:`w-full h-full object-contain ${m?"opacity-50 grayscale":""}`}),y&&l?e.jsx("div",{className:"absolute inset-0 flex flex-col items-center justify-center p-4",children:e.jsxs("div",{className:"w-full space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between px-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ue,{countryCode:l.player1?.country||"USA",size:"sm"}),e.jsx(F,{size:"lg",className:"text-white",children:l.player1?.name||"TBD"})]}),e.jsx(A,{className:"bg-blue-950/20 text-md font-bold",children:l.player1Score||0})]}),e.jsxs("div",{className:"flex items-center justify-between px-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ue,{countryCode:l.player2?.country||"USA",size:"sm"}),e.jsx(F,{size:"lg",className:"text-white",children:l.player2?.name||"TBD"})]}),e.jsx(A,{className:"bg-blue-950/20 text-md font-bold",children:l.player2Score||0})]})]})}):m?e.jsx("span",{className:"absolute inset-0 flex items-center justify-center text-white font-medium text-lg",children:"CLOSED"}):y?e.jsx("span",{className:"absolute inset-0 flex items-center justify-center text-white font-medium text-lg",children:"IN USE"}):e.jsx("span",{className:"absolute inset-0 flex items-center justify-center text-white font-medium text-lg",children:"OPEN"})]})}),y&&l&&e.jsxs("div",{className:"space-y-2 mt-3",children:[e.jsxs("div",{className:"text-xs text-muted-foreground",children:["Match ",l.round||1," ",l.bracketType==="winner"?`(W${l.round||1}-${l.bracketPosition||1})`:l.bracketType==="loser"?`(L${l.round||1}-${l.bracketPosition||1})`:`(${l.round||1}-${l.bracketPosition||1})`]}
1),C.length>0&&e.jsx("div",{className:"text-xs text-muted-foreground",children:C.find(Y=>Y._id===l.tournamentId)?.name||"Tournament"})]})]})},s._id)})})}),e.jsx(X,{value:"location",className:"space-y-6",children:e.jsxs(x,{children:[e.jsx(S,{children:e.jsx(I,{children:"Map"})}),e.jsx(h,{children:t.address||u?e.jsxs("div",{className:"space-y-4",children:[t.address&&e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(n,{icon:H,className:"h-5 w-5 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-1",children:"Address"}),e.jsx("p",{className:"text-muted-foreground",children:t.address}),u&&e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:u})]})]}),e.jsx("div",{className:"w-full h-[500px] rounded-lg overflow-hidden border border-border",children:e.jsx("iframe",{width:"100%",height:"100%",style:{border:0,filter:K==="dark"?"invert(0.92) hue-rotate(180deg) brightness(0.85) contrast(1.1)":"none"},loading:"lazy",allowFullScreen:!0,referrerPolicy:"no-referrer-when-downgrade",src:`https://www.google.com/maps/embed/v1/place?key=AIzaSyCMATXv8JTcYrllKHglpuvYdiwrR0o99eE&q=${encodeURIComponent(t.coordinates?`${t.coordinates.lat},${t.coordinates.lng}`:t.address?`${t.address}, ${u}`:u||"")}`})}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs(b,{variant:"outline",size:"sm",onClick:()=>{const s=t.coordinates?`https://www.google.com/maps?q=${t.coordinates.lat},${t.coordinates.lng}`:`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(t.address?`${t.address}, ${u}`:u||"")}`;window.open(s,"_blank")},children:[e.jsx(n,{icon:H,className:"h-4 w-4 mr-2"}),"Open in Google Maps"]})})]}):e.jsxs("div",{className:"text-center py-12",children:[e.jsx(n,{icon:H,className:"h-12 w-12 mx-auto text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"No location information"}),e.jsx("p",{className:"text-muted-foreground",children:"This venue doesn't have address or location information available."})]})})]})})]})]}),e.jsx("div",{className:"lg:col-span-1",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs(x,{children:[e.jsx(S,{children:e.jsx(I,{children:"Quick Stats"})}),e.jsxs(h,{className:"space-y-3",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Total Tables"}),e.jsx("span",{className:"font-semibold text-foreground",children:z})]}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Total Tournaments"}),e.jsx("span",{className:"font-semibold text-foreground",children:te})]}),D>0&&e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Upcoming"}),e.jsx("span",{className:"font-semibold text-foreground",children:D})]}),V>0&&e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Active"}),e.jsx("span",{className:"font-semibold text-foreground",children:V})]}),E>0&&e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Past"}),e.jsx("span",{className:"font-semibold text-foreground",children:E})]})]})]}),(t.phone||t.email||t.website)&&e.jsxs(x,{children:[e.jsx(S,{children:e.jsx(I,{className:"text-lg",children:"Contact"})}),e.jsxs(h,{className:"space-y-3",children:[t.phone&&e.jsxs("a",{href:`tel:${t.phone}`,className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-primary transition-colors",children:[e.jsx(n,{icon:de,className:"h-4 w-4"}),t.phone]}),t.email&&e.jsxs("a",{href:`mailto:${t.email}`,className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-primary transition-colors",children:[e.jsx(n,{icon:me,className:"h-4 w-4"}),t.email]}),t.website&&e.jsxs("a",{href:t.website,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-primary transition-colors",children:[e.jsx(n,{icon:xe,className:"h-4 w-4"}),"Website"]})]})]}),e.jsxs(x,{children:[e.jsx(S,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(I,{children:"Tables"}),d&&e.jsxs(b,{variant:"outline",size:"sm",children:[e.jsx(n,{icon:Te,className:"h-4 w-4 mr-1"}),"Add"]})]})}),e.jsx(h,{children:f===void 0?e.jsx("div",{className:"text-center py-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading tables..."})}):z===0?e.jsxs("div",{className:"text-center py-8",children:[e.jsx("div",{className:"w-16 h-16 mx-auto mb-3 rounded-full bg-muted flex items-center justify-center",children:e.jsx(n,{icon:B,className:"h-8 w-8 text-muted-foreground
1/30"})}),e.jsx("p",{className:"text-sm text-muted-foreground mb-1",children:"No tables found"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"for this venue"})]}):e.jsx("div",{className:"space-y-4",children:Object.entries(W).map(([s,r])=>{const o=r[0],y=r.map(m=>m.tableNumber||m.startNumber).sort((m,l)=>m-l);return r.reduce((m,l)=>{const Y=l.status||"OPEN";return m[Y]=(m[Y]||0)+1,m},{}),e.jsxs("div",{className:"border-b border-border pb-3 last:border-0 last:pb-0",children:[e.jsxs("div",{className:"flex items-start justify-between mb-2",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-sm text-foreground",children:o.manufacturer}),e.jsx("p",{className:"text-xs text-muted-foreground",children:o.size})]}),e.jsxs(A,{variant:"secondary",className:"text-xs",children:[r.length," ",r.length===1?"table":"tables"]})]}),e.jsx("div",{className:"space-y-1",children:e.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx("span",{children:"Tables:"}),e.jsx("span",{className:"text-foreground font-medium",children:y.length<=5?y.join(", "):`${y.slice(0,3).join(", ")}... (+${y.length-3} more)`})]})})]},s)})})})]}),u&&e.jsxs(x,{children:[e.jsx(S,{children:e.jsx(I,{className:"text-lg",children:"Location"})}),e.jsx(h,{children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(n,{icon:B,className:"h-5 w-5 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[t.address&&e.jsx("p",{className:"text-sm text-foreground mb-1",children:t.address}),e.jsx("p",{className:"text-sm text-muted-foreground",children:u})]})]})})]})]})})]})]}),e.jsx(Oe,{open:Z,onOpenChange:_,children:e.jsxs(Re,{children:[e.jsxs(qe,{children:[e.jsx(We,{children:"Are you sure?"}),e.jsxs(Ye,{children:['This action cannot be undone. This will permanently delete the venue "',t.name,'".']})]}),e.jsxs(Je,{children:[e.jsx(Qe,{children:"Cancel"}),e.jsx(Xe,{onClick:pe,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Delete"})]})]})})]})}export{Cs as component};
2//# sourceMappingURL=_id-C0tFOe5t.js.map

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.