PageSourceSearch

https://cangoats.com/assets/ProgramsPage-DiQjR1Fl.js

js cangoats.com collected 2026-10-04 17:34:06 UTC 3,331 bytes, 1 lines download raw bytes

1import{u,r,j as e,H as h,m as l,l as o,n as j,B as y,R as f,o as N,p as m,q as v}from"./index-CjRB6eoh.js";const w=()=>{const{t:s}=u(),[t,x]=r.useState([]),[g,i]=r.useState(!0),[n,c]=r.useState(null),d=async()=>{try{i(!0),c(null);const a=await v.collection("programs").getFullList({$autoCancel:!1,sort:"created"});x(a)}catch(a){console.error("Failed to fetch programs:",a),c("Failed to load industry programs. Please try again later.")}finally{i(!1)}};return r.useEffect(()=>{d()},[]),e.jsxs(e.Fragment,{children:[e.jsxs(h,{children:[e.jsx("title",{children:s("programsPage.metaTitle")}),e.jsx("meta",{name:"description",content:s("programsPage.metaDesc")})]}),e.jsxs("main",{children:[e.jsxs("section",{className:"relative flex min-h-[50vh] items-center py-20",children:[e.jsxs("div",{className:"absolute inset-0 z-0",children:[e.jsx("img",{src:"/img/photo-1693820883733-a30cdd28d7a3-ywqgdu.jpg",alt:s("programsPage.heroAlt"),className:"h-full w-full object-cover"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-secondary/95 via-secondary/80 to-secondary/40"})]}),e.jsx("div",{className:"container relative z-10 mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs(l.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6},className:"mx-auto max-w-3xl text-center text-secondary-foreground",children:[e.jsx("h1",{className:"mb-6 text-4xl font-bold leading-tight md:text-5xl lg:text-6xl",style:{letterSpacing:"-0.02em"},children:s("programsPage.title")}),e.jsx("p",{className:"text-lg leading-relaxed text-secondary-foreground/90 md:text-xl",children:s("programsPage.subtitle")})]})})]}),e.jsx("section",{className:"bg-muted py-24",children:e.jsx("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:g?e.jsxs("div",{className:"grid grid-cols-1 gap-8 md:grid-cols-2",children:[e.jsx("div",{className:"md:col-span-2",children:e.jsx(o,{className:"h-[400px] w-full rounded-2xl"})}),e.jsx(o,{className:"h-[400px] w-full rounded-2xl"}),e.jsx(o,{className:"h-[400px] w-full rounded-2xl"})]}):n?e.jsxs("div",{className:"flex flex-col items-center justify-center rounded-2xl bg-foreground
1/5 py-16 text-center",children:[e.jsx(j,{className:"mb-4 h-12 w-12 text-destructive"}),e.jsx("h3",{className:"mb-2 text-xl font-semibold",children:n}),e.jsxs(y,{onClick:d,variant:"outline",className:"mt-4 border-foreground/20 bg-transparent text-foreground hover:bg-foreground/10",children:[e.jsx(f,{className:"mr-2 h-4 w-4"}),"Retry"]})]}):t.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center rounded-2xl bg-foreground/5 py-16 text-center",children:[e.jsx(N,{className:"mb-4 h-12 w-12 opacity-50"}),e.jsx("h3",{className:"mb-2 text-xl font-semibold",children:s("programsPage.noPrograms")}),e.jsx("p",{className:"opacity-80",children:s("programsPage.noProgramsDesc")})]}):e.jsxs("div",{className:"grid grid-cols-1 gap-8 md:grid-cols-2",children:[t.length>0&&e.jsx(l.div,{className:"md:col-span-2",initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},children:e.jsx(m,{program:t[0],imageHeight:"h-48 md:h-64"})}),t.slice(1).map((a,p)=>e.jsx(l.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:(p+1)*.1},children:e.jsx(m,{program:a})},a.id))]})})})]})]})};export{w 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.