1import{c as p,r as n,j as e,L as w,B as m,A as x,C as y}from"./index-Dr8R7KdT.js";import{B as v}from"./badge-gxGoPy5D.js";import{u as j}from"./use-seo-Cdc_qIMd.js";import{F as g}from"./free-class-button-DEcbABjy.js";import{m as u}from"./proxy-CH0Qg3EM.js";import{D as k}from"./dumbbell-B6RYTPby.js";import{C as N}from"./chevron-right-0zeeegKL.js";import{C}from"./calendar-CkhpjQfA.js";import"./dialog-MquDmw6i.js";import"./index-CySSWUEH.js";import"./index-BhQtAQVt.js";const B=p("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),f="/assets/DSC00535_1770989795888-BxQRTBcV.webp",D="/assets/DSC00535_1770989795888-768w-NgOEZME0.webp",S="/assets/DSC00535_1770989795888-1200w-BgDl4Rmo.webp",I="https://static.btwb.com/libs/webwidgets/2/webwidgets.css",O="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css";function b(s){if(document.querySelector(`link[href="${s}"]`))return;const t=document.createElement("link");t.rel="stylesheet",t.href=s,document.head.appendChild(t)}const h={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.6}}},F={visible:{transition:{staggerChildren:.1}}};function W(s){const t=new Date;return t.setDate(t.getDate()+s),t}function E(s){return s.toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric"})}function _(s){const t=s.getFullYear(),a=String(s.getMonth()+1).padStart(2,"0"),r=String(s.getDate()).padStart(2,"0");return`${t}-${a}-${r}`}function L({dateStr:s}){return n.useEffect(()=>{b(I),b(O);const t="btwb_config",a="btwb_widget_script",r=document.getElementById(t);r&&r.remove();const d=document.getElementById(a);d&&d.remove();const o=document.createElement("script");o.id=t,o.setAttribute("data-api_key","d84fa750c992cc225ed4e548425f8725"),document.body.appendChild(o);const i=document.createElement("script");return i.id=a,i.type="text/javascript",i.src="https://static.btwb.com/libs/webwidgets/2/webwidgets.js",i.async=!0,document.body.appendChild(i),()=>{const l=document.getElementById(t);l&&l.remove();const c=document.getElementById(a);c&&c.remove()}},[s]),e.jsx("div",{className:"wod-widget-container min-h-[400px]","data-testid":"widget-btwb-wod",children:e.jsx("div",{className:"btwb_webwidget","data-type":"wods","data-sections":"main","data-track_ids":"89087","data-activity_length":"0","data-leaderboard_length":"0","data-days":"0","data-date":s})})}function T({dateStr:s}){const[t,a]=n.useState(!1),r=n.useRef(null);return n.useEffect(()=>{if(t)return;const d=r.current;if(!d)return;if(typeof IntersectionObserver>"u"){a(!0);return}const o=new IntersectionObserver(i=>{i.some(l=>l.isIntersecting)&&(a(!0),o.disconnect())},{rootMargin:"400px"});return o.observe(d),()=>o.disconnect()},[t]),t?e.jsx(L,{dateStr:s}):e.jsxs("div",{ref:r,className:"min-h-[400px] flex items-center justify-center rounded-md border border-border bg-card/50",role:"status","aria-label":"Loading workout","data-testid":"wod-loading-placeholder",children:[e.jsx("div",{className:"w-8 h-8 border-2 border-primary border-t-transparent rounded-full animate-spin"}),e.jsx("span",{className:"sr-only",children:"Loading workout..."})]})}function H(){j({title:"Workout of the Day (WOD) | CrossFit Fig Grain Valley, MO",description:"Check today's Workout of the Day at CrossFit Fig in Grain Valley, MO. New WODs posted daily with scaling options for all fitness levels.",keywords:"CrossFit WOD Blue Springs, workout of the day near me, CrossFit daily workout Grain Valley, today's CrossFit workout Blue Springs MO, CrossFit programming near me, daily WOD Blue Springs",canonical:"https://www.crossfitfig.com/wod",breadcrumbs:[{name:"Home",url:"https://www.crossfitfig.com"},{name:"WOD",url:"https://www.crossfitfig.com/wod"}]});const[s,t]=n.useState(0),a=W(s),r=_(a),d=s===0,o=n.useCallback(()=>t(c=>c-1),[]),i=n.useCallback(()=>t(c=>c+1),[]),l=n.useCallback(()=>t(0),[]);return e.jsxs("div",{className:"pb-20 lg:pb-0",children:[e.jsxs("section",{className:"relative pt-28 pb-20 sm:pt-36 sm:pb-28","data-testid":"section-wod-hero",children:[e.jsxs("div",{className:"absolute inset-0",children:[e.jsx("img",{src:f,srcSet:`${D} 768w, ${S} 1200w, ${f} 1920w`,sizes:"100vw",alt:"CrossFit Fig workout near Blue Springs & Grain Valley, MO",width:1920,height:1080,className:"w-full h-full object-cover",fetchpriority:"high",decoding:"async"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-black/85 via-black/70 to-black/50"})]}),e.jsx("div",{className:"relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs(u.div,{className:"max-w-2xl",initial:"hidden",animate:"visible",variants:F,children:[e.jsx(u.div,{variants:h,children:e.jsxs(v,{variant:"outline",className:"mb-4 border-primary/50 text-white bg-white/10 backdrop-blur-sm",children:[e.jsx(k,{className:"w-3 h-3 mr-1"}),"Daily Programming"]})}),e.jsxs(u.h1,{className:"text-4xl sm:text-5xl md:text-6xl font-black text-white tracking-tight",variants:h,children:["Workout of the ",e.jsx("span",{className:"text-primary",children:"Day"})]}),e.jsx(u.p,{className:"mt-6 text-lg text-white/80 max-w-lg",variants:h,children:"Check out today's programming. Every workout is scalable to your fitness level, whether you're just starting out or a seasoned athlete."}),e.jsxs(u.div,{className:"mt-8 flex flex-wrap gap-4",variants:h,children:[e.jsx(w,{href:"/programs/get
1-started",children:e.jsxs(m,{"data-testid":"button-wod-cta",children:["Book Free Intro",e.jsx(x,{className:"w-4 h-4 ml-2"})]})}),e.jsx(w,{href:"/schedule",children:e.jsxs(m,{variant:"outline",className:"text-white border-white/30 bg-white/10 backdrop-blur-sm","data-testid":"button-wod-schedule",children:[e.jsx(y,{className:"w-4 h-4 mr-2"}),"View Schedule"]})})]})]})})]}),e.jsx("section",{className:"py-16 sm:py-24","data-testid":"section-wod-content",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"flex items-center justify-between mb-8","data-testid":"wod-date-nav",children:[e.jsx(m,{variant:"outline",size:"icon",onClick:o,"data-testid":"button-wod-prev","aria-label":"Previous day",children:e.jsx(B,{className:"w-5 h-5"})}),e.jsxs("div",{className:"text-center",children:[e.jsx("h2",{className:"text-xl sm:text-2xl font-bold","data-testid":"text-wod-date",children:E(a)}),!d&&e.jsx("button",{onClick:l,className:"text-sm text-primary mt-1 hover:underline","data-testid":"button-wod-today",children:"Back to Today"})]}),e.jsx(m,{variant:"outline",size:"icon",onClick:i,"data-testid":"button-wod-next","aria-label":"Next day",children:e.jsx(N,{className:"w-5 h-5"})})]}),e.jsx(T,{dateStr:r},r),e.jsxs("div",{className:"mt-10 rounded-lg border border-border bg-card p-6 sm:p-8","data-testid":"section-wod-internal-links",children:[e.jsx("h3",{className:"text-xl sm:text-2xl font-bold mb-3",children:"Want to Tackle This WOD with Us?"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Every workout is coached, scaled, and built for real people of every fitness level. Whether you are brand new or a seasoned athlete, we have a path forward for you."}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[e.jsx(w,{href:"/programs",children:e.jsxs(m,{variant:"outline",className:"w-full justify-start","data-testid":"link-wod-programs",children:[e.jsx(C,{className:"w-4 h-4 mr-2"}),"Explore Our Programs"]})}),e.jsx("div",{children:e.jsx(g,{className:"w-full justify-start",buttonTestId:"link-wod-free-class",iconAfter:!1,showResetLink:!0,resetLinkClassName:"text-left mx-0"})})]})]}),e.jsxs(u.div,{className:"mt-12 text-center",initial:"hidden",whileInView:"visible",viewport:{once:!0},variants:h,children:[e.jsx("p",{className:"text-muted-foreground mb-6",children:"New to CrossFit? Every workout is scalable. Our coaches will help you find the right weight and modifications for your fitness level."}
1),e.jsx(w,{href:"/programs/get-started",children:e.jsxs(m,{"data-testid":"button-wod-bottom-cta",children:["Start Your Free Intro Session",e.jsx(x,{className:"w-4 h-4 ml-2"})]})})]})]})}),e.jsx("div",{className:"lg:hidden fixed bottom-0 left-0 right-0 z-40 bg-background/95 backdrop-blur-sm border-t border-border p-3 shadow-lg","data-testid":"sticky-cta-mobile",style:{paddingBottom:"calc(0.75rem + env(safe-area-inset-bottom))"},children:e.jsx(g,{className:"w-full",size:"lg",buttonTestId:"button-sticky-free-class",showResetLink:!0})})]})}export{H 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.