1import{r as y,a as yt,j as g,d as Lt}from"./vendor-react-Do9pIo1N.js";import{s as Ft,g as Jt,o as jt,F as bt,a as Ne,b as St,O as wt,G as Ut,c as Dt,d as Gt,i as Ht,e as Vt}from"./vendor-firebase-CoVnURx1.js";import{G as zt,R as Wt,T as Bt,o as qt}from"./vendor-lucide-CgZbIGMS.js";const Yt="/api",Kt="https://caged1.com/api",Xe="https://frontend-olive-five-68.vercel.app/api",Xt=new Set(["caged1.com","www.caged1.com","hub.caged1.com"]),Ze=15e3,Qe=6e4,Zt=24*60*60*1e3,$e=new Map,ne=new Map;function Qt(){if(typeof window>"u")return"";try{return String(window.localStorage.getItem("ca_public_session")||"").trim()}catch{return""}}function ei(){if(typeof window>"u")return"";try{let e=window.localStorage.getItem("ca_device_id");return e||(e=window.crypto&&typeof window.crypto.randomUUID=="function"?window.crypto.randomUUID():`dev_${Date.now()}_${Math.random().toString(36).slice(2)}`,window.localStorage.setItem("ca_device_id",e)),e}catch{return""}}function ti(e){return!e||typeof e!="object"?!1:Object.keys(e).some(t=>String(t).toLowerCase()==="x-public-auth")}function E(e){const t=String(e||"").trim().toLowerCase();if(t)return t;if(typeof window>"u")return"";try{return String(window.localStorage.getItem("ca_hub_role")||"").trim().toLowerCase()}catch{return""}}function I(e={},t){const i=E(t);return{...e||{},...i?{"X-Hub-Role":i}:{}}}function ii(e,t={}){return`${String(t.method||"GET").toUpperCase()}:${e}`}function ri(e=""){try{const t=new URL(String(e||""),"http://local.dev"),i=String(t.searchParams.get("skip_cache")||"").trim().toLowerCase();return["1","true","yes","on"].includes(i)}catch{return!1}}function ni(){$e.clear(),ne.clear()}function oi(e=""){return/^\/public\/events\/[^/?#]+/i.test(String(e||""))}function ai(e=""){return/^\/public-site\/event-bundle(?:$|\?)/i.test(String(e||""))}function si(e,t,i){if(!oi(e)&&!ai(e))return i;const n=String((t==null?void 0:t.public_phase)||"").trim().toLowerCase();return n?n==="archived"||n==="replay"?Zt:n==="live"||n==="on_sale"||n==="teaser"?0:i:i}async function r(e,t={}){var p;const i=String(t.method||"GET").toUpperCase(),n=typeof t.baseOverride=="string"?t.baseOverride.trim():"",o=ii(e,t),s=i==="GET"&&!t.skipCache&&!ri(e),d=Number(t.timeoutMs||45e3);if(s){const m=$e.get(o),O=t.headers&&t.headers["X-Public-Request"]==="true"?Qe:Ze,k=Number((m==null?void 0:m.ttlMs)||O);if(m&&Date.now()-m.ts<k)return m.data;if(ne.has(o))return ne.get(o)}else ni();const a=new AbortController,h=setTimeout(()=>a.abort(),d);let l=n||Yt;!n&&typeof window<"u"&&String(((p=window.location)==null?void 0:p.hostname)||"").toLowerCase()==="www.caged1.com"&&(l=Kt);const C=Qt(),P=t.headers&&t.headers["X-Public-Request"]==="true",w=ei(),R=typeof FormData<"u"&&t.body instanceof FormData,N=E(),A={...R?{}:{"Content-Type":"application/json"},...w?{"X-Device-Id":w}:{},...N?{"X-Hub-Role":N}:{},...!P&&!ti(t.headers)&&C?{"X-Public-Auth":C}:{},...t.headers},b=fetch(`${l}${e}`,{...t,headers:A,signal:a.signal}).then(async m=>{if(!m.ok){const v=await m.json().catch(()=>({error:m.statusText})),O=new Error(v.error||m.statusText);throw O.status=m.status,v&&typeof v=="object"&&Object.keys(v).forEach(k=>{k!=="error"&&(O[k]=v[k])}),O}return m.json()}).catch(m=>{throw(m==null?void 0:m.name)==="AbortError"?new Error(`Request timed out after ${Math.round(d/1e3)}s. Please retry.`):m}).finally(()=>{clearTimeout(h)});if(!s)return b;ne.set(o,b);try{const m=await b,O=t.headers&&t.headers["X-Public-Request"]==="true"?Qe:Ze,k=si(e,m,O);return k>0&&$e.set(o,{data:m,ts:Date.now(),ttlMs:k}),m}finally{ne.delete(o)}}function et(){var t;if(typeof window>"u")return!1;const e=String(((t=window.location)==null?void 0:t.hostname)||"").toLowerCase();return Xt.has(e)}const wr={getEvents:(e,t={})=>{const i=e?`?${new URLSearchParams(e)}`:"";return r(`/events${i}`,t)},getPublicEvents:(e={})=>r("/public/events",e),getPublicEventsStats:(e={})=>r("/public/events/stats",{cache:"no-store",skipCache:!0,...e}),getPublicSponsors:(e={},t={})=>{const i=e&&Object.keys(e).length?`?${new URLSearchParams(e)}`:"";return r(`/public/sponsors${i}`,t)},getAdminPublicSponsors:(e={})=>r("/admin/public-sponsors",{skipCache:!0,...e}),saveAdminPublicSponsors:(e,t={})=>r("/admin/public-sponsors",{method:"PUT",body:JSON.stringify(e||{}),...t}),getPpvTvAppStatus:(e={})=>r("/marketing/ppv-tv-app-status",{skipCache:!0,...e}),getPublicPpvTvAppStatus:(e={})=>r("/public/marketing/ppv-tv-app-status",{...e,headers:{"X-Public-Request":"true",...(e==null?void 0:e.headers)||{}}}),getPublicVisitorGeo:(e={},t={})=>{const i=e&&Object.keys(e).length?`?${new URLSearchParams(e)}`:"";return r(`/public-site/geo${i}`,{cache:"no-store",skipCache:!0,...t,headers:{"X-Public-Request":"true",...(t==null?void 0:t.headers)||{}}})},savePpvTvAppStatus:(e,t={})=>r("/marketing/ppv-tv-app-status",{method:"PUT",body:JSON.stringify(e||{}),...t}),getCagesideChatStatus:(e="cageside",t={})=>r(`/chat/status?room=${encodeURIComponent(e)}`,{timeoutMs:8e3,skipCache:!0,...t,headers:I(t==null?void 0:t.headers,t==null?void 0:t.roleHint)}),getCagesideMessages:({room:e="cageside",sinceId:t=null,limit:i=30}={},n={})=>{const o=new URLSearchParams({room:e});return t&&o.set("since_id",String(t)),i&&o.set("limit",String(i)),r(`/chat/messages?${o.toString()}`,{timeoutMs:8e3,...n})},getCagesideCoolerState:({room:e="cageside"}={},t={})=>{const i=new URLSearchParams({room:e});return r(`/chat/cooler-state?${i.toString()}`,{timeoutMs:8e3,...t})},getCagesideCoolerSession:({room:e="cageside"}={},t={})=>{const i=new URLSearchParams({room:e});return r(`/chat/cooler/session?${i.toString()}`,{timeoutMs:8e3,skipCache:!0,...t})},clearCagesideCoolerSession:({room:e="cageside",confirmPhrase:t="Clear"}={})=>
1r("/chat/cooler/clear",{method:"POST",body:JSON.stringify({room:e,confirm_phrase:t}),timeoutMs:12e3}),postCagesideCoolerMessage:({room:e="cageside",body:t})=>r("/chat/cooler/messages",{method:"POST",body:JSON.stringify({room:e,body:t}),timeoutMs:12e3}),postCagesideCoolerCommitment:({room:e="cageside",statement:t})=>r("/chat/cooler/commitment",{method:"POST",body:JSON.stringify({room:e,statement:t}),timeoutMs:12e3}),postCagesideMessage:({room:e="cageside",body:t})=>r("/chat/messages",{method:"POST",body:JSON.stringify({room:e,body:t}),timeoutMs:2e4}),addCagesideReaction:({messageId:e,emoji:t})=>r(`/chat/messages/${e}/reactions`,{method:"POST",body:JSON.stringify({emoji:t}),timeoutMs:6e3}),removeCagesideReaction:({messageId:e,emoji:t})=>r(`/chat/messages/${e}/reactions?emoji=${encodeURIComponent(t)}`,{method:"DELETE",timeoutMs:6e3}),reportCagesideMessage:({messageId:e})=>r(`/chat/messages/${e}/report`,{method:"POST",timeoutMs:6e3}),getCagesideYouTubeAllowlist:()=>r("/chat/youtube-allowlist",{timeoutMs:8e3,skipCache:!0}),getCagesideRooms:()=>
1r("/chat/rooms",{timeoutMs:8e3,skipCache:!0}),addCagesideRoomMember:(e,t)=>r(`/chat/rooms/${encodeURIComponent(e)}/members`,{method:"POST",body:JSON.stringify(t||{}),timeoutMs:8e3}),getCagesideRoomMembers:e=>r(`/chat/rooms/${encodeURIComponent(e)}/members`,{timeoutMs:8e3,skipCache:!0}),removeCagesideRoomMember:(e,t)=>r(`/chat/rooms/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}`,{method:"DELETE",timeoutMs:8e3}),updateCagesideRoomMemberRole:(e,t,i)=>r(`/chat/rooms/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}/role`,{method:"PATCH",body:JSON.stringify({role:i}),timeoutMs:8e3}),transferCagesideRoomOwnership:(e,t)=>r(`/chat/rooms/${encodeURIComponent(e)}/ownership`,{method:"POST",body:JSON.stringify({public_user_id:t}),timeoutMs:8e3}),getCagesideRoomInvites:e=>r(`/chat/rooms/${encodeURIComponent(e)}/invites`,{timeoutMs:8e3,skipCache:!0}),createCagesideRoomInvite:(e,t)=>r(`/chat/rooms/${encodeURIComponent(e)}/invites`,{method:"POST",body:JSON.stringify(t||{}),timeoutMs:8e3}),revokeCagesideRoomInvite:(e,t)=>r(`/chat/rooms/${encodeURIComponent(e)}/invites/${encodeURIComponent(t)}/revoke`,{method:"POST",timeoutMs:8e3}),resendCagesideRoomInvite:(e,t)=>r(`/chat/rooms/${encodeURIComponent(e)}/invites/${encodeURIComponent(t)}/resend`,{method:"POST",timeoutMs:12e3}),acceptCagesideRoomInvite:e=>r(`/chat/invites/${encodeURIComponent(e)}/accept`,{method:"POST",timeoutMs:8e3}),getCagesideAdminRooms:()=>r("/admin/cageside/rooms"),updateCagesideAdminRoom:(e,t)=>r(`/admin/cageside/rooms/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(t||{})}),createCagesideAdminRoom:e=>r("/admin/cageside/rooms",{method:"POST",body:JSON.stringify(e||{})}),getCagesideAdminRoomMembers:e=>r(`/admin/cageside/rooms/${encodeURIComponent(e)}/members`),addCagesideAdminRoomMember:(e,t)=>r(`/admin/cageside/rooms/${encodeURIComponent(e)}/members`,{method:"POST",body:JSON.stringify(t||{})}),removeCagesideAdminRoomMember:(e,t)=>r(`/admin/cageside/rooms/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}`,{method:"DELETE"}),getCagesideAdminConfig:()=>r("/admin/cageside/config"),updateCagesideAdminConfig:e=>r("/admin/cageside/config",{method:"PUT",body:JSON.stringify(e||{})}),getCagesideAdminCoolers:()=>r("/admin/cageside/coolers"),getCagesideAdminCoolerSessions:()=>r("/admin/cageside/cooler-sessions"),getCagesideAdminCoolerSessionMessages:({roomId:e,publicUserId:t,beforeId:i=null,limit:n=60})=>{const o=new URLSearchParams;return o.set("limit",String(n)),i!=null&&o.set("before_id",String(i)),r(`/admin/cageside/cooler-sessions/${encodeURIComponent(e)}/${encodeURIComponent(t)}/messages?${o.toString()}`)},liftCagesideCooler:e=>r(`/admin/cageside/coolers/${e}/lift`,{method:"POST"}),releaseCagesideCoolerSession:({roomId:e,publicUserId:t,note:i=""})=>r(`/admin/cageside/cooler-sessions/${encodeURIComponent(e)}/${encodeURIComponent(t)}/release`,{method:"POST",body:JSON.stringify({note:i})}),getCagesideAdminBans:({onlyUnreviewed:e=!0}={})=>r(`/admin/cageside/bans?only_unreviewed=${e?"true":"false"}`),overturnCagesideBan:e=>r(`/admin/cageside/bans/${e}/overturn`,{method:"POST"}),upholdCagesideBan:e=>r(`/admin/cageside/bans/${e}/uphold`,{method:"POST"}),getCagesideAdminReports:({onlyUnresolved:e=!0}={})=>r(`/admin/cageside/reports?only_unresolved=${e?"true":"false"}`),resolveCagesideReport:e=>r(`/admin/cageside/reports/${e}/resolve`,{method:"POST"}),hideCagesideReportedMessage:e=>r(`/admin/cageside/reports/${e}/hide-message`,{method:"POST"}),clearCagesideRoomMessages:({roomSlug:e="cageside",confirmPhrase:t="Clear"}={})=>r(`/admin/cageside/rooms/${encodeURIComponent(e)}/clear`,{method:"POST",body:JSON.stringify({confirm_phrase:t})}),getCagesideAdminYouTubeAllowlist:()=>r("/admin/cageside/youtube-allowlist"),createCagesideAdminYouTubeAllowlistRow:e=>r("/admin/cageside/youtube-allowlist",{method:"POST",body:JSON.stringify(e||{})}),updateCagesideAdminYouTubeAllowlistRow:(e,t)=>r(`/admin/cageside/youtube-allowlist/${e}`,{method:"PATCH",body:JSON.stringify(t||{})}),deleteCagesideAdminYouTubeAllowlistRow:e=>r(`/admin/cageside/youtube-allowlist/${e}`,{method:"DELETE"}),getCagesideModerationEvents:({limit:e=100,action:t="",roomId:i=null}={})=>{const n=new URLSearchParams;return n.set("limit",String(e)),t&&n.set("action",t),i!=null&&String(i).trim()!==""&&n.set("room_id",String(i)),r(`/admin/cageside/moderation-events?${n.toString()}`)},getPublicEventBySlug:(e,t={})=>{const i=!!(t!=null&&t.refresh),{refresh:n,...o}=t||{},s=`/public/events/${encodeURIComponent(String(e||"").trim())}`,d=i?`${s}?refresh=1`:s;return r(d,o)},getEvent:e=>r(`/events/${e}`),createEvent:e=>r("/events",{method:"POST",body:JSON.stringify(e)}),updateEvent:(e,t)=>
1r(`/events/${e}`,{method:"PUT",body:JSON.stringify(t)}),verifyTicketspiceEventLink:e=>r("/events/ticketspice/verify",{method:"POST",body:JSON.stringify(e)}),backfillYouTubePlaybook:e=>r(`/events/${e}/youtube-playbook/backfill`,{method:"POST"}),getYouTubePlaybookStatus:e=>r(`/events/${e}/youtube-playbook/status`),getEventNights:e=>r(`/events/${e}/nights`),createEventNight:(e,t)=>r(`/events/${e}/nights`,{method:"POST",body:JSON.stringify(t)}),getChecklist:e=>r(`/events/${e}/checklist`),createChecklistItem:(e,t)=>r(`/events/${e}/checklist`,{method:"POST",body:JSON.stringify(t)}),updateChecklistItem:(e,t)=>r(`/events/checklist/${e}`,{method:"PUT",body:JSON.stringify(t)}),deleteChecklistItem:e=>r(`/events/checklist/${e}`,{method:"DELETE"}),reorderChecklist:(e,t)=>r(`/events/${e}/checklist/reorder`,{method:"POST",body:JSON.stringify(t)}),getCommandHub:e=>r(`/events/${e}/command-hub`,{skipCache:!0,timeoutMs:9e4}),updateCommandHubItem:(e,t)=>r(`/events/command-hub/${e}`,{method:"PUT",body:JSON.stringify(t)}),getFighters:(e,t={})=>{const i={...e||{}};return Object.prototype.hasOwnProperty.call(i,"include_metrics")||(i.include_metrics="0"),r(`/fighters${Object.keys(i).length?"?"+new URLSearchParams(i):""}`,t)},getFighterStateSummary:(e={})=>r("/fighters/state-summary",{...e,headers:{"X-Public-Request":"true",...(e==null?void 0:e.headers)||{}}}),searchFightersByName:(e,t={})=>r(`/fighters/name-lookup?q=${encodeURIComponent(String(e||"").trim())}`,{...t,headers:{"X-Public-Request":"true",...(t==null?void 0:t.headers)||{}}}),getFighterCount:(e={})=>{const t=e!=null&&e.params&&typeof e.params=="object"?e.params:null,i={...e||{}};delete i.params;const n=t?`?${new URLSearchParams(t)}`:"";return r(`/fighters/count${n}`,i)},getGymCount:(e={})=>r("/gyms/count",e),getFighter:(e,t={})=>r(`/fighters/${e}`,t),getFighterSupportersSummary:(e,t={},i={})=>r(`/fighters/${e}/supporters/summary${t?"?"+new URLSearchParams(t):""}`,i),getFighterSupporters:(e,t={},i={})=>r(`/fighters/${e}/supporters${t?"?"+new URLSearchParams(t):""}`,i),createFighter:e=>r("/fighters",{method:"POST",body:JSON.stringify(e)}),updateFighter:(e,t)=>r(`/fighters/${e}`,{method:"PUT",body:JSON.stringify(t)}),uploadFighterPhoto:(e,t)=>r(`/fighters/${e}/photo`,{method:"POST",body:t}),deleteFighter:e=>r(`/fighters/${e}`,{method:"DELETE"}),getUnresolvedFighters:e=>r(`/fighters/enrichment/unresolved${e?"?"+new URLSearchParams(e):""}`),getFighterLogistics:e=>r(`/fighters/logistics/${e}`),calculateFighterLogistics:e=>r("/fighters/logistics/calculate",{method:"POST",body:JSON.stringify({event_id:e}),timeoutMs:9e4}),getFighterDuplicates:(e={},t={})=>r(`/fighters/duplicates${e?"?"+new URLSearchParams(e):""}`,t),resolveFighterDuplicates:(e={},t={})=>r("/fighters/duplicates/resolve",{method:"POST",body:JSON.stringify(e||{}),...t||{}}),submitClaim:e=>r("/fighters/claim",{method:"POST",body:JSON.stringify(e)}),resendClaimVerification:(e={},t={})=>r("/fighters/claims/resend-verification",{method:"POST",body:JSON.stringify(e||{}),...t||{}}),submitContribution:e=>r("/fighters/contribute",{method:"POST",body:JSON.stringify(e)}),getFighterContributions:(e={})=>r(`/fighters/contributions${e?"?"+new URLSearchParams(e):""}`),approveFighterContribution:(e,t={})=>r(`/fighters/contributions/${e}/approve`,{method:"POST",body:JSON.stringify(t||{})}),rejectFighterContribution:(e,t={})=>r(`/fighters/contributions/${e}/reject`,{method:"POST",body:JSON.stringify(t||{})}),getPendingClaims:(e=null,t={})=>r(`/fighters/claims/pending${e?"?"+new URLSearchParams(e):""}`,t),getClaimFunnelSummary:(e=null,t={})=>r(`/fighters/claims/funnel/summary${e?"?"+new URLSearchParams(e):""}`,t),getClaimMonitoring:(e=null,t={})=>r(`/fighters/claims/monitoring${e?"?"+new URLSearchParams(e):""}`,t),approveClaim:(e,t={},i={})=>{const n=E(t==null?void 0:t.reviewer);return r(`/fighters/claims/${e}/approve`,{...i||{},method:"POST",body:JSON.stringify(t||{}),headers:{...(i==null?void 0:i.headers)||{},...n?{"X-Hub-Role":n}:{}}})},rejectClaim:(e,t={},i={})=>{const n=E(t==null?void 0:t.reviewer);return r(`/fighters/claims/${e}/reject`,{...i||{},method:"POST",body:JSON.stringify(t||{}),headers:{...(i==null?void 0:i.headers)||{},...n?{"X-Hub-Role":n}:{}}})},getFights:(e,t={})=>r(`/fights${e?"?"+new URLSearchParams(e):""}`,t),getFight:e=>r(`/fights/${e}`),createFight:e=>r("/fights",{method:"POST",body:JSON.stringify(e)}),updateFight:(e,t)=>
1r(`/fights/${e}`,{method:"PUT",body:JSON.stringify(t)}),swapFighter:(e,t)=>r(`/fights/${e}/swap`,{method:"POST",body:JSON.stringify(t)}),getSalesDashboard:e=>r(`/sales/dashboard${e?"?event_id="+e:""}`),getSales:e=>r(`/sales${e?"?"+new URLSearchParams(e):""}`),getPendingChanges:()=>r("/changes/pending"),completeTask:(e,t)=>r(`/changes/tasks/${e}`,{method:"PUT",body:JSON.stringify({status:t})}),completeChange:e=>r(`/changes/${e}/complete`,{method:"PUT"}),getFinancialSummary:e=>r(`/financials/summary/${e}`),getTicketspicePayouts:e=>r(`/financials/ticketspice-payouts/${e}`),getFinancials:e=>r(`/financials${e?"?"+new URLSearchParams(e):""}`),createFinancial:e=>r("/financials",{method:"POST",body:JSON.stringify(e)}),getContacts:e=>r(`/contacts${e?"?"+new URLSearchParams(e):""}`),getMasterContacts:e=>r(`/contacts/master-list${e?"?"+new URLSearchParams(e):""}`),getSegments:()=>r("/contacts/segments"),submitPublicSmsOptIn:e=>r("/contacts/public-sms-opt-in",{method:"POST",body:JSON.stringify(e)}),submitPublicSponsorshipLead:e=>r("/public/sponsorship-lead",{method:"POST",body:JSON.stringify(e)}),getFighterFollowStatus:(e,t={})=>r(`/public/fighters/${e}/follow-status`,t),followFighter:(e,t={})=>r(`/public/fighters/${e}/follow`,{method:"POST",...t}),unfollowFighter:(e,t={})=>r(`/public/fighters/${e}/follow`,{method:"DELETE",...t}),getMyFollows:(e={})=>r("/public/fighters/me/follows",e),getMyFollowedFighters:(e={})=>r("/public/fighters/me/follows?expand=1",e),getMyPurchases:(e={})=>r("/public/auth/me/purchases",e),getMyPredictionRecord:(e={})=>r("/public/auth/me/prediction-record",e),getMyAudienceAwards:(e={})=>r("/public/auth/me/audience-awards",e),getNotificationPreferences:(e={})=>r("/public/notifications/preferences",e),updateNotificationPreferences:(e={},t={})=>r("/public/notifications/preferences",{method:"PUT",body:JSON.stringify(e||{}),...t||{}}),getNotificationPromptStatus:(e,t={})=>r(`/public/notifications/prompt-status?prompt_key=${encodeURIComponent(String(e||"").trim())}`,t),createNotificationEvent:(e={},t={})=>r("/public/notifications/events",{method:"POST",body:JSON.stringify(e||{}),...t||{}}),startPhoneVerification:(e,t={})=>r("/public/notifications/phone/start",{method:"POST",body:JSON.stringify({phone:String(e||"").trim()}),...t||{}}),verifyPhone:(e,t={})=>r("/public/notifications/phone/verify",{method:"POST",body:JSON.stringify({code:String(e||"").trim()}),...t||{}}),removePhone:(e={})=>r("/public/notifications/phone",{method:"DELETE",...e||{}}),getPaymentsConfig:(e={})=>r("/payments/config",{skipCache:!0,...e||{}}),createCheckoutSession:(e={},t={})=>r("/payments/checkout/session",{method:"POST",body:JSON.stringify(e||{}),...t||{}}),createOnboardingSession:(e={},t={})=>r("/public/onboarding/session",{method:"POST",body:JSON.stringify(e||{}),...t||{}}),getOnboardingSession:(e,t={})=>r(`/public/onboarding/session/${e}`,t),trackOnboardingEvent:(e,t={},i={})=>r(`/public/onboarding/session/${e}/event`,{method:"POST",body:JSON.stringify(t||{}),...i||{}}),getGyms:(e,t={})=>r(`/gyms/${e?"?"+new URLSearchParams(e):""}`,t),getGym:(e,t=null,i={})=>r(`/gyms/${e}${t?"?"+new URLSearchParams(t):""}`,i),createGym:e=>r("/gyms/",{method:"POST",body:JSON.stringify(e)}),updateGym:(e,t)=>r(`/gyms/${e}`,{method:"PUT",body:JSON.stringify(t)}),submitGymClaim:(e,t={})=>r("/gyms/claim",{method:"POST",body:JSON.stringify(e||{}),...t||{}}),resendGymClaimVerification:(e={},t={})=>r("/gyms/claims/resend-verification",{method:"POST",body:JSON.stringify(e||{}),...t||{}}),getPendingGymClaims:(e=null,t={})=>r(`/gyms/claims/pending${e?"?"+new URLSearchParams(e):""}`,t),approveGymClaim:(e,t={},i={})=>{const n=E(t==null?void 0:t.reviewer);return r(`/gyms/claims/${e}/approve`,{...i||{},method:"POST",body:JSON.stringify(t||{}),headers:{...(i==null?void 0:i.headers)||{},...n?{"X-Hub-Role":n}:{}}})},rejectGymClaim:(e,t={},i={})=>{const n=E(t==null?void 0:t.reviewer);return r(`/gyms/claims/${e}/reject`,{...i||{},method:"POST",body:JSON.stringify(t||{}),headers:{...(i==null?void 0:i.headers)||{},...n?{"X-Hub-Role":n}:{}}})},getGymInviteRecipients:(e,t={})=>{const i=E((t==null?void 0:t.reviewer)||(t==null?void 0:t.hubRole));return r(`/gyms/${e}/invite-recipients`,{...t||{},headers:{...(t==null?void 0:t.headers)||{},...i?{"X-Hub-Role":i}:{}}})},createGymInviteRecipient:(e,t={},i={})=>{const n=E((t==null?void 0:t.reviewer)||(i==null?void 0:i.reviewer)||(i==null?void 0:i.hubRole));return r(`/gyms/${e}/invite-recipients`,{...i||{},method:"POST",body:JSON.stringify(t||{}),headers:{...(i==null?void 0:i.headers)||{},...n?{"X-Hub-Role":n}:{}}})},updateGymInviteRecipient:(e,t,i={},n={})=>{const o=E((i==null?void 0:i.reviewer)||(n==null?void 0:n.reviewer)||(n==null?void 0:n.hubRole));return r(`/gyms/${e}/invite-recipients/${t}`,{...n||{},method:"PUT",body:JSON.stringify(i||{}),headers:{...(n==null?void 0:n.headers)||{},...o?{"X-Hub-Role":o}:{}}})},sendGymInviteRecipient:(e,t,i={},n={})=>{const o=E((i==null?void 0:i.reviewer)||(n==null?void 0:n.reviewer)||(n==null?void 0:n.hubRole));return r(`/gyms/${e}/invite-recipients/${t}/send-invite`,{...n||{},method:"POST",body:JSON.stringify(i||{}),headers:{...(n==null?void 0:n.headers)||{},...o?{"X-Hub-Role":o}:{}}})},getMyGymClaimsSummary:(e={})=>r("/gyms/my-claims/summary",e),addFighterToGym:(e,t)=>r(`/gyms/${e}/fighters`,{method:"POST",body:JSON.stringify(t)}),removeFighterFromGym:(e,t)=>r(`/gyms/${e}/fighters/${t}`,{method:"DELETE"}),syncPopulateGyms:(e={})=>r("/gyms/sync-populate",{method:"POST",body:JSON.stringify(e),timeoutMs:12e4}),getGymGooglePlacesStatus:(e={})=>r("/gyms/google-places/status",e),getGymFreeValidationRows:(e={},t={})=>{const i=e&&Object.keys(e).length?`?${new URLSearchParams(e)}`:"";return r(`/gyms/free-validation${i}`,t)},getGymGooglePlacesReviewQueue:(e={},t={})=>{const i=e&&Object.keys(e).length?`?${new URLSearchParams(e)}`:"";return r(`/gyms/google-places/review-queue${i}`,t)},buildGymGooglePlacesReviewQueue:(e={},t={})=>{const i=E((e==null?void 0:e.reviewer)||(t==null?void 0:t.reviewer)||(t==null?void 0:t.hubRole));return r("/gyms/google-places/review-queue/build",{...t||{},method:"POST",body:JSON.stringify(e||{}),headers:{...(t==null?void 0:t.headers)||{},...i?{"X-Hub-Role":i}:{}},timeoutMs:12e4})}
1,searchNearbyGyms:({address:e,radius_miles:t=100,limit:i=12}={},n={})=>{const o=new URLSearchParams;return e!=null&&o.set("address",String(e)),t!=null&&o.set("radius_miles",String(t)),i!=null&&o.set("limit",String(i)),r(`/gyms/nearby?${o.toString()}`,{...n||{},headers:{...(n==null?void 0:n.headers)||{},"X-Public-Request":"true"}})},searchGymGooglePlaces:({q:e,limit:t=15,region:i="US"}={},n={})=>{const o=new URLSearchParams;return e!=null&&o.set("q",String(e)),t!=null&&o.set("limit",String(t)),i!=null&&o.set("region",String(i)),r(`/gyms/google-places/search?${o.toString()}`,n)},importGymGooglePlacesDrafts:(e={},t={})=>{const i=E((e==null?void 0:e.reviewer)||(t==null?void 0:t.reviewer)||(t==null?void 0:t.hubRole));return r("/gyms/google-places/import-drafts",{...t||{},method:"POST",body:JSON.stringify(e||{}),headers:{...(t==null?void 0:t.headers)||{},...i?{"X-Hub-Role":i}:{}},timeoutMs:12e4})},getGymWebsiteEnrichment:(e,t={})=>r(`/gyms/${e}/website-enrichment`,t),enrichGymWebsite:(e,t={},i={})=>{const n=E((t==null?void 0:t.reviewer)||(i==null?void 0:i.reviewer)||(i==null?void 0:i.hubRole));return r(`/gyms/${e}/website-enrich`,{...i||{},method:"POST",body:JSON.stringify(t||{}),headers:{...(i==null?void 0:i.headers)||{},...n?{"X-Hub-Role":n}:{}},timeoutMs:12e4})},discoverTapologyGymMatches:(e={},t={})=>{const i=E((e==null?void 0:e.reviewer)||(t==null?void 0:t.reviewer)||(t==null?void 0:t.hubRole));return r("/gyms/tapology/discovery",{...t||{},method:"POST",body:JSON.stringify(e||{}),headers:{...(t==null?void 0:t.headers)||{},...i?{"X-Hub-Role":i}:{}},timeoutMs:18e4})},getTapologyGymMatches:(e=null,t={})=>{const i=E((t==null?void 0:t.reviewer)||(t==null?void 0:t.hubRole));return r(`/gyms/tapology/discovery${e?"?"+new URLSearchParams(e):""}`,{...t||{},headers:{...(t==null?void 0:t.headers)||{},...i?{"X-Hub-Role":i}:{}},timeoutMs:12e4})},importTapologyGymMatch:(e,t={},i={})=>{const n=E((t==null?void 0:t.reviewer)||(i==null?void 0:i.reviewer)||(i==null?void 0:i.hubRole));return r(`/gyms/tapology/discovery/${e}/import`,{...i||{},method:"POST",body:JSON.stringify(t||{}),headers:{...(i==null?void 0:i.headers)||{},...n?{"X-Hub-Role":n}:{}},timeoutMs:12e4})},importTapologyHighConfidence:(e={},t={})=>{const i=E((e==null?void 0:e.reviewer)||(t==null?void 0:t.reviewer)||(t==null?void 0:t.hubRole));return r("/gyms/tapology/import-high-confidence",{...t||{},method:"POST",body:JSON.stringify(e||{}),headers:{...(t==null?void 0:t.headers)||{},...i?{"X-Hub-Role":i}:{}},timeoutMs:18e4})},getGymReconciliationCandidates:(e=null,t={})=>{const i=E((t==null?void 0:t.reviewer)||(t==null?void 0:t.hubRole));return r(`/gyms/reconciliation-candidates${e?"?"+new URLSearchParams(e):""}`,{...t||{},headers:{...(t==null?void 0:t.headers)||{},...i?{"X-Hub-Role":i}:{}},timeoutMs:12e4})},generateGymReconciliationCandidates:(e={},t={})=>{const i=E((e==null?void 0:e.reviewer)||(t==null?void 0:t.reviewer)||(t==null?void 0:t.hubRole));return r("/gyms/reconciliation-candidates",{...t||{},method:"POST",body:JSON.stringify(e||{}),headers:{...(t==null?void 0:t.headers)||{},...i?{"X-Hub-Role":i}:{}},timeoutMs:18e4})},approveGymReconciliationCandidate:(e,t={},i={})=>{const n=E((t==null?void 0:t.reviewer)||(i==null?void 0:i.reviewer)||(i==null?void 0:i.hubRole));return r(`/gyms/reconciliation-candidates/${e}/approve`,{...i||{},method:"POST",body:JSON.stringify(t||{}),headers:{...(i==null?void 0:i.headers)||{},...n?{"X-Hub-Role":n}:{}},timeoutMs:12e4})},rejectGymReconciliationCandidate:(e,t={},i={})=>{const n=E((t==null?void 0:t.reviewer)||(i==null?void 0:i.reviewer)||(i==null?void 0:i.hubRole));return r(`/gyms/reconciliation-candidates/${e}/reject`,{...i||{},method:"POST",body:JSON.stringify(t||{}),headers:{...(i==null?void 0:i.headers)||{},...n?{"X-Hub-Role":n}:{}},timeoutMs:12e4})},applyAutoApprovedGymReconciliation:(e={},t={})=>{const i=E((e==null?void 0:e.reviewer)||(t==null?void 0:t.reviewer)||(t==null?void 0:t.hubRole));return r("/gyms/reconciliation-candidates/apply-auto-approved",{...t||{},method:"POST",body:JSON.stringify(e||{}),headers:{...(t==null?void 0:t.headers)||{},...i?{"X-Hub-Role":i}:{}},timeoutMs:18e4})},getAgencies:e=>r(`/agencies/${e?"?"+new URLSearchParams(e):""}`),getAgency:e=>r(`/agencies/${e}`),createAgency:e=>r("/agencies/",{method:"POST",body:JSON.stringify(e)}),updateAgency:(e,t)=>r(`/agencies/${e}`,{method:"PUT",body:JSON.stringify(t)}),assignFighterToAgency:(e,t)=>r(`/agencies/${e}/fighters/${t}`,{method:"PUT"}),unassignFighterFromAgency:(e,t)=>r(`/agencies/${e}/fighters/${t}`,{method:"DELETE"}),syncPopulateAgencies:(e={})=>r("/agencies/sync-populate",{method:"POST",body:JSON.stringify(e),timeoutMs:12e4}),crossReferenceAgencies:(e={})=>r("/agencies/cross-reference",{method:"POST",body:JSON.stringify(e),timeoutMs:18e4}),getFighterLeaderboard:e=>r(`/fighters/leaderboard${e?"?"+new URLSearchParams(e):""}`),getAnalyticsSummary:async()=>r("/analytics/summary"),getLogistics:async e=>r(`/logistics/${e}`),calculateLogistics:async e=>r("/logistics/calculate",{method:"POST",body:JSON.stringify({event_id:e}),timeoutMs:9e4}),syncEventSheet:async e=>r(`/events/${e}/sync-sheet`,{method:"POST"}),importEventResultsSheet:e=>r(`/events/${e}/results/import`,{method:"POST",timeoutMs:12e4}),getOfficialResults:(e,t)=>r(`/events/${e}/official-results${t?"?"+new URLSearchParams(t):""}`),getOfficialStaff:(e,t)=>r(`/events/${e}/official-staff${t?"?"+new URLSearchParams(t):""}`),getOfficialAwards:(e,t,i={})=>r(`/events/${e}/official-awards${t?"?"+new URLSearchParams(t):""}`,i),updateOfficialAwards:(e,t)=>r(`/events/${e}/official-awards`,{method:"POST",body:JSON.stringify({items:t})}),getRecordAudit:(e,t)=>
1r(`/events/${e}/record-audit${t?"?"+new URLSearchParams(t):""}`),getMatchupPolls:(e,t={})=>r(`/matchup-polls/${e?"?"+new URLSearchParams(e):""}`,t),getMatchupPoll:(e,t={})=>r(`/matchup-polls/${e}`,t),createMatchupPoll:e=>r("/matchup-polls/",{method:"POST",body:JSON.stringify(e)}),generateAiMatchupPollProposals:e=>r("/matchup-polls/ai-proposals",{method:"POST",body:JSON.stringify(e||{})}),updateMatchupPoll:(e,t)=>r(`/matchup-polls/${e}`,{method:"PUT",body:JSON.stringify(t)}),deleteMatchupPoll:e=>r(`/matchup-polls/${e}`,{method:"DELETE"}),overrideMatchupPoll:(e,t)=>r(`/matchup-polls/${e}/override`,{method:"PATCH",body:JSON.stringify(t)}),replaceMatchupPollOpponent:(e,t)=>r(`/matchup-polls/${e}/replace-opponent`,{method:"POST",body:JSON.stringify(t)}),submitMatchupSuggestion:e=>r("/matchup-polls/suggestions",{method:"POST",body:JSON.stringify(e)}),getDemandClusters:(e,t={})=>r(`/matchup-polls/demand-clusters${e?"?"+new URLSearchParams(e):""}`,t),updateDemandCluster:(e,t)=>r(`/matchup-polls/demand-clusters/${e}`,{method:"PATCH",body:JSON.stringify(t)}),promoteDemandCluster:(e,t)=>r(`/matchup-polls/demand-clusters/${e}/promote`,{method:"POST",body:JSON.stringify(t)}),voteMatchupPoll:(e,t={},i={})=>r(`/matchup-polls/${e}/vote`,{method:"POST",body:JSON.stringify(t),...i}),getFavoriteFighterCandidates:(e,t={})=>r(`/matchup-polls/favorite-fighter-candidates${e?"?"+new URLSearchParams(e):""}`,t),getFavoriteFighterSummary:(e={})=>r("/matchup-polls/favorite-fighter/summary",e),voteFavoriteFighterByNameOrId:(e={},t={})=>r("/matchup-polls/favorite-fighter/vote",{method:"POST",body:JSON.stringify(e||{}),...t}),promoteFavoriteFightersToDream:(e={},t={})=>r("/matchup-polls/favorite-fighter/promote-to-dream",{method:"POST",body:JSON.stringify(e||{}),...t}),autoGenerateTopCaMatchups:(e={},t={})=>r("/matchup-polls/auto-top-ca",{method:"POST",body:JSON.stringify(e||{}),...t}),getFanFavoritesBoard:(e,t={})=>r(`/fan-favorites/board${e?"?"+new URLSearchParams(e):""}`,t),getFanFavoritesLeaderboard:(e,t={})=>r(`/fan-favorites/leaderboard${e?"?"+new URLSearchParams(e):""}`,t),getGymStandings:(e,t={})=>r(`/fan-favorites/gym-standings${e?"?"+new URLSearchParams(e):""}`,t),castFanFavoriteVote:(e={},t={})=>r("/fan-favorites/vote",{method:"POST",body:JSON.stringify(e||{}),...t}),searchFanFavoriteCandidates:(e,t={})=>r(`/fan-favorites/candidates${e?"?"+new URLSearchParams(e):""}`,t),getFanFavoritesSummary:(e={})=>r("/fan-favorites/summary",e),getCampaigns:e=>r(`/campaigns/${e?"?"+new URLSearchParams(e):""}`),getCampaign:e=>r(`/campaigns/${e}`),createCampaign:e=>r("/campaigns/",{method:"POST",body:JSON.stringify(e),headers:I({},(e==null?void 0:e.reviewer)||(e==null?void 0:e.created_by))}),updateCampaign:(e,t)=>r(`/campaigns/${e}`,{method:"PUT",body:JSON.stringify(t),headers:I({},(t==null?void 0:t.reviewer)||(t==null?void 0:t.created_by))}),deleteCampaign:e=>r(`/campaigns/${e}`,{method:"DELETE",headers:I()}),sendCampaign:(e,t={})=>r(`/campaigns/${e}/send`,{method:"POST",body:JSON.stringify(t||{}),headers:I({},(t==null?void 0:t.reviewer)||(t==null?void 0:t.actor))}),scheduleCampaign:(e,t,i={})=>r(`/campaigns/${e}/schedule`,{method:"POST",body:JSON.stringify({scheduled_at:t,...i||{}}),headers:I({},(i==null?void 0:i.reviewer)||(i==null?void 0:i.actor))}),upsertCampaignMessage:(e,t)=>r(`/campaigns/${e}/messages`,{method:"POST",body:JSON.stringify(t||{}),headers:I({},(t==null?void 0:t.reviewer)||(t==null?void 0:t.actor))}),previewCampaign:(e,t={})=>r(`/campaigns/${e}/preview`,{method:"POST",body:JSON.stringify(t||{}),headers:I({},(t==null?void 0:t.reviewer)||(t==null?void 0:t.actor))}),validateCampaign:(e,t={})=>r(`/campaigns/${e}/validate`,{method:"POST",body:JSON.stringify(t||{}),headers:I({},t==null?void 0:t.reviewer)}),pauseCampaign:e=>r(`/campaigns/${e}/pause`,{method:"POST",headers:I()}),resumeCampaign:e=>r(`/campaigns/${e}/resume`,{method:"POST",headers:I()}),sendTestEmail:(e,t,i="email")=>r(`/campaigns/${e}/test`,{method:"POST",body:JSON.stringify({email:t,channel:i}),headers:I()}),sendTestSms:(e,t,i="sms")=>r(`/campaigns/${e}/test`,{method:"POST",body:JSON.stringify({phone:t,channel:i}),headers:I()}),duplicateCampaign:e=>r(`/campaigns/${e}/duplicate`,{method:"POST",headers:I()}),getCampaignAnalytics:e=>r(`/campaigns/${e}/analytics`),getRecipientCount:(e,t)=>
1r(`/campaigns/${e}/preview-count${t?"?"+new URLSearchParams(t):""}`),getCampaignSegments:e=>r(`/campaigns/segments${e?"?"+new URLSearchParams(e):""}`),getCampaignAudienceSummary:e=>r(`/campaigns/audience/summary${e?"?"+new URLSearchParams(e):""}`),getAutomations:e=>r(`/automations${e?"?"+new URLSearchParams(e):""}`),getAutomationRuns:(e,t)=>r(`/automations/${e}/runs${t?"?"+new URLSearchParams(t):""}`),requeueAutomationRun:(e,t,i={})=>r(`/automations/${e}/runs/${t}/requeue`,{method:"POST",body:JSON.stringify(i||{}),headers:I({},(i==null?void 0:i.reviewer)||(i==null?void 0:i.actor))}),getAutomationTriggerObservability:e=>r(`/automations/trigger-observability${e?"?"+new URLSearchParams(e):""}`),createAutomation:e=>r("/automations",{method:"POST",body:JSON.stringify(e||{}),headers:I({},(e==null?void 0:e.reviewer)||(e==null?void 0:e.created_by))}),updateAutomation:(e,t)=>r(`/automations/${e}`,{method:"PUT",body:JSON.stringify(t||{}),headers:I({},(t==null?void 0:t.reviewer)||(t==null?void 0:t.updated_by))}),triggerAutomation:(e,t)=>r(`/automations/${e}/trigger`,{method:"POST",body:JSON.stringify(t||{}),headers:I({},(t==null?void 0:t.reviewer)||(t==null?void 0:t.actor))}),seedRecommendedAutomations:(e={})=>r("/automations/seed-recommended",{method:"POST",body:JSON.stringify(e||{}),headers:I({},(e==null?void 0:e.reviewer)||(e==null?void 0:e.actor))}),getYouTubeStatus:()=>r("/integrations/youtube/status"),syncYouTube:e=>r("/youtube/sync",{method:"POST",body:JSON.stringify(e||{}),baseOverride:et()?Xe:""}),getYouTubeChannels:()=>r("/youtube/channels"),getYouTubeVideos:(e={},t={})=>r(`/youtube/videos${e&&Object.keys(e).length?"?"+new URLSearchParams(e):""}`,t),getYouTubeVideosForFighter:(e,t)=>r(`/youtube/fighters/${e}/videos${t?"?"+new URLSearchParams(t):""}`),getYouTubeHighlights:(e,t={})=>r(`/youtube/highlights${e?"?"+new URLSearchParams(e):""}`,t),getYouTubeHomepagePins:e=>r(`/youtube/homepage-pins${e?"?"+new URLSearchParams(e):""}`),setYouTubeHomepagePins:e=>r("/youtube/homepage-pins",{method:"PUT",body:JSON.stringify(e||{})}),getYouTubeHighlightSelections:(e,t={})=>r(`/youtube/highlights/selections${e?"?"+new URLSearchParams(e):""}`,t),selectYouTubeHighlight:e=>r("/youtube/highlights/select",{method:"POST",body:JSON.stringify(e||{})}),getYouTubeVideoAnalytics:(e,t)=>r(`/youtube/videos/${e}/analytics${t?"?"+new URLSearchParams(t):""}`),getYouTubeVideoInspector:(e,t)=>r(`/youtube/videos/${e}/inspector${t?"?"+new URLSearchParams(t):""}`),getYouTubeCommandCenterLibrary:e=>r(`/youtube/command-center/library${e?"?"+new URLSearchParams(e):""}`),getYouTubeCommandCenterSummary:e=>r(`/youtube/command-center/summary${e?"?"+new URLSearchParams(e):""}`),getYouTubeAttributionDashboard:e=>r(`/youtube/attribution/dashboard${e?"?"+new URLSearchParams(e):""}`),getYouTubeActionLogs:e=>r(`/youtube/actions${e?"?"+new URLSearchParams(e):""}`),optimizeYouTubePreUpload:e=>r("/youtube/pre-upload/optimize",{method:"POST",body:JSON.stringify(e||{})}),getYouTubeMonetizationScorecard:e=>r(`/youtube/monetization/scorecard${e?"?"+new URLSearchParams(e):""}`),syncYouTubeMonetization:e=>r("/youtube/monetization/sync",{method:"POST",body:JSON.stringify(e||{}),baseOverride:et()?Xe:""}),getYouTubeMonetizationStatus:()=>r("/youtube/monetization/status"),getMonthlyYouTubeViews:(e={})=>r("/public/youtube/monthly-views",e),getYouTubeMonetizationDiagnostics:e=>r(`/youtube/monetization/diagnostics${e?"?"+new URLSearchParams(e):""}`),youtubeCopilotChat:e=>r("/youtube/copilot/chat",{method:"POST",body:JSON.stringify(e||{})}),optimizeYouTubeMetadata:(e,t)=>r(`/youtube/videos/${e}/metadata/optimize`,{method:"POST",body:JSON.stringify(t||{})}),applyYouTubeMetadata:(e,t)=>r(`/youtube/videos/${e}/metadata/apply`,{method:"POST",body:JSON.stringify(t||{})}),boostYouTubeVideoNow:(e,t)=>r(`/youtube/videos/${e}/boost-now`,{method:"POST",body:JSON.stringify(t||{})}),generateYouTubeViralPush:(e,t)=>r(`/youtube/videos/${e}/viral-push/generate`,{method:"POST",body:JSON.stringify(t||{})}),getYouTubeViralPushLatest:(e,t)=>r(`/youtube/videos/${e}/viral-push/latest${t?"?"+new URLSearchParams(t):""}`),approveYouTubeViralPushStep:(e,t,i,n)=>r(`/youtube/videos/${e}/viral-push/${t}/steps/${encodeURIComponent(i)}/approve`,{method:"POST",body:JSON.stringify(n||{})}),redraftYouTubeViralPushStep:(e,t,i,n)=>r(`/youtube/videos/${e}/viral-push/${t}/steps/${encodeURIComponent(i)}/redraft`,{method:"POST",body:JSON.stringify(n||{})}),executeYouTubeViralPush:(e,t,i)=>r(`/youtube/videos/${e}/viral-push/${t}/execute`,{method:"POST",body:JSON.stringify(i||{})}),updateYouTubeVideoMapping:(e,t)=>
1r(`/youtube/videos/${e}/mapping`,{method:"PUT",body:JSON.stringify(t||{})}),bulkUpdateYouTubeVideoMapping:e=>r("/youtube/videos/bulk-mapping",{method:"PUT",body:JSON.stringify(e||{})}),getSesStatus:()=>r("/campaigns/ses/status"),getCampaignProviderReadiness:()=>r("/campaigns/provider-readiness"),verifySesEmail:e=>r("/campaigns/ses/verify",{method:"POST",body:JSON.stringify({email:e}),headers:I()}),assistantChat:e=>r("/assistant/chat",{method:"POST",body:JSON.stringify(e)}),publicChat:e=>r("/public/chat",{method:"POST",body:JSON.stringify(e)}),getAssistantHealth:e=>r(`/assistant/health${e?"?"+new URLSearchParams(e):""}`),getFeedback:e=>r(`/assistant/feedback${e?"?"+new URLSearchParams(e):""}`),createFeedback:e=>r("/assistant/feedback",{method:"POST",body:JSON.stringify(e)}),updateFeedback:(e,t)=>r(`/assistant/feedback/${e}`,{method:"PUT",body:JSON.stringify(t)}),deleteFeedback:e=>r(`/assistant/feedback/${e}`,{method:"DELETE"}),getMarketingSettings:()=>r("/marketing/settings"),updateMarketingSettings:e=>r("/marketing/settings",{method:"PUT",body:JSON.stringify(e)}),getPublicMarketingSettings:()=>r("/public/marketing/settings"),generateSocialDrafts:e=>r("/marketing/social-drafts",{method:"POST",body:JSON.stringify(e),timeoutMs:6e4}),getTemplates:e=>r(`/campaigns/templates${e?"?"+new URLSearchParams(e):""}`),getTemplate:e=>r(`/campaigns/templates/${e}`),createTemplate:e=>r("/campaigns/templates",{method:"POST",body:JSON.stringify(e),headers:I({},(e==null?void 0:e.reviewer)||(e==null?void 0:e.created_by))}),updateTemplate:(e,t)=>
1r(`/campaigns/templates/${e}`,{method:"PUT",body:JSON.stringify(t),headers:I({},(t==null?void 0:t.reviewer)||(t==null?void 0:t.updated_by))}),deleteTemplate:e=>r(`/campaigns/templates/${e}`,{method:"DELETE",headers:I()}),seedMvpCampaignTemplates:(e={})=>r("/campaigns/templates/seed-mvp",{method:"POST",body:JSON.stringify(e||{}),headers:I({},(e==null?void 0:e.reviewer)||(e==null?void 0:e.created_by))}),generateTemplateFromEvent:(e={})=>r("/campaigns/templates/generate-from-event",{method:"POST",body:JSON.stringify(e||{}),headers:I({},(e==null?void 0:e.reviewer)||(e==null?void 0:e.created_by))}),generateLatestPromotionStyleTemplate:(e={})=>r("/campaigns/templates/generate-latest-promotion-style",{method:"POST",body:JSON.stringify(e||{}),headers:I({},(e==null?void 0:e.reviewer)||(e==null?void 0:e.created_by))}),getCampaignEventThemeSnapshot:e=>r(`/campaigns/events/${e}/theme-snapshot`),getPublicSiteConfig:(e,t={})=>r(`/public-site/config${e?`?event_id=${e}`:""}`,t),getActiveHeroPromotion:(e={})=>r("/public-site/active-hero-promotion",{skipCache:!0,...e}),listHeroPromotions:(e,t={})=>r(`/admin/hero-promotions${e?"?"+new URLSearchParams(e):""}`,{skipCache:!0,...t}),createHeroPromotion:(e,t={})=>r("/admin/hero-promotions",{method:"POST",body:JSON.stringify(e),...t}),patchHeroPromotion:(e,t,i={})=>r(`/admin/hero-promotions/${e}`,{method:"PATCH",body:JSON.stringify(t),...i}),endHeroPromotion:(e,t={})=>r(`/admin/hero-promotions/${e}/end`,{method:"POST",...t}),cancelHeroPromotion:(e,t={})=>r(`/admin/hero-promotions/${e}/cancel`,{method:"POST",...t}),getPublicEventBundle:(e,t={})=>{const{refresh:i,...n}=t||{},o=i?`&refresh=1&_t=${Date.now()}`:"",s=e?`?event_id=${e}${o}`:i?`?refresh=1&_t=${Date.now()}`:"";return r(`/public-site/event-bundle${s}`,{skipCache:!!(i||n.skipCache),...n})},createNitroBundleClaim:(e={},t={})=>r("/public/nitro-bundle/claims",{method:"POST",body:JSON.stringify(e||{}),...t||{}}),getNitroBundleClaim:(e,t={})=>r(`/public/nitro-bundle/claims/${encodeURIComponent(String(e||"").trim())}`,t),continueNitroBundleClaim:(e,t={},i={})=>r(`/public/nitro-bundle/claims/${encodeURIComponent(String(e||"").trim())}/continue`,{method:"POST",body:JSON.stringify(t||{}),...i||{}}),savePublicSiteDraft:e=>r("/public-site/config",{method:"PUT",body:JSON.stringify(e)}),publishPublicSiteDraft:e=>r("/public-site/config/publish",{method:"POST",body:JSON.stringify(e)}),resetPublicSiteDraft:e=>r("/public-site/config/reset-draft",{method:"POST",body:JSON.stringify(e)}),getR2PresignedUpload:e=>r("/storage/r2/presign",{method:"POST",body:JSON.stringify(e)}),listR2Objects:e=>r(`/storage/r2/list${e?"?"+new URLSearchParams(e):""}`,{headers:{"X-Public-Request":"true"}}),deleteR2Object:e=>r("/storage/r2/object",{method:"DELETE",body:JSON.stringify(e)}),createR2Folder:e=>r("/storage/r2/folder",{method:"POST",body:JSON.stringify(e)}),moveR2Object:e=>r("/storage/r2/move",{method:"POST",body:JSON.stringify(e)}),uploadOptimizedFightCardImage:async({file:e,eventFolder:t,nightNumber:i,fighterA:n,fighterB:o,format:s="jpg"})=>{const d=new FormData;d.append("file",e),d.append("event_folder",String(t||"upcoming-event")),d.append("night_number",String(i||1)),d.append("fighter_a",String(n||"TBD")),d.append("fighter_b",String(o||"TBD")),d.append("format",String(s||"jpg"));const a=await fetch("/api/storage/media/fight-card-upload",{method:"POST",body:d}),h=await a.json().catch(()=>({}));if(!a.ok){const l=new Error((h==null?void 0:h.error)||`Upload failed (${a.status})`);throw l.status=a.status,l}return h},getFighterSubmissions:e=>r(`/fighter-submissions/${e?"?"+new URLSearchParams(e):""}`,{skipCache:!0}),createFighterSubmission:e=>r("/fighter-submissions/",{method:"POST",body:JSON.stringify(e||{})}),getFighterSubmissionMetrics:e=>r(`/fighter-submissions/metrics${e?"?"+new URLSearchParams(e):""}`,{skipCache:!0}),createFighterSubmissionStaleReport:e=>r("/fighter-submissions/stale-report",{method:"POST",body:JSON.stringify(e||{})}),getFighterSubmission:e=>r(`/fighter-submissions/${e}`,{skipCache:!0}),acceptFighterSubmission:(e,t)=>r(`/fighter-submissions/${e}/accept`,{method:"POST",body:JSON.stringify(t)}),rejectFighterSubmission:(e,t)=>r(`/fighter-submissions/${e}/reject`,{method:"POST",body:JSON.stringify(t)}),updateFighterSubmission:(e,t)=>r(`/fighter-submissions/${e}`,{method:"PUT",body:JSON.stringify(t)}),uploadFile:async(e,t="uploads")=>{const i=`${Date.now()}-${e.name.replace(/[^a-zA-Z0-9.-]/g,"_")}`,n=`${t}/${i}`,{url:o,public_url:s}=await r("/storage/r2/presign",{method:"POST",body:JSON.stringify({key:n,content_type:e.type})});if(!(await fetch(o,{method:"PUT",body:e,headers:{"Content-Type":e.type}})).ok)throw new Error("Failed to upload file to storage bucket");return s},createInquiry:e=>r("/public/inquiries",{method:"POST",body:JSON.stringify(e||{})}),getMyInquiries:(e={},t={})=>r(`/public/inquiries${e?"?"+new URLSearchParams(e):""}`,t),getInquiry:(e,t={})=>r(`/public/inquiries/${e}`,t),addInquiryMessage:(e,t)=>
1r(`/public/inquiries/${e}/messages`,{method:"POST",body:JSON.stringify(t||{})}),uploadInquiryScreenshot:(e,t)=>r(`/public/inquiries/${e}/screenshot`,{method:"POST",body:JSON.stringify(t||{})}),resolveInquiryAnswer:(e,t)=>r(`/public/inquiries/${e}/resolve`,{method:"POST",body:JSON.stringify(t||{})}),escalateInquiryAnswer:(e,t)=>r(`/public/inquiries/${e}/escalate`,{method:"POST",body:JSON.stringify(t||{})}),getInquiries:(e={},t={})=>r(`/inquiries${e?"?"+new URLSearchParams(e):""}`,{skipCache:!0,...t}),getInquiryStats:(e={})=>r("/inquiries/stats",{skipCache:!0,...e}),getInquiryDetail:(e,t={})=>r(`/inquiries/${e}`,{skipCache:!0,...t}),updateInquiry:(e,t)=>r(`/inquiries/${e}`,{method:"PUT",body:JSON.stringify(t||{})}),addInquiryNote:(e,t)=>r(`/inquiries/${e}/notes`,{method:"POST",body:JSON.stringify(t||{})}),addInquiryAdminReply:(e,t)=>r(`/inquiries/${e}/message`,{method:"POST",body:JSON.stringify(t||{})}),classifyInquiry:e=>r(`/inquiries/${e}/classify`,{method:"POST"})};function ci(){var e;return typeof window>"u"?"":String(((e=window.location)==null?void 0:e.hostname)||"").trim().toLowerCase()}function li(e){return e==="localhost"||e==="127.0.0.1"||e.endsWith(".nip.io")}function di(){const e="auth.caged1.com".trim(),t="".trim(),i="caged1-68d73".trim(),n=ci();if(li(n)){if(t)return t;if(i)return`${i}.firebaseapp.com`}return!e&&(n==="caged1.com"||n==="www.caged1.com"||n==="preview.caged1.com"||n==="auth.caged1.com")?"auth.caged1.com":!e&&n.endsWith(".vercel.app")&&i?`${i}.firebaseapp.com`:!e&&i?`${i}.firebaseapp.com`:e}const oe={apiKey:"AIzaSyBdce_QUB0EX_NTlCRZyqpzT8i8fkiuUnw",authDomain:di(),projectId:"caged1-68d73",appId:"1:851433147719:web:c2cbd3ec5a973fa9105062"};function Le(e,t=!1){const i=String(e??"").trim().toLowerCase();return i?["1","true","yes","on"].includes(i):!!t}function he(e){return String(e||"").trim().length>0}function te(){return he(oe.apiKey)&&he(oe.authDomain)&&he(oe.projectId)&&he(oe.appId)}function gi(){return te()&&Le("0",!0)}function ui(){return te()&&Le(`1 2`,!1)}function mi(){return te()&&Le("true",!1)}function D(){if(!te())throw new Error("Firebase auth is not configured");const e=Dt().length?Gt():Ht(oe);return Vt(e)}function hi(){try{D()}catch{}}function Fe(e,t){try{const i=Array.isArray(t==null?void 0:t.providerData)?t.providerData.map(n=>String((n==null?void 0:n.providerId)||"").toLowerCase()):[];console.info("[auth-diag]",{requestedProvider:e,uid:(t==null?void 0:t.uid)||null,email:(t==null?void 0:t.email)||null,linkedProviders:i})}catch{}}async function fi(){const e=D(),t=new Ut;t.setCustomParameters({prompt:"select_account"});const i=await Ne(e,t);return Fe("google",i.user),{idToken:await i.user.getIdToken(!0),provider:"google"}}async function pi(){const e=D(),t=new wt("apple.com");t.addScope("email"),t.addScope("name"),t.setCustomParameters({locale:"en",prompt:"login"});const i=await Ne(e,t);return Fe("apple",i.user),{idToken:await i.user.getIdToken(!0),provider:"apple"}}async function yi(){const e=D(),t=new wt("apple.com");return t.addScope("email"),t.addScope("name"),t.setCustomParameters({locale:"en",prompt:"login"}),await St(e,t),{redirect:!0,provider:"apple"}}async function bi(){const e=D(),t=new bt;t.addScope("email");const i=await Ne(e,t);return Fe("facebook",i.user),{idToken:await i.user.getIdToken(!0),provider:"facebook"}}async function Si(){const e=D(),t=new bt;return t.addScope("email"),await St(e,t),{redirect:!0,provider:"facebook"}}async function wi(){var a,h;const e=D(),t=await Jt(e);if(!(t!=null&&t.user))return null;const i=await t.user.getIdToken(!0),n=String(((a=t==null?void 0:t.credential)==null?void 0:a.providerId)||((h=t==null?void 0:t.credential)==null?void 0:h.signInMethod)||"").toLowerCase(),o=Array.isArray(t.user.providerData)?t.user.providerData.map(l=>String((l==null?void 0:l.providerId)||"").toLowerCase()):[],s=[n,...o],d=s.some(l=>l.includes("facebook"))?"facebook":s.some(l=>l.includes("apple"))?"apple":"google";return{idToken:i,provider:d}}async function vt(){const t=D().currentUser;if(!t)return null;const i=await t.getIdToken(!0),n=Array.isArray(t.providerData)?t.providerData.map(s=>String((s==null?void 0:s.providerId)||"").toLowerCase()):[],o=n.some(s=>s.includes("facebook"))?"facebook":n.some(s=>s.includes("apple"))?"apple":"google";return{idToken:i,provider:o}}async function tt(e=5e3){const t=Date.now();for(;Date.now()-t<Math.max(500,Number(e)||5e3);){const i=await vt();if(i!=null&&i.idToken)return i;await new Promise(n=>setTimeout(n,250))}return null}async function it(e=8e3){const t=D(),i=await vt();return i!=null&&i.idToken?i:await new Promise(n=>{const o=Math.max(1e3,Number(e)||8e3),s=setTimeout(()=>{try{d()}catch{}n(null)},o),d=jt(t,async a=>{if(a){clearTimeout(s);try{d()}catch{}try{const h=await a.getIdToken(!0),l=Array.isArray(a.providerData)?a.providerData.map(P=>String((P==null?void 0:P.providerId)||"").toLowerCase()):[],C=l.some(P=>P.includes("facebook"))?"facebook":l.some(P=>P.includes("apple"))?"apple":"google";n({idToken:h,provider:C})}catch{n(null)}}})})}async function vi(){if(te())try{const e=D();await Ft(e)}catch(e){console.error("signOutFirebase error:",e)}}const q="ca_public_session",Ae="ca_public_session_user",_t="X-Public-Auth",_i=7e3,rt=6e3,nt=1,Tt=y.createContext(null);async function W(e,t={},i=null){const n=Number(t.timeoutMs||_i),o={"Content-Type":"application/json",...t.headers||{}};i&&(o[_t]=i);const s=new AbortController,d=setTimeout(()=>s.abort(),Math.max(1e3,n));let a;try{a=await fetch(e,{...t,headers:o,signal:s.signal})}catch(h){throw(h==null?void 0:h.name)==="AbortError"?Object.assign(new Error("Request timed out"),{status:408}):h}finally{clearTimeout(d)}if(!a.ok){const h=await a.json().catch(()=>({}));throw Object.assign(new Error(h.error||`HTTP ${a.status}`),{status:a.status})}return a.json()}const Ti=new Set(["watch_code","access_code","device_fingerprint","token"]);function Ee(e){if(Array.isArray(e))return e.map(Ee);if(!e||typeof e!="object")return e;const t={};for(const[i,n]of Object.entries(e))Ti.has(i)||(t[i]=Ee(n));return t}function ot(){try{if(!localStorage.getItem(q))return null;const e=localStorage.getItem(Ae);if(!e)return null;const t=JSON.parse(e);return t&&typeof t=="object"&&t.id?t:null}catch{return null}}function Pi(e){try{e&&e.id?localStorage.setItem(Ae,JSON.stringify(Ee(e))):localStorage.removeItem(Ae)}catch{}}function vr({children:e}){const[t,i]=y.useState(ot),[n,o]=y.useState(()=>{try{return localStorage.getItem(q)||null}catch{return null}}),[s,d]=y.useState(()=>{try{return!!localStorage.getItem(q)&&!ot()}catch{return!1}}),a=y.useRef(t);y.useEffect(()=>{a.current=t,Pi(t)},[t]),y.useEffect(()=>
2{if(!n){i(null),d(!1);return}d(!a.current);let p=!1;return(async()=>{for(let m=0;m<=nt;m+=1)try{const v=await W("/api/public/auth/me",{timeoutMs:rt},n);p||(i(v.user||null),d(!1));return}catch(v){if(p)return;if(v.status===401){try{localStorage.removeItem(q)}catch{}o(null),i(null),d(!1);return}if(m<nt)continue;a.current||i(null),d(!1)}})(),()=>{p=!0}},[n]);const h=y.useCallback(async(p,m=null)=>{const v=await W("/api/public/auth/google",{method:"POST",timeoutMs:4500,body:JSON.stringify({credential:p,behavioral_context:m})}),O=v.token;try{localStorage.setItem(q,O)}catch{}return o(O),i(v.user),{user:v.user,isNewUser:v.is_new_user}},[]),l=y.useCallback(async(p,m="google",v=null)=>{var x,J;const O=await W("/api/public/auth/firebase",{method:"POST",timeoutMs:1e4,body:JSON.stringify({id_token:p,provider:m,behavioral_context:v})}),k=O.token;try{console.info("[auth-diag:token]",{sentProvider:m,returnedEmail:(x=O==null?void 0:O.user)==null?void 0:x.email,returnedId:(J=O==null?void 0:O.user)==null?void 0:J.id})}catch{}try{localStorage.setItem(q,k)}catch{}return o(k),i(O.user),{user:O.user,isNewUser:O.is_new_user}},[]),C=y.useCallback(async()=>{var p,m,v,O;try{await fetch("/api/public/auth/logout",{method:"POST"})}catch{}try{localStorage.removeItem(q)}catch{}try{sessionStorage.removeItem("ca_public_auth_redirect_pending")}catch{}try{localStorage.removeItem("ca_public_auth_redirect_pending")}catch{}o(null),i(null),await vi();try{(O=(v=(m=(p=window.google)==null?void 0:p.accounts)==null?void 0:m.id)==null?void 0:v.disableAutoSelect)==null||O.call(v)}catch{}},[]),P=y.useCallback(async p=>{const m=await W("/api/public/auth/role",{method:"POST",timeoutMs:5e3,body:JSON.stringify({role:p})},n);return i(m.user),m.user},[n]),w=y.useCallback(async p=>{const m=await W("/api/public/auth/profile",{method:"PATCH",timeoutMs:5e3,body:JSON.stringify(p)},n);return i(m.user),m.user},[n]),R=y.useCallback(async p=>{const m=new FormData;m.append("file",p);const v=await fetch("/api/public/auth/profile/avatar",{method:"POST",headers:n?{[_t]:n}:{},body:m});if(!v.ok){const k=await v.json().catch(()=>({}));throw Object.assign(new Error(k.error||`HTTP ${v.status}`),{status:v.status})}const O=await v.json();return i(O.user),O.user},[n]),N=y.useCallback(async()=>{if(!n)return i(null),null;const p=await W("/api/public/auth/me",{timeoutMs:rt},n);return i(p.user||null),p.user||null},[n]),A=y.useCallback(async p=>{const m=await W("/api/public/auth/ppv/claim",{method:"POST",timeoutMs:8e3,body:JSON.stringify({identifier:p})},n);return i(m.user||null),m},[n]),b={user:t,token:n,isLoading:s,signIn:h,signInWithFirebaseToken:l,signOut:C,setRole:P,updateProfile:w,uploadAvatar:R,refreshUser:N,claimPurchase:A};return yt.createElement(Tt.Provider,{value:b},e)}function Pt(){const e=y.useContext(Tt);if(!e)throw new Error("usePublicAuth must be used within a PublicAuthProvider");return e}function _r(e){return!!(e&&["staff","admin"].includes(String(e.role||"").toLowerCase()))}const at="https://caged1.com";function ki(e){const t=String(e||"").trim().toLowerCase();return t==="localhost"||t==="127.0.0.1"||t.endsWith(".nip.io")||t.startsWith("192.168.")||t.startsWith("10.")||t.startsWith("172.16.")}function Oi(e){try{return new URL(String(e||"").trim()).origin}catch{return""}}function Ci(){const e=Oi("https://caged1.com");if(e)return e;if(typeof window<"u"){const{hostname:t,origin:i}=window.location||{},n=String(t||"").toLowerCase();if(n==="hub.caged1.com")return at;if(ki(n)||n.endsWith(".caged1.com")||n==="caged1.com")return String(i||"").replace(/\/+$/,"")}return at}function st(e="/"){const t=Ci(),i=String(e||"/").trim()||"/";try{return new URL(i,t).toString()}catch{return`${t.replace(/\/+$/,"")}/${i.replace(/^\/+/,"")}`}}const Ii=2,Y={NONE:"none",WEAK:"weak",LIKELY:"likely",CONFIDENT:"confident",STRONG:"strong"},Ri=[{min:40,label:Y.STRONG},{min:25,label:Y.CONFIDENT},{min:15,label:Y.LIKELY},{min:5,label:Y.WEAK}],$i={sponsor_prospect:[{min:15,tag:"sponsor_prospect_warm"},{min:25,tag:"sponsor_prospect_confident"},{min:40,tag:"sponsor_prospect_strong"}],fan:[{min:25,tag:"fan_engaged"},{min:40,tag:"fan_loyal"}],fighter_prospect:[{min:15,tag:"fighter_prospect_warm"},{min:25,tag:"fighter_prospect_confident"}],media:[{min:20,tag:"media_prospect"}],coach:[{min:20,tag:"coach_prospect"}],manager:[{min:20,tag:"manager_prospect"}]},Ai=[{match:e=>e==="/"||e==="/home",weights:{fan:2,sponsor:0,fighter:1,coach:1,manager:1,media:1},label:"home"},{match:e=>e.startsWith("/events/")&&e.length>8,weights:{fan:5,sponsor:2,fighter:3,coach:4,manager:3,media:5},label:"event_detail"},{match:e=>e==="/events",weights:{fan:3,sponsor:1,fighter:2,coach:2,manager:2,media:3},label:"events_list"},{match:e=>e.startsWith("/fighters/")&&e.length>10,weights:{fan:4,sponsor:0,fighter:2,coach:3,manager:4,media:3},label:"fighter_detail"},{match:e=>e==="/fighters",weights:{fan:3,sponsor:0,fighter:3,coach:3,manager:3,media:2},label:"fighters_list"},{match:e=>e.startsWith("/sponsors")||e==="/sponsor",weights:{fan:1,sponsor:8,fighter:0,coach:0,manager:0,media:0},label:"sponsors"},{match:e=>e.startsWith("/videos")||e.startsWith("/highlights"),weights:{fan:5,sponsor:0,fighter:2,coach:2,manager:1,media:4},label:"videos"},{match:e=>e.startsWith("/gyms/")&&e.length>6,weights:{fan:0,sponsor:0,fighter:3,coach:8,manager:4,media:1},label:"gym_detail"},{match:e=>e==="/gyms",weights:{fan:1,sponsor:0,fighter:2,coach:6,manager:3,media:1},label:"gyms_list"},{match:e=>e.startsWith("/about")||e.startsWith("/press"),weights:{fan:1,sponsor:2,fighter:0,coach:0,manager:0,media:7},label:"about_press"},{match:e=>
2e.startsWith("/contact"),weights:{fan:1,sponsor:3,fighter:1,coach:1,manager:1,media:2},label:"contact"},{match:e=>e.startsWith("/faq"),weights:{fan:3,sponsor:1,fighter:2,coach:1,manager:1,media:1},label:"faq"},{match:e=>e.startsWith("/results"),weights:{fan:4,sponsor:0,fighter:3,coach:3,manager:3,media:6},label:"results"},{match:e=>e.startsWith("/privacy"),weights:{fan:0,sponsor:4,fighter:0,coach:0,manager:1,media:1},label:"privacy"},{match:e=>e.startsWith("/terms"),weights:{fan:0,sponsor:4,fighter:0,coach:0,manager:1,media:1},label:"terms"},{match:e=>e.startsWith("/profile"),weights:{fan:1,sponsor:0,fighter:1,coach:1,manager:1,media:1},label:"profile"}],Ei={vote_fighter:{weights:{fan:8,sponsor:0,fighter:2,coach:1,manager:2,media:1},maxPerSession:5,description:"Voted for a favorite fighter"},vote_matchup_poll:{weights:{fan:6,sponsor:0,fighter:2,coach:2,manager:3,media:2},maxPerSession:5,description:"Voted on a dream matchup poll"},video_play:{weights:{fan:4,sponsor:0,fighter:2,coach:2,manager:1,media:3},maxPerSession:3,description:"Pressed play on a highlight or event video"},video_complete:{weights:{fan:7,sponsor:0,fighter:3,coach:3,manager:2,media:5},maxPerSession:3,description:"Watched a video to completion (90%+ viewed)"},follow_fighter:{weights:{fan:10,sponsor:0,fighter:2,coach:2,manager:3,media:2},maxPerSession:10,description:"Followed a fighter (Phase 4 feature)"},open_assistant:{weights:{fan:2,sponsor:2,fighter:2,coach:2,manager:2,media:2},maxPerSession:1,description:"Opened the cage-side assistant"},sponsor_conversation_open:{weights:{fan:0,sponsor:8,fighter:0,coach:0,manager:0,media:0},maxPerSession:1,description:"Opened the sponsor inquiry conversation modal"},ticket_link_click:{weights:{fan:8,sponsor:0,fighter:1,coach:1,manager:0,media:0},maxPerSession:2,description:"Clicked a ticket purchase link"},ppv_link_click:{weights:{fan:7,sponsor:0,fighter:1,coach:0,manager:0,media:0},maxPerSession:2,description:"Clicked a PPV/streaming purchase link"},fighter_search:{weights:{fan:3,sponsor:0,fighter:2,coach:3,manager:4,media:3},maxPerSession:3,description:"Typed in the fighter search/lookup field"},expand_fight_card_row:{weights:{fan:4,sponsor:0,fighter:3,coach:4,manager:3,media:4},maxPerSession:5,description:"Expanded a fight detail row on the event card"},share_fighter_profile:{weights:{fan:5,sponsor:0,fighter:3,coach:2,manager:3,media:3},maxPerSession:3,description:"Used a share button on a fighter profile"}},Mi=[{test:e=>/google\./i.test(e)&&/sponsor|adverti|mma.+event/i.test(e),weights:{fan:0,sponsor:8,fighter:0,coach:0,manager:0,media:0},label:"google_sponsor_search"},{test:e=>/google\./i.test(e)&&/ticket|event|fight/i.test(e),weights:{fan:6,sponsor:0,fighter:1,coach:0,manager:0,media:0},label:"google_fan_search"},{test:e=>/google\./i.test(e)&&/result|record|mma/i.test(e),weights:{fan:4,sponsor:0,fighter:2,coach:2,manager:2,media:5},label:"google_mma_research"},{test:e=>/instagram\.com|tiktok\.com|facebook\.com/i.test(e),weights:{fan:7,sponsor:0,fighter:2,coach:0,manager:1,media:1},label:"social_media"},{test:e=>/mmafighting|bloodyelbow|sherdog|tapology/i.test(e),weights:{fan:4,sponsor:0,fighter:3,coach:2,manager:3,media:6},label:"mma_news_site"}],xi={sponsor_page_to_contact_sequence:{category:"sponsor_prospect",bonus:12,description:"Visited sponsor page then contact page â strong purchase intent"},same_fighter_three_visits:{category:"fan",bonus:10,description:"Viewed the same fighter profile 3+ times â fan loyalty signal"},four_plus_fighters_in_session:{category:"media",bonus:6,also:{manager:4},description:"Browsed 4+ different fighter profiles â scouting behavior"},fighter_application_plus_fight_card:{category:"fighter_prospect",bonus:8,description:"Opened fighter application and viewed a fight card"},gym_profile_plus_gym_fighters:{category:"coach",bonus:9,description:"Viewed gym profile then browsed fighters from that gym"},ticket_plus_venue_sequence:{category:"fan",bonus:7,description:"Clicked ticket link and visited venue/directions page"},return_visit_within_24h:{category:"primary",bonus:3,description:"Returned to the site within 24 hours of last visit"},five_plus_total_visits:{category:"primary",bonus:5,description:"Fifth or more total visit to the site"}}
2,kt="ca_behavioral_context",ct="caged1_public_visitor_key",lt="/api/public/behavior";function Ni(e){return e<10?.25:e<30?.5:e<90?1:1.5}function Li(e){for(const{min:t,label:i}of Ri)if(e>=t)return i;return Y.NONE}function Fi(){try{const e=String(window.localStorage.getItem(ct)||"").trim();if(e)return e;const t=`visitor-${Math.random().toString(36).slice(2)}-${Date.now().toString(36)}`;return window.localStorage.setItem(ct,t),t}catch{return`visitor-anon-${Date.now().toString(36)}`}}function Pe(){return{session_id:Fi(),scoring_version:Ii,first_seen:new Date().toISOString(),last_seen:new Date().toISOString(),visit_count:0,scores:{fan:0,sponsor_prospect:0,fighter_prospect:0,coach:0,manager:0,media:0},primary_category:null,confidence:Y.NONE,signals:{pages_visited:[],searches:[],engagement_events:[],forms_opened:[],forms_submitted:[],fighters_viewed:[],gyms_viewed:[],referrer_first:null,referrer_first_recorded:!1,pattern_bonuses_applied:[]},campaign_tags:[],assistant_context:Y.NONE,merged_to_account:!1}}function F(){try{const e=window.localStorage.getItem(kt);if(!e)return Pe();const t=JSON.parse(e);return!t||typeof t!="object"?Pe():(t.scores={fan:0,sponsor_prospect:0,fighter_prospect:0,coach:0,manager:0,media:0,...t.scores||{}},t.signals={pages_visited:[],searches:[],engagement_events:[],forms_opened:[],forms_submitted:[],fighters_viewed:[],gyms_viewed:[],referrer_first:null,referrer_first_recorded:!1,pattern_bonuses_applied:[],...t.signals||{}},t)}catch{return Pe()}}function se(e){try{window.localStorage.setItem(kt,JSON.stringify(e))}catch{}}const Me={fan:"fan",sponsor:"sponsor_prospect",fighter:"fighter_prospect",coach:"coach",manager:"manager",media:"media"};function ce(e,t,i=1){const n={...e};for(const[o,s]of Object.entries(t)){const d=Me[o]||o;d in n&&(n[d]=Math.round((n[d]+s*i)*10)/10)}return n}function Ot(e){let t=null,i=0;for(const[n,o]of Object.entries(e))o>i&&(i=o,t=n);return{primary_category:t,confidence:Li(i)}}function Ji(e){const t=new Set(e.campaign_tags||[]);for(const[i,n]of Object.entries($i)){const o=e.scores[i]||0;for(const{min:s,tag:d}of n)o>=s&&t.add(d)}return Array.from(t)}function be(e){const{primary_category:t,confidence:i}=Ot(e.scores);return e.primary_category=t,e.confidence=i,e.assistant_context=`${t||"unknown"}_${i}`,e.campaign_tags=Ji(e),e}function Se(e){const t=new Set(e.signals.pattern_bonuses_applied||[]),i=(e.signals.pages_visited||[]).map(a=>a.path||""),n=e.signals.fighters_viewed||[],o=e.signals.forms_opened||[];function s(a){if(t.has(a))return;const h=xi[a];if(!h)return;let l=h.category;if(l==="primary"){const{primary_category:P}=Ot(e.scores);l=P||"fan"}const C=Me[l]||l;if(C in e.scores&&(e.scores[C]=Math.round((e.scores[C]+h.bonus)*10)/10),h.also)for(const[P,w]of Object.entries(h.also)){const R=Me[P]||P;R in e.scores&&(e.scores[R]=Math.round((e.scores[R]+w)*10)/10)}t.add(a),e.signals.pattern_bonuses_applied=Array.from(t)}return i.some(a=>a.startsWith("/sponsor"))&&i.some(a=>a.startsWith("/contact"))&&s("sponsor_page_to_contact_sequence"),n.some(a=>(a.count||0)>=3)&&s("same_fighter_three_visits"),n.length>=4&&s("four_plus_fighters_in_session"),o.includes("fighter-application")&&i.some(a=>a.startsWith("/events"))&&s("fighter_application_plus_fight_card"),i.some(a=>a.startsWith("/gyms/")&&a.length>6)&&i.some(a=>a==="/fighters"||a.startsWith("/fighters/"))&&s("gym_profile_plus_gym_fighters"),(e.signals.engagement_events||[]).map(a=>a.action||"").includes("ticket_link_click")&&i.some(a=>a.startsWith("/faq")||a.startsWith("/contact")||a.startsWith("/events/"))&&s("ticket_plus_venue_sequence"),e.last_seen&&e.first_seen&&e.last_seen!==e.first_seen&&new Date(e.last_seen).getTime()-new Date(e.first_seen).getTime()<24*60*60*1e3&&s("return_visit_within_24h"),(e.visit_count||0)>=5&&s("five_plus_total_visits"),e}function Tr(e,t={}){if(typeof window>"u")return()=>{};const i=Date.now(),n=Ai.find(a=>a.match(e));if(!n)return()=>{};const o=F();if(o.last_seen=new Date().toISOString(),o.visit_count=(o.visit_count||0)+1,!o.signals.referrer_first_recorded&&document.referrer){o.signals.referrer_first=document.referrer,o.signals.referrer_first_recorded=!0;const a=Mi.find(h=>h.test(document.referrer));a&&(o.scores=ce(o.scores,a.weights))}if(t.fighterId){const a=o.signals.fighters_viewed,h=a.find(l=>l.id===t.fighterId);h?(h.count=(h.count||1)+1,h.last_visit=new Date().toISOString()):a.push({id:t.fighterId,name:t.fighterName||null,count:1,last_visit:new Date().toISOString()})}if(t.gymId){const a=o.signals.gyms_viewed;a.find(h=>h.id===t.gymId)||a.push({id:t.gymId,name:t.gymName||null})}const s=o.signals.pages_visited,d=s.find(a=>a.path===e);return d?(d.count=(d.count||1)+1,d.last_visit=new Date().toISOString()):s.push({path:e,label:n.label,count:1,last_visit:new Date().toISOString(),total_time_seconds:0}),se(o),()=>{const a=Math.round((Date.now()-i)/1e3),h=Ni(a),l=F();l.scores=ce(l.scores,n.weights,h);const C=(l.signals.pages_visited||[]).find(P=>P.path===e);C&&(C.total_time_seconds=(C.total_time_seconds||0)+a),Se(l),be(l),se(l),Je(l,{path:e,time_seconds:a,label:n.label})}}function Pr(e,t={}){if(typeof window>"u")return;const i=Ei[e];if(!i)return;const n=F();if(i.maxPerSession!=null&&(n.signals.engagement_events||[]).filter(a=>a.action===e).length>=i.maxPerSession)return;n.scores=ce(n.scores,i.weights);const o=n.signals.engagement_events||[];o.push({action:e,ts:new Date().toISOString(),...t}),n.signals.engagement_events=o,Se(n),be(n),se(n),Je(n,{type:"engagement",action:e,...t})}function kr(e){if(typeof window>"u")return;const t=F(),i=t.signals.forms_opened||[];i.includes(e)||i.push(e),t.signals.forms_opened=i;const n={"sponsor-inquiry":{sponsor:6},"fighter-application":{fighter:6},"media-credential":{media:8},"fighter-claim":{fighter:3},contact:{sponsor:2}};n[e]&&(t.scores=ce(t.scores,n[e]),Se(t),be(t)),se(t)}function Or(e,t={}){if(typeof window>"u")return;const i=F(),n=i.signals.forms_submitted||[];n.includes(e)||n.push(e),i.signals.forms_submitted=n;const o={"sponsor-inquiry":{sponsor:10},"fighter-application":{fighter:10},"media-credential":{media:10},"fighter-claim":{fighter:8},contact:{sponsor:4,media:2}};o[e]&&(i.scores=ce(i.scores,o[e]),Se(i),be(i)),se(i),Je(i,{type:"form_submit",form_key:e,email:t.email||null})}function Je(e,t={}){if(typeof window>"u")return;const i=JSON.stringify({event:"page_signal",session_id:e.session_id,primary_category:e.primary_category,confidence:e.confidence,scores:e.scores,campaign_tags:e.campaign_tags,visit_count:e.visit_count,...t});if(navigator.sendBeacon){const n=new Blob([i],{type:"application/json"});navigator.sendBeacon(lt,n)}else fetch(lt,{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0}
2).catch(()=>{})}const Ct="ca_public_marketing_settings_v1",ji=["caged1.com","www.caged1.com","cagedaggression.tv","www.cagedaggression.tv"];let ke=null,Oe=null,Ce=null;function je(){return de(typeof window>"u"?{}:window.__caMarketingBootstrapSettings||Di()||{})}function Ui(e){if(typeof window>"u"||typeof e!="function")return;Ce=e;const t=()=>{const i=Ce;Ce=null,typeof i=="function"&&i()};typeof window.requestIdleCallback=="function"?window.requestIdleCallback(t,{timeout:2e3}):window.setTimeout(t,1200)}function Ue(){return typeof window>"u"?null:(window.dataLayer||(window.dataLayer=[]),window.dataLayer)}function le(){return Ue()?(typeof window.gtag!="function"&&(window.gtag=function(){window.dataLayer.push(arguments)}),window.gtag):null}function de(e={}){const t=String((e==null?void 0:e.gtm_container_id)||"").trim(),i=String((e==null?void 0:e.google_tag_id)||"").trim(),n=String((e==null?void 0:e.ga4_measurement_id)||"").trim(),o=i||(/^GT-[A-Z0-9]+$/i.test(t)?t:""),s=n||(/^G-[A-Z0-9]+$/i.test(t)&&!/^GTM-/i.test(t)?t:""),d=/^GTM-[A-Z0-9]+$/i.test(t)?t:"";return{tracking_enabled:!!(e!=null&&e.tracking_enabled),test_mode:!!(e!=null&&e.test_mode),gtm_container_id:d,google_tag_id:o,ga4_measurement_id:s,google_ads_conversion_id:String((e==null?void 0:e.google_ads_conversion_id)||"").trim(),google_ads_conversion_label:String((e==null?void 0:e.google_ads_conversion_label)||"").trim(),facebook_pixel_id:String((e==null?void 0:e.facebook_pixel_id)||"").trim(),tiktok_pixel_id:String((e==null?void 0:e.tiktok_pixel_id)||"").trim(),twitter_pixel_id:String((e==null?void 0:e.twitter_pixel_id)||"").trim()}}function Di(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(Ct);return e?de(JSON.parse(e)):null}catch{return null}}function Gi(e={}){if(typeof window>"u")return de(e);const t=de(e);try{window.localStorage.setItem(Ct,JSON.stringify(t))}catch{}return t}function Hi(e){const t=String(e||"").trim();if(!t||typeof window>"u"||typeof document>"u")return;const i=String(window.__caGtmContainerId||"").trim(),n=`gtm-script-${t}`;if(ke===t||i===t||document.getElementById(n)){ke=t,window.__caGtmContainerId=t,le();return}le(),window.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"});const o=document.createElement("script");o.id=n,o.async=!0,o.src=`https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(t)}`,document.head.appendChild(o),ke=t,window.__caGtmContainerId=t}function Vi(e,t){const i=String(t||"").trim(),n=String(t||e||"").trim();if(!n||!i||typeof window>"u"||typeof document>"u")return;const o=String(window.__caGoogleTagId||"").trim(),s=`google-tag-script-${n}`;if(le(),Oe===n||o===n||document.getElementById(s))Oe=n,window.__caGoogleTagId=n;else{window.gtag("js",new Date);const d=document.createElement("script");d.id=s,d.async=!0,d.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(n)}`,document.head.appendChild(d),Oe=n,window.__caGoogleTagId=n}window.gtag("config",i,{send_page_view:!1,linker:{domains:ji}})}function Cr(e={}){const t=Gi(e);return t.tracking_enabled&&Ui(()=>{if(t.gtm_container_id){Hi(t.gtm_container_id);return}(t.google_tag_id||t.ga4_measurement_id)&&Vi(t.google_tag_id,t.ga4_measurement_id)}),t}function Ir(e={}){var o;if(typeof window>"u")return;const t=String(e.page_path||`${window.location.pathname||""}${window.location.search||""}${window.location.hash||""}`),i={page_title:String(e.page_title||document.title||""),page_location:String(e.page_location||window.location.href||""),page_path:t,...e.page_referrer?{page_referrer:String(e.page_referrer)}:{}},n=le();if(typeof n=="function"){n("event","page_view",i);return}(o=Ue())==null||o.push({event:"page_view",...i})}function Rr(e,t={}){var i;(i=Ue())==null||i.push({event:String(e||"ca_event"),...t}),K(e,t)}function zi(){const e=je();if(e.ga4_measurement_id)return[e.ga4_measurement_id];const t=typeof window<"u"?window.google_tag_manager:null;return t?Object.keys(t).filter(i=>/^G-[A-Z0-9]+$/i.test(i)):[]}const Wi=500,Bi=20;function K(e,t={},i=0){const n=le();if(typeof n!="function")return;const o={...t||{}};if(!o.send_to){const s=zi();if(s.length)o.send_to=s;else if(i<Bi&&je().tracking_enabled){window.setTimeout(()=>K(e,t,i+1),Wi);return}}try{n("event",String(e||"ca_event"),o)}catch{}}function It({value:e,currency:t="USD",transactionId:i}={}){const n=je(),o=String(n.google_ads_conversion_id||"").trim(),s=String(n.google_ads_conversion_label||"").trim();!o||!s||K("conversion",{send_to:`${o}/${s}`,...e!=null?{value:Number(e)||0}:{},...t?{currency:String(t)}:{},...i?{transaction_id:String(i)}:{}}
2)}const qi="cag1",dt="ca_meta_checkout_event_id";function pe(){const e=Date.now().toString(36),t=Math.random().toString(36).slice(2,10);return`${qi}_${e}_${t}`}function Yi(){return typeof window<"u"&&typeof window.fbq=="function"}function we(e,t={},i={}){if(!Yi())return null;const n=String(i.eventId||pe());try{window.fbq("track",String(e),t||{},{eventID:n})}catch{return null}return n}function $r(e,t,i){return!e||!Array.isArray(t)||t.length===0?null:(K("view_item",{items:t.map(n=>({item_id:String(n),item_name:String(i||n),item_category:String(e)}))}),we("ViewContent",{content_type:String(e),content_ids:t.map(n=>String(n)),...i?{content_name:String(i)}:{}}))}function Ki(){if(typeof window>"u")return pe();try{const e=window.sessionStorage.getItem(dt);if(e)return e;const t=pe();return window.sessionStorage.setItem(dt,t),t}catch{return pe()}}function Ar(e={}){const t=Ki();return K("begin_checkout",{currency:"USD",...e.value!=null?{value:Number(e.value)||0}:{},items:[{item_id:String(e.fighter_id||e.event_name||"caged-aggression-ticket"),item_name:String(e.event_name||"Caged Aggression MMA Tickets"),item_category:"ticket_checkout"}]}),we("InitiateCheckout",{currency:"USD",...e.value!=null?{value:Number(e.value)||0}:{},...e.fighter_id!=null?{fighter_referral_id:String(e.fighter_id)}:{},...e.event_name?{content_name:String(e.event_name)}:{}},{eventId:t})}function B(e={}){return K("sign_up",{method:String(e.method||"site_registration")}),It(),we("CompleteRegistration",{status:e.status||"registered"})}function Er(){return K("generate_lead",{source:"public_opt_in"}),It(),we("Lead",{})}const Mr="https://www.dropbox.com/scl/fo/zoagudss2imeuh2h88hnx/AB5USphNUgBk9tBNeDs6kAg?rlkey=bia6cvdxjoferi2z7vkpd9m94&st=yk3ue2hm&dl=0",xr="https://www.dropbox.com/scl/fo/1ynteea8ry423dhvf4zmq/ABU4mvyxnZsGD6YhUDGkPK8?rlkey=tctqsor1kei0yux1uvs1ylyh5&st=ecpry3uq&dl=0",Xi="https://www.dropbox.com/scl/fo/ggrvsy59f386r8zk33gg2/APa7KxBNSqNHzDds_hiEH2U?rlkey=caurh4ya71uvgjs6bfjuw9b3b&st=fgul8npu&dl=0",Zi="https://www.dropbox.com/scl/fo/50bmzcngvqtyf4pz8ql8o/AIk_eDkKf5hOaXNKeTi0vVc?rlkey=549msnvzgrw5ce3toyf5l5dqi&st=dlbsom1l&dl=0";function Nr(e){return Number(e)===2?Zi:Xi}const Lr={1:{label:"Night 1",day:"Friday",date:"Oct 16",short:"10/16"},2:{label:"Night 2",day:"Saturday",date:"Oct 17",short:"10/17"}},De=[{slug:"holden-kessel",fighterId:10062,name:"Holden Kessel",nickname:"",night:1,level:"amateur",gym:"The Scrap Shack JiuJitsu",hometown:"Lyndon, IL",opponent:"Edmond Rodriguez",video:"1.Holden-Kessel-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/holden-kessel-1789606212.jpg"},{slug:"edmond-rodriguez",fighterId:10063,name:"Edmond Rodriguez",nickname:"",night:1,level:"amateur",gym:"Take The Fight Academy",hometown:"Galesburg, IL",opponent:"Holden Kessel",video:"2.Edmond-Rodriguez-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/edmond-rodriguez-2026.jpg"},{slug:"kyle-dreifurst",fighterId:30,name:"Kyle Dreifurst",nickname:"Bammy",night:1,level:"amateur",gym:"Midwest Martial Arts Group",hometown:"Moline, IL",opponent:"Shawn Cort",video:"3.Kyle-Dreifurst-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/500509/original/dreifurst.jpg?1758725572"},{slug:"shawn-cort",fighterId:9,name:"Shawn Cort",nickname:"",night:1,level:"amateur",gym:"Mardy's Martial Arts",hometown:"Moline, IL",opponent:"Kyle Dreifurst",video:"4.Shawn-Cort-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/553957/original/cort.jpg?1774875613"},{slug:"hunter-locke",fighterId:10064,name:"Hunter Locke",nickname:"",night:1,level:"amateur",gym:"Mardy's Martial Arts",hometown:"Matherville, IL",opponent:"Kaydon Dehaven",video:"5.Hunter-Locke-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/hunter-locke-v3.jpg"},{slug:"kaydon-dehaven",fighterId:10065,name:"Kaydon Dehaven",nickname:"",night:1,level:"amateur",gym:"Take The Fight Academy",hometown:"Roseville, IL",opponent:"Hunter Locke",video:"6.Kaydon-Dehaven-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/kaydon-dehaven-2026.jpg?v=flush3b"},{slug:"aiden-mohagen",fighterId:10066,name:"Aiden Mohagen",nickname:"",night:1,level:"amateur",gym:"Manhood Training Center",hometown:"Muscatine, IA",opponent:"Talan Rodney",video:"7.Aiden-Mohagen-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/aiden-mohagen-2026.jpg"},{slug:"talan-rodney",fighterId:8,name:"Talan Rodney",nickname:"",night:1,level:"amateur",gym:"Iowa Combat Fitness Club",hometown:"Moline, IL",opponent:"Aiden Mohagen",video:"8.Talan-Rodney-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/talan-rodney-2026.jpg"},{slug:"pau-lian",fighterId:10069,name:"Pau Lian",nickname:"",night:1,level:"amateur",gym:"Iowa Combat Fitness Club",hometown:"Moline, IL",opponent:"Jack Roche",video:"11.Pau-Lian-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/pau-lian-2026.jpg?v=flush3"},{slug:"jack-roche",fighterId:10070,name:"Jack Roche",nickname:"",night:1,level:"amateur",gym:"Breaking Point Jiu-Jitsu",hometown:"Davenport, IA",opponent:"Pau Lian",video:"12.Jack-Roche-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/jack-roche-2026.jpg"},{slug:"trenton-bey-jr",fighterId:82,name:"Trenton Bey Jr.",nickname:"",night:1,level:"amateur",gym:"MuddWarriors",hometown:"Peoria, IL",opponent:"Daylan Ellington",video:"13.Trenton-Bey-Jr-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/519950/original/bey.jpg?1758726067"},{slug:"daylan-ellington",fighterId:34,name:"Daylan Ellington",nickname:"",night:1,level:"amateur",gym:"Take The Fight Academy and SIG MMA",hometown:"Galesburg, IL",opponent:"Trenton Bey Jr.",video:"14.Daylan-Ellington-Vertical.mp4",photo:"https://images.tapology.com/letterbox_images/449294/default/daylan1.jpg?1722271373"},{slug:"isaiah-lavanway",fighterId:29,name:"Isaiah Lavanway",nickname:"",night:1,level:"amateur",gym:"Gnosis Combat Sports",hometown:"Fond du Lac, WI",opponent:"Ayden Golden",video:"15.Isaiah-Lavanway-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/520948/original/lavanway.jpg?1758725772"},{slug:"ayden-golden",fighterId:36,name:"Ayden Golden",nickname:"The Golden Boy",night:1,level:"amateur",gym:"Delf's Pro Gym",hometown:"Eldridge, IA",opponent:"Isaiah Lavanway",video:"16.Ayden-Golden-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/483738/original/golden.jpg?1740604666"},{slug:"zach-rossmanith",fighterId:9701,name:"Zach Rossmanith",nickname:"",night:1,level:"amateur",gym:"Southside Martial Arts and Faiferlick Martial Arts",hometown:"Fort Dodge, IA",opponent:"Taylor Fleetwood",video:"17.Zach-Rossmanith-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/441566/original/rossmanith.jpg?1733503075"},{slug:"taylor-fleetwood",fighterId:13,name:"Taylor Fleetwood",nickname:"",night:1,level:"amateur",gym:"Mardy's Martial Arts",hometown:"Davenport, IA",opponent:"Zach Rossmanith",video:"18.Taylor-Fleetwood-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/432675/original/fleetwood.jpg?1726002404"},{slug:"tyler-meyers",fighterId:6,name:"Tyler Meyers",nickname:"",night:1,level:"amateur",gym:"The Scrap Shack JiuJitsu",hometown:"Rock Falls, IL",opponent:"Juan Garza",video:"19.Tyler-Meyers-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/458466/original/meyers.jpg?1728656139"},{slug:"juan-garza",fighterId:10071,name:"Juan Garza",nickname:"",night:1,level:"amateur",gym:"Iowa Martial Arts and Wellness",hometown:"Des Moines, IA",opponent:"Tyler Meyers",video:"20.Juan-Garza-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/502335/original/garza.jpg?1753974507"},{slug:"misael-monarrez",fighterId:37,name:"Misael Monarrez",nickname:"",night:1,level:"pro",gym:"Liberal Boxing Club and RAFK MMA",hometown:"Liberal, KS",opponent:"Liam Aunan",video:"21.Misael-Monarrez-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/410659/original/misael.jpg?1738
2619404"},{slug:"liam-aunan",fighterId:123,name:"Liam Aunan",nickname:"The Iowan Lion",night:1,level:"pro",gym:"Cedar Rapids Boxing Academy",hometown:"Maquoketa, IA",opponent:"Misael Monarrez",video:"22.Liam-Aunan-Vertical.mp4",photo:"https://images.tapology.com/letterbox_images/368645/default/liam1.jpg?1673839921"},{slug:"luke-rodriguez",fighterId:111,name:"Luke Rodriguez",nickname:"",night:1,level:"pro",gym:"Iowa Combat Fitness Club",hometown:"Davenport, IA",opponent:"Michael Shipp",video:"23.Luke-Rodriguez-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/luke-rodriguez-2026.jpg"},{slug:"michael-shipp",fighterId:9633,name:"Michael Shipp",nickname:"Battle",night:1,level:"pro",gym:"Nyquist's Roundhouse Martial Arts",hometown:"Milan, IL",opponent:"Luke Rodriguez",video:"24.Michael-Shipp-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/54626/large/shipphead.png?1540060453"},{slug:"avery-meyer",fighterId:10072,name:"Avery Meyer",nickname:"",night:2,level:"amateur",gym:"PHF Karate Delaware Ave",hometown:"Mason City, IA",opponent:"Nolan Koehler",video:"25.Avery-Meyer-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/avery-meyers-2026.png"},{slug:"nolan-koehler",fighterId:10096,name:"Nolan Koehler",nickname:"",night:2,level:"amateur",gym:"Skywalker 101 Boxing Academy",hometown:"Omaha, NE",opponent:"Avery Meyer",video:"9.Nolan-Koehler-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/nolan-koehler-2026.jpg"},{slug:"eric-halverson",fighterId:10073,name:"Eric Halverson",nickname:"",night:2,level:"amateur",gym:"Avila Combat Labs and JS Kickboxing",hometown:"Jefferson, WI",opponent:"Angel Ponce",video:"27.Eric-Halverson-Vertical.mp4",photo:"https://images.tapology.com/letterbox_images/533085/default/halverson.jpg?1763834189"},{slug:"angel-ponce",fighterId:28,name:"Angel Ponce",nickname:"",night:2,level:"amateur",gym:"Team Warrior MMA",hometown:"",opponent:"Eric Halverson",video:"28.Angel-Ponce-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/495700/original/ponce.jpg?1746626474"},{slug:"joe-pierce",fighterId:10074,name:"Joe Pierce",nickname:"",night:2,level:"amateur",gym:"One Touch Fight Team & Academy",hometown:"Woodstock, IL",opponent:"Maddox Jackson",video:"29.Joe-Pierce-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/joe-pierce-2026.jpg?v=flush3"},{slug:"maddox-jackson",fighterId:4,name:"Maddox Jackson",nickname:"Maddog",night:2,level:"amateur",gym:"Iowa Combat Fitness Club",hometown:"Davenport, IA",opponent:"Joe Pierce",video:"30.Maddox-Jackson-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/maddox-jackson-v3.jpg"},{slug:"juan-rodriguez",fighterId:9579,name:"Juan Rodriguez",nickname:"",night:2,level:"amateur",gym:"920 Combat and GM3âs MMA Institute",hometown:"Green Bay, WI",opponent:"Tanner Collins",video:"31.Juan-Rodriguez-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/492162/original/rodriguez.jpg?1769735525"},{slug:"tanner-collins",fighterId:10,name:"Tanner Collins",nickname:"",night:2,level:"amateur",gym:"Hard Drive Mixed Martial Arts",hometown:"",opponent:"Juan Rodriguez",video:"32.Tanner-Collins-Vertical.mp4",photo:"https://images.tapology.com/letterbox_images/426878/default/tanner_collins.jpg?1707770615"},{slug:"julian-torres",fighterId:146,name:"Julian Torres",nickname:"",night:2,level:"amateur",gym:"One Touch Fight Team & Academy",hometown:"Genoa, IL",opponent:"Damon Dann",video:"33.Julian-Torres-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/441744/original/torres.jpg?1740604682"},{slug:"damon-dann",fighterId:10075,name:"Damon Dann",nickname:"",night:2,level:"amateur",gym:"Lyons Tae Kwon Do Academy",hometown:"Clinton, IA",opponent:"Julian Torres",video:"34.Damon-Dann-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/damon-dann-v3.jpg"},{slug:"terjuana-short",fighterId:10076,name:"Terjuana Short",nickname:"Teriyaki",night:2,level:"amateur",gym:"PHF Karate Delaware Ave",hometown:"Mason City, IA",opponent:"Carley Ochoa",video:"35.Terjuana-Short-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/ter
2juana-short-2026.jpg?v=flush3"},{slug:"carley-ochoa",fighterId:10077,name:"Carley Ochoa",nickname:"",night:2,level:"amateur",gym:"Resurgence MMA",hometown:"Oshkosh, WI",opponent:"Terjuana Short",video:"36.Carley-Ochoa-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/carley-ochoa-2026.jpg"},{slug:"cole-hanson",fighterId:9780,name:"Cole Hanson",nickname:"The Hitman",night:2,level:"amateur",gym:"Avila Combat Labs and One Touch Fight Team & Academy",hometown:"Delavan, WI",opponent:"Callyn Bishop",video:"37.Cole-Hanson-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/509791/original/hanson.jpg?1786374883"},{slug:"callyn-bishop",fighterId:14,name:"Callyn Bishop",nickname:"",night:2,level:"amateur",gym:"Myriad Mixed Martial Arts Academy",hometown:"",opponent:"Cole Hanson",video:"38.Callyn-Bishop-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/499512/original/bishop.jpg?1768240652"},{slug:"sam-knox",fighterId:9776,name:"Sam Knox",nickname:"The Honey Badger",night:2,level:"amateur",gym:"PHF Karate Delaware Ave",hometown:"Mason City, IA",opponent:"Carlos Gutierrez",video:"39.Sam-Knox-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/453898/original/knox.jpg?1735400144"},{slug:"carlos-gutierrez",fighterId:18,name:"Carlos Gutierrez",nickname:"Baby Groot",night:2,level:"amateur",gym:"The Scrap Shack JiuJitsu",hometown:"Forreston, IL",opponent:"Sam Knox",video:"40.Carlos-Gutierrez-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/405342/original/gutierrez.jpg?1726001736"},{slug:"juan-resendiz",fighterId:142,name:"Juan Resendiz",nickname:"",night:2,level:"amateur",gym:"One Touch Fight Team & Academy",hometown:"Twin Lakes, WI",opponent:"Andres Lugo Jr",video:"41.Juan-Resendiz-Vertical.mp4",photo:"https://images.tapology.com/headshot_images/329356/original/resendiz.jpg?1726001935"},{slug:"andres-lugo-jr",fighterId:20,name:"Andres Lugo Jr",nickname:"",night:2,level:"amateur",gym:"Garage Lee MMA",hometown:"Marshalltown, IA",opponent:"Juan Resendiz",video:"42.Andres-Lugo-Jr-Vertical.mp4",photo:"https://images.tapology.com/letterbox_images/329335/default/lugo.jpg?1712322496"},{slug:"jerry-arreola",fighterId:238,name:"Jerry Arreola",nickname:"",night:2,level:"amateur",gym:"One Touch Fight Team & Academy",hometown:"Oak Park, IL",opponent:"Joseph Dean Walter",video:"43.Jerry-Arreola-Vertical.mp4",photo:"https://images.tapology.com/letterbox_images/282595/default/jerry_arreola.jpg?1610117013"},{slug:"joseph-dean-walter",fighterId:9805,name:"Joseph Dean Walter",nickname:"",night:2,level:"amateur",gym:"Take The Fight Academy",hometown:"Galesburg, IL",opponent:"Jerry Arreola",video:"44.Joseph-Dean-Walter-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/joseph-dean-walter-2026.jpg"},{slug:"hone-milnes-win",fighterId:10061,name:"Hone Milnes-Win",nickname:"Two-Guns",night:2,level:"pro",gym:"IFCCFC Universal Vale Tudo / CU Jiu Jitsu",hometown:"Invercargill, NZ",opponent:"Cyrus Mathes",video:"45.Hone-Milnes-Win-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/hone-milnes-win.jpg"},{slug:"cyrus-mathes",fighterId:40,name:"Cyrus Mathes",nickname:"The Virus",night:2,level:"pro",gym:"Garage Lee MMA",hometown:"Marshalltown, IA",opponent:"Hone Milnes-Win",video:"46.Cyrus-Mathes-Vertical.mp4",photo:"/assets/cyrus-mathes.jpeg"},{slug:"joseph-arroyo",fighterId:10060,name:"Joseph Arroyo",nickname:"",night:2,level:"pro",gym:"Avila Combat Laboratories",hometown:"Round Lake Beach, IL",opponent:"Dillion Cox",video:"47.Joe-Arroyo-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/joseph-arroyo.jpg"},{slug:"dillion-cox",fighterId:6712,name:"Dillion Cox",nickname:"The Dominator",night:2,level:"pro",gym:"Skywalker 101 Boxing Academy",hometown:"Atlantic, IA",opponent:"Joseph Arroyo",video:"48.Dillion-Cox-Vertical.mp4",photo:"https://images.tapology.com/letterbox_images/112493/default/Dillion_Cox.jpg?1587180650"},{slug:"darion-abbey",fighterId:333,name:"Darion Abbey",nickname:"",night:2,level:"pro",gym:"Kill Cliff FC",hometown:"Fort Lauderdale, FL",opponent:"Adam Burdock-Poulin",video:"49.Darion-Abbey-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/darion-abbey.jpg"},{slug:"adam-burdock-poulin",fighterId:24,name:"Adam Burdock-Poulin",nickname:"Mountain Man",night:2,level:"pro",gym:"Iowa Combat Fitness Club",hometown:"Rock Island, IL",opponent:"Darion Abbey",video:"50.Adam-Burdock-Poulin-Vertical.mp4",photo:"https://media.caged1.com/website-assets/fighters/adam-burdock-poulin-1789606239.jpg"}],Qi=22,er=Date.parse("2026-10-18T05:00:00Z");new Set(De.map(e=>e.slug));function Fr(e=Date.now()){return e<er}function Jr(e){return e?`/fighter-kit?crew=1#${e}`:"/fighter-kit?crew=1"}const tr=99,ir=/^(tbd|tba|to be (determined|announced)|opponent tbd)$/i;function ye(e){return String(e||"").normalize("NFD").replace(/[Ì-ͯ]/g,"").toLowerCase().replace(/['"]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function rr(e){if(!e||e.intermission||String(e.card_position||"").trim().toLowerCase()==="intermission"||String(e.status||"").trim().toLowerCase()==="cancelled")return!1;const t=Number(e.fight_order??e.order);return!(Number.isFinite(t)&&t>=tr)}function gt(e,t){const i=String(e[`fighter_${t}_name`]||"").trim();
2return!i||ir.test(i)?null:{id:Number(e[`fighter_${t}_id`])||null,name:i,nickname:String(e[`fighter_${t}_nickname`]||"").trim()}}function nr(e,t){if(!Array.isArray(t))return null;const i=Array.isArray(e)?e:[],n=new Map,o=new Map;i.forEach((l,C)=>{l.fighterId&&n.set(Number(l.fighterId),{row:l,index:C}),o.set(l.slug,{row:l,index:C})});const s=l=>l.id&&n.get(l.id)||o.get(ye(l.name))||null,d=[],a=new Set;let h=0;return t.filter(rr).forEach(l=>{const C=Number(l.night_number)||1,P=Number(l.fight_order??l.order)||0,w=/\bpro\b|professional/i.test(String(l.pro_or_amateur||""))?"pro":"amateur",R=gt(l,"a"),N=gt(l,"b");[[R,N],[N,R]].forEach(([b,p])=>{if(!b)return;const m=s(b),v=m?m.row:{slug:ye(b.name),fighterId:b.id,name:b.name,nickname:b.nickname,level:w,gym:"",hometown:"",video:"",photo:""};!v.slug||a.has(v.slug)||(a.add(v.slug),d.push({...v,name:b.name||v.name,night:C,order:P,opponent:p?p.name:"TBA",index:m?m.index:i.length+h++}))})}),d.length?d:null}function Rt(e,t){const i=new Set(t.map(s=>s.slug)),n=new Map(t.map(s=>[ye(s.name),s.slug]));return{source:e,roster:t,slugs:i,kitSlugFor:s=>{const d=ye(s);return n.get(d)||(i.has(d)?d:null)}}}const xe=Rt("static",De.map((e,t)=>({...e,index:t})));let ae=null,re=null;function or(){if(ae)return Promise.resolve(ae);if(re)return re;const e=typeof AbortController=="function"?new AbortController:null,t=setTimeout(()=>e==null?void 0:e.abort(),8e3);return re=fetch(`/api/public-site/event-bundle?event_id=${Qi}`,{headers:{"X-Public-Request":"true"},signal:e==null?void 0:e.signal}).then(i=>i.ok?i.json():null).then(i=>{const n=nr(De,i==null?void 0:i.fights);return ae=n?Rt("card",n):xe,ae}).catch(()=>(re=null,xe)).finally(()=>clearTimeout(t)),re}function ar({enabled:e=!0}={}){const[t,i]=y.useState(()=>ae||xe);return y.useEffect(()=>{if(!e)return;let n=!1;return or().then(o=>{n||i(o)}),()=>{n=!0}},[e]),t}const fe="961929465791-0jequk7pvd3okt0gkjff2mjf0lud50o3.apps.googleusercontent.com",ut="https://accounts.google.com/gsi/client",sr="auto".trim().toLowerCase(),mt="false".trim().toLowerCase()==="true",ee="ca_public_auth_redirect_pending",cr="ca_public_welcome_seen_v1:",ht="".trim();function $t({children:e}){return typeof document>"u"?null:Lt.createPortal(e,document.body)}function At(e){const t=Number((e==null?void 0:e.id)||0);return t>0?`${cr}${t}`:""}function lr(e){const t=At(e);if(!t)return!0;try{return String(localStorage.getItem(t)||"")==="1"}catch{return!0}}function dr(e){const t=At(e);if(t)try{localStorage.setItem(t,"1")}catch{}}function Ie(e){return String((e==null?void 0:e.code)||"").replace(/^auth\//,"").trim()}function Re(e){var s,d,a,h,l,C,P;const t=(d=(s=e==null?void 0:e.customData)==null?void 0:s._tokenResponse)==null?void 0:d.error,i=(l=(h=(a=e==null?void 0:e.customData)==null?void 0:a._tokenResponse)==null?void 0:h.error)==null?void 0:l.message;if(i)return String(i).trim();if(t&&typeof t=="string")return t.trim();const n=(C=e==null?void 0:e.customData)==null?void 0:C.serverResponse;if(n)try{const w=JSON.parse(n),R=((P=w==null?void 0:w.error)==null?void 0:P.message)||(w==null?void 0:w.error_description)||(w==null?void 0:w.message);if(R)return String(R).trim()}catch{const w=String(n).trim();if(w)return w}const o=String((e==null?void 0:e.message)||"").trim();return o&&!o.toLowerCase().includes("internal-error")?o:""}function ft(e){const t=String(e||"").trim().toLowerCase();if(!t)return;const i=JSON.stringify({provider:t,ts:Date.now()});try{sessionStorage.setItem(ee,i)}catch{}try{localStorage.setItem(ee,i)}catch{}}const gr=3*60*1e3;function ur(){const e=t=>{const i=String(t||"").trim();if(!i)return"";try{const n=JSON.parse(i),o=Number((n==null?void 0:n.ts)||0);if(o&&Date.now()-o>gr)return Q(),"";const s=String((n==null?void 0:n.provider)||"").trim().toLowerCase();if(s)return s}catch{}return i.toLowerCase()};try{const t=e(sessionStorage.getItem(ee));if(t)return t}catch{}try{const t=e(localStorage.getItem(ee));if(t)return t}catch{}return""}function Q(){try{sessionStorage.removeItem(ee)}catch{}try{localStorage.removeItem(ee)}catch{}}function pt(){var t,i;if(typeof window>"u"||(i=(t=window.google)==null?void 0:t.accounts)!=null&&i.id)return Promise.resolve();const e=document.querySelector(`script[src="${ut}"]`);return e?new Promise(n=>{e.addEventListener("load",n),e.addEventListener("error",n)}):new Promise(n=>{const o=document.createElement("script");o.src=ut,o.async=!0,o.defer=!0,o.onload=n,o.onerror=n,document.head.appendChild(o)})}const mr=[{value:"fan",label:"ð¥ Fan / Supporter",desc:"I follow the sport and support fighters"},{value:"fighter",label:"ð¥ Fighter",desc:"I compete or am pursuing a career in MMA"},{value:"coach",label:"ðï¸ Coach / Trainer",desc:"I train or c
2orner fighters"},{value:"manager",label:"ð Manager / Agent",desc:"I represent fighters or manage careers"},{value:"media",label:"ð¸ Media / Press",desc:"I cover MMA as a journalist or creator"},{value:"sponsor",label:"ð¤ Sponsor / Business",desc:"I represent a brand interested in sponsorship"},{value:"commentator",label:"ðï¸ Commentator",desc:"I provide live fight commentary"},{value:"ring_announcer",label:"ð¤ Ring Announcer",desc:"I announce fighters and bout results"},{value:"ring_girl",label:"ð Ring Girl",desc:"I work event presentation between rounds"},{value:"referee",label:"âï¸ Referee",desc:"I officiate bouts in the cage"},{value:"judge",label:"ð§¾ Judge",desc:"I score bouts at ringside"},{value:"cutman",label:"𩹠Cutman",desc:"I work corners on cuts and swelling"},{value:"cornerman",label:"𪣠Cornerman",desc:"I corner fighters during events"},{value:"ringside_physician",label:"𩺠Ringside Physician",desc:"I provide medical supervision at events"},{value:"photographer",label:"ð· Photographer",desc:"I capture event and fighter photography"},{value:"videographer",label:"ð¥ Videographer",desc:"I record event video coverage"},{value:"broadcast_crew",label:"ð¡ Broadcast Crew",desc:"I work live production and broadcast"},{value:"commission_official",label:"ðï¸ Commission Official",desc:"I represent athletic commission oversight"},{value:"event_staff",label:"ð ï¸ Event Staff",desc:"I support event operations"},{value:"security",label:"ð¡ï¸ Security",desc:"I handle venue and event safety"},{value:"former_fighter",label:"ð¥ Former Fighter",desc:"I previously competed in MMA"},{value:"champion",label:"ð Champion",desc:"I am a current or former title holder"},{value:"gym_owner",label:"ð¢ Gym Owner",desc:"I own or run a gym"}];function hr({onSelect:e,palette:t}){const i=t||{},[n,o]=y.useState(""),[s,d]=y.useState(!1),{setRole:a}=Pt(),h=async()=>{if(!(!n||s)){d(!0);try{await a(n),e(n)}catch(l){console.error("Role save failed:",l),d(!1)}}};return g.jsx($t,{children:g.jsx("div",{style:{position:"fixed",inset:0,zIndex:9999,background:"rgba(0,0,0,0.85)",display:"flex",alignItems:"center",justifyContent:"center",overflowY:"auto",padding:20},children:g.jsxs("div",{style:{background:i.card||"#111",border:`1px solid ${i.border||"#333"}`,borderRadius:12,padding:"28px 24px",maxWidth:480,width:"100%",margin:"0 auto",maxHeight:"calc(100vh - 40px)",overflowY:"auto",boxShadow:"0 20px 60px rgba(0,0,0,0.6)"},children:[g.jsx("h2",{style:{margin:"0 0 6px",fontSize:20,fontWeight:900,color:i.white||"#fff",letterSpacing:"0.04em"},children:"Welcome to Caged Aggression"}),g.jsx("p",{style:{margin:"0 0 20px",color:i.textMuted||"#aaa",fontSize:14,lineHeight:1.5},children:"What brings you here? We'll personalize your experience based on your role."}),g.jsx("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:20},children:mr.map(l=>g.jsxs("button",{type:"button",onClick:()=>o(l.value),style:{background:n===l.value?i.red||"#b91c1c":i.cardHover||"#1a1a1a",border:`1px solid ${n===l.value?i.red||"#b91c1c":i.border||"#333"}`,borderRadius:8,padding:"10px 14px",cursor:"pointer",textAlign:"left",transition:"all 0.15s",display:"flex",flexDirection:"column",gap:2},children:[g.jsx("span",{style:{color:i.white||"#fff",fontWeight:700,fontSize:14},children:l.label}),g.jsx("span",{style:{color:n===l.value?"rgba(255,255,255,0.8)":i.textMuted||"#888",fontSize:12},children:l.desc})]},l.value))}),g.jsx("button",{type:"button",disabled:!n||s,onClick:h,style:{width:"100%",padding:"12px 0",borderRadius:8,border:"none",background:n?i.red||"#b91c1c":i.border||"#333",color:"#fff",fontWeight:800,fontSize:15,letterSpacing:"0.06em",textTransform:"uppercase",cursor:n?"pointer":"default",opacity:s?.7:1,transition:"background 0.15s"},children:s?"Savingâ¦":"Continue"}),g.jsx("p",{style:{margin:"12px 0 0",color:i.textMuted||"#666",fontSize:11,textAlign:"center"},children:"You can change this any time from your profile."})]})})})}function fr({user:e,palette:t,onClose:i}){const n=t||{},[o,s]=y.useState(0),d=(e==null?void 0:e.supporter)||{},a=!!(d!=null&&d.is_past_ppv_supporter),h=String((d==null?void 0:d.supported_fighter_name)||"").trim(),l=String((d==null?void 0:d.support_confidence)||"").trim().toLowerCase(),C=!!h&&(l==="high"||l==="medium"),P=[{icon:zt,iconColor:"#60a5fa",title:"Stream Live on Any Screen",body:"Watch Caged Aggression in crisp 1080p60 HD on mobile, desktop, or natively on your big-screen TV.",items:["ðº Official TV Apps: Available on Roku, Amazon Fire TV, and Apple TV.","â¡ Instant Access: Link your TicketSpice watch code or stream directly with zero hassle."]},{icon:Wt,iconColor:"#f87171",title:"Be the 4th Judge on Fight Night",body:"Engage with every fight in real time synced directly with the live cage broadcast.",items:["ð¥ Live Round Scoring: Score each round live from your phone while watching the action.","ðï¸ Broadcast Pulse: Vote in live fight polls featured on-air by the commentary team."]},{icon:Bt,iconColor:"#fbbf24",title:"Fighter Fan Vote & Gym Wars",body:"Cast daily votes to push your favorite fighters up the official Community Pulse Leaderboard.",items:["â Midwest Camp Standings: Votes aggregate weekly to rank top fight gyms across the Midwest.","ð± 1-Click Story Cards: Generate zero-cost HD Instagram & TikTok story graphics to rally support."]}
2,{icon:qt,iconColor:"#34d399",title:"Choose Your First Move",body:"Jump straight into the part of the platform that matters most to you.",cards:[{href:"/watch-help",label:"Big-Screen TV Apps",body:"Download for Roku, Amazon Fire TV, or Apple TV."},{href:"/#fan-favorites",label:"Vote Fan Favorites",body:"Cast daily votes and generate HD Instagram promo cards."},{href:"/fighters",label:"770+ Fighter Profiles",body:"Explore confirmed Caged Aggression athletes, records & intel."},{href:"/vote",label:"Live Fight Night Scoring",body:"Interactive round-by-round scoring & live broadcast polls."}]}],w=P[Math.max(0,Math.min(o,P.length-1))],R=o<=0,N=o>=P.length-1;return g.jsx($t,{children:g.jsx("div",{style:{position:"fixed",inset:0,zIndex:1e4,background:"rgba(0,0,0,0.85)",display:"flex",alignItems:"center",justifyContent:"center",overflowY:"auto",padding:20},children:g.jsxs("div",{style:{background:n.card||"#111",border:`1px solid ${n.border||"#333"}`,borderRadius:12,padding:"24px 20px",maxWidth:720,width:"100%",margin:"0 auto",maxHeight:"calc(100vh - 40px)",overflowY:"auto",boxShadow:"0 20px 60px rgba(0,0,0,0.6)"},children:[g.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:8},children:[yt.createElement(w.icon,{size:28,color:w.iconColor||"#fff"}),g.jsx("h2",{style:{margin:0,fontSize:22,fontWeight:900,color:w.iconColor||n.white||"#fff",letterSpacing:"0.04em",textTransform:"uppercase"},children:w.title})]}),g.jsx("p",{style:{margin:"0 0 14px",color:n.textMuted||"#aaa",fontSize:14,lineHeight:1.6},children:w.body}),Array.isArray(w.items)&&w.items.length?g.jsx("div",{style:{marginBottom:14,padding:"10px 12px",borderRadius:8,border:`1px solid ${w.iconColor||"#16a34a"}44`,background:`${w.iconColor||"#16a34a"}0d`},children:w.items.map(A=>g.jsxs("div",{style:{color:n.white||"#fff",fontSize:13,lineHeight:1.6},children:["⢠",A]},A))}):null,Array.isArray(w.cards)&&w.cards.length?g.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:10,marginBottom:14},children:w.cards.map(A=>g.jsxs("a",{href:A.href,onClick:i,style:{border:`1px solid ${w.iconColor||"#16a34a"}44`,borderRadius:10,padding:"12px 12px",textDecoration:"none",background:`linear-gradient(180deg, ${w.iconColor||"#16a34a"}0a 0%, transparent 100%)`,display:"block"},children:[g.jsx("div",{style:{color:n.white||"#fff",fontSize:12,fontWeight:900,textTransform:"uppercase",letterSpacing:"0.05em"},children:A.label}),g.jsx("div",{style:{marginTop:6,color:n.textMuted||"#999",fontSize:12,lineHeight:1.5},children:A.body})]},A.label))}):null,R&&a?g.jsxs("div",{style:{marginBottom:14,padding:"10px 12px",borderRadius:8,border:"1px solid #16a34a",background:"rgba(22,163,74,0.16)"},children:[g.jsx("div",{style:{color:"#86efac",fontWeight:900,fontSize:12,letterSpacing:"0.08em",textTransform:"uppercase"},children:"Past PPV Supporter"}),g.jsxs("div",{style:{marginTop:5,color:n.white||"#fff",fontSize:13,lineHeight:1.5},children:["Thanks for supporting Caged Aggression and the MMA fight community!",C?` Past support appears tied to ${h}.`:""]})]}):null,g.jsx("div",{style:{display:"flex",gap:8,marginBottom:10},children:P.map((A,b)=>g.jsx("div",{style:{flex:1,height:4,borderRadius:999,background:b<=o?w.iconColor||"#16a34a":"#2a2a2a"}},b))}),g.jsxs("div",{style:{marginTop:14,display:"flex",justifyContent:"flex-end",gap:8},children:[g.jsx("button",{type:"button",onClick:i,style:{border:`1px solid ${n.border||"#333"}`,background:"#111",color:n.textMuted||"#aaa",borderRadius:8,padding:"8px 12px",fontSize:12,fontWeight:700,cursor:"pointer"},children:"Skip"}),g.jsx("button",{type:"button",onClick:()=>s(A=>Math.max(0,A-1)),disabled:R,style:{border:`1px solid ${n.border||"#333"}`,background:"#111",color:R?n.textMuted||"#666":n.textMuted||"#aaa",borderRadius:8,padding:"8px 12px",fontSize:12,fontWeight:700,cursor:R?"default":"pointer",opacity:R?.6:1},children:"Back"}),g.jsx("button",{type:"button",onClick:()=>{if(N){i();return}s(A=>Math.min(P.length-1,A+1))},style:{border:"none",background:w.iconColor||n.red||"#b91c1c",color:"#fff",borderRadius:8,padding:"8px 12px",fontSize:12,fontWeight:800,letterSpacing:"0.04em",textTransform:"uppercase",cursor:"pointer"},children:N?"Done":"Next"})]})]})})})}function pr({user:e,onSignOut:t,onShowWelcome:i,palette:n}){const o=n||{},[s,d]=y.useState(!1),a=y.useRef(null),h=String((e==null?void 0:e.role)||"").trim().toLowerCase(),l=h==="admin"||h==="staff",{slugs:C}=ar({enabled:!!(e!=null&&e.linked_fighter_slug)}),P=(()=>
2{if(typeof window>"u")return"/profile";const b=String(window.location.hostname||"").toLowerCase();return b==="localhost"||b==="127.0.0.1"||b.endsWith(".nip.io")?"/profile?view=public":"/profile"})(),w=(()=>{if(typeof window>"u")return"/assistant-review?view=hub";const b=String(window.location.hostname||"").toLowerCase();return b==="localhost"||b==="127.0.0.1"||b.endsWith(".nip.io")?"/assistant-review?view=hub":b==="hub.caged1.com"?"/":b==="caged1.com"||b==="www.caged1.com"?"https://hub.caged1.com/":"/assistant-review?view=hub"})(),R=(()=>{if(typeof window>"u")return st("/");const b=String(window.location.hostname||"").toLowerCase();return b==="localhost"||b==="127.0.0.1"||b.endsWith(".nip.io")?"/?view=public":st("/")})(),N=(()=>{if(typeof window>"u")return{inHubView:!1,href:w,label:"Hub Admin"};const b=String(window.location.pathname||"").toLowerCase(),p=String(window.location.search||"").toLowerCase();return b.startsWith("/assistant-review")||b.startsWith("/cageside-moderation")||b.startsWith("/dashboard")||p.includes("view=hub")?{inHubView:!0,href:R,label:"Back to Public Site"}:{inHubView:!1,href:w,label:"Hub Admin"}})();y.useEffect(()=>{if(!s)return;const b=p=>{a.current&&!a.current.contains(p.target)&&d(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[s]);const A={fan:"Fan",fighter:"Fighter",coach:"Coach",manager:"Manager",media:"Media",sponsor:"Sponsor",staff:"Staff",commentator:"Commentator",ring_announcer:"Ring Announcer",ring_girl:"Ring Girl",referee:"Referee",judge:"Judge",cutman:"Cutman",cornerman:"Cornerman",ringside_physician:"Ringside Physician",photographer:"Photographer",videographer:"Videographer",broadcast_crew:"Broadcast Crew",commission_official:"Commission Official",event_staff:"Event Staff",security:"Security",former_fighter:"Former Fighter",champion:"Champion",gym_owner:"Gym Owner",admin:"Admin"}[h]||"Fan";return g.jsxs("div",{ref:a,style:{position:"relative",zIndex:2500},children:[g.jsxs("button",{type:"button",onClick:()=>d(!s),style:{display:"flex",alignItems:"center",gap:7,background:"none",border:`1px solid ${o.border||"#333"}`,borderRadius:20,padding:"3px 10px 3px 4px",cursor:"pointer",color:o.white||"#fff"},children:[e.avatar_url?g.jsx("img",{src:e.avatar_url,alt:e.display_name||"Profile",style:{width:26,height:26,borderRadius:"50%",objectFit:"cover"}}):g.jsx("div",{style:{width:26,height:26,borderRadius:"50%",background:o.red||"#b91c1c",display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,fontWeight:900,color:"#fff"},children:(e.display_name||e.email||"U")[0].toUpperCase()}),g.jsx("span",{style:{fontSize:12,fontWeight:700,maxWidth:90,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.display_name||e.email}),l?g.jsx("span",{style:{fontSize:9,fontWeight:900,letterSpacing:"0.08em",textTransform:"uppercase",color:"#fff",background:o.red||"#b91c1c",borderRadius:999,padding:"2px 6px",lineHeight:1},children:"Admin"}):null]}),s&&g.jsxs("div",{style:{position:"absolute",right:0,top:"110%",zIndex:2600,background:o.card||"#111",border:`1px solid ${o.border||"#333"}`,borderRadius:10,minWidth:180,boxShadow:"0 8px 24px rgba(0,0,0,0.5)",overflow:"hidden"},children:[g.jsxs("div",{style:{padding:"12px 14px",borderBottom:`1px solid ${o.border||"#333"}`},children:[g.jsx("div",{style:{color:o.white||"#fff",fontWeight:700,fontSize:13,marginBottom:2},children:e.display_name||A}),g.jsxs("div",{style:{color:o.textMuted||"#888",fontSize:11},children:[A," · ",e.email]})]}),g.jsx("button",{type:"button",style:{display:"block",width:"100%",textAlign:"left",padding:"10px 14px",color:o.white||"#fff",fontSize:13,textDecoration:"none",background:"none",border:"none",cursor:"pointer"},onClick:()=>{d(!1),typeof window<"u"&&window.location.assign(P)},children:"My Profile"}),(()=>{const b={display:"block",width:"100%",textAlign:"left",padding:"10px 14px",color:o.white||"#fff",fontSize:13,textDecoration:"none",background:"none",border:"none",cursor:"pointer",borderTop:`1px solid ${o.border||"#333"}`},p=(G,L)=>()=>{d(!1),!(typeof window>"u")&&(L?window.open(G,"_blank","noopener,noreferrer"):window.location.assign(G))},m=e.linked_fighter_slug||null,v=e.linked_gym_slug||null,O=["fighter","former_fighter","champion"].includes(h),k=h==="gym_owner",x=h==="coach",J=h==="manager",X=String((e==null?void 0:e.email)||"").trim().toLowerCase(),ie=X==="[email protected]"||X==="[email protected]"||X==="[email protected]";return g.jsxs(g.Fragment,{children:[O?g.jsx("button",{type:"button",style:b,onClick:p(m?`/fighters/${m}`:"/fighters"),children:m?"My Fighter Profile":"Find My Fighter Profile"}):null,m&&C.has(m)?g.jsx("button",{type:"button",style:b,onClick:p(`/fighter-kit#${m}`),children:"My Promo Kit"}):null,k?g.jsx("button",{type:"button",style:b,onClick:p(v?`/gyms/${v}`:"/gyms"),children:v?"My Gym Profile":"Find My Gym"}):null,x?g.jsx("button",{type:"button",style:b,onClick:p("/onboard?role=coach"),children:"Update Coaching Profile"}):null,J?g.jsx("button",{type:"button",style:b,onClick:p("/onboard?role=manager"),children:"Update Manager Profile"}):null,ie?g.jsx("button",{type:"button",style:b,onClick:p("/retro",!1),children:"Legacy Site View (/retro)"}):null,g.jsx("button",{type:"button",style:b,onClick:p("/contact?topic=bug-issue"),children:"Report a Bug or Issue"}),ht?g.jsx("button",{type:"button",style:b,onClick:p(ht,!0),children:"Join our Discord"}):null,l?g.jsx("button",{type:"button",style:b,onClick:p(N.href,!1),children:N.label}):null,null,l&&typeof window<"u"&&window.location.pathname==="/vote"?g.jsx("button",{type:"button",style:b,onClick:p(window.location.search.includes("preview=card")?"/vote":"/vote?preview=card",!1),children:window.location.search.includes("preview=card")?"Hide Fighter Voting Polls":"Display Fighter Voting Polls"}):null]})})(),l?g.jsx("button",{type:"button",style:{display:"block",width:"100%",textAlign:"left",padding:"10px 14px",color:o.white||"#fff",fontSize:13,textDecoration:"none",background:"none",border:"none",cursor:"pointer",borderTop:`1px solid ${o.border||"#333"}`},onClick:()=>{d(!1),i==null||i()},children:"Show Welcome Message"}):null,g.jsx("button",{type:"button",onClick:()=>{d(!1),t()},style:{display:"block",width:"100%",textAlign:"left",padding:"10px 14px",background:"none",border:"none",cursor:"pointer",color:o.textMuted||"#aaa",fontSize:13,borderTop:`1px solid ${o.border||"#333"}`},children:"Sign out"})]})]})}function jr({palette:e,onAuthChange:t,menuPlacement:i="bottom"}){var We,Be,qe,Ye;const n=e||{}
2,{user:o,isLoading:s,signIn:d,signInWithFirebaseToken:a,signOut:h}=Pt(),[l,C]=y.useState(null),P=te(),w=((We=l==null?void 0:l.firebase)==null?void 0:We.configured)??!0,R=(Be=l==null?void 0:l.firebase)==null?void 0:Be.google_enabled,N=(qe=l==null?void 0:l.firebase)==null?void 0:qe.apple_enabled,A=(Ye=l==null?void 0:l.firebase)==null?void 0:Ye.facebook_enabled,b=typeof window<"u"&&/^(localhost|127\.0\.0\.1)$/i.test(String(window.location.hostname||""))&&String(window.location.protocol||"").toLowerCase()!=="https:",p=P&&w&&sr!=="legacy_google",m=p&&gi()&&(R??!0),v=p&&ui()&&(N??!0),O=p&&mi()&&(A??!0)&&!b,k=!m,x=m||v||O,[J,X]=y.useState(!1),[ie,G]=y.useState(!1),[L,M]=y.useState(!1),[ge,H]=y.useState(!1),[Et,Z]=y.useState(!1),[ve,ue]=y.useState(!1),[Ge,$]=y.useState(""),z=y.useRef(null),V=y.useRef(null),_e=y.useRef(null),me=y.useRef(0),Te=y.useRef(!1);y.useEffect(()=>{let S=!1;const c=new AbortController,f=setTimeout(()=>c.abort(),3e3);return(async()=>{try{const u=await fetch("/api/public/auth/providers",{signal:c.signal});if(!u.ok)return;const _=await u.json().catch(()=>null);!S&&_&&typeof _=="object"&&C(_)}catch{}finally{clearTimeout(f)}})(),()=>{S=!0,clearTimeout(f),c.abort()}},[]),y.useEffect(()=>{p&&hi()},[p]),y.useEffect(()=>{if(!p)return;let S=!1;const c=ur();if(c)return(async()=>{M(!0),$("");try{let f=null,u=null;try{const T=await wi();T!=null&&T.idToken&&T.provider===c&&(u=T)}catch(T){f=T}if(!(u!=null&&u.idToken)&&(c==="facebook"||c==="apple")){const T=await tt(12e3);T!=null&&T.idToken&&T.provider===c&&(u=T)}if(!(u!=null&&u.idToken)&&(c==="facebook"||c==="apple")){const T=await it(18e3);T!=null&&T.idToken&&T.provider===c&&(u=T)}if(u!=null&&u.idToken&&u.provider&&u.provider!==c&&(u=null),!(u!=null&&u.idToken)&&f)throw f;if(!(u!=null&&u.idToken)||S){S||(c==="apple"?$("Apple Sign In couldn't complete in this browser session. Try again, or use Google sign-in."):c==="facebook"&&$("Facebook sign-in returned but couldn't complete. Try again or use a different sign-in method."));return}const{isNewUser:_}=await a(u.idToken,u.provider||c,F()||null);_&&(B(),H(!0)),t==null||t()}catch(f){const u=Ie(f);if(!S&&(c==="facebook"||c==="apple")&&u==="internal-error")try{const _=await tt(6e3);if(_!=null&&_.idToken&&_.provider===c){const{isNewUser:U}=await a(_.idToken,_.provider,F()||null);U&&(B(),H(!0)),t==null||t();return}const T=await it(1e4);if(T!=null&&T.idToken&&T.provider===c){const{isNewUser:U}=await a(T.idToken,T.provider,F()||null);U&&(B(),H(!0)),t==null||t();return}}catch{}if(!S)if(c==="apple"&&u==="internal-error")$("Apple Sign In couldn't complete. Check your Apple ID settings or try signing in with Google.");else{const _=Re(f);$(_&&!u?`Sign-in failed (${_}).`:u?`Sign-in failed (${u}${_?`: ${_}`:""}).`:"Sign-in failed. Please try again.")}}finally{Q(),S||M(!1)}})(),()=>{S=!0}},[p,a,t]);const j=y.useCallback(()=>{var S,c;if(!((c=(S=window.google)==null?void 0:S.accounts)!=null&&c.id)||!V.current)return G(!1),!1;try{V.current.innerHTML="",window.google.accounts.id.renderButton(V.current,{theme:"filled_black",size:"medium",text:"signin_with",shape:"pill",logo_alignment:"left"});const f=V.current.childElementCount>0;return G(f),f}catch(f){return console.error("GIS renderButton failed:",f),G(!1),!1}},[]),He=y.useCallback(async()=>{var S,c,f,u,_;if(k){M(!0),$("");try{if((c=(S=window.google)==null?void 0:S.accounts)!=null&&c.id||await pt(),!((u=(f=window.google)==null?void 0:f.accounts)!=null&&u.id)){$("Google sign-in is unavailable right now. Please refresh and try again.");return}if(Te.current||(window.google.accounts.id.initialize({client_id:fe,callback:Nt=>{var Ke;return(Ke=z.current)==null?void 0:Ke.call(z,Nt)},auto_select:!1,cancel_on_tap_outside:!0,use_fedcm_for_prompt:!1}),Te.current=!0,X(!0)),!j()){$("Google sign-in is unavailable right now. Please refresh and try again.");return}const U=(_=V.current)==null?void 0:_.querySelector('[role="button"]');if(U&&typeof U.click=="function"){U.click();return}$("Google sign-in is unavailable right now. Please refresh and try again.")}finally{setTimeout(()=>M(!1),300)}}},[j,k]),Ve=y.useCallback(async S=>{var c,f;M(!0),$("");try{const u=F()||null,{isNewUser:_}=await d(S.credential,u);(f=(c=window.google)==null?void 0:c.accounts)!=null&&f.id&&(window.google.accounts.id.cancel(),window.google.accounts.id.disableAutoSelect()),_&&(B(),H(!0)),t==null||t()}catch(u){console.error("Sign-in failed:",u),$("Sign-in failed. Please try again.")}finally{M(!1)}},[d,t]);y.useEffect(()=>{z.current=Ve},[Ve]),y.useEffect(()=>{x||k&&pt().then(()=>{var S,c;(c=(S=window.google)==null?void 0:S.accounts)!=null&&c.id&&(window.google.accounts.id.initialize({client_id:fe,callback:f=>{var u;return(u=z.current)==null?void 0:u.call(z,f)},auto_select:!1,cancel_on_tap_outside:!0,use_fedcm_for_prompt:!1}),Te.current=!0,X(!0))})},[k,x]),y.useEffect(()=>{if(x||!k||!J||o||L||!V.current)return;if(j()){me.current=0;return}if(me.current>=4)return;me.current+=1;const c=setTimeout(()=>{j()},400);return()=>clearTimeout(c)},[J,o,L,j,k,x]),y.useEffect(()=>{var S,c;k&&o&&(c=(S=window.google)==null?void 0:S.accounts)!=null&&c.id&&(window.google.accounts.id.cancel(),window.google.accounts.id.disableAutoSelect())},[o,k]),y.useEffect(()=>{if(!o){Z(!1);return}const S=String((o==null?void 0:o.role)||"").trim().toLowerCase(),c=S==="staff"||S==="admin",f=(()=>
2{if(typeof window>"u")return!1;try{return new URLSearchParams(window.location.search).get("welcome")==="1"}catch{return!1}})();if(!mt&&!f){Z(!1);return}if(!ge){if(c&&!f&&!mt){Z(!1);return}lr(o)||Z(!0)}},[o,ge]),y.useEffect(()=>{k&&(o||(me.current=0,G(!1)))},[k,o]),y.useEffect(()=>{if(x||!k||!J||o)return;const S=()=>{const u=V.current;if(u){if(u.childElementCount>0){ie||G(!0);return}j()}},c=()=>{document.visibilityState==="visible"&&S()};window.addEventListener("focus",S),document.addEventListener("visibilitychange",c);const f=setTimeout(S,800);return()=>{clearTimeout(f),window.removeEventListener("focus",S),document.removeEventListener("visibilitychange",c)}},[J,o,ie,j,k,x]);const ze=y.useCallback(async S=>{if(!(!p||L)){if(Q(),ue(!1),console.info("[auth:start]",{requestedProvider:S}),S==="facebook"){M(!0),$("");try{const c=await bi();console.info("[auth:popup:success]",{requestedProvider:"facebook",provider:(c==null?void 0:c.provider)||"facebook"});const f=F()||null,{isNewUser:u}=await a(c.idToken,"facebook",f);u&&(B(),H(!0)),t==null||t(),M(!1);return}catch(c){const f=Ie(c);if(console.error("[auth:popup:error]",{requestedProvider:"facebook",code:f,message:(c==null?void 0:c.message)||""}),console.warn("[CA Auth] Facebook popup error:",f,c==null?void 0:c.message),f==="popup-closed-by-user"||f==="cancelled-popup-request"){M(!1);return}console.info("[CA Auth] Facebook popup unavailable â falling back to redirect")}try{ft("facebook"),await Si();return}catch(c){console.error("Facebook redirect sign-in failed:",c),Q();const f=String((c==null?void 0:c.code)||"").replace(/^auth\//,"");$(f?`Facebook sign-in failed (${f}).`:"Facebook sign-in failed."),M(!1)}return}if(M(!0),$(""),S==="apple"){const c=String(typeof navigator<"u"?navigator.userAgent:""),f=/iPhone|iPad|iPod/i.test(c)||/Safari/i.test(c)&&!/Chrome|CriOS|FxiOS|EdgA|OPR/i.test(c);try{const u=await pi();console.info("[auth:popup:success]",{requestedProvider:"apple",provider:(u==null?void 0:u.provider)||"apple"});const _=F()||null,{isNewUser:T}=await a(u.idToken,"apple",_);T&&(B(),H(!0)),t==null||t(),M(!1);return}catch(u){const _=Ie(u);if(console.error("[auth:popup:error]",{requestedProvider:"apple",code:_,message:(u==null?void 0:u.message)||""}),console.warn("[CA Auth] Apple popup error:",_,u==null?void 0:u.message),_==="popup-closed-by-user"||_==="cancelled-popup-request"){M(!1);return}if(_!=="popup-blocked"&&!f){const T=Re(u);$(_&&!_.includes("internal-error")?`Apple sign-in failed (${_}${T?`: ${T}`:""}).`:"Apple Sign In couldn't complete. Please try again or use Google sign-in."),M(!1);return}console.info("[CA Auth] Apple popup unavailable â falling back to redirect")}try{ft("apple"),await yi();return}catch(u){console.error("Apple redirect sign-in failed:",u),Q();const _=String((u==null?void 0:u.code)||"").replace(/^auth\//,"");$(_&&!_.includes("internal-error")?`Apple sign-in failed (${_}).`:"Apple Sign In couldn't start. Please try again or use Google sign-in."),M(!1);return}}try{const c=F()||null,f=await fi();if(console.info("[auth:popup:success]",{requestedProvider:"google",provider:(f==null?void 0:f.provider)||"google"}),f!=null&&f.redirect)return;const{isNewUser:u}=await a(f.idToken,f.provider,c);u&&(B(),H(!0)),t==null||t()}catch(c){console.error("[auth:popup:error]",{requestedProvider:"google",code:String((c==null?void 0:c.code)||"").trim(),message:String((c==null?void 0:c.message)||"").trim()}),console.error("Firebase sign-in failed:",c);const f=String((c==null?void 0:c.code)||"").trim(),u=String((c==null?void 0:c.message)||"").trim(),_=Re(c),T="Google";if(f.includes("popup-closed-by-user")||f.includes("cancelled-popup-request"))$("");else if(f.includes("popup-blocked"))$(`${T} popup blocked by browser. Enable popups and try again.`);else if(f.includes("unauthorized-domain"))$("This domain is not authorized in Firebase Auth settings.");else if(f.includes("operation-not-allowed"))$(`${T} sign-in provider is not enabled yet.`);else if(u.toLowerCase().includes("invalid firebase token"))$("Auth token validation failed. Check Firebase API key/project alignment.");else{const U=f?f.replace(/^auth\//,""):"";$(U?`${T} sign-in failed (${U}${_?`: ${_}`:""}).`:`${T} sign-in failed${_?` (${_})`:""}.`)}}finally{M(!1)}}},[p,L,a,t]),Mt=y.useCallback(async()=>{var S,c;M(!0),G(!1);try{Q(),await h(),t==null||t(),(c=(S=window.google)==null?void 0:S.accounts)!=null&&c.id&&(window.google.accounts.id.cancel(),window.google.accounts.id.disableAutoSelect(),k&&!x&&(setTimeout(()=>j(),250),setTimeout(()=>j(),900)))}finally{M(!1)}},[h,t,k,j,x]);if(y.useEffect(()=>{if(!ve)return;const S=c=>{_e.current&&!_e.current.contains(c.target)&&ue(!1)};
2return document.addEventListener("mousedown",S),()=>document.removeEventListener("mousedown",S)},[ve]),!x&&(!k||!fe))return null;if(s)return g.jsx("div",{style:{fontSize:11,fontWeight:700,color:n.textMuted||"#aaa",padding:"5px 10px",border:`1px solid ${n.border||"#444"}`,borderRadius:20,letterSpacing:"0.03em",background:"#111",minHeight:28,display:"inline-flex",alignItems:"center"},children:"Checking sign-in..."});if(o)return g.jsxs(g.Fragment,{children:[g.jsx(pr,{user:o,onSignOut:Mt,onShowWelcome:()=>{H(!1),Z(!0)},palette:n}),ge&&g.jsx(hr,{palette:n,onSelect:()=>{H(!1),t==null||t()}}),Et&&!ge?g.jsx(fr,{user:o,palette:n,onClose:()=>{dr(o),Z(!1)}}):null]});const xt=[m?{key:"google_firebase",label:"Continue with Google"}:null,!m&&k&&fe?{key:"google_gis",label:"Continue with Google"}:null,O?{key:"facebook",label:"Continue with Facebook"}:null,v?{key:"apple",label:"Continue with Apple"}:null].filter(Boolean);return g.jsxs("div",{style:{position:"relative"},children:[x?g.jsxs("div",{ref:_e,"data-testid":"auth-provider-menu",style:{position:"relative",display:"inline-flex",alignItems:"center"},children:[g.jsx("button",{type:"button",onClick:()=>ue(S=>!S),disabled:L,style:{border:`1px solid ${n.border||"#444"}`,borderRadius:20,background:"#111",color:n.white||"#fff",fontSize:12,fontWeight:800,letterSpacing:"0.04em",padding:"6px 12px",minHeight:44,cursor:L?"default":"pointer",opacity:L?.7:1},children:L?"Signing inâ¦":"Sign in"}),ve?g.jsx("div",{className:"auth-provider-dropdown",style:{position:"absolute",...i==="top"?{bottom:"calc(100% + 8px)",top:"auto",left:"50%",transform:"translateX(-50%)"}:{top:"115%",right:0},minWidth:230,background:n.card||"#111",border:`1px solid ${n.border||"#333"}`,borderRadius:10,boxShadow:"0 8px 24px rgba(0,0,0,0.6)",overflow:"hidden",zIndex:2700},children:xt.map(S=>g.jsx("button",{type:"button",onClick:()=>{if(ue(!1),S.key==="google_gis"){He();return}if(S.key==="google_firebase"){ze("google");return}ze(S.key)},disabled:L,style:{display:"block",width:"100%",textAlign:"left",background:"none",border:"none",borderBottom:`1px solid ${n.border||"#333"}`,color:n.white||"#fff",fontSize:13,fontWeight:700,padding:"10px 12px",cursor:L?"default":"pointer",opacity:L?.7:1},children:S.label},S.key))}):null]}):null,k?g.jsxs(g.Fragment,{children:[g.jsx("div",{ref:V,style:x?{position:"absolute",width:1,height:1,overflow:"hidden",opacity:0,pointerEvents:"none"}:{opacity:L?.6:1,pointerEvents:L?"none":"auto"}}),!x&&(!J||!ie)&&g.jsx("div",{style:{fontSize:12,fontWeight:700,color:n.white||"#fff",padding:"5px 12px",border:`1px solid ${n.border||"#444"}`,borderRadius:20,letterSpacing:"0.04em",background:"#111",cursor:"pointer",display:"inline-flex",alignItems:"center",minHeight:28},children:g.jsx("button",{type:"button",onClick:()=>{He()},style:{background:"none",border:"none",color:"inherit",font:"inherit",padding:0,margin:0,cursor:"pointer"},children:"Sign in with Google"})})]}):null,Ge&&g.jsx("div",{style:{position:"absolute",top:"110%",right:0,background:"#7f1d1d",color:"#fca5a5",fontSize:11,padding:"4px 10px",borderRadius:6,whiteSpace:"nowrap",zIndex:10},children:Ge})]})}export{Qi as F,vr as P,jr as S,wr as a,st as b,Jr as c,Pr as d,ar as e,Fr as f,Ci as g,ei as h,Di as i,Cr as j,Ar as k,Ir as l,$r as m,de as n,_r as o,Rr as p,kr as q,Or as r,Tr as s,Er as t,Pt as u,Lr as v,Mr as w,xr as x,Nr as y};
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.