1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["_assets/Text3DFlip-C0kU85bJ.js","_assets/vendor-BRR4VqFH.js","_assets/index-CgwlSxum.js","_assets/index-BhC2smQK.css"])))=>i.map(i=>d[i]); 2import{j as e,r as l,a2 as A,aT as de,aU as Ee,aV as me,aW as qe,aX as ue,aY as Re,aZ as Me,a1 as Le,w as Q,o as pe,aK as $e,S as Y,e as he,R as Oe,a4 as Fe,Z as He,aS as Je}from"./vendor-BRR4VqFH.js";import{u as _e,B as P,_ as ge,c as Ue,A as fe,b as xe,d as ye,i as Pe,j as We,k as Be,S as b,a as Ge}from"./index-CgwlSxum.js";import{C as B}from"./ContentCardCorner-BaWrlwud.js";import{g as Ye}from"./ogImageGenerator-Ckb8iYZ-.js";import{J as je}from"./JsonLd-BWNZ4f0z.js";import{u as ve}from"./lcpImagePreload-Cd57SDCO.js";import{u as re}from"./useMediaQuery-Cx-5lb_Z.js";import{u as ze}from"./useAnimationLoopKey-jYnqZkaS.js";import{L as Ve}from"./LazyImage-uvngScA7.js";import{c as Ke,u as Qe}from"./index-hUXtjE0B.js";import{R as Ze,T as Xe,C as et,c as we}from"./index-DPkBqIyt.js";import{u as tt}from"./useNewsletter-CAXZbynU.js";import{I as nt}from"./Input-B5mALb97.js";import{W as st}from"./WhatsAppChannelCard-DTv7Rnew.js";import{S as at}from"./Spinner-Be0guEb2.js";import{u as ot}from"./useDjNews-0XrFVans.js";const rt="_card_8127j_1",it="_texture_8127j_25",ct="_innerContent_8127j_34",lt="_compact_8127j_41",dt="_narrow_8127j_46",mt="_standard_8127j_50",ut="_wide_8127j_54",pt="_full_8127j_58",H={card:rt,texture:it,innerContent:ct,compact:lt,narrow:dt,standard:mt,wide:ut,full:pt},E=({children:t,maxWidth:n="standard",density:a="default",className:s})=>e.jsxs("div",{className:[H.card,H[n],a==="compact"?H.compact:"",s||""].filter(Boolean).join(" "),children:[e.jsx("div",{className:H.texture}),e.jsx(B,{position:"top-left"}),e.jsx(B,{position:"top-right"}),e.jsx(B,{position:"bottom-left"}),e.jsx(B,{position:"bottom-right"}),e.jsx("div",{className:H.innerContent,children:t})]}),ht="_section_1ylqi_1",_t="_alternate_1ylqi_25",gt="_compact_1ylqi_31",Z={section:ht,default:"_default_1ylqi_21",alternate:_t,compact:gt},C=({children:t,variant:n="default",density:a="default",className:s,ariaLabel:r,id:o})=>e.jsx("section",{id:o,className:[Z.section,Z[n],a==="compact"?Z.compact:"",s||""].filter(Boolean).join(" "),"aria-label":r,children:t}),ft="_hero_5qqj7_1",xt="_srOnly_5qqj7_10",yt="_grainOverlay_5qqj7_22",jt="_grid_5qqj7_45",vt="_left_5qqj7_52",wt="_eyebrow_5qqj7_58",bt="_headline_5qqj7_66",Nt="_welcomeMessage_5qqj7_76",Ct="_intro_5qqj7_85",kt="_ctaButtons_5qqj7_93",St="_ctaMicrocopy_5qqj7_100",At="_primaryCta_5qqj7_109",It="_secondaryCta_5qqj7_121",Tt="_right_5qqj7_133",Dt="_heroImage_5qqj7_151",Et="_marquee_5qqj7_200",qt="_marqueeTrack_5qqj7_208",Rt="_marqueeGroup_5qqj7_215",h={hero:ft,srOnly:xt,grainOverlay:yt,grid:jt,left:vt,eyebrow:wt,headline:bt,welcomeMessage:Nt,intro:Ct,ctaButtons:kt,ctaMicrocopy:St,primaryCta:At,secondaryCta:It,right:Tt,heroImage:Dt,marquee:Et,marqueeTrack:qt,marqueeGroup:Rt},Mt=l.lazy(()=>ge(()=>import("./Text3DFlip-C0kU85bJ.js"),__vite__mapDeps([0,1]))),ee="/_cdn/static/underground-dj-live-set.jpg",ie=["/_cdn/static/underground-dj-live-set-320.jpg 320w","/_cdn/static/underground-dj-live-set-480.jpg 480w","/_cdn/static/underground-dj-live-set-640.jpg 640w",`${ee} 768w`].join(", "),ce="(max-width: 900px) 55vw, 32vw",Lt=["TECHNO","ACID","EBM","INDUSTRIAL","DUB TECHNO","MINIMAL","ELECTRO","HARD TECHNO"],X=["THE PRESS","KIT FOR THE","UNDERGROUND"],$t=1e3,Ot={type:"spring",damping:15,stiffness:75,mass:1},be={fontFamily:"var(--font-family-heading)",fontWeight:700,fontSize:"clamp(2.5rem, 7vw, 6.5rem)",lineHeight:.88,letterSpacing:"-0.01em",textTransform:"uppercase",textAlign:"left"},Ft={...be,textAlign:"center"},Ht=({text:t,delayMs:n,textAlign:a})=>{const[s,r]=l.useState(n===0);return l.useEffect(()=>{if(n===0)return;const o=window.setTimeout(()=>r(!0),n);return()=>window.clearTimeout(o)},[n]),s?e.jsx(Mt,{text:t,tag:"div",animation:"enter",staggerDuration:.08,transition:Ot,color:"#ffffff",font:a==="center"?Ft:be,style:{height:"auto",width:"auto"}}):e.jsx("div",{children:t})},Jt=()=>{ve({imageUrl:ee,imageSrcSet:ie,imageSizes:ce});const{authState:t}=_e(),n=re("(max-width: 900px)"),a=re("(prefers-reduced-motion: reduce)"),s=n?"center":"left",r=ze(8e3);return e.jsxs("section",{className:h.hero,children:[e.jsx("h1",{className:h.srO
2nly,children:"DJ.COMMUNITY â Free DJ Directory, Press Kits & Bookings"}),e.jsx("div",{className:h.grainOverlay,"aria-hidden":"true"}),e.jsxs("div",{className:h.grid,children:[e.jsxs("div",{className:h.left,children:[e.jsx("div",{className:h.eyebrow,children:"THE UNDERGROUND DIRECTORY"}),e.jsx("div",{className:h.headline,children:a?X.map(o=>e.jsx("div",{children:o},o)):e.jsx(l.Suspense,{fallback:X.map(o=>e.jsx("div",{children:o},o)),children:X.map((o,c)=>e.jsx(Ht,{text:o,delayMs:c*$t,textAlign:s},`${o}-${r}`))})}),t.type==="authenticated"&&e.jsxs("div",{className:h.welcomeMessage,children:["Welcome back, ",t.user.displayName,"!"]}),e.jsx("p",{className:h.intro,children:"Profiles, mixes, gigs, and booking â one link for promoters and festivals to see everything, without the small talk."}),e.jsxs("div",{className:h.ctaButtons,children:[e.jsx(P,{asChild:!0,size:"lg",className:h.primaryCta,children:e.jsx(A,{to:"/djs",children:"Browse Directory"})}),e.jsx(P,{variant:"outline",size:"lg",asChild:!0,className:h.secondaryCta,children:e.jsx(A,{to:"/register",children:"Create Your Profile"})})]}),e.jsx("p",{className:h.ctaMicrocopy,children:"Free. No commission on bookings. Your profile's live the moment you hit submit."})]}),e.jsx("div",{className:h.right,children:e.jsx(Ve,{src:ee,alt:"High-contrast black and white photo of a DJ playing at a club",width:768,height:1024,srcSet:ie,sizes:ce,priority:!0,objectFit:"cover",decoding:"sync",className:h.heroImage})})]}),e.jsx("div",{className:h.marquee,"aria-hidden":"true",children:e.jsx("div",{className:h.marqueeTrack,children:Array.from({length:2}).map((o,c)=>e.jsxs("span",{className:h.marqueeGroup,children:[Lt.join(" · ")," · "]},c))})})]})},Ut="_sectionHeading_f8nfa_1",Pt="_missionText_f8nfa_12",Wt="_missionTagline_f8nfa_25",J={sectionHeading:Ut,missionText:Pt,missionTagline:Wt},Bt=()=>e.jsxs("div",{className:J.container,children:[e.jsx("h2",{className:J.sectionHeading,children:"Our Mission"}),e.jsx("p",{className:J.missionText,children:"DJ.COMMUNITY is a free, ad-free platform built for DJs, producers and electronic music creators worldwide. Our mission is to offer an independent space where artists can connect, share their work, learn from each other and grow without commercial pressure or gatekeeping."}),e.jsx("p",{className:J.missionText,children:"Created by DJ and digital artist, the project is rooted in the idea of vibe-coding: designing tools and spaces with the same care and intuition as crafting a DJ set. DJ.COMMUNITY exists to empower those who keep the culture alive â one track, one connection, one moment at a time."}),e.jsxs("p",{className:J.missionTagline,children:["DJ.COMMUNITY",e.jsx("br",{}),"The name says everything."]})]}),Gt="_ctaContent_ddtv4_1",Yt="_heading_ddtv4_15",zt="_description_ddtv4_28",Vt="_buttonLink_ddtv4_39",G={ctaContent:Gt,heading:Yt,description:zt,buttonLink:Vt},Kt=()=>e.jsxs("div",{className:G.ctaContent,children:[e.jsx("h2",{className:G.heading,children:"Explore All Platform Features"}),e.jsx("p",{className:G.description,children:"Discover powerful tools tailored to your role in the DJ community. Whether you're a fan, a DJ, or an admin, explore features designed specifically for you. Everything is completely free and available to all community members."}),e.jsx(P,{asChild:!0,size:"lg",children:e.jsxs(A,{to:"/features",className:G.buttonLink,children:["View All Features",e.jsx(de,{size:20})]})})]});var Qt=Object.defineProperty,j=(t,n)=>Qt(t,"name",{value:n,configurable:!0}),k="Accordion",Zt=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[ne,Xt,en]=Ke(k),[z,Ta]=qe(k,[en,we]),se=we(),tn=l.forwardRef(j(function(n,a){const{type:s,...r}=n,o=r,c=r;return e.jsx(ne.Provider,{scope:n.__scopeAccordion,children:s==="multiple"?e.jsx(on,{...c,ref:a}):e.jsx(an,{...o,ref:a})})},"Accordion")),[Ne,nn]=z(k),[Ce,sn]=z(k,{collapsible:!1}),an=l.forwardRef(j(function(n,a){const{value:s,defaultValue:r,onValueChange:o=j(()=>{},"onValueChange"),collapsible:c=!1,...p}=n,[m,_]=ue({prop:s,defaultProp:r??"",onChange:o,caller:k});return e.jsx(Ne,{scope:n.__scopeAccordion,value:l.useMemo(()=>m?[m]:[],[m]),onItemOpen:_,onItemClose:l.useCallback(()=>c&&_(""),[c,_]),children:e.jsx(Ce,{scope:n.__scopeAccordion,collapsible:c,children:e.jsx(ke,{...p,ref:a})})})},"AccordionImplSingle")),on=l.forwardRef(j(function(n,a){const{value:s,defaultValue:r,onValueChange:o=j(()=>{},"onValueChange"),...c}=n,[p,m]=ue({prop:s,defaultProp:r??[],onChange:o,caller:k}),_=l.useCallback(x=>m((y=[])=>[...y,x]),[m]),d=l.useCallback(x=>m((y=[])=>y.filter(f=>f!==x)),[m]);return e.jsx(Ne,{scope:n.__scopeAccordion,value:p,onItemOpen:_,onItemClose:d,children:e.jsx(Ce,{scope:n.__scopeAccordion,collapsible:!0,children:e.jsx(ke,{...c,ref:a})})})},"AccordionImplMultiple")),[rn,V]=z(k),ke=l.forwardRef(j(function(n,a){const{__scopeAccordion:s,disabled:r,dir:o,orientation:c="vertical",...p}=n,m=l.useRef(null),_=Re(m,a),d=Xt(s),y=Qe(o)==="ltr",f=Me(n.onKeyDown,u=>{if(!Zt.includes(u.key))return;const R=u.target,I=d().filter(K=>!K.ref.current?.disabled),N=I.findIndex(K=>
2K.ref.current===R),W=I.length;if(N===-1)return;u.preventDefault();let v=N;const F=0,D=W-1,M=j(()=>{v=N+1,v>D&&(v=F)},"moveNext"),g=j(()=>{v=N-1,v<F&&(v=D)},"movePrev");switch(u.key){case"Home":v=F;break;case"End":v=D;break;case"ArrowRight":c==="horizontal"&&(y?M():g());break;case"ArrowDown":c==="vertical"&&M();break;case"ArrowLeft":c==="horizontal"&&(y?g():M());break;case"ArrowUp":c==="vertical"&&g();break}const S=v%W;I[S].ref.current?.focus()});return e.jsx(rn,{scope:s,disabled:r,direction:o,orientation:c,children:e.jsx(ne.Slot,{scope:s,children:e.jsx(me.div,{...p,"data-orientation":c,ref:_,onKeyDown:r?void 0:f})})})},"AccordionImpl")),te="AccordionItem",[cn,ae]=z(te),ln=l.forwardRef(j(function(n,a){const{__scopeAccordion:s,value:r,...o}=n,c=V(te,s),p=nn(te,s),m=se(s),_=Ee(),d=r&&p.value.includes(r)||!1,x=c.disabled||n.disabled;return e.jsx(cn,{scope:s,open:d,disabled:x,triggerId:_,children:e.jsx(Ze,{"data-orientation":c.orientation,"data-state":oe(d),...m,...o,ref:a,disabled:x,open:d,onOpenChange:y=>{y?p.onItemOpen(r):p.onItemClose(r)}})})},"AccordionItem")),dn="AccordionHeader",mn=l.forwardRef(j(function(n,a){const{__scopeAccordion:s,...r}=n,o=V(k,s),c=ae(dn,s);return e.jsx(me.h3,{"data-orientation":o.orientation,"data-state":oe(c.open),"data-disabled":c.disabled?"":void 0,...r,ref:a})},"AccordionHeader")),le="AccordionTrigger",un=l.forwardRef(j(function(n,a){const{__scopeAccordion:s,...r}=n,o=V(k,s),c=ae(le,s),p=sn(le,s),m=se(s);return e.jsx(ne.ItemSlot,{scope:s,children:e.jsx(Xe,{"aria-disabled":c.open&&!p.collapsible||void 0,"data-orientation":o.orientation,id:c.triggerId,...m,...r,ref:a})})},"AccordionTrigger")),pn="AccordionContent",hn=l.forwardRef(j(function(n,a){const{__scopeAccordion:s,...r}=n,o=V(k,s),c=ae(pn,s),p=se(s);return e.jsx(et,{role:"region","aria-labelledby":c.triggerId,"data-orientation":o.orientation,...p,...r,ref:a,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...n.style}})},"AccordionContent"));function oe(t){return t?"open":"closed"}j(oe,"getState");var _n=tn,gn=ln,fn=mn,Se=un,Ae=hn;const xn="_item_1irw7_2",yn="_trigger_1irw7_24",jn="_header_1irw7_34",vn="_icon_1irw7_80",wn="_content_1irw7_106",bn="_contentInner_1irw7_117",O={item:xn,trigger:yn,header:jn,icon:vn,content:wn,contentInner:bn},Nn=_n,Ie=l.forwardRef(({className:t,...n},a)=>e.jsx(gn,{ref:a,className:`${O.item} ${t||""}`,...n}));Ie.displayName="AccordionItem";const Te=l.forwardRef(({className:t,children:n,...a},s)=>e.jsx(fn,{className:O.header,children:e.jsxs(Se,{ref:s,className:`${O.trigger} ${t||""}`,...a,children:[n,e.jsx(Le,{className:O.icon})]})}));Te.displayName=Se.displayName;const De=l.forwardRef(({className:t,children:n,...a},s)=>e.jsx(Ae,{ref:s,className:`${O.content} ${t||""}`,...a,children:e.jsx("div",{className:O.contentInner,children:n})}));De.displayName=Ae.displayName;const Cn="_faqSection_r0sx1_2",kn="_title_r0sx1_10",Sn="_container_r0sx1_22",An="_question_r0sx1_35",In="_answer_r0sx1_47",U={faqSection:Cn,title:kn,container:Sn,question:An,answer:In},Tn=({title:t="Frequently Asked Questions",items:n,className:a})=>{const s=l.useMemo(()=>({"@context":"https://schema.org","@type":"FAQPage",mainEntity:n.map(r=>({"@type":"Question",name:r.question,acceptedAnswer:{"@type":"Answer",text:r.answer}}))}),[n]);return e.jsxs(e.Fragment,{children:[e.jsx(je,{schema:s}),e.jsxs("section",{className:`${U.faqSection} ${a||""}`,"aria-label":"Frequently Asked Questions",children:[e.jsx("h2",{className:U.title,children:t}),e.jsx("div",{className:U.container,children:e.jsx(Nn,{type:"single",collapsible:!0,children:n.map((r,o)=>e.jsxs(Ie,{value:`item-${o}`,children:[e.jsx(Te,{className:U.question,children:r.question}),e.jsx(De,{className:U.answer,children:r.answer})]},o))})})]})]})},Dn="_honeypot_1jqau_3",En="_container_1jqau_13",qn="_headline_1jqau_25",Rn="_form_1jqau_46",Mn="_input_1jqau_59",Ln="_button_1jqau_70",L={honeypot:Dn,container:En,headline:qn,form:Rn,input:Mn,button:Ln},$n=()=>{const[t,n]=l.useState(""),[a,s]=l.useState(""),r=l.useRef(Date.now()),{mutate:o,isPending:c}=tt();l.useEffect(()=>{r.current=Date.now()},[]);const p=m=>{if(m.preventDefault(),!t){Q.error("Please enter your email address.");return}o({email:t,website:a,loadTime:r.current},{onSuccess:_=>{Q.success(_.message),n("")},onError:_=>{Q.error(_.message||"Failed to subscribe. Please try again.")}})};return e.jsxs("section",{className:L.container,children:[e.jsx("h2",{className:L.headline,children:"Stay in the Loop"}),e.jsxs("form",{onSubmit:p,className:L.form,children:[e.jsx("input",{type:"text",name:"website",value:a,onChange:m=>s(m.target.value),className:L.honeypot,tabIndex:-1,autoComplete:"off","aria-hidden":"true"}),e.jsx(nt,{type:"email",placeholder:"Enter your email address",value:t,onChange:m=>
2n(m.target.value),disabled:c,className:L.input,"aria-label":"Email address for newsletter"}),e.jsx(P,{type:"submit",variant:"primary",disabled:c,className:L.button,children:c?"Subscribing...":"Subscribe"})]})]})},On="_pageWrapper_s1f3g_1",Fn="_mainContent_s1f3g_10",Hn="_sectionHeading_s1f3g_17",Jn="_skeletonWrapper_s1f3g_31",Un="_featuresSkeletonGrid_s1f3g_45",q={pageWrapper:On,mainContent:Fn,sectionHeading:Hn,skeletonWrapper:Jn,featuresSkeletonGrid:Un},Pn=pe({limit:$e().int().min(1).max(50).optional().default(10)}),Wn=async(t,n)=>{const a=Pn.parse(t),s=new URLSearchParams({limit:a.limit.toString()}),r=await fetch(`/_api/users/recent?${s.toString()}`,{method:"GET",...n,headers:{"Content-Type":"application/json"}});if(!r.ok){const o=Y.parse(await r.text());throw new Error(o.error)}return Y.parse(await r.text())},Bn=t=>["users","recent",t],Gn=t=>he({queryKey:Bn(t),queryFn:()=>Wn(t),staleTime:300*1e3,placeholderData:n=>n}),Yn="_container_ge63w_1",zn="_ticker_ge63w_7",Vn="_tickerTrack_ge63w_19",Kn="_userCard_ge63w_40",Qn="_noLink_ge63w_71",Zn="_avatar_ge63w_84",Xn="_displayName_ge63w_98",es="_loadingState_ge63w_115",ts="_errorState_ge63w_116",ns="_emptyState_ge63w_117",ss="_compact_ge63w_190",w={container:Yn,ticker:zn,tickerTrack:Vn,userCard:Kn,noLink:Qn,avatar:Zn,displayName:Xn,loadingState:es,errorState:ts,emptyState:ns,compact:ss},as=Ue("components/RecentUsers"),os=({className:t,limit:n=20,variant:a="default"})=>{const{data:s,isLoading:r,isFetching:o,isError:c,error:p}=Gn({limit:n}),m=(d,x,y=!1)=>{const f=d.displayName?d.displayName.substring(0,2).toUpperCase():"??",u=d.avatarUrl||void 0,R=d.djSlug?"dj":d.fanSlug?"fan":null,I=e.jsxs(e.Fragment,{children:[e.jsxs(fe,{className:w.avatar,children:[e.jsx(xe,{src:u,alt:d.displayName,render
2Size:40}),e.jsx(ye,{entityType:R??void 0,children:R?void 0:f})]}),e.jsx("span",{className:w.displayName,children:d.displayName})]});let N=null;return d.djSlug?N=`/dj/${d.djSlug}`:d.fanSlug&&(N=`/fan/${d.fanSlug}`),N&&!y?e.jsx(A,{to:N,className:w.userCard,children:I},x):e.jsx("div",{className:`${w.userCard} ${w.noLink}`,"aria-hidden":y||void 0,tabIndex:y?-1:void 0,children:I},x)},_=()=>r?e.jsxs("div",{className:w.loadingState,children:[e.jsx(at,{size:"md"}),e.jsx("p",{children:"Loading recent members..."})]}):c?(as.error("Failed to load recent users",p),e.jsx("div",{className:w.errorState,children:e.jsx("p",{children:"Could not load recent users."})})):!s||s.length===0?e.jsx("div",{className:w.emptyState,children:e.jsx("p",{children:"No recent users to display."})}):e.jsxs("div",{className:w.tickerTrack,children:[s.map(d=>m(d,d.id)),s.map((d,x)=>m(d,`${d.id}-loop-${x}`,!0))]});return e.jsx("div",{className:`${w.container} ${a==="compact"?w.compact:""} ${t??""}`,children:e.jsx("div",{className:w.ticker,children:_()})})};pe({});const rs=async(t,n)=>{const s=await fetch("/_api/djs/latest-mix",{method:"GET",...n,headers:{"Content-Type":"application/json"}});if(!s.ok){const r=Y.parse(await s.text());throw new Error(r.error)}return Y.parse(await s.text())},is=["djs","latestMix"],cs=()=>he({queryKey:is,queryFn:()=>rs(),staleTime:1e3*60*5}),ls="_heading_10itn_8",ds="_headingWrapper_10itn_21",ms="_headingSkeleton_10itn_27",us="_contentCard_10itn_5",ps="_carouselContainer_10itn_38",hs="_playerRow_10itn_51",_s="_out_10itn_61",gs="_navButton_10itn_46",fs="_navButtonLeft_10itn_113",xs="_navButtonRight_10itn_117",ys="_navigationControls_10itn_126",js="_dots_10itn_134",vs="_dot_10itn_134",ws="_dotActive_10itn_158",bs="_counter_10itn_166",Ns="_djInfo_10itn_177",Cs="_avatar_10itn_186",ks="_djText_10itn_205",Ss="_djNameLink_10itn_211",As="_djName_10itn_211",Is="_djStyles_10itn_231",Ts="_embedContainer_10itn_240",Ds="_soundCloudFrame_10itn_259",Es="_fallbackContainer_10itn_266",qs="_playerFacade_10itn_282",Rs="_playerFacadeStripes_10itn_1",Ms="_playerFacadeIcon_10itn_332",Ls="_playerFacadeText_10itn_342",$s="_playerFacadeHint_10itn_350",Os="_fallbackLink_10itn_358",Fs="_footer_10itn_394",Hs="_tags_10itn_403",Js="_tag_10itn_403",Us="_compact_10itn_472",i={heading:ls,headingWrapper:ds,headingSkeleton:ms,contentCard:us,carouselContainer:ps,playerRow:hs,in:"_in_10itn_57",out:_s,navButton:gs,navButtonLeft:fs,navButtonRight:xs,navigationControls:ys,dots:js,dot:vs,dotActive:ws,counter:bs,djInfo:Ns,avatar:Cs,djText:ks,djNameLink:Ss,djName:As,djStyles:Is,embedContainer:Ts,soundCloudFrame:Ds,fallbackContainer:Es,playerFacade:qs,playerFacadeStripes:Rs,playerFacadeIcon:Ms,playerFacadeText:Ls,playerFacadeHint:$s,fallbackLink:Os,footer:Fs,tags:Hs,tag:Js,compact:Us},Ps=l.lazy(()=>ge(()=>import("./index-CgwlSxum.js").then(t=>t.U),__vite__mapDeps([2,1,3])).then(t=>({default:t.UnifiedMixPlayer}))),Ws=t=>!t||t.length===0?null:t.slice(0,2).map(n=>n.replace(/_/g," ").replace(/\b\w/g,a=>a.toUpperCase())).join(" / "),Bs=({compact:t})=>e.jsxs(e.Fragment,{children:[e.jsx("div",{className:`${i.headingWrapper} ${t?i.compact:""}`,children:e.jsx(b,{className:i.headingSkeleton,style:{height:t?"1.5rem":"2.5rem",width:t?"200px":"300px",margin:"0 auto"}})}),e.jsxs("div",{className:i.contentCard,children:[e.jsxs("div",{className:i.djInfo,children:[e.jsx(b,{style:{width:t?"40px":"64px",height:t?"40px":"64px",borderRadius:"var(--radius-full)"}}),e.jsxs("div",{className:i.djText,children:[e.jsx(b,{style:{height:t?"1.2rem":"1.5rem",width:t?"150px":"200px"}}),e.jsx(b,{style:{height:t?"0.8rem":"1rem",width:"150px",marginTop:"var(--spacing-2)"}})]})]}),e.jsx(b,{style:{height:t?"60px":"166px",width:"100%",margin:t?"var(--spacing-4) 0":"var(--spacing-6) 0"}}),e.jsxs("div",{className:i.footer,children:[!t&&e.jsxs("div",{className:i.tags,children:[e.jsx(b,{style:{height:"1.5rem",width:"80px"}}),e.jsx(b,{style:{height:"1.5rem",width:"100px"}})]}),e.jsx(b,{style:{height:t?"32px":"44px",width:"120px"}})]})]})]}),Gs=({className:t,variant:n="default"})=>{const{data:a,isLoading:s,isError:r}=cs(),o=n==="compact",c=l.useRef(null),[p,m]=l.useState(0),[_,d]=l.useState("in"),[x,y]=l.useState(!1),f=a?.mixes||[],u=f[p],R=Oe.useMemo(()=>{const g=u?.avatarUrl;if(!g)return;if(!(g.includes("cloudinary.com")||g.includes("res.cloudinary.com")))return g;const S=Math.min(Math.round((o?48:64)*2),200);return Pe(g,{width:S,height:S,crop:"fill",quality:"eco"})},[u?.avatarUrl,o]);ve({imageUrl:R??""});const I=()=>{d("out"),setTimeout(()=>{m(g=>(g-1+f.length)%f.length),d("in")},300)},N=()=>{d("out"),setTimeout(()=>{m(g=>(g+1)%f.length),d("in")},300)},W=g=>{g!==p&&(d("out"),setTimeout(()=>{m(g),d("in")},300))},v=()=>{};if(s)return e.jsx(Bs,{compact:o});if(r||!f.length||!u)return null;const F=Ws(u.genres),D=We(u.latestMixUrl),M=Be(u.latestMixUrl);return e.jsxs("div",{className:`${i.contentCard} ${t??""}`,children:[e.jsx("h2",{className:`${i.heading} ${o?i.compact:""} ${t??""}`,children:"Fresh Sounds from Our Community"}),e.jsxs("div",{className:`${i.carouselContainer} ${i[_]}`,children:[e.jsxs("div",{className:i.djInfo,children:[e.jsx(A,{to:`/dj/${u.slug}`,"aria-label":`View ${u.stageName}'s profile`,children:e.jsxs(fe,{className:i.avatar,children:[e.jsx(xe,{src:u.avatarUrl||void 0,alt:`${u.stageName}
2's avatar`,renderSize:o?48:64}),e.jsx(ye,{entityType:"dj"})]})}),e.jsxs("div",{className:i.djText,children:[e.jsx(A,{to:`/dj/${u.slug}`,className:i.djNameLink,children:e.jsx("h3",{className:i.djName,children:u.stageName})}),e.jsx("p",{className:i.djStyles,children:F??"Â "})]})]}),e.jsxs("div",{className:i.playerRow,children:[f.length>1&&e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:I,className:`${i.navButton} ${i.navButtonLeft}`,"aria-label":"Previous mix",children:e.jsx(Fe,{})}),e.jsx("button",{onClick:N,className:`${i.navButton} ${i.navButtonRight}`,"aria-label":"Next mix",children:e.jsx(de,{})})]}),e.jsx("div",{className:i.embedContainer,ref:c,onClick:v,onFocus:v,children:(D||M)&&!x?e.jsxs("button",{type:"button",className:i.playerFacade,onClick:()=>y(!0),children:[e.jsx("span",{className:i.playerFacadeIcon,children:e.jsx(He,{size:20,fill:"currentColor"})}),e.jsx("span",{className:i.playerFacadeText,children:"Load player"}),e.jsxs("span",{className:i.playerFacadeHint,children:["Streams from ",D?"SoundCloud":"an external service"]})]}):D||M?e.jsx(l.Suspense,{fallback:e.jsx(b,{style:{height:96,width:"100%"}}),children:e.jsx(Ps,{url:u.latestMixUrl,title:`${u.stageName}'s latest mix`,autoplay:!0},u.id)}):e.jsx("div",{className:i.fallbackContainer,children:e.jsxs("a",{href:u.latestMixUrl,target:"_blank",rel:"noopener noreferrer",className:i.fallbackLink,children:[e.jsx("span",{children:"Listen on External Site"}),e.jsx(Je,{size:16})]})})})]}),e.jsxs("div",{className:i.footer,children:[!o&&u.location&&e.jsx("div",{className:i.tags,children:e.jsx("span",{className:i.tag,children:u.location})}),e.jsx(P,{asChild:!0,variant:"outline",size:o?"sm":"md",className:i.profileButton,children:e.jsx(A,{to:`/dj/${u.slug}`,children:"View Profile"})})]})]}),f.length>1&&e.jsxs("div",{className:i.navigationControls,children:[e.jsx("div",{className:i.dots,children:f.map((g,S)=>e.jsx("button",{onClick:()=>W(S),className:`${i.dot} ${S===p?i.dotActive:""}`,"aria-label":`Go to mix ${S+1}`},S))}),e.jsxs("span",{className:i.counter,children:[p+1," / ",f.length]})]})]})},Ys="_sectionHeading_xa9h2_3",zs="_featuresGrid_xa9h2_15",Vs="_featureCardLink_xa9h2_24",Ks="_featureCard_xa9h2_24",Qs="_featureTitle_xa9h2_71",Zs="_featureDescription_xa9h2_88",$={sectionHeading:Ys,featuresGrid:zs,featureCardLink:Vs,featureCard:Ks,featureTitle:Qs,featureDescription:Zs},Xs=[{title:"DJ Directory",description:["Discover talented DJs globally. Browse comprehensive profiles featuring music styles, experience levels, and past performance reviews to find your perfect match.","Connect effortlessly with local residents or international headliners. Find your next collaboration partner or inspiration for your mixes within our diverse community."],link:"/djs"},{title:"Electronic Press Kit",description:["Every DJ gets a professional press kit: biography, technical rider, selected releases, press photos, and press quotes â the one link to send promoters and festivals.","Downloadable and shareable, built to be judged by bookers in seconds, not scrolled through in minutes."],link:"/djs"},{title:"Book Me",description:["A direct lead-capture form on every DJ profile. Promoters send the event details straight to the DJ's inbox â no middleman, no platform fees.","Simple by design: what matters is getting the message across quickly, not managing contracts through us."],link:"/djs"},{title:"The Wall & Forum",description:["Each DJ gets their own Wall for updates and announcements, plus a Forum where fans can ask questions directly and get an answer from the DJ themselves.","A focused, direct line between artist and audience â not a noisy public board."],link:"/djs"},{title:"AI Assistant",description:["Get personalized advice powered by AI for your career. Ask questions about music theory, equipment setup, or marketing strategies anytime you need.","Your intelligent assistant for industry insights is ready 24/7. Level up your skills with data-driven recommendations tailored specifically to your unique style."],link:"/dj-assistant"},{title:"DJ Newsletter",description:["DJs can run their own opt-in newsletter straight from their profile â fans subscribe with one click, no account needed.","New mixes, gigs, and news, sent directly. The DJ owns the list; we just handle the delivery."],link:"/djs"},{title:"Blogging Platform",description:["Showcase expertise and build your brand. Every registered DJ gets a professional platform to publish articles, tutorials, and detailed gig logs.","Engage audiences with rich content and stories. Establish yourself as a thought leader in the scene and drive traffic to your profile."],link:"/blog"},{title:"Events & Venues",description:["Discover upcoming DJ events and explore premier venues globally. Browse detailed profiles featuring capacity, equipment, location, and booking information to find your ideal performance space.","Connect directly with venue owners and submit proposals seamlessly. Stay informed."],link:"/events"},{title:"Invite Friends",description:["Grow the community by inviting DJ
2s and enthusiasts via email. Help expand our global network and bring more talent into the ecosystem.","Earn recognition for successful referrals. The more vibrant our community becomes, the more opportunities arise for everyone involved."],link:"/invitations"}],ea=()=>e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:$.sectionHeading,children:"Platform Features"}),e.jsx("div",{className:$.featuresGrid,children:Xs.map(t=>e.jsx(A,{to:t.link,className:$.featureCardLink,children:e.jsxs("article",{className:$.featureCard,children:[e.jsx("h3",{className:$.featureTitle,children:t.title}),e.jsxs("div",{className:$.featureDescription,children:[e.jsx("p",{children:t.description[0]}),e.jsx("p",{children:t.description[1]})]})]})},t.title))})]}),ta="_sectionHeading_3yfnf_3",na="_sectionSubtitle_3yfnf_14",sa="_newsGrid_3yfnf_23",aa="_newsCard_3yfnf_35",oa="_newsCategory_3yfnf_74",ra="_newsTitle_3yfnf_83",ia="_newsDate_3yfnf_100",ca="_viewAllLink_3yfnf_105",T={sectionHeading:ta,sectionSubtitle:na,newsGrid:sa,newsCard:aa,newsCategory:oa,newsTitle:ra,newsDate:ia,viewAllLink:ca},la={software:"Software",hardware:"Hardware",opportunities:"Opportunities",industry:"Industry"},da=4,ma=()=>{const{data:t}=ot({limit:da}),n=t?.items??[];return n.length===0?null:e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:T.sectionHeading,children:"DJ News"}),e.jsx("p",{className:T.sectionSubtitle,children:"The latest in DJ software, hardware and opportunities â researched daily from real sources, every item linked back to where it came from."}),e.jsx("div",{className:T.newsGrid,children:n.map(a=>e.jsxs("a",{href:a.sourceUrl,target:"_blank",rel:"noopener noreferrer",className:T.newsCard,children:[e.jsx("span",{className:T.newsCategory,children:la[a.category]??a.category}),e.jsx("h3",{className:T.newsTitle,children:a.title}),e.jsx("span",{className:T.newsDate,children:new Date(a.publishedAt).toLocaleDateString(void 0,{month:"short",day:"numeric"})})]},a.id))}),e.jsx(A,{to:"/news",className:T.viewAllLink,children:"View all DJ News â"})]})},ua=[{question:"What is DJ.COMMUNITY?",answer:"DJ.COMMUNITY is a free showcase platform for DJs: a public directory, a professional press kit (EPK) for every artist, mixes, upcoming gigs, and a direct booking request form â one link to send promoters and festivals, without the small talk."},{question:"Who can join DJ.COMMUNITY?",answer:"DJ.COMMUNITY is open to everyone passionate about DJ culture and electronic music. Whether you're a professional DJ building your public profile, a fan following your favorite artists, an event organizer seeking talent, or a music enthusiast wanting to connect with the DJ community, you're welcome to join our platform."},{question:"Is DJ.COMMUNITY free to use?",answer:"Yes, DJ.COMMUNITY is 100% free and always will be. As a non-profit organization, we believe in providing an ad-free, community-driven platform where DJs can access their public profile, EPK, booking requests, blogging platform, and AI assistant at absolutely no cost. Unlike commercial platforms, we have no ads, no hidden fees, and no premium tiers - everything is free for everyone. We're supported by voluntary donations from our community."},{question:"How do I get booked for DJ events?",answer:`Getting booked is simple on DJ.COMMUNITY. Once you create your DJ profile with your portfolio, experience, and genres, event organizers can discover you through our directory and send a booking request directly through your profile's "Book Me" form. You'll receive the request straight away and can follow up directly â no contracts or payments run through the platform.`},{question:"Can I showcase my mixes and tracks on my profile?",answer:"Absolutely! Your DJ profile is your digital portfolio. You can embed content from providers including SoundCloud, YouTube, Vimeo, Mixcloud, and many more. Share your best mixes, tracks, and performances to showcase your unique style and attract potential clients and collaborators in the music industry."}],pa="https://dj.community",Da=()=>{const{authState:t}=_e();return e.jsxs(e.Fragment,{children:[e.jsx(Ge,{title:"Free DJ Directory, Press Kits & Bookings",description:"Free, non-
2profit DJ showcase platform. Public profiles, press kits (EPK), mixes, gigs, and direct booking requests â no ads, no fees. Join now!",url:pa,image:Ye(),imageAlt:"DJ.COMMUNITY â free non-profit DJ showcase platform",imageWidth:1200,imageHeight:630,type:"website",includeSiteNameSuffix:!0}),e.jsx(je,{schema:[{"@context":"https://schema.org","@type":"Organization",name:"DJ Community",alternateName:"DJ.COMMUNITY",url:"https://dj.community",logo:{"@type":"ImageObject",url:"https://dj.community/_cdn/static/6062ce29-e61b-4538-a822-5606fa989cdd-logo-512.png"},description:"Free, non-profit DJ showcase platform with no ads. Features public DJ profiles, electronic press kits, mixes, gigs, and direct booking requests. Community-driven and open for all DJs worldwide.",foundingDate:"2025",sameAs:[],nonprofitStatus:"Non-profit organization",donationUrl:"https://dj.community/donate",contactPoint:{"@type":"ContactPoint",contactType:"General Inquiries",url:"https://dj.community/contact"}},{"@context":"https://schema.org","@type":"WebSite",name:"DJ Community",url:"https://dj.community",potentialAction:{"@type":"SearchAction",target:{"@type":"EntryPoint",urlTemplate:"https://dj.community/search?query={search_term_string}"},"query-input":"required name=search_term_string"}},{"@context":"https://schema.org","@type":"Dataset",name:"DJ.COMMUNITY DJ Directory",description:"A free, community-maintained directory of DJs, producers and creators, including public profiles, genres, locations, mixes with tracklists, press kits and upcoming events.",url:"https://dj.community/djs",keywords:["DJ directory","DJ profiles","electronic music","DJ mixes","press kits","DJ bookings","events"],isAccessibleForFree:!0,license:"https://dj.community/terms",creator:{"@type":"Organization",name:"DJ.COMMUNITY",url:"https://dj.community"},distribution:[{"@type":"DataDownload",encodingFormat:"application/xml",contentUrl:"https://dj.community/sitemap.xml"},{"@type":"DataDownload",encodingFormat:"application/rss+xml",contentUrl:"https://dj.community/_api/rss/blog"}]}]}),e.jsx("div",{className:q.pageWrapper,children:e.jsxs("main",{className:q.mainContent,children:[e.jsx(C,{id:"hero",variant:"default",density:"compact",children:e.jsx(Jt,{})}),e.jsx(C,{variant:"alternate",density:"compact",children:e.jsx(E,{maxWidth:"standard",density:"compact",children:e.jsx(Bt,{})})}),e.jsx(C,{variant:"default",density:"compact",children:e.jsx(st,{})}),e.jsx(C,{variant:"alternate",density:"compact",children:e.jsx(E,{maxWidth:"narrow",density:"compact",children:e.jsx(Kt,{})})}),e.jsx(C,{variant:"default",density:"compact",children:e.jsxs(E,{maxWidth:"wide",density:"compact",children:[e.jsx("h2",{className:q.sectionHeading,children:"Recent Members"}),e.jsx(l.Suspense,{fallback:e.jsx("div",{className:q.skeletonWrapper,children:e.jsx(b,{style:{height:"220px",width:"100%",borderRadius:"var(--radius-md)"}})}),children:e.jsx(os,{limit:20,variant:"compact"})})]})}),e.jsx(C,{variant:"alternate",density:"compact",children:e.jsx(E,{maxWidth:"wide",density:"compact",children:e.jsx(l.Suspense,{fallback:e.jsx("div",{className:q.skeletonWrapper,children:e.jsx(b,{style:{height:"300px",width:"100%",borderRadius:"var(--radius-lg)"}})}),children:e.jsx(Gs,{variant:"compact"})})})}),e.jsx(C,{variant:"default",density:"compact",children:e.jsx(E,{maxWidth:"wide",density:"compact",children:e.jsx(ma,{})})}),e.jsx(C,{variant:"alternate",density:"compact",children:e.jsx(E,{maxWidth:"wide",density:"compact",children:e.jsx(l.Suspense,{fallback:e.jsx("div",{className:q.skeletonWrapper,children:e.jsx("div",{className:q.featuresSkeletonGrid,children:[1,2,3,4,5,6].map(n=>e.jsx(b,{style:{height:"180px",width:"100%",borderRadius:"var(--radius-lg)"}},n))})}),children:e.jsx(ea,{})})})}),e.jsx(C,{variant:"default",density:"compact",children:e.jsx(E,{maxWidth:"standard",density:"compact",children:e.jsx(Tn,{items:ua})})}),e.jsx(C,{variant:"alternate",density:"compact",children:e.jsx($n,{})})]})})]})};export{Da as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.