PageSourceSearch

https://chantillyfamilymartialarts.com/assets/ProgramPage-nQc2DTiN.js

js chantillyfamilymartialarts.com collected 2026-10-10 02:32:53 UTC 12,855 bytes, 6 lines download raw bytes

1import{c as I,j as e,m as r,C as m,L as f,A as l,a as k,B as P,r as S,S as V,u as $,b as C,N as R,d as A,J as B,e as E,s as F,H as L,F as W,f as H}from"./app-BJZ7ffCd.js";import{B as M}from"./Breadcrumbs-sHvaNMVG.js";import{F as q}from"./FaqSection-B0Bg57Dq.js";import{P as Y}from"./PageHero-DaPCVODd.js";import{B as z}from"./BirthdayInquiryDialog-ndRuIV_s.js";import{g as D}from"./instructors-BRJbj24L.js";/**
2 * @license lucide-react v0.462.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const T=I("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]),U=[{title:"A Warm Welcome",desc:"You'll be greeted by our staff and shown around the school."},{title:"Age-Appropriate Instruction",desc:"Classes are structured by age and experience so everyone feels comfortable."},{title:"Supportive Environment",desc:"No pressure, no comparison, just encouragement and clear instruction."},{title:"Simple, Guided Movements",desc:"Beginners are guided step by step. No experience needed."},{title:"Clear Next Steps",desc:"After class, we'll answer questions and help you decide what's best."}],_=["No prior experience","No pressure to perform","No forced sparring","No long-term commitment before trying"],J="Every membership includes Unlimited Classes because students who train consistently become more skilled, more confident, and more successful.";function O({badge:x,title:c,description:t,ageRange:u,details:d,benefitsHeading:p="What You'll Learn",benefits:b,schedule:N,images:i,instructors:o,deal:n,video:h,outcome:y,scheduleInquiry:g}){const w=!!h,j=i&&i.length>0?i[0]:null;return e.jsxs(e.Fragment,{children:[e.jsx(Y,{badge:x,title:c,description:g?t:`${t} ${J}`}),w&&e.jsx("section",{className:"py-12 md:py-16 bg-secondary",children:e.jsxs("div",{className:"container mx-auto px-4 max-w-5xl space-y-6",children:[h&&e.jsx(r.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"rounded-xl overflow-hidden shadow-lg border border-border max-w-3xl mx-auto",children:e.jsx("video",{src:h,controls:!0,playsInline:!0,preload:"metadata",className:"w-full aspect-video bg-black",children:"Your browser does not support the video tag."})}),i&&i.length>0&&e.jsx("div",{className:`grid gap-4 ${i.length===1?"grid-cols-1 max-w-2xl mx-auto":i.length===2?"grid-cols-1 sm:grid-cols-2 max-w-3xl mx-auto":"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3"}`,children:i.map((s,a)=>e.jsx(r.div,{initial:{opacity:0,scale:.95},whileInView:{opacity:1,scale:1},viewport:{once:!0},transition:{duration:.5,delay:a*.1},className:`rounded-xl overflow-hidden ${i.length===1?"":"aspect-[4/3]"}`,children:e.jsx("img",{src:s,alt:`${c} training`,loading:"lazy",decoding:"async",className:i.length===1?"w-full h-auto":"w-full h-full object-cover"})},a))})]})}),e.jsx("section",{className:"py-16 md:py-24 bg-background",children:e.jsx("div",{className:"container mx-auto px-4 max-w-6xl",children:e.jsxs("div",{className:"grid lg:grid-cols-2 gap-10 lg:gap-14 items-start",children:[e.jsxs(r.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-foreground mb-4",children:"What We Offer"}),e.jsx("p",{className:"text-muted-foreground leading-relaxed mb-8",children:d}),e.jsx("h3",{className:"text-lg md:text-xl font-bold text-foreground mb-4",children:p}),e.jsx("ul",{className:"space-y-3",children:b.map((s,a)=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(m,{className:"w-5 h-5 text-accent shrink-0 mt-0.5"}),e.jsx("span",{className:"text-muted-foreground",children:s})]},a))}),y&&e.jsxs(f,{to:`/outcomes#${y}`,className:"mt-8 inline-flex items-center gap-2 rounded-md bg-accent px-5 py-2.5 text-sm font-semibold text-accent-foreground hover:bg-accent/90 transition-colors",children:["Explore the outcomes our students experience",e.jsx(l,{className:"w-4 h-4"})]})]}),e.jsxs("div",{className:"space-y-8",children:[e.jsx(r.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"aspect-video rounded-xl overflow-hidden bg-primary",children:j?e.jsx("img",{src:j,alt:`${c} at Chantilly Family Martial Arts`,loading:"lazy",decoding:"async",className:"w-full h-full object-cover"}):e.jsxs("div",{className:"w-full h-full flex flex-col items-center justify-center gap-2 text-primary-foreground
6/40",children:[e.jsx(T,{className:"w-10 h-10"}),e.jsx("span",{className:"text-xs font-body uppercase tracking-[0.2em]",children:"Program photo coming soon"})]})}),e.jsxs(r.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6,delay:.1},className:"card-neu p-6",children:[e.jsx("h3",{className:"text-lg font-bold text-foreground mb-1",children:"Schedule"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:u}),e.jsx("div",{className:"divide-y divide-border",children:N.map((s,a)=>e.jsxs("div",{className:"flex items-center justify-between py-3",children:[e.jsx("span",{className:"font-medium text-foreground",children:s.day}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[s.time," • ",s.duration]})]},a))}),!g&&e.jsxs("div",{className:"mt-4 flex items-center gap-2 rounded-md bg-accent/10 px-3 py-2.5 text-sm font-semibold text-accent",children:[e.jsx(m,{className:"w-4 h-4 shrink-0"}),"All memberships include Unlimited Classes"]}),g?e.jsx(z,{children:e.jsxs("button",{type:"button",className:"mt-5 w-full flex items-center justify-center gap-2 rounded-md bg-accent px-5 py-2.5 text-sm font-semibold text-accent-foreground hover:bg-accent/90 transition-colors",children:["Inquire for More Info",e.jsx(l,{className:"w-4 h-4"})]})}):e.jsxs(f,{to:"/schedule",className:"mt-5 flex items-center justify-center gap-2 rounded-md bg-accent px-5 py-2.5 text-sm font-semibold text-accent-foreground hover:bg-accent/90 transition-colors",children:["View Full Schedule",e.jsx(l,{className:"w-4 h-4"})]})]}),n&&e.jsxs("div",{className:"card-neu rounded-xl overflow-hidden shadow-lg",children:[e.jsxs("div",{className:"bg-primary px-6 py-3 text-center relative",children:[e.jsx("h3",{className:"text-lg font-bold text-primary-foreground uppercase tracking-wide",children:n.title}),e.jsx("span",{className:"absolute top-2.5 right-3 bg-accent text-accent-foreground text-xs font-bold px-2 py-1 rounded-full",children:n.discount})]}),e.jsxs("div",{className:"p-5",children:[e.jsx("p",{className:"text-muted-foreground text-sm mb-3",children:n.subtitle}),e.jsx("ul",{className:"space-y-2 mb-4",children:n.perks.map((s,a)=>e.jsxs("li",{className:"flex items-center gap-3",children:[e.jsx(m,{className:"w-4 h-4 text-primary shrink-0"}),e.jsx("span",{className:"text-foreground font-medium text-sm",children:s})]},a))}),e.jsxs("div",{className:"flex items-center justify-between border-t border-border pt-3",children:[e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:"text-muted-foreground line-through text-sm",children:n.originalPrice}),e.jsx("span",{className:"text-2xl font-bold text-foreground",children:n.salePrice})]}),e.jsx(k,{children:e.jsxs(P,{variant:"gold",size:"default",children:[n.ctaLabel||"Enroll Now",e.jsx(l,{className:"ml-2 h-4 w-4"})]})})]})]})]})]})]})})}),o&&o.length>0&&e.jsx("section",{className:"py-16 md:py-24 bg-secondary",children:e.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[e.jsx(r.h2,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-3xl md:text-4xl font-bold text-foreground text-center mb-12",children:"What to Expect in Your First Class"}),e.jsx("div",{className:"grid sm:grid-cols-2 gap-x-10 gap-y-8",children:U.map((s,a)=>e.jsxs(r.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:a*.08},className:"flex gap-4",children:[e.jsx("span",{className:"shrink-0 w-9 h-9 rounded-full bg-accent text-accent-foreground font-bold flex items-center justify-center",children:a+1}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-foreground",children:s.title}),e.jsx("p",{className:"text-muted-foreground mt-1 leading-relaxed",children:s.desc})]})]},s.title))}),e.jsxs(r.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"card-neu rounded-2xl p-6 md:p-8 mt-12",children:[e.jsx("h3",{className:"font-bold text-foreground text-center mb-5",children:"What You Don't Need to Worry About"}),e.jsx("div",{className:"grid sm:grid-cols-2 gap-3 max-w-xl mx-auto",children:_.map(s=>e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(m,{className:"w-5 h-5 text-accent shrink-0"}),e.jsx("span",{className:"text-muted-foreground",children:s})]},s))})]})]})}),o&&o.length>0&&e.jsx("section",{className:"py-20 md:py-28 bg-background",children:e.jsxs("div",{className:"container mx-auto px-4",children:[e.jsx(r.h2,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-3xl md:text-4xl font-bold text-foreground text-center mb-12 uppercase tracking-wide",children:"Program Instructors"}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 ga
6p-5 max-w-5xl mx-auto",children:o.map((s,a)=>e.jsx(r.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:a*.08},className:"card-neu rounded-xl overflow-hidden",children:e.jsxs(f,{to:s.id?`/instructors#${s.id}`:"/instructors","aria-label":`Read more about ${s.name} on the instructors page`,className:"block group focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2",children:[e.jsx("div",{className:"aspect-[3/4] overflow-hidden bg-white border-b-4 border-b-accent",children:e.jsx("img",{src:s.image,alt:s.name,loading:"lazy",decoding:"async",className:"w-full h-full object-cover transition-transform duration-300 group-hover:scale-105",style:{objectPosition:s.photoPosition}})}),e.jsxs("div",{className:"bg-primary px-3 py-3 text-center",children:[e.jsx("span",{className:"block text-primary-foreground font-bold text-xs uppercase tracking-wide font-display leading-tight",children:s.name}),s.title&&e.jsx("span",{className:"block text-primary-foreground/60 text-[11px] font-body mt-0.5",children:s.title})]})]})},s.name))})]})}),e.jsx("section",{className:"py-16 md:py-24 bg-secondary",children:e.jsxs("div",{className:"container mx-auto px-4",children:[e.jsx(r.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-12",children:e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-foreground",children:"Real Stories. Real Results."})}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 max-w-6xl mx-auto",children:S.map((s,a)=>e.jsxs(r.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:a*.1},className:"card-neu p-7 flex flex-col",children:[e.jsx("div",{className:"flex gap-0.5 mb-3",children:[...Array(5)].map((G,v)=>e.jsx(V,{className:"w-4 h-4 fill-[hsl(var(--accent))] text-[hsl(var(--accent))]"},v))}),e.jsx("p",{className:"text-foreground/80 font-body leading-relaxed flex-1",children:s.quote}),e.jsxs("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",className:"mt-3 inline-flex items-center gap-1 self-start text-sm font-semibold text-accent hover:underline",children:["Read More ",e.jsx(l,{className:"w-3.5 h-3.5"})]}),e.jsxs("div",{className:"mt-5 pt-4 border-t border-border",children:[e.jsx("p",{className:"text-sm font-bold text-foreground",children:s.name}),e.jsx("p",{className:"text-xs text-muted-foreground font-body",children:s.when})]})]},s.name))})]})})]})}const te=()=>{const{slug:x}=$(),t=C().find(p=>p.slug===x);if(!t)return e.jsx(R,{to:"/",replace:!0});const u=D(t.id),d=`class-${t.slug}`;return e.jsxs(e.Fragment,{children:[e.jsx(A,{pageKey:d}),e.jsx(B,{data:E({name:t.name,description:t.description,url:`${F.siteUrl}/classes/${t.slug}`,audienceType:t.ageRange})}),e.jsx(L,{}),e.jsx(M,{items:[{label:"Home",href:"/"},{label:"Programs",href:"/"},{label:t.name,href:`/classes/${t.slug}`}]}),e.jsx(O,{badge:t.badge,title:t.name,description:t.description,ageRange:t.ageRange,details:t.details,benefitsHeading:t.benefitsHeading,benefits:t.benefits,schedule:t.schedule,images:t.images,instructors:t.hideInstructors?void 0:u,deal:t.deal,video:t.video,outcome:t.outcome,scheduleInquiry:t.scheduleInquiry}),e.jsx(q,{pageKey:d}),e.jsx(W,{}),e.jsx(H,{})]})};export{te 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.