1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[981],{68071:function(e,t,a){a.d(t,{Z:function(){return m}});var c=a(57437),r=a(2265),n=a(23338),s=a(28745),i=a(53879),o=a(18469),l=a(5892),d=a(37515),u=a(47907);function m(e){let{title:t,children:a,onBack:m,headerColor:x,headerTextColor:p,hasSearch:h=!1,rightAction:f,onRightActionClick:y,showHeader:j=!1}=e,{colors:v,isDarkMode:g}=(0,d.F)();(0,u.useRouter)();let[k,N]=(0,r.useState)([]),[b,w]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let e=window.location.pathname;e.includes("_next")||k.includes(e)||N(t=>[...t,e].slice(-5))},[]),(0,c.jsxs)(n.E.div,{className:"h-full flex flex-col ".concat(v.secondary," transition-colors duration-300"),initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},children:[j&&(0,c.jsxs)("header",{className:"".concat(x||v.secondary," py-4 px-5 flex items-center justify-between transition-colors duration-300"),style:{minHeight:"64px"},children:[(0,c.jsxs)("div",{className:"flex items-center flex-1",children:[m&&(0,c.jsx)(n.E.button,{className:"".concat(v.textPrimary," p-1.5 -ml-2 rounded-full hover:").concat(v.ripple),onClick:m,whileTap:{scale:.95},transition:{duration:.1},children:(0,c.jsx)(i.Z,{className:"w-6 h-6"})}),(0,c.jsx)(n.E.h1,{className:"".concat(p||v.textPrimary," text-xl font-medium ml-2 transition-colors duration-300"),initial:{y:-5,opacity:0},animate:{y:0,opacity:1},transition:{delay:.1},children:t})]}),(0,c.jsxs)("div",{className:"flex items-center gap-3",children:["more"===f&&(0,c.jsx)(n.E.button,{className:"p-2.5 ".concat(v.textPrimary," hover:").concat(v.ripple," rounded-full"),onClick:y,whileTap:{scale:.95},transition:{duration:.1},children:(0,c.jsx)(o.Z,{className:"w-5 h-5"})}),"share"===f&&(0,c.jsx)(n.E.button,{className:"p-2.5 ".concat(v.textPrimary," hover:").concat(v.ripple," rounded-full"),onClick:y,whileTap:{scale:.95},transition:{duration:.1},children:(0,c.jsx)(l.Z,{className:"w-5 h-5"})}),f&&"string"!=typeof f&&(0,c.jsx)("div",{className:v.textPrimary,children:f})]})]}),(0,c.jsx)(s.M,{mode:"wait",children:(0,c.jsx)(n.E.div,{className:"flex-1 overflow-y-auto overscroll-bounce ".concat(v.primary," transition-colors duration-300"),initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{type:"spring",stiffness:300,damping:30,mass:1},style:{WebkitOverflowScrolling:"touch"},children:a},t)})]})}},36981:function(e,t,a){a.r(t),a.d(t,{default:function(){return x}});var c=a(57437),r=a(2265),n=a(68071),s=a(18994),i=a(75879),o=a(97780),l=a(95582),d=a(81708),u=a(20703),m=a(37515);function x(){let[e,t]=(0,r.useState)([]),[a,x]=(0,r.useState)(!0),[p,h]=(0,r.useState)(null),{colors:f}=(0,m.F)();return(0,r.useEffect)(()=>{let e="eshanized";(async function(){x(!0),h(null);try{let a=await fetch("https://api.github.com/users/".concat(e,"/repos?sort=updated&per_page=10"));if(!a.ok)throw Error("GitHub API error: ".concat(a.status));let c=await a.json(),r=await fetch("https://gitlab.com/api/v4/users/".concat(e,"/projects?order_by=updated_at&per_page=10"));if(!r.ok)throw Error("GitLab API error: ".concat(r.status));let n=await r.json(),s=c.map(e=>({id:"github-".concat(e.id),title:e.name,description:e.description||"No description available",image:e.owner.avatar_url,link:e.html_url,demoLink:e.homepage||"",tags:[e.language,"GitHub"].filter(Boolean),source:"github",stars:e.stargazers_count,forks:e.forks_count})),i=n.map(e=>({id:"gitlab-".concat(e.id),title:e.name,description:e.description||"No description available",image:e.avatar_url||"https://gitlab.com/uploads/-/system/user/avatar/10859775/avatar.png",link:e.web_url,demoLink:"",tags:["GitLab"].concat(e.tag_list||[]),source:"gitlab",stars:e.star_count,forks:e.forks_count})),o=[...s,...i];t(o)}catch(e){console.error("Error fetching projects:",e),h("Error fetching projects: ".concat(e.message))}finally{x(!1)}})()},[]),(0,c.jsx)(n.Z,{title:"Projects",rightAction:"more",showHeader:!1,children:(0,c.jsxs)("div",{className:"p-4 ".concat(f.primary," min-h-full"),children:[(0,c.jsx)("h1",{className:"text-xl font-medium mb-4 ".concat(f.textPrimary),children:"My Projects"}),a&&(0,c.jsxs)("div",{className:"flex flex-col items-center justify-center py-12",children:[(0,c.jsx)(s.Z,{className:"w-8 h-8 animate-spin ".concat(f.accent," mb-2")}),(0,c.jsx)("p",{className:"".concat(f.textSecondary),children:"Loading projects..."})]}),p&&(0,c.jsx)("div",{className:"p-4 border ".concat(f.divider," rounded-md text-red-500 mb-4"),children:p}),!a&&!p&&0===e.length&&(0,c.jsx)("div",{className:"text-center py-12",children:(0,c.jsx)("p",{className:"".concat(f.textSecondary),children:"No projects found"})}),(0,c.jsx)("div",{className:"space-y-4",children:e.map(e=>(0,c.jsxs)("div",{className:"".concat(f.cardBg," border ").concat(f.divider," overflow-hidden"),children:[(0,c.jsxs)("div",{className:"w-full h-48 relative",children:[(0,c.jsx)(u.default,{src:e.image,alt:e.title,layout:"fill",objectFit:"cover"}),(0,c.jsx)("div",{className:"absolute top-2 right-2 ".concat(f.accent," bg-opacity-80 rounded-md px-2 py-0.5 text-xs text-white"),children:"github"===e.source?"GitHub":"GitLab"})]}),(0,c.jsxs)("div",{className:"p-4",children:[(0,c.jsx)("h2",{className:"text-lg font-medium ".concat(f.textPrimary),children:e.title}),(0,c.jsx)("p",{className:"".concat(f.textSecondary," text-sm mt-2"),children:e.description}),(0,c.jsxs)("div",{className:"flex gap-3 mt-3",children:[void 0!==e.stars&&(0,c.jsxs)("div",{className:"flex items-center text-xs ".concat(f.textSecondary),children:[(0,c.jsx)(i.Z,{className:"w-3.5 h-3.5 mr-1 text-yellow-500"}),e.stars]}),void 0!==e.forks&&(0,c.jsxs)("div",{className:"flex items-center text-xs ".concat(f.textSecondary),children:[(0,c.jsx)(o.Z,{className:"w-3.5 h-3.5 mr-1"}),e.forks]})]}),(0,c.jsx)("div",{className:"flex flex-wrap gap-2 mt-3",children:e.tags.filter(
1Boolean).map((e,t)=>(0,c.jsx)("span",{className:"px-2.5 py-0.5 ".concat(f.tertiary," ").concat(f.textPrimary," rounded-md text-xs"),children:e},t))}),(0,c.jsxs)("div",{className:"flex gap-3 mt-4",children:[(0,c.jsxs)("a",{href:e.link,target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center px-4 py-2 ".concat(f.tertiary," rounded-md text-sm ").concat(f.textPrimary),children:[(0,c.jsx)(l.Z,{className:"w-4 h-4 mr-2"}),(0,c.jsx)("span",{children:"Code"})]}),e.demoLink&&(0,c.jsxs)("a",{href:e.demoLink,target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center px-4 py-2 ".concat(f.accent," text-white rounded-md text-sm"),children:[(0,c.jsx)(d.Z,{className:"w-4 h-4 mr-2"}),(0,c.jsx)("span",{children:"Live Demo"})]})]})]})]},e.id))})]})})}},81708:function(e,t,a){a.d(t,{Z:function(){return c}});/** 2 * @license lucide-react v0.344.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 */let c=(0,a(87461).Z)("ExternalLink",[["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"}]])},97780:function(e,t,a){a.d(t,{Z:function(){return c}});/** 7 * @license lucide-react v0.344.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */let c=(0,a(87461).Z)("GitFork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]])},95582:function(e,t,a){a.d(t,{Z:function(){return c}});/** 12 * @license lucide-react v0.344.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */let c=(0,a(87461).Z)("Github",[["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"}]])},18994:function(e,t,a){a.d(t,{Z:function(){return c}});/** 17 * @license lucide-react v0.344.0 - ISC 18 * 19 * This source code is licensed under the ISC license. 20 * See the LICENSE file in the root directory of this source tree. 21 */let c=(0,a(87461).Z)("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},18469:function(e,t,a){a.d(t,{Z:function(){return c}});/** 22 * @license lucide-react v0.344.0 - ISC 23 * 24 * This source code is licensed under the ISC license. 25 * See the LICENSE file in the root directory of this source tree. 26 */let c=(0,a(87461).Z)("MoreVertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]])},5892:function(e,t,a){a.d(t,{Z:function(){return c}});/** 27 * @license lucide-react v0.344.0 - ISC 28 * 29 * This source code is licensed under the ISC license. 30 * See the LICENSE file in the root directory of this source tree. 31 */let c=(0,a(87461).Z)("Share",[["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["polyline",{points:"16 6 12 2 8 6",key:"m901s6"}],["line",{x1:"12",x2:"12",y1:"2",y2:"15",key:"1p0rca"}]])},75879:function(e,t,a){a.d(t,{Z:function(){return c}});/** 32 * @license lucide-react v0.344.0 - ISC 33 * 34 * This source code is licensed under the ISC license. 35 * See the LICENSE file in the root directory of this source tree. 36 */let c=(0,a(87461).Z)("Star",[["polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",key:"8f66p6"}]])},47907:function(e,t,a){var c=a(15313);a.o(c,"useRouter")&&a.d(t,{useRouter:function(){return c.useRouter}})}}]);
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.