1import{c as w,r as f,j as e,d as y,p as I,T as N,g as O,i as R,e as T,f as V,b as H,M as P}from"./index-CRYtOH1B.js";import{c as q,a as B,B as K,A as L}from"./button-ZhEPodhl.js";import{H as U}from"./Hero-7aZHcGZ-.js";import{U as D,y as $,T as z}from"./youth-riders-D_MjCoMF.js";function F(t){if(Array.isArray(t))return t.flatMap(o=>F(o));if(typeof t!="string")return[];const s=[];let r=0,n,i,a,l,d;const c=()=>{for(;r<t.length&&/\s/.test(t.charAt(r));)r+=1;return r<t.length},m=()=>(i=t.charAt(r),i!=="="&&i!==";"&&i!==",");for(;r<t.length;){for(n=r,d=!1;c();)if(i=t.charAt(r),i===","){for(a=r,r+=1,c(),l=r;r<t.length&&m();)r+=1;r<t.length&&t.charAt(r)==="="?(d=!0,r=l,s.push(t.slice(n,a)),n=r):r=a+1}else r+=1;(!d||r>=t.length)&&s.push(t.slice(n))}return s}function J(t){return t instanceof Headers?t:Array.isArray(t)?new Headers(t):typeof t=="object"?new Headers(t):null}function G(...t){return t.reduce((s,r)=>{const n=J(r);if(!n)return s;for(const[i,a]of n.entries())i==="set-cookie"?F(a).forEach(l=>s.append("set-cookie",l)):s.set(i,a);return s},new Headers)}const Y=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],g=w("check",Y);const W=[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}]],Q=w("heart",W);const X=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}
1],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Z=w("sparkles",X),j=f.forwardRef(({className:t,type:s,...r},n)=>e.jsx("input",{type:s,className:y("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:n,...r}));j.displayName="Input";const M=f.forwardRef(({className:t,...s},r)=>e.jsx("textarea",{className:y("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:r,...s}));M.displayName="Textarea";var ee=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],re=ee.reduce((t,s)=>{const r=q(`Primitive.${s}`),n=f.forwardRef((i,a)=>{const{asChild:l,...d}=i,c=l?r:s;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(c,{...d,ref:a})});return n.displayName=`Primitive.${s}`,{...t,[s]:n}},{}),te="Label",_=f.forwardRef((t,s)=>e.jsx(re.label,{...t,ref:s,onMouseDown:r=>{r.target.closest("button, input, select, textarea")||(t.onMouseDown?.(r),!r.defaultPrevented&&r.detail>1&&r.preventDefault())}}));_.displayName=te;var C=_;const se=B("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),p=f.forwardRef(({className:t,...s},r)=>e.jsx(C,{ref:r,className:y(se(),t),...s}));p.displayName=C.displayName;const ae="/assets/sif-7-BBJb4J0t.jpg",ne="/assets/sif-1-Y0hJBfWq.jpg";function k(t){return t!=="__proto__"&&t!=="constructor"&&t!=="prototype"}function v(t,s){const r=Object.create(null);if(t)for(const n of Object.keys(t))k(n)&&(r[n]=t[n]);if(s&&typeof s=="object")for(const n of Object.keys(s))k(n)&&(r[n]=s[n]);return r}function A(t){return Object.create(null)}var E=()=>{throw new Error("createServerOnlyFn() functions can only be called on the server!")},h=(t,s)=>{const r=s||t||{};return typeof r.method>"u"&&(r.method="GET"),Object.assign(a=>h(void 0,{...r,...a}),{options:r,middleware:a=>{const l=[...r.middleware||[]];a.map(c=>{N in c?c.options.middleware&&l.push(...c.options.middleware):l.push(c)});const d=h(void 0,{...r,middleware:l});return d[N]=!0,d},inputValidator:a=>h(void 0,{...r,inputValidator:a}),handler:(...a)=>{const[l,d]=a,c={...r,extractedFn:l,serverFn:d},m=[...c.middleware||[],de(c)];return l.method=r.method,Object.assign(async o=>{const u=await S(m,"client",{...l,...c,data:o?.data,headers:o?.headers,signal:o?.signal,fetch:o?.fetch,context:A()}),x=I(u.error);if(x)throw x;if(u.error)throw u.error;return u.result},{...l,method:r.method,__executeServer:async o=>{const u=E(),x=u.contextAfterGlobalMiddlewares;return await S(m,"server",{...l,...o,serverFnMeta:l.serverFnMeta,context:v(o.context,x),request:u.request}).then(b=>({result:b.result,error:b.error,context:b.sendContext}))}})}})};async function S(t,s,r){let n=le([...O()?.functionMiddleware||[],...t]);if(s==="server"){const a=E();a?.executedRequestMiddlewares&&(n=n.filter(l=>!a.executedRequestMiddlewares.has(l)))}const i=async a=>{const l=n.shift();if(!l)return a;try{"inputValidator"in l.options&&l.options.inputValidator&&s==="server"&&(a.data=await ie(l.options.inputValidator,a.data));let d;if(s==="client"?"client"in l.options&&(d=l.options.client):"server"in l.options&&(d=l.options.server),d){const m=await d({...a,next:async(o={})=>{const u=await i({...a,...o,context:v(a.context,o.context),sendContext:v(a.sendContext,o.sendContext),headers:G(a.headers,o.headers),_callSiteFetch:a._callSiteFetch,fetch:a._callSiteFetch??o.fetch??a.fetch,result:o.result!==void 0?o.result:o instanceof Response?o:a.result,error:o.error??a.error});if(u.error)throw u.error;return u}});if(R(m))return{...a,error:m};if(m instanceof Response)return{...a,result:m};if(!m)throw new Error("User middleware returned undefined. You must call next() or return a result in your middlewares.");return m}return i(a)}catch(d){return{...a,error:d}}};return i({...r,headers:r.headers||{},sendContext:r.sendContext||{},context:r.context||A(),_callSiteFetch:r.fetch})}function le(t,s=100){const r=new Set,n=[],i=(a,l)=>{if(l>s)throw new Error(`Middleware nesting depth exceeded maximum of ${s}. Check for circular references.`);a.forEach(d=>{d.options.middleware&&i(d.options.middleware,l+1),r.has(d)||(r.add(d),n.push(d))})};return i(t,0),n}async function ie(t,s){if(t==null)return{};if("~standard"in t){const r=await t["~standard"].validate(s);if(r.issues)throw new Error(JSON.stringify(r.issues,void 0,2));return r.value}if("parse"in t)return t.parse(s);if(typeof t=="function")return t(s);throw new Error("Invalid validator type!")}function de(t){return{"~types":void 0,options:{inputValidator:t.inputValidator,client:async({next:s,sendContext:r,fetch:n,...i})=>{const a={...i,context:r,fetch:n};return s(await t.extractedFn?.(a))},server:async({next:s,...r})=>{const n=await t.serverFn?.(r);return s({...r,result:n})}}}}const oe=h({method:"POST"}).handler(T("5c2c2baac7dda6f4154769879a25de0fa08bb7daff3cdcf2d805ddacf710ddbf")),ce=[{icon:Q,title:"Plads til alle",desc:"Motion eller licens, ung eller voksen â vi har et hold til dig."},{icon:D,title:"Stærkt fællesskab",desc:"Træning, ture, klubaftener og sociale arrangementer hele Ã¥ret."},{icon:Z,title:"Ambition & glæde",desc:"Vi dyrker bÃ¥de præstation og passion â pÃ¥ samme cykel."}],me=[{n:"01",title:"Kontakt klubben",desc:e.jsxs(e.Fragment,{children:["Send os en"," ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary underline-offset-2 hover:underline",children:"mail"})," ","eller skriv pÃ¥"," ",e.jsx("a",{href:"https://www.facebook.com/Landevejscykling",target:"_blank",rel:"noreferrer",className:"text-primary underline-offset-2 hover:underline",children:"Facebook"})," ","eller"," ",e.jsx("a",{href:"https://www.instagram.com/sifcykling/",target:"_blank",rel:"noreferrer",className:"text-primary underline-offset-2 hover:underline",children:"Instagram"})," ","â sÃ¥ finder vi en god dag at mødes."]})},{n:"02",title:"Prøvetræning",desc:"Tag cyklen med til Søholt og kør med pÃ¥ et hold der passer dit niveau."},{n:"03",title:"Tilmeld via Holdsport",desc:"NÃ¥r du er klar, indmelder vi dig i Holdsport og sørger for, at kontingentet bliver opkrævet."}];function pe(){const[t,s]=f.useState("idle"),[r,n]=f.useState(null);return e.jsxs(e.Fragment,{children:[e.jsx(U,{image:V,imageAlt:"Cykelhold og fællesskab i Silkeborg IF",imageClassName:"object-cover object-center md:object-[65%_25%]",label:"Klubben",title:e.jsxs(e.Fragment,{children:["Etableret 2001 â ",e.jsx("span",{className:"text-primary",children:"for alle der elsker cykling"})]}),description:"Silkeborg IF Cykling er en selvstændig afdeling under Silkeborg IF. Vi favner motionister, ungdom og licensryttere â og vi tror pÃ¥, at cykling er bedst, nÃ¥r man kører sammen."}),e.jsx("section",{className:"mx-auto max-w-6xl px-4 py-16 md:px-6",children:e.jsxs("div",{className:"grid items-center gap-10 md:grid-cols-2",children:[e.jsx("div",{className:"overflow-hidden rounded-2xl shadow-[var(--shadow-card)] md:aspect-[9/5]",children:e.jsx("img",{src:ne,alt:"Klubben fejrer en sejr",width:1280,height:960,loading:"lazy",className:"h-full w-full object-cover"})}),e.jsxs("div",{children:[e.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-3 py-1 text-[11px] font-bold uppercase tracking-wider text-primary",children:"Om os"}),e.jsx("h2",{className:"mt-3 text-3xl font-bold tracking-tight text-foreground md:text-4xl",children:"Cykelklubben i hjertet af Silkeborg."}),e.jsx("p",{className:"mt-4 text-muted-foreground",children:"Siden 2001 har vi samlet cyklister pÃ¥ tværs af aldre og ambitioner. Vi træner sammen, vi rejser sammen â og vi bygger fællesskab bÃ¥de i feltet og bag kulisserne."}),e.jsx("div",{className:"mt-8 grid gap-4 sm:grid-cols-3",children:ce.map(({icon:i,title:a,desc:l})=>e.jsxs("div",{className:"rounded-xl border border-border bg-card p-4 shadow-[var(--shadow-card)]",children:[e.jsx(i,{className:"h-5 w-5 text-primary"}),e.jsx("p",{className:"mt-3 text-sm font-bold text-foreground",children:a}),e.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:l})]},a))})]})]})}),e.jsx("section",{id:"ungdom",className:"bg-secondary/40 py-16 scroll-mt-20",children:e.jsxs("div",{className:"mx-auto grid max-w-6xl items-center gap-10 px-4 md:grid-cols-2 md:px-6",children:[e.jsxs("div",{children:[e.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-3 py-1 text-[11px] font-bold uppercase tracking-wider text-primary",children:"Ungdomsafdeling"}),e.jsx("h2",{className:"mt-3 text-3xl font-bold tracking-tight text-foreground md:text-4xl",children:"Cykling skal være sjovt â fra start."}),e.jsx("p",{className:"mt-4 text-muted-foreground",children:"Vi tager imod børn fra 9 Ã¥r. Vores ungdomstrænere fokuserer pÃ¥ teknik, tryghed og glæde ved cyklen â pÃ¥ landevej."}),e.jsx("ul",{className:"mt-6 space-y-3",children:["LÃ¥necykler til prøvetræning","Indledende trænersamtale med forældre","Tryg start i et lille hold"].map(i=>e.jsxs("li",{className:"flex items-start gap-3 text-sm text-foreground",children:[e.jsx(g,{className:"mt-0.5 h-5 w-5 text-primary"}),i]},i))})]}),e.jsx("div",{className:"overflow-hidden rounded-2xl shadow-[var(--shadow-card)]",children:e.jsx("img",{src:$,alt:"Ungdomsryttere pÃ¥ landevejstur",width:1280,height:960,loading:"lazy",className:"h-full w-full object-cover"})})]})}),e.jsx("section",{id:"bliv-medlem",className:"mx-auto max-w-6xl px-4 py-16 md:px-6 scroll-mt-20",children:e.jsxs("div",{className:"grid items-start gap-10 lg:grid-cols-[0.95fr_1.05fr]",children:[e.jsxs("div",{children:[e.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-3 py-1 text-[11px] font-bold uppercase tracking-wider text-primary",children:"Bliv medlem"}),e.jsx("h2",{className:"mt-3 text-3xl font-bold tracking-tight text-foreground md:text-4xl",children:"SÃ¥dan kommer du i gang."}),e.jsx("p",{className:"mt-3 text-muted-foreground",children:"Tre enkle skridt fra første mail til din første træning i klubtrøjen."}),e.jsx("div",{className:"mt-8 overflow-hidden rounded-2xl shadow-[var(--shadow-card)]",children:e.jsx("img",{src:ae,alt:"Unge ryttere mødes ved klubben inden træning",width:2048,height:1536,loading:"lazy",className:"aspect-[4/3] h-full w-full object-cover object-[45%_45%]"})})]}),e.jsx("div",{className:"grid gap-5 sm:grid-cols-3 lg:grid-cols-1",children:me.map(i=>e.jsxs("div",{className:"relative rounded-2xl border border-border bg-card p-6 shadow-[var(--shadow-card)]",children:[e.jsx("span",{className:"text-4xl font-extrabold text-primary/20",children:i.n}),e.jsx("h3",{className:"mt-3 text-xl font-bold text-foreground",children:i.title}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:i.desc})]},i.n))})]})}),e.jsx("section",{id:"kontingent",className:"bg-secondary/40 py-16 scroll-mt-20",children:e.jsx("div",{className:"mx-auto max-w-6xl px-4 md:px-6",children:e.jsxs("div",{className:"grid items-center gap-8 md:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-3 py-1 text-[11px] font-bold uppercase tracking-wider text-primary",children:"Kontingent & licens"}),e.jsx("h2",{className:"mt-3 text-3xl font-bold tracking-tight text-foreground md:text-4xl",children:"Klart og enkelt."}),e.jsx("p",{className:"mt-4 text-muted-foreground",children:"Som medlem fÃ¥r du adgang til al fællestræning, sociale arrangementer og klubbens fællesskab. Licensryttere kan løse licens via DCU."}),e.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:"Klubben er drevet af frivillige â vi forventer at alle medlemmer bidrager med en lille indsats i løbet af Ã¥ret."})]}),e.jsxs("div",{className:"rounded-2xl bg-[image:var(--gradient-primary)] p-8 text-primary-foreground shadow-[var(--shadow-elevated)]",children:[e.jsx(z,{className:"h-7 w-7"}),e.jsx("p",{className:"mt-4 text-sm font-medium uppercase tracking-widest text-primary-foreground
1/80",children:"Medlemskab"}),e.jsx("p",{className:"mt-3 text-sm text-primary-foreground/90",children:"Send en mail med navn, alder, telefon og e-mail. SÃ¥ indmelder vi dig i Holdsport, sikrer at du bliver inviteret til det rette hold og sørger for opkrævning af kontingent."}),e.jsxs("ul",{className:"mt-6 space-y-2 text-sm",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(g,{className:"h-4 w-4"}),"Al fællestræning inkluderet"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(g,{className:"h-4 w-4"}),"150 kr engangs indmeldelsesgebyr"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(g,{className:"h-4 w-4"}),"375 kr / halvÃ¥r for ungdom/junior/senior (17+)"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(g,{className:"h-4 w-4"}),"2 dages frivilligt arbejde for klubben"]})]})]})]})})}),e.jsx("section",{id:"kontakt",className:"mx-auto max-w-6xl px-4 py-16 md:px-6 scroll-mt-20",children:e.jsxs("div",{className:"grid gap-8 md:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-3 py-1 text-[11px] font-bold uppercase tracking-wider text-primary",children:"Kontakt"}),e.jsx("h2",{className:"mt-3 text-3xl font-bold tracking-tight text-foreground md:text-4xl",children:"Skriv til os."}),e.jsx("p",{className:"mt-3 text-muted-foreground",children:"SpørgsmÃ¥l om træning, ungdom eller medlemskab? Vi vender tilbage hurtigst muligt."}),e.jsxs("ul",{className:"mt-8 space-y-4 text-sm",children:[e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(H,{className:"mt-0.5 h-5 w-5 text-primary"}),e.jsx("a",{href:"mailto:[email protected]",className:"text-foreground hover:text-primary",children:"[email protected]"})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(P,{className:"mt-0.5 h-5 w-5 text-primary"}),e.jsx("span",{className:"text-foreground",children:"Søholt Idrætspark, Ansvej 112B, 8600 Silkeborg"})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("img",{src:"https://cdn.simpleicons.org/facebook/006097",alt:"Facebook",className:"mt-0.5 h-5 w-5"}),e.jsx("a",{href:"https://www.facebook.com/Landevejscykling",target:"_blank",rel:"noreferrer",className:"text-foreground hover:text-primary",children:"Følg os pÃ¥ Facebook"})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("img",{src:"https://cdn.simpleicons.org/instagram/E4405F",alt:"Instagram",className:"mt-0.5 h-5 w-5"}),e.jsx("a",{href:"https://www.instagram.com/sifcykling/",target:"_blank",rel:"noreferrer",className:"text-foreground hover:text-primary",children:"Følg os pÃ¥ Instagram"})]})]})]}),e.jsx("form",{"data-1p-ignore":!0,"data-bwignore":!0,"data-form-type":"other","data-lpignore":"true",onSubmit:async i=>{i.preventDefault();const a=i.currentTarget,l=new FormData(a);s("sending"),n(null);try{await oe({data:l}),a.reset(),s("sent")}catch(d){s("error"),n(d instanceof Error?d.message:"Noget gik galt. Prøv igen.")}},className:"rounded-2xl border border-border bg-card p-6 shadow-[var(--shadow-card)] md:p-8",children:e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(p,{htmlFor:"name",children:"Navn"}),e.jsx(j,{id:"name",name:"name",autoComplete:"name","data-1p-ignore":!0,"data-bwignore":!0,"data-form-type":"other","data-lpignore":"true",required:!0,placeholder:"Dit navn"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(p,{htmlFor:"email",children:"E-mail"}),e.jsx(j,{id:"email",name:"email",type:"email",autoComplete:"email","data-1p-ignore":!0,"data-bwignore":!0,"data-form-type":"other","data-lpignore":"true",required:!0,placeholder:"[email protected]"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(p,{htmlFor:"message",children:"Besked"}),e.jsx(M,{id:"message",name:"message",autoComplete:"off","data-1p-ignore":!0,"data-bwignore":!0,"data-form-type":"other","data-lpignore":"true",required:!0,rows:5,placeholder:"Hvad kan vi hjælpe med?"})]}),e.jsxs(K,{type:"submit",size:"lg",className:"mt-2",disabled:t==="sending",children:[t==="sending"?"Senderâ¦":"Send besked",e.jsx(L,{className:"ml-1 h-4 w-4"})]}),t==="sent"&&e.jsx("p",{className:"text-sm text-primary",children:"Tak! Vi vender tilbage snarest."}),t==="error"&&r&&e.jsx("p",{className:"text-sm text-destructive",children:r})]})})]})})]})}export{pe as component};
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.