1import{j as e}from"./index-DadQqF1U.js";import{C as r,a as i,b as o,c as l}from"./card-BCrbNteh.js";import{B as n}from"./badge-B_8Y-AI8.js";import{c as s}from"./createLucideIcon-BKbOpDjH.js";const c=[{title:"Project 2",description:"Description of project 2.",tags:["Tag 1","Tag 4","Tag 5"],github:"https://github.com/your-username/project-2",liveUrl:"https://project-2.example.com",content:"Details about project 2 and what it does.",_meta:{filePath:"portfolio-site.md",fileName:"portfolio-site.md",directory:".",extension:"md",path:"portfolio-site"}},{title:"Project 1",description:"Description of project 1.",tags:["Tag 1","Tag 2","Tag 3"],github:"https://github.com/your-username/project-1",liveUrl:"https://project-1.example.com",content:"Details about project 1 and what it does.",_meta:{filePath:"task-manager.md",fileName:"task-manager.md",directory:".",extension:"md",path:"task-manager"}}];const m=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],d=s("external-link",m);const x=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],h=s("github",x);function u(){return e.jsx("div",{className:"min-h-screen",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 py-12",children:[e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-2",children:"Projects"}),e.jsx("p",{className:"text-gray-600 mb-8",children:"A selection of projects I've built and contributed to."}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:c.map(t=>e.jsxs(r,{className:"flex flex-col",children:[e.jsx(i,{children:e.jsx(o,{className:"text-xl",children:t.title})}),e.jsxs(l,{className:"flex-1 flex flex-col",children:[e.jsx("p",{className:"text-gray-600 mb-4 flex-1",children:t.description}),e.jsx("div",{className:"flex flex-wrap gap-2 mb-4",children:t.tags.map(a=>e.jsx(n,{variant:"secondary",children:a},a))}),e.jsxs("div",{className:"flex gap-3",children:[t.github&&e.jsxs("a",{href:t.github,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-sm text-gray-600 hover:text-gray-900 transition-colors",children:[e.jsx(h,{size:16}),"GitHub"]}),t.liveUrl&&e.jsxs("a",{href:t.liveUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-sm text-blue-600 hover:text-blue-800 transition-colors",children:[e.jsx(d,{size:16}),"Live Demo"]})]})]})]},t._meta.path))})]})})}export{u 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.