1import{j as a,L as l}from"./client-B-Oz738J.js";import{P as r,S as i}from"./SeoHead-CTJ5a3SL.js";import{b as d}from"./image-DZpvqsvE.js";function m({posts:s}){return a.jsxs(r,{children:[a.jsx(i,{title:"Projects",canonical:route("posts.index")}),a.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[a.jsx("div",{className:"mb-8",children:a.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:"Projects"})}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:s.data.map(e=>a.jsxs(l,{href:route("posts.show",e.slug),className:"bg-white rounded-lg shadow hover:shadow-lg transition",children:[e.featured_image&&a.jsx("img",{src:e.featured_image,srcSet:d(e.featured_image),sizes:"(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw",alt:e.title,className:"w-full h-48 object-cover rounded-t-lg"}),a.jsxs("div",{className:"p-6",children:[a.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:e.title}),a.jsx("p",{className:"text-gray-600 line-clamp-3 mb-4",dangerouslySetInnerHTML:{__html:e.excerpt||e.content.replace(/<[^>]*>/g,"").substring(0,150)+"..."}}),a.jsx("div",{className:"flex items-center text-sm text-gray-500",children:e.published_at&&a.jsxs("span",{children:["Published: ",new Date(e.published_at).toLocaleDateString()]})})]})]},e.id))}),s.data.length===0&&a.jsx("div",{className:"text-center py-12 text-gray-500",children:"No projects available yet."}),s.links&&s.links.length>3&&a.jsx("div",{className:"flex justify-center mt-8 space-x-2",children:s.links.map((e,t)=>e.url?a.jsx(l,{href:e.url,className:`px-4 py-2 rounded-md ${e.active?"bg-indigo-600 text-white":"bg-white text-gray-700 hover:bg-gray-100"}`,dangerouslySetInnerHTML:{__html:e.label}},t):a.jsx("span",{className:"px-4 py-2 text-gray-400",dangerouslySetInnerHTML:{__html:e.label}},t))})]})]})}export{m 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.