vendor: 5,872 bytes, lines 1-2
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/About-Bk74oNFg.js","assets/react-vendor-BUBxxWDZ.js","assets/useCodeLedgerStats-CimTdbXS.js","assets/useSectionAnchors-C3Z8dc1i.js","assets/motion-CQtUWvc0.js","assets/router-DC-WmDlf.js","assets/mermaid-Us-lSQ3j.js","assets/icons-DDBypk37.js","assets/Projects-CpMDnX6a.js","assets/ProjectDetail-BwTMwh53.js","assets/Resume-CIXtAsD8.js","assets/Stats-Bg6RCbv4.js","assets/Contact-C90dLMEh.js"])))=>i.map(i=>d[i]); 2import{r as O,j as f,a as Bt,g as Ht,b as zt,R as lt,d as Gt}from"./react-vendor-BUBxxWDZ.js";import{_ as ne}from"./mermaid-Us-lSQ3j.js";import{W as Vt,a as Wt,b as qt,V as Kt,c as Jt,d as Qt,T as Yt,e as Xt,f as Zt,S as er,g as ut,h as tr,i as rr,j as ar,k as or,l as nr,m as dt,n as sr,o as ir,p as cr,q as lr,r as ur,s as dr,t as pr,u as fr,v as hr,w as mr,x as gr,y as br,z as yr,A as vr,B as xr,C as wr,D as Sr,E as jr,F as Cr,G as Fr,H as kr,I as _r,J as Er,K as Ar,L as Ir,M as $r,N as Nr,O as Tr,P as Pr,Q as Rr,R as Or,U as Dr,X as Mr,Y as Lr,Z as Ur,_ as Br,$ as Hr,a0 as zr,a1 as Gr,a2 as Vr,a3 as pt,a4 as Wr,a5 as qr,a6 as ft,a7 as Kr,a8 as Jr,a9 as Qr,aa as Yr,ab as Xr,ac as Zr,ad as ht,ae as ea,af as ta,ag as ra,ah as aa,ai as oa,aj as mt,ak as na,al as sa,am as ia,an as ca,ao as la,ap as ua,aq as da,ar as pa,as as fa,at as ha,au as ma,av as ga,aw as ba,ax as ya,ay as va,az as xa,aA as wa,aB as Sa,aC as ja,aD as Ca,aE as Fa,aF as ka,aG as _a,aH as Ea,aI as Aa,aJ as Ia,aK as $a,aL as Na,aM as Ta,aN as Pa,aO as Ra,aP as Oa,aQ as Da,aR as Ma,aS as La,aT as Ua,aU as Ba,aV as Ha,aW as za,aX as Ga,aY as Va,aZ as Wa,a_ as qa,a$ as Ka,b0 as Ja,b1 as Qa,b2 as Ya,b3 as Xa,b4 as Za,b5 as eo,b6 as to,b7 as ro,b8 as ao,b9 as oo,ba as no,bb as Pe,bc as so,bd as io,be as co,bf as lo,bg as uo,bh as po,bi as fo,bj as ho,bk as mo,bl as go,bm as bo,bn as yo,bo as vo,bp as xo,bq as wo,br as So,bs as Re,bt as Oe,bu as jo,bv as Co,bw as Fo,bx as ko,by as De,bz as _o,bA as Eo,bB as Ao,bC as Io,bD as $o,bE as No,bF as To,bG as Po,bH as Ro,bI as Me,bJ as gt,bK as Oo,bL as Do,bM as Mo,bN as Lo,bO as Uo,bP as Bo,bQ as Ho,bR as zo,bS as Go,bT as Vo,bU as Wo,bV as qo,bW as Ko,bX as bt,bY as Jo,bZ as Qo,b_ as Yo,b$ as Xo,c0 as Zo,c1 as en,c2 as tn,c3 as yt,c4 as rn,c5 as an,c6 as on,c7 as nn,c8 as sn,c9 as cn,ca as ln,cb as un,cc as dn,cd as pn,ce as fn,cf as hn,cg as Le,ch as mn,ci as gn,cj as bn,ck as yn,cl as vn,cm as Ue,cn as xn,co as wn,cp as Sn,cq as jn,cr as Cn,cs as Fn,ct as kn,cu as Be,cv as _n,cw as En,cx as An,cy as In,cz as $n,cA as vt,cB as Nn,cC as Tn,cD as Pn,cE as xt,cF as He,cG as Rn,cH as On,cI as Dn,cJ as Mn,cK as Ln,cL as Un,cM as Bn,cN as Hn,cO as zn,cP as Gn,cQ as ze,cR as Vn,cS as Wn,cT as Ge,cU as Ve,cV as qn,cW as Kn,cX as Jn,cY as Qn,cZ as Yn,c_ as Xn,c$ as Zn,d0 as We,d1 as es,d2 as ts,d3 as rs,d4 as as,d5 as os,d6 as ns,d7 as ss,d8 as is,d9 as cs,da as ls,db as us,dc as ds,dd as ps,de as fs,df as hs,dg as ms,dh as qe,di as gs,dj as wt,dk as Ie,dl as St,dm as bs,dn as ys,dp as vs,dq as xs,dr as ws,ds as Ss,dt as js,du as Cs,dv as Fs,dw as ks,dx as _s,dy as Es,dz as As,dA as Is,dB as $s,dC as Ns,dD as Ts,dE as Ps,dF as Rs,dG as Os,dH as Ds,dI as Ms,dJ as Ls,dK as Us,dL as Bs,dM as Hs,dN as zs,dO as Gs,dP as Vs,dQ as Ws,dR as qs,dS as Ks,dT as Js,dU as Qs,dV as Ys,dW as jt,dX as Ct,dY as Xs,dZ as Zs,d_ as ei,d$ as ti,e0 as ri,e1 as ai,e2 as oi,e3 as ni,e4 as Ft,e5 as si,e6 as ii,e7 as ci,e8 as li,e9 as ui,ea as di,eb as pi,ec as fi,ed as hi,ee as mi,ef as $e,eg as gi,eh as bi}from"./icons-DDBypk37.js";import{u as Ke,L as Z,R as yi,a as ee,B as vi}from"./router-DC-WmDlf.js";import{m as V,A as xi}from"./motion-CQtUWvc0.js";(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))u(i);new MutationObserver(i=>{for(const d of i)if(d.type==="childList")for(const S of d.addedNodes)S.tagName==="LINK"&&S.rel==="modulepreload"&&u(S)}).observe(document,{childList:!0,subtree:!0});function c(i){const d={};return i.integrity&&(d.integrity=i.integrity),i.referrerPolicy&&(d.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?d.credentials="include":i.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function u(i){if(i.ep)return;i.ep=!0;const d=c(i);fetch(i.href,d)}})();const be={AcademicCapIcon:bi,AdjustmentsHorizontalIcon:gi,ArrowDownIcon:$e,ArrowDownTrayIcon:mi,ArrowLeftIcon:hi,ArrowTopRightOnSquareIcon:fi,ArrowUpIcon:pi,Bars3Icon:di,BookOpenIcon:ui,BriefcaseIcon:li,CalendarDaysIcon:ci,CalendarIcon:ii,CheckBadgeIcon:si,CheckCircleIcon:Ft,ChevronDownIcon:ni,ChevronLeftIcon:oi,ChevronRightIcon:ai,ClipboardDocumentCheckIcon:ri,ClipboardDocumentIcon:ti,ClockIcon:ei,CodeBracketIcon:Zs,CubeIcon:Xs,DocumentArrowDownIcon:Ct,DocumentDuplicateIcon:jt,DocumentIcon:Ys,DocumentTextIcon:Qs,EnvelopeIcon:Js,ExclamationTriangleIcon:Ks,EyeIcon:qs,FunnelIcon:Ws,GlobeAltIcon:Vs,HeartIcon:Gs,LanguageIcon:zs,LinkIcon:Hs,MagnifyingGlassIcon:Bs,MapPinIcon:Us,PhoneIcon:Ls,PlayIcon:Ms,RocketLaunchIcon:Ds,ShieldCheckIcon:Os,TrophyIcon:Rs,UserIcon:Ps,XMarkIcon:Ts,AiFillHeart:Ns,AiOutlineHome:$s,BiCog:Is,BiHome:As,BiLogoVisualStudio:Es,BiUser:_s,BsGear:ks,BsHouse:Fs,BsPerson:Cs,DiHeroku:js,DiNodejs:Ss,DiPython:ws,DiReact:xs,FaAndroid:vs,FaAngular:ys,FaApple:bs,FaArrowRight:St,FaArrowUp:Ie,FaAws:wt,FaBars:gs,FaBehance:qe,FaBell:ms,FaBitcoin:hs,FaBook:fs,FaBookOpen:ps,FaBox:ds,FaBoxOpen:us,FaBrain:ls,FaBriefcase:cs,FaCamera:is,FaChalkboardTeacher:ss,FaCheckCircle:ns,FaChrome:os,FaClock:as,FaCloud:rs,FaCloudUploadAlt:ts,FaCode:es,FaCodepen:We,FaCog:Zn,FaCogs:Xn,FaComments:Yn,FaCss3Alt:Qn,FaCube:Jn,FaDatabase:Kn,FaDesktop:qn,FaDev:Ve,FaDiscord:Ge,FaDocker:Wn,FaDraftingCompass:Vn,FaDribbble:ze,FaEdit:Gn,FaEnvelopeOpenText:zn,FaExclamationTriangle:Hn,FaFileArchive:Bn,FaFileC
2ode:Un,FaFileDownload:Ln,FaFileExport:Mn,FaFileSignature:Dn,FaFlag:On,FaGitAlt:Rn,FaGithub:He,FaGlobe:xt,FaGraduationCap:Pn,FaHammer:Tn,FaHandsHelping:Nn,FaHeart:vt,FaHeartbeat:$n,FaHive:In,FaHome:An,FaHtml5:En,FaImage:_n,FaInstagram:Be,FaJava:kn,FaJs:Fn,FaKey:Cn,FaLanguage:jn,FaLaptopCode:Sn,FaLightbulb:wn,FaLink:xn,FaLinkedin:Ue,FaLock:vn,FaMap:yn,FaMapMarkedAlt:bn,FaMapMarkerAlt:gn,FaMedal:mn,FaMedium:Le,FaMeh:hn,FaMemory:fn,FaMicrosoft:pn,FaMobile:dn,FaMobileAlt:un,FaMoon:ln,FaNetworkWired:cn,FaNodeJs:sn,FaNpm:nn,FaPaintBrush:on,FaParking:an,FaPhp:rn,FaPinterest:yt,FaPlayCircle:tn,FaPlug:en,FaPlusSquare:Zo,FaPython:Xo,FaQuestionCircle:Yo,FaRandom:Qo,FaReact:Jo,FaReddit:bt,FaRegCommentDots:Ko,FaRobot:qo,FaRocket:Wo,FaRust:Vo,FaSave:Go,FaSchool:zo,FaShareAlt:Ho,FaSignInAlt:Bo,FaSignature:Uo,FaSkullCrossbones:Lo,FaSmile:Mo,FaSmileBeam:Do,FaSpider:Oo,FaSpotify:gt,FaStackOverflow:Me,FaStar:Ro,FaStream:Po,FaSwift:To,FaSync:No,FaSyncAlt:$o,FaTachometerAlt:Io,FaTasks:Ao,FaTerminal:Eo,FaTicketAlt:_o,FaTiktok:De,FaTimes:ko,FaTools:Fo,FaTrophy:Co,FaTruckLoading:jo,FaTwitch:Oe,FaTwitter:Re,FaUndo:So,FaUndoAlt:wo,FaUnlockAlt:xo,FaUser:vo,FaUserCircle:yo,FaUserClock:bo,FaUserFriends:go,FaUserGraduate:mo,FaUserLock:ho,FaUserSecret:fo,FaUserShield:po,FaUsers:uo,FaVideo:lo,FaVuejs:co,FaWaveSquare:io,FaWrench:so,FaYoutube:Pe,FcHome:no,FcLike:oo,FcSettings:ao,FiHome:ro,FiSettings:to,FiUser:eo,GiCastle:Za,GiShield:Xa,GoHome:Ya,GoPerson:Qa,GoRepo:Ja,HiArrowUp:Ka,HiCog:qa,HiHeart:Wa,HiHome:Va,HiMenu:Ga,HiServer:za,HiUser:Ha,HiBars3:Ba,HiCodeBracket:Ua,HiCpuChip:La,HiDevicePhoneMobile:Ma,HiXMark:Da,LuSettings:Oa,LuUser:Ra,MdDownload:Pa,MdFavorite:Ta,MdHome:Na,MdPerson:$a,MdSettings:Ia,PiGear:Aa,PiHouse:Ea,PiUser:_a,RiHome2Line:ka,RiUserLine:Fa,SiBitcoin:Ca,SiBlockchaindotcom:ja,SiBootstrap:Sa,SiC:wa,SiCalendly:xa,SiCloudflare:va,SiCplusplus:ya,SiDart:ba,SiDjango:ga,SiDocker:ma,SiElectron:ha,SiElixir:fa,SiExpress:pa,SiFastapi:da,SiFirebase:ua,SiFlask:la,SiFlutter:ca,SiFramer:ia,SiGithub:sa,SiGithubactions:na,SiGithubcopilot:mt,SiGo:oa,SiGoogle:aa,SiGooglecloud:ra,SiGooglegemini:ta,SiGraphql:ea,SiHackerrank:ht,SiHashnode:Zr,SiHive:Xr,SiHiveBlockchain:Yr,SiIeee:Qr,SiJavascript:Jr,SiJupyter:Kr,SiKaggle:ft,SiKotlin:qr,SiKubernetes:Wr,SiLeetcode:pt,SiLinux:Vr,SiMarkdown:Gr,SiMediapipe:zr,SiMongodb:Hr,SiMysql:Br,SiNestjs:Ur,SiNetlify:Lr,SiNextdotjs:Mr,SiNumpy:Dr,SiNuxt:Or,SiOllama:Rr,SiOpencv:Pr,SiPandas:Tr,SiPostgresql:Nr,SiPostman:$r,SiPreact:Ir,SiPrisma:Ar,SiPython:Er,SiRaspberrypi:_r,SiReact:kr,SiRedis:Fr,SiRender:Cr,SiResearchgate:jr,SiRuby:Sr,SiRust:wr,SiScala:xr,SiScikitlearn:vr,SiShell:yr,SiSocketdotio:br,SiSpring:gr,SiSqlite:mr,SiStreamlit:hr,SiStripe:fr,SiSupabase:pr,SiSvelte:dr,SiSwift:ur,SiTailwindcss:lr,SiTensorflow:cr,SiTypescript:ir,SiUnstop:sr,SiVercel:dt,SiVite:nr,SiVuedotjs:or,SiWeb3Dotjs:ar,SiWebpack:rr,SiYoutube:tr,SiYoutubemusic:ut,SiZenodo:er,TbHome:Zt,TbSettings:Xt,TbUser:Yt,VscFile:Qt,VscGithub:Jt,VscHome:Kt,WiDaySunny:qt,WiRain:Wt,WiSnow:Vt},wi=["Tfi","Vsc","Fa6","Hi2","Io5","Ai","Bi","Bs","Cg","Ci","Di","Fa","Fc","Fi","Gi","Go","Gr","Hi","Im","Io","Lu","Md","Pi","Ri","Rx","Si","Sl","Tb","Ti","Wi"],Si=t=>!t||typeof t!="string"?null:wi.find(a=>t.startsWith(a))||null,at=new Set,kt=t=>{at.has(t)||(at.add(t),console.warn(`[IconSystem] Icon "${t}" is not in the generated map â add it to settings.json or source and run: node scripts/generate-icon-map.js`))},ji=async t=>_t(t),_t=t=>{if(!t||typeof t!="string")return null;const a=be[t];return a||(kt(t),null)},Ci=async t=>{if(!t||typeof t!="string")return null;const a=be[t];return a||(!t.endsWith("Icon")&&be[`${t}Icon`]?be[`${t}Icon`]:(kt(t),null))},Ne=({name:t,className:a="",size:c,color:u,style:i,fallback:d=f.jsx("span",{className:"inline-block w-6 h-6"}),showError:S=!1,...r})=>{const[s,e]=O.useState(null),[o,p]=O.useState(!0),[l,n]=O.useState(null);return O.useEffect(()=>{if(!t){n("No icon name provided"),p(!1);return}const h=_t(t);if(h){e(()=>h),p(!1);return}let v=!0;return(async()=>{try{p(!0),n(null);const x=await Ci(t);v&&(x?e(()=>x):n(`Icon "${t}" not found`),p(!1))}catch(x){v&&(n(x.message),p(!1),console.error(`[UnifiedIcon] Error loading icon "${t}":`,x))}})(),()=>{v=!1}},[t]),o?d:l&&S?f.jsx("span",{className:`text-red-500 text-xs ${a}`,title:l,children:"â ï¸"}):s?f.jsx(s,{className:a,size:c,color:u,style:i,...r}):(console.warn(`Icon "${t}" not found`),d)};function Fi(t){const a=t/1e5;return`â¹${Number.isInteger(a)?String(a):a.toFixed(2).replace(/0+$/,"").replace(/\.$/,"")}L`}function ki(t){const a=t?.resume?.awards||[];let c=0;const u=[],i=[],d=[];for(const S of a){const r=S?.rewardAmount?.amount;if(typeof r!="number"||!Number.isFinite(r)||r<=0){i.push(S?.name||"(unnamed award)");continue}const s=S.rewardAmount.currency||"INR";if(s!=="INR"){d.push(`${S?.name||"(unnamed)"} (${s})`);continue}c+=r,u.push(S?.name||"(unnamed award)")}return{total:c,display:Fi(c),priced:u,unpriced:i,foreign:d}}function _i(t){const{display:a}=ki(t),c={"{{prizeTotal}}":a},u=i=>{if(typeof i=="string"){let d=i;for(const[S,r]of Object.entries(c))d.includes(S)&&(d=d.split(S).join(r));return d}if(Array.isArray(i))return i.map(u);if(i&&typeof i=="object"){const d={};for(const[S,r]of Object.entries(i))d[S]=u(r);return d}return i};return u(t)}let me=null;function se(){return me||(me=fetch("/settings.json").then(t=>{if(!t.ok)throw new Error(`settings.json HTTP ${t.status}`);return t.json()}).then(_i).catch(t=>{throw me=null,t})),me}const Q=t=>t?.seo?.author||t?.home?.name||t?.navbar?.logo?.name||"",Et=t=>{const a=t?.seo?.canonical||t?.seo?.customDomain;if(a)return String(a).replace(/\/$/,"");const c=typeof window<"u"&&window.location?.origin||"";return!c||/^https?:\/\/(localhost|127\.0\.0\.1|\[::1\])(:|$)/.test(c)?"":c},pe=t=>t?.github?.username||t?.projects?.devUsername||"",$c=t=>{if(t?.github?.apiUrl)return t.github.apiUrl;const a=pe(t);return a?`https://api.github.com/${t?.github?.type==="org"?"orgs":"users"}/${a}/repos`:""},Ei=t=>t?.github?.userAgent||"Portfolio",Ai=()=>{const[t,a]=O.useState(!1),[c,u]=O.useState(!1),[i,d]=O.useState({}),S=Ke();O.useEffect(()=>{se().then(n=>d(n)).catch(n=>console.warn("Could not fetch settings:",n))},[]),O.useEffect(()=>{const n=()=>{const h=window.scrollY>10;u(h)};return window.addEventListener("scroll",n),()=>window.removeEventListener("scroll",n)},[]);const r=()=>i.navbar?.navigation||[{name:"Home",path:"/"},{name:"About",path:"/about"},{name:"Projects",path:"/projects"},{name:"Resume",path:"/resume"},{name:"Contact",path:"/contact"}],s=()=>{const n=i.navbar?.logo;if(!n)return{text:"",name:Q(i)};switch(n.type){case"text":return{text:n.text||"VK",name:n.name||Q(i)};case"image":return{imageUrl:n.customImageUrl,name:n.name||Q(i)};case"github":return{imageUrl:`https://github.com/${n.githubUsername||pe(i)}.png`,name:n.name||Q(i)};case"auto":{const h=i.home?.profileImage;let v=null;if(h?.type==="github"){const C=h.devUsername||pe(i);v=C?`https://github.com/${C}.png`:""}else h?.type==="custom"&&(v=h.customUrl);return{imageUrl:v,name:n.name||Q(i)}}default:return{text:n.text||"VK",name:n.name||Q(i)}}},e=r(),o=s(),p=i.navbar?.styling||{},l=i.navbar?.animations||{};return f.jsx(V.nav,{initial:{y:l.initialY||-100},animate:{y:0},className:`fixed top-0 w-full z-50 transition-all duration-300 ${c?p.scrolledBg||"bg-black/80 backdrop-blur-md border-b border-white/10":p.transparentBg||"bg-transparent"}`,children:f.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[f.jsxs("div",{className:"flex justify-between items-center h-16",children:[f.jsxs(Z,{to:"/",className:"flex items-center space-x-2",children:[o.imageUrl?f.jsxs("div",{className:`${i.navbar?.logo?.imageSize||"w-10 h-10"} ${i.navbar?.logo?.borderRadius||"rounded-lg"} overflow-hidden`,children:[f.jsx("img",{src:o.imageUrl,alt:o.name,className:"w-full h-full object-cover",onError:n=>{n.target.style.display="none",n.target.nextSibling.style.display="flex"}}),f.jsx("div",{className:`w-full h-full bg-gradient-to-r ${i.navbar?.logo?.gradient||"from-primary-500 to-accent-500"} ${i.navbar?.logo?.borderRadius||"rounded-lg"} items-center justify-center hidden`,children:f.jsx("span",{className:"text-white font-bold text-lg",children:o.text||"VK"})})]}):f.jsx("div",{className:`${i.navbar?.logo?.imageSize||"w-10 h-10"} bg-gradient-to-r ${i.navbar?.logo?.gradient||"from-primary-500 to-accent-500"} ${i.navbar?.logo?.borderRadius||"rounded-lg"} flex items-center justify-center`,children:f.jsx("span",{className:"text-white font-bold text-lg",children:o.text})}),i.navbar?.logo?.showName!==!1&&(i.navbar?.logo?.showNameOnMobile!==!1||window.innerWidth>=640)&&f.jsx("span",{className:"text-white font-semibold text-xl hidden sm:block",children:o.name})]}),f.jsx("div",{className:"hidden md:flex items-center space-x-8",children:e.map(n=>f.jsxs(Z,{to:n.path,className:`relative px-3 py-2 text-sm font-medium transition-colors duration-300 ${S.pathname===n.path?p.activeColor||"text-primary-400":p.inactiveColor||"text-white hover:text-primary-400"}`,children:[n.name,S.pathname===n.path&&f.jsx(V.div,{layoutId:"activeTab",className:`absolute bottom-0 left-0 right-0 h-0.5 bg-gradient-to-r ${p.activeTabGradient||"from-primary-500 to-accent-500"}`,initial:!1,transition:{type:"spring",stiffness:l.springStiffness||380,damping:l.springDamping||30}})]},n.name))}),f.jsx("div",{className:"md:hidden",children:f.jsx("button",{onClick:()=>a(!t),className:"text-white hover:text-primary-400 transition-colors",children:t?f.jsx(Ne,{name:"HiXMark",className:"h-6 w-6",fallback:"FaTimes"}):f.jsx(Ne,{name:"HiBars3",className:"h-6 w-6",fallback:"FaBars"})})})]}),t&&f.jsx(V.div,{initial:{opacity:0,height:0}
2,animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:`md:hidden ${p.mobileMenuBg||"bg-black/90 backdrop-blur-md"} rounded-lg mt-2 mb-4`,children:f.jsx("div",{className:"px-2 pt-2 pb-3 space-y-1",children:e.map(n=>f.jsx(Z,{to:n.path,onClick:()=>a(!1),className:`block px-3 py-2 rounded-md text-base font-medium transition-colors ${S.pathname===n.path?"text-primary-400 bg-white/10":"text-white hover:text-primary-400 hover:bg-white/5"}`,children:n.name},n.name))})})]})})},ae="github_data_",ue="github_backup_",Fe="github_data_metadata",Ii=1440*60*1e3,$i=3;class Ni{constructor(){this.initializeMetadata()}initializeMetadata(){this.getMetadata()||this.setMetadata({version:"1.0.0",created:Date.now(),lastCleaned:Date.now(),totalEntries:0,backupCount:0})}getMetadata(){try{const a=localStorage.getItem(Fe);return a?JSON.parse(a):null}catch(a){return console.warn("Failed to get storage metadata:",a),null}}setMetadata(a){try{localStorage.setItem(Fe,JSON.stringify(a))}catch(c){console.warn("Failed to set storage metadata:",c)}}async storeGitHubData(a,c,u={}){const{ttl:i=Ii,backup:d=!0,validate:S=!0,compress:r=!1}=u;try{if(S&&!this.validateGitHubData(c))throw new Error("Invalid GitHub data structure");d&&await this.createBackup(a);const s={data:r?this.compressData(c):c,timestamp:Date.now(),expires:Date.now()+i,version:"1.0.0",compressed:r,hash:this.generateDataHash(c)},e=`${ae}${a}`;localStorage.setItem(e,JSON.stringify(s));const o=this.getMetadata();return o.totalEntries++,o.lastUpdated=Date.now(),this.setMetadata(o),console.log(`GitHub data stored: ${a} (expires in ${Math.round(i/1e3/60)} minutes)`),!0}catch(s){return console.error("Failed to store GitHub data:",s),!1}}async getGitHubData(a,c={}){const{fallbackToBackup:u=!0,skipExpiration:i=!1}=c;try{const d=`${ae}${a}`,S=localStorage.getItem(d);if(!S)return console.log(`No stored data found for key: ${a}`),null;const r=JSON.parse(S);if(!i&&r.expires<Date.now()){if(console.log(`Stored data expired for key: ${a}`),u){const o=await this.getBackupData(a);if(o)return console.log(`Using backup data for key: ${a}`),o}return this.removeGitHubData(a),null}const s=r.compressed?this.decompressData(r.data):r.data,e=this.generateDataHash(s);return r.hash&&r.hash!==e?(console.warn(`Data integrity check failed for key: ${a}`),null):(console.log(`Retrieved cached GitHub data: ${a}`),{data:s,cached:!0,timestamp:r.timestamp,expires:r.expires,timeUntilExpiry:r.expires-Date.now()})}catch(d){return console.error("Failed to retrieve GitHub data:",d),null}}async createBackup(a){try{const c=await this.getGitHubData(a,{skipExpiration:!0});if(!c)return;const u=`${ue}${a}_${Date.now()}`;localStorage.setItem(u,JSON.stringify({originalKey:a,data:c.data,timestamp:c.timestamp,backupCreated:Date.now()})),this.cleanOldBackups(a),console.log(`Backup created for key: ${a}`)}catch(c){console.warn("Failed to create backup:",c)}}async getBackupData(a){try{const c=Object.keys(localStorage).filter(d=>d.startsWith(`${ue}${a}_`)).sort((d,S)=>{const r=parseInt(d.split("_").pop());return parseInt(S.split("_").pop())-r});if(c.length===0)return null;const u=localStorage.getItem(c[0]);return JSON.parse(u).data}catch(c){return console.warn("Failed to get backup data:",c),null}}cleanOldBackups(a){try{const c=Object.keys(localStorage).filter(u=>u.startsWith(`${ue}${a}_`)).sort((u,i)=>{const d=parseInt(u.split("_").pop());return parseInt(i.split("_").pop())-d});for(let u=$i;u<c.length;u++)localStorage.removeItem(c[u])}catch(c){console.warn("Failed to clean old backups:",c)}}removeGitHubData(a){try{const c=`${ae}${a}`;localStorage.removeItem(c),console.log(`Removed stored data: ${a}`)}catch(c){console.warn("Failed to remove stored data:",c)}}cleanExpiredData(){try{const a=Date.now(),c=Object.keys(localStorage);let u=0;for(const d of c)if(d.startsWith(ae))try{const S=JSON.parse(localStorage.getItem(d));S.expires&&S.expires<a&&(localStorage.removeItem(d),u++)}catch{localStorage.removeItem(d),u++}const i=this.getMetadata();i.lastCleaned=a,i.totalEntries=Math.max(0,i.totalEntries-u),this.setMetadata(i),u>0&&console.log(`Cleaned ${u} expired/corrupted entries`)}catch(a){console.warn("Failed to clean expired data:",a)}}validateGitHubData(a){return!a||typeof a!="object"?!1:Array.isArray(a)?a.every(c=>c.id&&c.name&&typeof c.name=="string"):(a.id&&a.name,!0)}generateDataHash(a){const c=JSON.stringify(a);let u=0;for(let i=0;i<c.length;i++){const d=c.charCodeAt(i);u=(u<<5)-u+d,u=u&u}return u.toString(36)}compressData(a){return a}decompressData(a){return a}getStorageStats(){try{const a=this.getMetadata(),c=Object.keys(localStorage),u=c.filter(e=>e.startsWith(ae)),i=c.filter(e=>e.startsWith(ue));let d=0,S=0,r=0;const s=Date.now();for(const e of u)try{const o=localStorage.getItem(e);d+=o.length,JSON.parse(o).expires<s?r++:S++}catch{r++}return{metadata:a,totalEntries:u.length,validEntries:S,expiredEntries:r,backupCount:i.length,totalSize:d,formattedSize:this.formatBytes(d)}}catch(a){return console.warn("Failed to get storage stats:",a),null}}formatBytes(a){if(a===0)return"0 Bytes";const c=1024,u=["Bytes","KB","MB","GB"],i=Math.floor(Math.log(a)/Math.log(c));return parseFloat((a/Math.pow(c,i)).toFixed(2))+" "+u[i]}clearAllData(a=!1){if(!a)return console.warn("Use clearAllData(true) to confirm data deletion"),!1;try{const c=Object.keys(localStorage);let u=0;for(const i of c)(i.startsWith(ae)||i.startsWith(ue)||i===Fe)&&(localStorage.removeItem(i),u++);return this.initializeMetadata(),console.log(`Cleared ${u}
2 storage entries`),!0}catch(c){return console.error("Failed to clear data:",c),!1}}}const At=new Ni,Ti=(t,a,c)=>At.storeGitHubData(t,a,c),Pi=(t,a)=>At.getGitHubData(t,a),ge="github_cache_",ke=1800*1e3,Ri=50;class Oi{constructor(){this.memoryCache=new Map,this.cleanupOldEntries()}generateKey(a,c={}){const u=new URLSearchParams;return c.headers&&u.append("auth",c.headers.Authorization?"true":"false"),`${ge}${a}${u.toString()?"?"+u.toString():""}`}async get(a,c={}){const u=this.generateKey(a,c);if(this.memoryCache.has(u)){const i=this.memoryCache.get(u);if(i.expiry>Date.now())return console.log(`Cache HIT (memory): ${a}`),i.data;this.memoryCache.delete(u)}try{const i=localStorage.getItem(u);if(i){const d=JSON.parse(i);if(d.expiry>Date.now())return console.log(`Cache HIT (localStorage): ${a}`),this.memoryCache.set(u,d),d.data;localStorage.removeItem(u)}}catch(i){console.warn("Error reading from cache:",i)}try{const i=await Pi(u,{fallbackToBackup:!0});if(i&&i.data){console.log(`Cache HIT (enhanced storage): ${a}`);const d={data:i.data,expiry:i.expires,timestamp:i.timestamp};return this.memoryCache.set(u,d),i.data}}catch(i){console.warn("Error reading from enhanced storage:",i)}return console.log(`Cache MISS: ${a}`),null}set(a,c,u={},i=ke){const d=this.generateKey(a,u),S=Date.now()+i,r={data:c,expiry:S,timestamp:Date.now()};this.memoryCache.set(d,r),Ti(d,c,{ttl:i,backup:!0,validate:!0});try{const s=JSON.stringify(r);localStorage.setItem(d,s),console.log(`Cached: ${a} (TTL: ${i}ms)`)}catch(s){console.warn("Error storing in cache:",s),this.cleanupOldEntries()}this.memoryCache.size>Ri&&this.cleanupMemoryCache()}delete(a,c={}){const u=this.generateKey(a,c);this.memoryCache.delete(u);try{localStorage.removeItem(u)}catch(i){console.warn("Error removing from cache:",i)}}clear(){this.memoryCache.clear();try{Object.keys(localStorage).forEach(c=>{c.startsWith(ge)&&localStorage.removeItem(c)})}catch(a){console.warn("Error clearing cache:",a)}}getStats(){const a=this.memoryCache.size;let c=0,u=0;try{Object.keys(localStorage).forEach(d=>{d.startsWith(ge)&&(c++,u+=localStorage.getItem(d).length)})}catch(i){console.warn("Error getting cache stats:",i)}return{memoryEntries:a,localStorageEntries:c,totalSizeBytes:u,totalSizeKB:Math.round(u/1024*100)/100}}cleanupOldEntries(){try{const a=Object.keys(localStorage),c=Date.now();a.forEach(u=>{if(u.startsWith(ge))try{JSON.parse(localStorage.getItem(u)).expiry<c&&localStorage.removeItem(u)}catch{localStorage.removeItem(u)}})}catch(a){console.warn("Error during cache cleanup:",a)}}cleanupMemoryCache(){const a=Array.from(this.memoryCache.entries());a.sort((u,i)=>u[1].timestamp-i[1].timestamp);const c=Math.floor(a.length*.25);for(let u=0;u<c;u++)this.memoryCache.delete(a[u][0])}isRateLimited(a){return a&&(a.status===403||a.status===429||a.headers&&a.headers.get("x-ratelimit-remaining")==="0")}getRecommendedTTL(a){if(!a||!a.headers)return ke;if(this.isRateLimited(a))return 3600*1e3;const c=a.headers.get("x-ratelimit-remaining");return c&&parseInt(c)<10?2700*1e3:ke}}const oe=new Oi,ot=async(t,a={})=>{const c=await oe.get(t,a);if(c){const u=typeof c?.status=="number"?c.status:200,i=u>=200&&u<300&&!c?.error;return{ok:i,status:u,statusText:i?"OK (cache)":"Cached error",url:t,json:async()=>c,headers:new Map([["x-cache","HIT"]])}}try{console.log(`Fetching from API: ${t}`);const u=await fetch(t,{...a,signal:AbortSignal.timeout(8e3)});if(u.ok){const i=await u.json(),d=oe.getRecommendedTTL(u);return oe.set(t,i,a,d),{ok:!0,status:u.status,statusText:u.statusText,url:u.url,json:async()=>i,headers:new Map([...Array.from(u.headers.entries()),["x-cache","MISS"]])}}else return oe.isRateLimited(u)&&(console.warn(`Rate limited for ${t}, caching error`),oe.set(t,{error:"Rate limited",status:u.status},a,600*1e3)),u}catch(u){throw console.error(`Fetch error for ${t}:`,u),u}};oe.cleanupOldEntries();async function Di(){try{const t=await fetch("/data/github/repos.json",{signal:AbortSignal.timeout(8e3)});if(!t.ok)return null;const a=await t.json();return Array.isArray(a?.repos)&&a.repos.length?a.repos:null}catch{return null}}const Mi=()=>{const[t,a]=O.useState([]),[c,u]=O.useState(!0),[i,d]=O.useState(null),[S,r]=O.useState({}),[s,e]=O.useState({}),[o,p]=O.useState(!1),l=async()=>{try{const j=await se();return r(j),j}catch(j){console.warn("Could not fetch settings:",j)}const g={github:{type:"org",username:"",apiUrl:"",userAgent:"Portfolio"},projects:{ignore:[".github"],maxProjects:15,sortBy:"updated",sortOrder:"desc",showForks:!1,showPrivate:!1,fallbackMode:!0},counterAPI:{enabled:!0,baseUrl:"https://counterapi-9k7p.onrender.com",timeout:1e4,fallbackOnError:!0,projectMapping:{autoGenerate:!0,customMappings:{}}}};return r(g),g},n=async(g,j,b)=>{try{const m=await ot(`https://api.github.com/repos/${g}/${j}/languages`,{headers:b});if(m.ok){const w=await m.json(),A=Object.values(w).reduce((k,F)=>k+F,0);return Object.entries(w).sort(([,k],[,F])=>F-k).slice(0,3).map(([k,F])=>({name:k,percentage:(F/A*100).toFixed(1)}))}}catch(m){console.warn(`Could not fetch languages for ${j}:`,m)}return[]},h=(g,j,b)=>{if(!g&&!j&&!b)return null;let m;if(g)m=g.replace(/\/$/,"");else if(j&&b)m=`https://github.com/${b}/${j}`;else return null;return{starsUrl:`${m}/stargazers`,forksUrl:`${m}/network/members`,watchersUrl:`${m}/watchers`,issuesUrl:`${m}/issues`}},v=async g=>{if(!g.counterAPI?.enabled)return{};p(!0);try{const j=new AbortController,b=setTimeout(()=>j.abort(),g.counterAPI.timeout||1e4);return e({}),clearTimeout(b),{}}catch(j){if(j.name==="AbortError"?console.warn("CFlair-Counter request timed out"):console.warn("Could not fetch CFlair-Counter data:",j),g.counterAPI.fallbackOnError)return{}}finally{p(!1)}return{}},C=async(g,j)=>{try{const b=await fetch(`${j}/api/views/${g}`,{method:"GET",headers:{Accept:"application/json"}});if(b.ok){const m=await b.json();if(m.success)return m.totalViews||0}}catch(b){console.warn(`Could not fetch counter for ${g}:`,b)}return null},x=(g,j)=>{if(!j.counterAPI?.enabled)return null;const{customMappings:b,autoGenerate:m}=j.counterAPI.projectMapping||{};if(b&&b[g]){const w=b[g];return s[w]||null}return m&&s[g]||null},E=O.useCallback(async()=>{u(!0),d(null);const g=async j=>{let b="";try{const w=await j.json();b=w?.message||w?.error||""}catch{}const m=typeof j?.status=="number"?j.status:"unknown";return new Error(`GitHub API Error: ${m}${b?` - ${b}`:""}`)};try{const j=await l(),b=v(j),m=j.github?.apiUrl||`https://api.github.com/${j.github.type==="org"?"orgs":"users"}/${j.github.username}/repos`,w={headers:{Accept:"application/vnd.github.v3+json","User-Agent":Ei(j)}};let A=await Di();if(!A){const I=await ot(m,w);if(!I.ok)throw await g(I);A=await I.json()}const $=j.projects?.ignore||[],k=j.projects||{};await b;const F=A.filter(I=>!(!k.showPrivate&&I.private||!k.showForks&&I.fork||$.includes(I.name))).slice(0,k.maxProjects||15),U=(await Promise.all(F.map(async I=>{const L=I.languages||await n(I.owner.login,I.name,w.headers);let R=null;if(j.counterAPI?.enabled){const _=j.counterAPI.projectMapping?.customMappings?.[I.name]||I.name;R=await C(_,j.counterAPI.baseUrl)}return{id:I.id,name:I.name,description:I.description,html_url:I.html_url,homepage:I.homepage,topics:I.topics||[],language:I.language,languages:L,stargazers_count:I.stargazers_count,forks_count:I.forks_count,watchers_count:I.watchers_count||I.subscribers_count||0,updated_at:I.updated_at,created_at:I.created_at,
2size:I.size,default_branch:I.default_branch,open_issues_count:I.open_issues_count,counterValue:R,statsUrls:h(I.html_url,I.name,I.owner.login)}}))).sort((I,L)=>{const R=k.sortBy||"updated",_=k.sortOrder||"desc";let H=0;switch(R){case"updated":H=new Date(L.updated_at)-new Date(I.updated_at);break;case"created":H=new Date(L.created_at)-new Date(I.created_at);break;case"stars":H=L.stargazers_count-I.stargazers_count;break;case"name":H=I.name.localeCompare(L.name);break;default:H=new Date(L.updated_at)-new Date(I.updated_at)}return _==="asc"?-H:H});a(U)}catch(j){console.error("Error fetching repositories:",j),d(j.message),S.projects?.fallbackMode&&a([])}finally{u(!1)}},[]);return O.useEffect(()=>{E()},[E]),{repos:t,loading:c,error:i,settings:S,counterData:s,counterLoading:o,refetch:E,getCounterValue:g=>x(g,S)}},de=Object.freeze({author:"Krishna GSVV",github:"https://github.com/VKrishna04",repository:"https://github.com/VKrishna04/VKrishna04.github.io",website:"https://vkrishna04.me",license:"Apache-2.0",credit:"Designed & built by Krishna GSVV",generator:"https://github.com/Life-Experimentalist/portfolio-creator"}),Li=()=>{const[t,a]=O.useState({}),{repos:c}=Mi();O.useEffect(()=>{se().then(x=>a(x)).catch(x=>console.warn("Could not fetch settings:",x))},[]);const u={FaHeart:vt,FaGithub:He,FaLinkedin:Ue,FaTwitter:Re,FaInstagram:Be,FaDiscord:Ge,FaYoutube:Pe,FaTwitch:Oe,FaTiktok:De,FaMedium:Le,FaDev:Ve,FaStackOverflow:Me,FaDribbble:ze,FaBehance:qe,FaCodepen:We,FaSpotify:gt,FaPinterest:yt,FaReddit:bt,FaAws:wt,FaArrowUp:Ie,SiLeetcode:pt,SiHackerrank:ht,SiKaggle:ft,SiGithubcopilot:mt,SiYoutubemusic:ut,SiVercel:dt,SiHeroku:xt},i=x=>u[x],d=()=>!t.footer?.socialLinks?.show||!t.social?.platforms?[]:t.social.platforms.filter(x=>x.enabled&&x.url&&x.url.trim()!==""&&x.showInFooter),S=()=>{const E=(t.footer||{}).stats||{},j=(t.projects?.staticProjects||[]).filter(m=>m.showInProjects!==!1);if(E.countProjectsFromData&&c.length>0)return`${c.length}+`;if(j.length>0)return`${j.length}+`;const b=E.items?.find(m=>m.key==="projects");return!b?.value||b.value==="auto"?"0+":b.value},r=x=>x.key==="projects"&&(x.value==="auto"||!x.value)?S():x.value==="auto"?"N/A":x.value,s=()=>{window.scrollTo({top:0,behavior:"smooth"})},e=t.footer||{},o=e.styling||{},p=d(),l=e.about||{},n=e.stats||{},h=e.quickLinks||{},v=[l.show!==!1,h.show===!0,p.length>0].filter(Boolean).length,C=v===1?"grid-cols-1":v===2?"grid-cols-1 md:grid-cols-2":"grid-cols-1 md:grid-cols-2 lg:grid-cols-3";return f.jsxs("footer",{className:`relative ${o.backgroundColor||"bg-gradient-to-b from-gray-900/80 to-black/90 backdrop-blur-sm"} border-t ${o.borderColor||"border-purple-500/20"} overflow-hidden`,children:[f.jsxs("div",{className:"absolute inset-0 opacity-5",children:[f.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-purple-600/10 via-trans
2parent to-blue-600/10"}),f.jsx("div",{className:"absolute top-0 left-0 w-full h-px bg-gradient-to-r from-transparent via-purple-500/50 to-transparent"})]}),f.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 py-12",children:[v>0&&f.jsxs("div",{className:`grid ${C} gap-8 mb-8`,children:[l.show!==!1&&f.jsxs("div",{className:"space-y-4",children:[f.jsx("h3",{className:"text-xl font-bold bg-gradient-to-r from-purple-400 to-blue-400 bg-clip-text text-transparent",children:l.title||t.display?.officialName||Q(t)}),f.jsx("p",{className:`text-sm leading-relaxed ${o.textColor||"text-gray-400"}`,children:l.description||"Full-stack developer passionate about creating innovative web applications and contributing to open source projects. Always learning, always building."}),n.show!==!1&&n.items&&n.items.filter(x=>x.show!==!1).length>0&&f.jsx("div",{className:"flex flex-wrap gap-6 text-sm",children:n.items.filter(x=>x.show!==!1).map((x,E)=>f.jsxs("div",{className:"text-center",children:[f.jsx("div",{className:`font-semibold ${x.color||"text-purple-400"}`,children:r(x)}),f.jsx("div",{className:o.textColor||"text-gray-500",children:x.label})]},E))})]}),h.show===!0&&f.jsxs("div",{className:"space-y-4",children:[f.jsx("h3",{className:"text-lg font-semibold text-white",children:"Quick Links"}),f.jsx("nav",{className:"space-y-2",children:[{name:"Home",path:"/"},{name:"About",path:"/about"},{name:"Projects",path:"/projects"},{name:"Resume",path:"/resume"},{name:"Contact",path:"/contact"}].map(x=>f.jsx("a",{href:x.path,target:"_blank",rel:"noopener noreferrer",className:`block text-sm transition-colors duration-300 ${o.textColor||"text-gray-400"} hover:text-purple-400 hover:translate-x-1 transform transition-transform`,children:x.name},x.path))})]}),p.length>0&&f.jsxs("div",{className:"space-y-4 text-right",children:[f.jsx("h3",{className:"text-lg font-semibold text-white",children:"Let's Connect"}),t.social?.contact&&f.jsxs("div",{className:"space-y-2 text-sm",children:[t.social.contact.email&&f.jsxs("a",{href:`mailto:${t.social.contact.email}`,className:`block transition-colors duration-300 ${o.textColor||"text-gray-400"} hover:text-purple-400`,children:["ð§ ",t.social.contact.email]}),t.social.contact.location&&f.jsxs("div",{className:o.textColor||"text-gray-400",children:["ð ",t.social.contact.location]})]}),f.jsxs("div",{className:"space-y-3",children:[f.jsx("div",{className:"text-sm font-medium text-white",children:"Follow Me"}),f.jsx("div",{className:"flex flex-wrap gap-3 justify-end",children:p.map((x,E)=>{const g=i(x.icon);return g?f.jsxs("a",{href:x.url,target:"_blank",rel:"noopener noreferrer",className:`group relative p-2 rounded-lg transition-all duration-300 ${x.color||"text-gray-400"} hover:scale-110 hover:rotate-3 bg-white/5 hover:bg-white/10 border border-transparent hover:border-purple-500/30`,"aria-label":x.label,children:[f.jsx(g,{className:"w-5 h-5 transition-colors duration-300 group-hover:text-white"}),f.jsx("div",{className:"absolute -top-10 left-1/2 transform -translate-x-1/2 bg-black/90 text-white text-xs py-1 px-2 rounded opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none whitespace-nowrap border border-purple-500/30",children:x.label})]},E):null})})]})]})]}),f.jsx("div",{className:`border-t border-gray-800/50 ${v>0?"pt-8":"pt-0"}`,children:f.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-center space-y-4 md:space-y-0",children:[e.madeWith?.show!==!1&&f.jsxs("div",{className:`flex items-center space-x-2 ${o.textColor||"text-gray-400"}`,children:[f.jsx("span",{className:"text-sm",children:e.madeWith?.text||"Made with"}),e.madeWith?.icon&&(()=>{const x=i(e.madeWith.icon);return x?f.jsx("div",{children:f.jsx(x,{className:`w-4 h-4 ${e.madeWith?.iconColor||"text-red-500"}`})}):null})(),f.jsxs("span",{className:"text-sm",children:["by"," ",f.jsx("span",{className:"font-medium bg-gradient-to-r from-purple-400 to-blue-400 bg-clip-text text-transparent",children:e.madeWith?.by||t.display?.officialName||Q(t)})]})]}),f.jsx("div",{className:`text-sm text-center md:text-left ${o.copyrightColor||"text-gray-500"}`,children:e.copyright?.customText||f.jsxs(f.Fragment,{children:["©"," ",e.copyright?.showYear!==!1?new Date().getFullYear():""," ",e.copyright?.name||t.dis
2play?.officialName||Q(t),". ",e.copyright?.text||"All rights reserved","."]})}),f.jsx("button",{onClick:s,className:"p-2 rounded-full bg-purple-600/20 hover:bg-purple-600/40 border border-purple-500/30 transition-all duration-300 group","aria-label":"Scroll to top",children:f.jsx(Ie,{className:"w-4 h-4 text-purple-400 group-hover:text-purple-300 transition-colors duration-300"})})]})}),f.jsxs("div",{className:"mt-6 pt-4 border-t border-gray-800/30 text-center text-xs text-gray-600",children:["Designed & built by"," ",f.jsx("a",{href:de.github,target:"_blank",rel:"noopener noreferrer",className:"text-gray-500 hover:text-purple-400 transition-colors duration-300",children:de.author})," · ",f.jsx("a",{href:de.repository,target:"_blank",rel:"noopener noreferrer",className:"text-gray-500 hover:text-purple-400 transition-colors duration-300",children:"Open source"})," · ",f.jsx("a",{href:de.generator,target:"_blank",rel:"noopener noreferrer",className:"text-gray-500 hover:text-purple-400 transition-colors duration-300",children:"Build your own"})," · ",de.license]}),f.jsx("div",{className:"absolute bottom-0 left-0 w-full h-px bg-gradient-to-r from-transparent via-purple-500/50 to-transparent"})]})]})},Ui={"/":{path:"/about",label:"About",tagline:"The story, skills, and experience behind the work"},"/about":{path:"/projects",label:"Projects",tagline:"What I've built â extensions, full-stack apps, and more"},"/projects":{path:"/resume",label:"Resume",tagline:"Experience, education, and achievements at a glance"},"/resume":{path:"/stats",label:"DSA Stats",tagline:"Live problem-solving stats, streaks, and progress"},"/stats":{path:"/contact",label:"Contact",tagline:"Let's build something together"},"/contact":{path:"/",label:"Home",tagline:"Back to the start"}},Bi=()=>{const t=Ke(),a=Ui[t.pathname];return a?f.jsxs("section",{className:"relative border-t border-gray-800/60 bg-gray-950",children:[f.jsx(Z,{to:a.path,className:"group block max-w-7xl mx-auto px-4 py-14 md:py-16",children:f.jsxs("div",{className:"flex items-center justify-between gap-6",children:[f.jsxs("div",{children:[f.jsx("div",{className:"text-xs uppercase tracking-[0.25em] text-gray-500 mb-2",children:"Next up"}),f.jsx("div",{className:"text-3xl md:text-4xl font-bold bg-gradient-to-r from-primary-400 to-accent-400 bg-clip-text text-transparent group-hover:from-primary-300 group-hover:to-accent-300 transition-colors duration-300",children:a.label}),f.jsx("p",{className:"mt-2 text-sm md:text-base text-gray-400",children:a.tagline})]}),f.jsx("div",{className:"shrink-0 p-4 rounded-full border border-primary-500/30 bg-primary-500/10 text-primary-400 transition-all duration-300 group-hover:translate-x-1 group-hover:bg-primary-500/20 group-hover:text-primary-300",children:f.jsx(St,{className:"w-5 h-5"})})]})}),f.jsx("div",{className:"absolute bottom-0 left-0 w-full h-px bg-gradient-to-r from-transparent via-primary-500/40 to-transparent"})]}):null},Hi=()=>{const[t,a]=O.useState(!1);O.useEffect(()=>{const u=()=>{window.pageYOffset>300?a(!0):a(!1)};return window.addEventListener("scroll",u),()=>window.removeEventListener("scroll",u)},[]);const c=()=>{window.scrollTo({top:0,behavior:"smooth"})};return f.jsx(xi,{children:t&&f.jsx(V.button,{initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8},onClick:c,className:"fixed bottom-8 right-8 z-50 w-12 h-12 bg-gradient-to-r from-purple-600 to-pink-600 text-white rounded-full shadow-lg hover:shadow-purple-500/25 transition-all duration-300 flex items-center justify-center",whileHover:{scale:1.1},whileTap:{scale:.9},"aria-label":"Scroll to top",children:f.jsx(Ne,{name:"HiArrowUp",className:"w-5 h-5",fallback:null})})})};var ye={exports:{}},zi=ye.exports,nt;function Gi(){return nt||(nt=1,(function(t,a){(function(c,u){t.exports=u(Bt())})(typeof self<"u"?self:zi,(c=>(()=>{var u={2:(r,s,e)=>{var o=e(2199),p=e(4664),l=e(5950);r.exports=function(n){return o(n,l,p)}},79:(r,s,e)=>{var o=e(3702),p=e(80),l=e(4739),n=e(8655),h=e(1175);function v(C){var x=-1,E=C==null?0:C.length;for(this.clear();++x<E;){var g=C[x];this.set(g[0],g[1])}}v.prototype.clear=o,v.prototype.delete=p,v.prototype.get=l,v.prototype.has=n,v.prototype.set=h,r.exports=v},80:(r,s,e)=>{var o=e(6025),p=Array.prototype.splice;r.exports=function(l){var n=this.__data__,h=o(n,l);return!(h<0||(h==n.length-1?n.pop():p.call(n,h,1),--this.size,0))}},270:(r,s,e)=>{var o=e(7068),p=e(346);
2r.exports=function l(n,h,v,C,x){return n===h||(n==null||h==null||!p(n)&&!p(h)?n!=n&&h!=h:o(n,h,v,C,l,x))}},289:(r,s,e)=>{var o=e(2651);r.exports=function(p){return o(this,p).get(p)}},294:r=>{r.exports=function(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=9007199254740991}},317:r=>{r.exports=function(s){var e=-1,o=Array(s.size);return s.forEach((function(p,l){o[++e]=[l,p]})),o}},346:r=>{r.exports=function(s){return s!=null&&typeof s=="object"}},361:r=>{var s=/^(?:0|[1-9]\d*)$/;r.exports=function(e,o){var p=typeof e;return!!(o=o??9007199254740991)&&(p=="number"||p!="symbol"&&s.test(e))&&e>-1&&e%1==0&&e<o}},392:r=>{r.exports=function(s,e){return s?.[e]}},659:(r,s,e)=>{var o=e(1873),p=Object.prototype,l=p.hasOwnProperty,n=p.toString,h=o?o.toStringTag:void 0;r.exports=function(v){var C=l.call(v,h),x=v[h];try{v[h]=void 0;var E=!0}catch{}var g=n.call(v);return E&&(C?v[h]=x:delete v[h]),g}},689:(r,s,e)=>{var o=e(2),p=Object.prototype.hasOwnProperty;r.exports=function(l,n,h,v,C,x){var E=1&h,g=o(l),j=g.length;if(j!=o(n).length&&!E)return!1;for(var b=j;b--;){var m=g[b];if(!(E?m in n:p.call(n,m)))return!1}var w=x.get(l),A=x.get(n);if(w&&A)return w==n&&A==l;var $=!0;x.set(l,n),x.set(n,l);for(var k=E;++b<j;){var F=l[m=g[b]],N=n[m];if(v)var U=E?v(N,F,m,n,l,x):v(F,N,m,l,n,x);if(!(U===void 0?F===N||C(F,N,h,v,x):U)){$=!1;break}k||(k=m=="constructor")}if($&&!k){var I=l.constructor,L=n.constructor;I==L||!("constructor"in l)||!("constructor"in n)||typeof I=="function"&&I instanceof I&&typeof L=="function"&&L instanceof L||($=!1)}return x.delete(l),x.delete(n),$}},695:(r,s,e)=>{var o=e(8096),p=e(2428),l=e(6449),n=e(3656),h=e(361),v=e(7167),C=Object.prototype.hasOwnProperty;r.exports=function(x,E){var g=l(x),j=!g&&p(x),b=!g&&!j&&n(x),m=!g&&!j&&!b&&v(x),w=g||j||b||m,A=w?o(x.length,String):[],$=A.length;for(var k in x)!E&&!C.call(x,k)||w&&(k=="length"||b&&(k=="offset"||k=="parent")||m&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||h(k,$))||A.push(k);return A}},938:r=>{r.exports=function(s){var e=this.__data__,o=e.delete(s);return this.size=e.size,o}},945:(r,s,e)=>{var o=e(79),p=e(8223),l=e(3661);r.exports=function(n,h){var v=this.__data__;if(v instanceof o){var C=v.__data__;if(!p||C.length<199)return C.push([n,h]),this.size=++v.size,this;v=this.__data__=new l(C)}return v.set(n,h),this.size=v.size,this}},1042:(r,s,e)=>{var o=e(6110)(Object,"create");r.exports=o},1175:(r,s,e)=>{var o=e(6025);r.exports=function(p,l){var n=this.__data__,h=o(n,p);return h<0?(++this.size,n.push([p,l])):n[h][1]=l,this}},1380:r=>{r.exports=function(s){return this.__data__.set(s,"__lodash_hash_undefined__"),this}},1420:(r,s,e)=>{var o=e(79);r.exports=function(){this.__data__=new o,this.size=0}},1459:r=>{r.exports=function(s){return this.__data__.has(s)}},1549:(r,s,e)=>{var o=e(2032),p=e(3862),l=e(6721),n=e(2749),h=e(5749);function v(C){var x=-1,E=C==null?0:C.length;for(this.clear();++x<E;){var g=C[x];this.set(g[0],g[1])}}v.prototype.clear=o,v.prototype.delete=p,v.prototype.get=l,v.prototype.has=n,v.prototype.set=h,r.exports=v},1873:(r,s,e)=>{var o=e(9325).Symbol;r.exports=o},1882:(r,s,e)=>{var o=e(2552),p=e(3805);r.exports=function(l){if(!p(l))return!1;var n=o(l);return n=="[object Function]"||n=="[object GeneratorFunction]"||n=="[object AsyncFunction]"||n=="[object Proxy]"}},1986:(r,s,e)=>{var o=e(1873),p=e(7828),l=e(5288),n=e(5911),h=e(317),v=e(4247),C=o?o.prototype:void 0,x=C?C.valueOf:void 0;r.exports=function(E,g,j,b,m,w,A){switch(j){case"[object DataView]":if(E.byteLength!=g.byteLength||E.byteOffset!=g.byteOffset)return!1;E=E.buffer,g=g.buffer;case"[object ArrayBuffer]":return!(E.byteLength!=g.byteLength||!w(new p(E),new p(g)));case"[object Boolean]":case"[object Date]":case"[object Number]":return l(+E,+g);case"[object Error]":return E.name==g.name&&E.message==g.message;case"[object RegExp]":case"[object String]":return E==g+"";case"[object Map]":var $=h;case"[object Set]":var k=1&b;if($||($=v),E.size!=g.size&&!k)return!1;var F=A.get(E);if(F)return F==g;b|=2,A.set(E,g);var N=n($(E),$(g),b,m,w,A);return A.delete(E),N;case"[object Symbol]":if(x)return x.call(E)==x.call(g)}return!1}},2032:(r,s,e)=>{var o=e(1042);r.exports=function(){this.__data__=o?o(null):{},this.size=0}},2199:(r,s,e)=>{var o=e(4528),p=e(6449);r.exports=function(l,n,h){var v=n(l);return p(l)?v:o(v,h(l))}},2404:(r,s,e)=>{var o=e(270);r.exports=function(p,l){return o(p,l)}},2428:(r,s,e)=>{var o=e(7534),p=e(346),l=Object.prototype,n=l.hasOwnProperty,h=l.propertyIsEnumerable,v=o((function(){return arguments})())?o:function(C){return p(C)&&n.call(C,"callee")&&!h.call(C,"callee")};
2r.exports=v},2552:(r,s,e)=>{var o=e(1873),p=e(659),l=e(9350),n=o?o.toStringTag:void 0;r.exports=function(h){return h==null?h===void 0?"[object Undefined]":"[object Null]":n&&n in Object(h)?p(h):l(h)}},2651:(r,s,e)=>{var o=e(4218);r.exports=function(p,l){var n=p.__data__;return o(l)?n[typeof l=="string"?"string":"hash"]:n.map}},2749:(r,s,e)=>{var o=e(1042),p=Object.prototype.hasOwnProperty;r.exports=function(l){var n=this.__data__;return o?n[l]!==void 0:p.call(n,l)}},2804:(r,s,e)=>{var o=e(6110)(e(9325),"Promise");r.exports=o},2949:(r,s,e)=>{var o=e(2651);r.exports=function(p,l){var n=o(this,p),h=n.size;return n.set(p,l),this.size+=n.size==h?0:1,this}},3040:(r,s,e)=>{var o=e(1549),p=e(79),l=e(8223);r.exports=function(){this.size=0,this.__data__={hash:new o,map:new(l||p),string:new o}}},3146:(r,s,e)=>{for(var o=e(3491),p=typeof window>"u"?e.g:window,l=["moz","webkit"],n="AnimationFrame",h=p["request"+n],v=p["cancel"+n]||p["cancelRequest"+n],C=0;!h&&C<l.length;C++)h=p[l[C]+"Request"+n],v=p[l[C]+"Cancel"+n]||p[l[C]+"CancelRequest"+n];if(!h||!v){var x=0,E=0,g=[],j=1e3/60;h=function(b){if(g.length===0){var m=o(),w=Math.max(0,j-(m-x));x=w+m,setTimeout((function(){var A=g.slice(0);g.length=0;for(var $=0;$<A.length;$++)if(!A[$].cancelled)try{A[$].callback(x)}catch(k){setTimeout((function(){throw k}),0)}}),Math.round(w))}return g.push({handle:++E,callback:b,cancelled:!1}),E},v=function(b){for(var m=0;m<g.length;m++)g[m].handle===b&&(g[m].cancelled=!0)}}r.exports=function(b){return h.call(p,b)},r.exports.cancel=function(){v.apply(p,arguments)},r.exports.polyfill=function(b){b||(b=p),b.requestAnimationFrame=h,b.cancelAnimationFrame=v}},3345:r=>{r.exports=function(){return[]}},3491:function(r){(function(){var s,e,o,p,l,n;typeof performance<"u"&&performance!==null&&performance.now?r.exports=function(){return performance.now()}:typeof process<"u"&&process!==null&&process.hrtime?(r.exports=function(){return(s()-l)/1e6},e=process.hrtime,p=(s=function(){var h;return 1e9*(h=e())[0]+h[1]})(),n=1e9*process.uptime(),l=p-n):Date.now?(r.exports=function(){return Date.now()-o},o=Date.now()):(r.exports=function(){return new Date().getTime()-o},o=new Date().getTime())}).call(this)},3605:r=>{r.exports=function(s){return this.__data__.get(s)}},3650:(r,s,e)=>{var o=e(4335)(Object.keys,Object);r.exports=o},3656:(r,s,e)=>{r=e.nmd(r);var o=e(9325),p=e(9935),l=s&&!s.nodeType&&s,n=l&&r&&!r.nodeType&&r,h=n&&n.exports===l?o.Buffer:void 0,v=(h?h.isBuffer:void 0)||p;r.exports=v},3661:(r,s,e)=>{var o=e(3040),p=e(7670),l=e(289),n=e(4509),h=e(2949);function v(C){var x=-1,E=C==null?0:C.length;for(this.clear();++x<E;){var g=C[x];this.set(g[0],g[1])}}v.prototype.clear=o,v.prototype.delete=p,v.prototype.get=l,v.prototype.has=n,v.prototype.set=h,r.exports=v},3702:r=>{r.exports=function(){this.__data__=[],this.size=0}},3805:r=>{r.exports=function(s){var e=typeof s;return s!=null&&(e=="object"||e=="function")}},3862:r=>{r.exports=function(s){var e=this.has(s)&&delete this.__data__[s];return this.size-=e?1:0,e}},4218:r=>{r.exports=function(s){var e=typeof s;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?s!=="__proto__":s===null}},4247:r=>{r.exports=function(s){var e=-1,o=Array(s.size);return s.forEach((function(p){o[++e]=p})),o}},4248:r=>{r.exports=function(s,e){for(var o=-1,p=s==null?0:s.length;++o<p;)if(e(s[o],o,s))return!0;return!1}},4335:r=>{r.exports=function(s,e){return function(o){return s(e(o))}}},4509:(r,s,e)=>{var o=e(2651);r.exports=function(p){return o(this,p).has(p)}},4528:r=>{r.exports=function(s,e){for(var o=-1,p=e.length,l=s.length;++o<p;)s[l+o]=e[o];return s}},4664:(r,s,e)=>{var o=e(9770),p=e(3345),l=Object.prototype.propertyIsEnumerable,n=Object.getOwnPropertySymbols,h=n?function(v){return v==null?[]:(v=Object(v),o(n(v),(function(C){return l.call(v,C)})))}:p;r.exports=h},4739:(r,s,e)=>{var o=e(6025);r.exports=function(p){var l=this.__data__,n=o(l,p);return n<0?void 0:l[n][1]}},4840:(r,s,e)=>{var o=typeof e.g=="object"&&e.g&&e.g.Object===Object&&e.g;r.exports=o},4894:(r,s,e)=>{var o=e(1882),p=e(294);r.exports=function(l){return l!=null&&p(l.length)&&!o(l)}},4901:(r,s,e)=>{var o=e(2552),p=e(294),l=e(346),n={};
2n["[object Float32Array]"]=n["[object Float64Array]"]=n["[object Int8Array]"]=n["[object Int16Array]"]=n["[object Int32Array]"]=n["[object Uint8Array]"]=n["[object Uint8ClampedArray]"]=n["[object Uint16Array]"]=n["[object Uint32Array]"]=!0,n["[object Arguments]"]=n["[object Array]"]=n["[object ArrayBuffer]"]=n["[object Boolean]"]=n["[object DataView]"]=n["[object Date]"]=n["[object Error]"]=n["[object Function]"]=n["[object Map]"]=n["[object Number]"]=n["[object Object]"]=n["[object RegExp]"]=n["[object Set]"]=n["[object String]"]=n["[object WeakMap]"]=!1,r.exports=function(h){return l(h)&&p(h.length)&&!!n[o(h)]}},5083:(r,s,e)=>{var o=e(1882),p=e(7296),l=e(3805),n=e(7473),h=/^\[object .+?Constructor\]$/,v=Function.prototype,C=Object.prototype,x=v.toString,E=C.hasOwnProperty,g=RegExp("^"+x.call(E).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");r.exports=function(j){return!(!l(j)||p(j))&&(o(j)?g:h).test(n(j))}},5288:r=>{r.exports=function(s,e){return s===e||s!=s&&e!=e}},5481:(r,s,e)=>{var o=e(9325)["__core-js_shared__"];r.exports=o},5527:r=>{var s=Object.prototype;r.exports=function(e){var o=e&&e.constructor;return e===(typeof o=="function"&&o.prototype||s)}},5580:(r,s,e)=>{var o=e(6110)(e(9325),"DataView");r.exports=o},5749:(r,s,e)=>{var o=e(1042);r.exports=function(p,l){var n=this.__data__;return this.size+=this.has(p)?0:1,n[p]=o&&l===void 0?"__lodash_hash_undefined__":l,this}},5861:(r,s,e)=>{var o=e(5580),p=e(8223),l=e(2804),n=e(6545),h=e(8303),v=e(2552),C=e(7473),x="[object Map]",E="[object Promise]",g="[object Set]",j="[object WeakMap]",b="[object DataView]",m=C(o),w=C(p),A=C(l),$=C(n),k=C(h),F=v;(o&&F(new o(new ArrayBuffer(1)))!=b||p&&F(new p)!=x||l&&F(l.resolve())!=E||n&&F(new n)!=g||h&&F(new h)!=j)&&(F=function(N){var U=v(N),I=U=="[object Object]"?N.constructor:void 0,L=I?C(I):"";if(L)switch(L){case m:return b;case w:return x;case A:return E;case $:return g;case k:return j}return U}),r.exports=F},5911:(r,s,e)=>{var o=e(8859),p=e(4248),l=e(9219);r.exports=function(n,h,v,C,x,E){var g=1&v,j=n.length,b=h.length;if(j!=b&&!(g&&b>j))return!1;var m=E.get(n),w=E.get(h);if(m&&w)return m==h&&w==n;var A=-1,$=!0,k=2&v?new o:void 0;for(E.set(n,h),E.set(h,n);++A<j;){var F=n[A],N=h[A];if(C)var U=g?C(N,F,A,h,n,E):C(F,N,A,n,h,E);if(U!==void 0){if(U)continue;$=!1;break}if(k){if(!p(h,(function(I,L){if(!l(k,L)&&(F===I||x(F,I,v,C,E)))return k.push(L)}))){$=!1;break}}else if(F!==N&&!x(F,N,v,C,E)){$=!1;break}}return E.delete(n),E.delete(h),$}},5950:(r,s,e)=>{var o=e(695),p=e(8984),l=e(4894);r.exports=function(n){return l(n)?o(n):p(n)}},6009:(r,s,e)=>{r=e.nmd(r);var o=e(4840),p=s&&!s.nodeType&&s,l=p&&r&&!r.nodeType&&r,n=l&&l.exports===p&&o.process,h=(function(){try{return l&&l.require&&l.require("util").types||n&&n.binding&&n.binding("util")}catch{}})();r.exports=h},6025:(r,s,e)=>{var o=e(5288);r.exports=function(p,l){for(var n=p.length;n--;)if(o(p[n][0],l))return n;return-1}},6110:(r,s,e)=>{var o=e(5083),p=e(392);r.exports=function(l,n){var h=p(l,n);return o(h)?h:void 0}},6449:r=>{var s=Array.isArray;r.exports=s},6545:(r,s,e)=>{var o=e(6110)(e(9325),"Set");r.exports=o},6721:(r,s,e)=>{var o=e(1042),p=Object.prototype.hasOwnProperty;r.exports=function(l){var n=this.__data__;if(o){var h=n[l];return h==="__lodash_hash_undefined__"?void 0:h}return p.call(n,l)?n[l]:void 0}},7068:(r,s,e)=>{var o=e(7217),p=e(5911),l=e(1986),n=e(689),h=e(5861),v=e(6449),C=e(3656),x=e(7167),E="[object Arguments]",g="[object Array]",j="[object Object]",b=Object.prototype.hasOwnProperty;r.exports=function(m,w,A,$,k,F){var N=v(m),U=v(w),I=N?g:h(m),L=U?g:h(w),R=(I=I==E?j:I)==j,_=(L=L==E?j:L)==j,H=I==L;if(H&&C(m)){if(!C(w))return!1;N=!0,R=!1}if(H&&!R)return F||(F=new o),N||x(m)?p(m,w,A,$,k,F):l(m,w,I,A,$,k,F);if(!(1&A)){var D=R&&b.call(m,"__wrapped__"),T=_&&b.call(w,"__wrapped__");
2if(D||T){var B=D?m.value():m,M=T?w.value():w;return F||(F=new o),k(B,M,A,$,F)}}return!!H&&(F||(F=new o),n(m,w,A,$,k,F))}},7167:(r,s,e)=>{var o=e(4901),p=e(7301),l=e(6009),n=l&&l.isTypedArray,h=n?p(n):o;r.exports=h},7217:(r,s,e)=>{var o=e(79),p=e(1420),l=e(938),n=e(3605),h=e(9817),v=e(945);function C(x){var E=this.__data__=new o(x);this.size=E.size}C.prototype.clear=p,C.prototype.delete=l,C.prototype.get=n,C.prototype.has=h,C.prototype.set=v,r.exports=C},7296:(r,s,e)=>{var o,p=e(5481),l=(o=/[^.]+$/.exec(p&&p.keys&&p.keys.IE_PROTO||""))?"Symbol(src)_1."+o:"";r.exports=function(n){return!!l&&l in n}},7301:r=>{r.exports=function(s){return function(e){return s(e)}}},7473:r=>{var s=Function.prototype.toString;r.exports=function(e){if(e!=null){try{return s.call(e)}catch{}try{return e+""}catch{}}return""}},7534:(r,s,e)=>{var o=e(2552),p=e(346);r.exports=function(l){return p(l)&&o(l)=="[object Arguments]"}},7670:(r,s,e)=>{var o=e(2651);r.exports=function(p){var l=o(this,p).delete(p);return this.size-=l?1:0,l}},7828:(r,s,e)=>{var o=e(9325).Uint8Array;r.exports=o},8096:r=>{r.exports=function(s,e){for(var o=-1,p=Array(s);++o<s;)p[o]=e(o);return p}},8223:(r,s,e)=>{var o=e(6110)(e(9325),"Map");r.exports=o},8303:(r,s,e)=>{var o=e(6110)(e(9325),"WeakMap");r.exports=o},8655:(r,s,e)=>{var o=e(6025);r.exports=function(p){return o(this.__data__,p)>-1}},8859:(r,s,e)=>{var o=e(3661),p=e(1380),l=e(1459);function n(h){var v=-1,C=h==null?0:h.length;for(this.__data__=new o;++v<C;)this.add(h[v])}n.prototype.add=n.prototype.push=p,n.prototype.has=l,r.exports=n},8984:(r,s,e)=>{var o=e(5527),p=e(3650),l=Object.prototype.hasOwnProperty;r.exports=function(n){if(!o(n))return p(n);var h=[];for(var v in Object(n))l.call(n,v)&&v!="constructor"&&h.push(v);return h}},9155:r=>{r.exports=c},9219:r=>{r.exports=function(s,e){return s.has(e)}},9325:(r,s,e)=>{var o=e(4840),p=typeof self=="object"&&self&&self.Object===Object&&self,l=o||p||Function("return this")();r.exports=l},9350:r=>{var s=Object.prototype.toString;r.exports=function(e){return s.call(e)}},9770:r=>{r.exports=function(s,e){for(var o=-1,p=s==null?0:s.length,l=0,n=[];++o<p;){var h=s[o];e(h,o,s)&&(n[l++]=h)}return n}},9817:r=>{r.exports=function(s){return this.__data__.has(s)}},9905:(r,s,e)=>{e.d(s,{default:()=>H});var o=e(3146),p=e.n(o);const l=function(D){return new RegExp(/<[a-z][\s\S]*>/i).test(D)},n=function(D,T){return Math.floor(Math.random()*(T-D+1))+D};var h="TYPE_CHARACTER",v="REMOVE_CHARACTER",C="REMOVE_ALL",x="REMOVE_LAST_VISIBLE_NODE",E="PAUSE_FOR",g="CALL_FUNCTION",j="ADD_HTML_TAG_ELEMENT",b="CHANGE_DELETE_SPEED",m="CHANGE_DELAY",w="CHANGE_CURSOR",A="PASTE_STRING",$="HTML_TAG";function k(D){return k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(T){return typeof T}:function(T){return T&&typeof Symbol=="function"&&T.constructor===Symbol&&T!==Symbol.prototype?"symbol":typeof T},k(D)}function F(D,T){var B=Object.keys(D);if(Object.getOwnPropertySymbols){var M=Object.getOwnPropertySymbols(D);T&&(M=M.filter((function(J){return Object.getOwnPropertyDescriptor(D,J).enumerable}))),B.push.apply(B,M)}return B}function N(D){for(var T=1;T<arguments.length;T++){var B=arguments[T]!=null?arguments[T]:{};T%2?F(Object(B),!0).forEach((function(M){R(D,M,B[M])})):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(B)):F(Object(B)).forEach((function(M){Object.defineProperty(D,M,Object.getOwnPropertyDescriptor(B,M))}))}return D}function U(D){return(function(T){if(Array.isArray(T))return I(T)})(D)||(function(T){if(typeof Symbol<"u"&&T[Symbol.iterator]!=null||T["@@iterator"]!=null)return Array.from(T)})(D)||(function(T,B){if(T){if(typeof T=="string")return I(T,B);var M={}.toString.call(T).slice(8,-1);return M==="Object"&&T.constructor&&(M=T.constructor.name),M==="Map"||M==="Set"?Array.from(T):M==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(M)?I(T,B):void 0}})(D)||(function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 3In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)})()}function I(D,T){(T==null||T>D.length)&&(T=D.length);for(var B=0,M=Array(T);B<T;B++)M[B]=D[B];return M}function L(D,T){for(var B=0;B<T.length;B++){var M=T[B];M.enumerable=M.enumerable||!1,M.configurable=!0,"value"in M&&(M.writable=!0),Object.defineProperty(D,_(M.key),M)}}function R(D,T,B){return(T=_(T))in D?Object.defineProperty(D,T,{value:B,enumerable:!0,configurable:!0,writable:!0}):D[T]=B,D}function _(D){var T=(function(B){if(k(B)!="object"||!B)return B;var M=B[Symbol.toPrimitive];if(M!==void 0){var J=M.call(B,"string");if(k(J)!="object")return J;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(B)})(D);return k(T)=="symbol"?T:T+""}const H=(function(){function D(M,J){var y=this;if((function(P,z){if(!(P instanceof z))throw new TypeError("Cannot call a class as a function")})(this,D),R(this,"state",{cursorAnimation:null,lastFrameTime:null,pauseUntil:null,eventQueue:[],eventLoop:null,eventLoopPaused:!1,reverseCalledEvents:[],calledEvents:[],visibleNodes:[],initialOptions:null,elements:{container:null,wrapper:document.createElement("span"),cursor:document.createElement("span")}}),R(this,"options",{strings:null,cursor:"|",delay:"natural",pauseFor:1500,deleteSpeed:"natural",loop:!1,autoStart:!1,devMode:!1,skipAddStyles:!1,wrapperClassName:"Typewriter__wrapper",cursorClassName:"Typewriter__cursor",stringSplitter:null,onCreateTextNode:null,onRemoveNode:null}),R(this,"setupWrapperElement",(function(){y.state.elements.container&&(y.state.elements.wrapper.className=y.options.wrapperClassName,y.state.elements.cursor.className=y.options.cursorClassName,y.state.elements.cursor.innerHTML=y.options.cursor,y.state.elements.container.innerHTML="",y.state.elements.container.appendChild(y.state.elements.wrapper),y.state.elements.container.appendChild(y.state.elements.cursor))})),R(this,"start",(function(){return y.state.eventLoopPaused=!1,y.runEventLoop(),y})),R(this,"pause",(function(){return y.state.eventLoopPaused=!0,y})),R(this,"stop",(function(){return y.state.eventLoop&&((0,o.cancel)(y.state.eventLoop),y.state.eventLoop=null),y})),R(this,"pauseFor",(function(P){return y.addEventToQueue(E,{ms:P}),y})),R(this,"typeOutAllStrings",(function(){return typeof y.options.strings=="string"?(y.typeString(y.options.strings).pauseFor(y.options.pauseFor),y):(y.options.strings.forEac
3h((function(P){y.typeString(P).pauseFor(y.options.pauseFor).deleteAll(y.options.deleteSpeed)})),y)})),R(this,"typeString",(function(P){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(l(P))return y.typeOutHTMLString(P,z);if(P){var W=(y.options||{}).stringSplitter,q=typeof W=="function"?W(P):P.split("");y.typeCharacters(q,z)}return y})),R(this,"pasteString",(function(P){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return l(P)?y.typeOutHTMLString(P,z,!0):(P&&y.addEventToQueue(A,{character:P,node:z}),y)})),R(this,"typeOutHTMLString",(function(P){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,W=arguments.length>2?arguments[2]:void 0,q=(function(ie){var ce=document.createElement("div");return ce.innerHTML=ie,ce.childNodes})(P);if(q.length>0)for(var G=0;G<q.length;G++){var K=q[G],re=K.innerHTML;K&&K.nodeType!==3?(K.innerHTML="",y.addEventToQueue(j,{node:K,parentNode:z}),W?y.pasteString(re,K):y.typeString(re,K)):K.textContent&&(W?y.pasteString(K.textContent,z):y.typeString(K.textContent,z))}return y})),R(this,"deleteAll",(function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"natural";return y.addEventToQueue(C,{speed:P}),y})),R(this,"changeDeleteSpeed",(function(P){if(!P)throw new Error("Mu
3st provide new delete speed");return y.addEventToQueue(b,{speed:P}),y})),R(this,"changeDelay",(function(P){if(!P)throw new Error("Must provide new delay");return y.addEventToQueue(m,{delay:P}),y})),R(this,"changeCursor",(function(P){if(!P)throw new Error("Must provide new cursor");return y.addEventToQueue(w,{cursor:P}),y})),R(this,"deleteChars",(function(P){if(!P)throw new Error("Must provide amount of characters to delete");for(var z=0;z<P;z++)y.addEventToQueue(v);return y})),R(this,"callFunction",(function(P,z){if(!P||typeof P!="function")throw new Error("Callback must be a function");return y.addEventToQueue(g,{cb:P,thisArg:z}),y})),R(this,"typeCharacters",(function(P){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!P||!Array.isArray(P))throw new Error("Characters must be an array");return P.forEach((function(W){y.addEventToQueue(h,{character:W,node:z})})),y})),R(this,"removeCharacters",(function(P){if(!P||!Array.isArray(P))throw new Error("Characters must be an array");return P.forEach((function(){y.addEventToQueue(v)})),y})),R(this,"addEventToQueue",(function(P,z){var W=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return y.addEventToStateProperty(P,z,W,"eventQueue")})),R(this,"addReverseCalledEvent",(function(P,z){var W=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return y.options.loop?y.addEventToStateProperty(P,z,W,"reverseCalledEvents"):y})),R(this,"addEventToStateProperty",(function(P,z){var W=arguments.length>2&&arguments[2]!==void 0&&arguments[2],q=arguments.length>3?arguments[3]:void 0,G={eventName:P,eventArgs:z||{}};return y.state[q]=W?[G].concat(U(y.state[q])):[].concat(U(y.state[q]),[G]),y})),R(this,"runEventLoop",(function(){y.state.lastFrameTime||(y.state.lastFrameTime=Date.now());var P=Date.now(),z=P-y.state.lastFrameTime;if(!y.state.eventQueue.length){if(!y.options.loop)return;y.state.eventQueue=U(y.state.calledEvents),y.state.calledEvents=[],y.options=N({},y.state.initialOptions)}if(y.state.eventLoop=p()(y.runEventLoop),!y.state.eventLoopPaused){if(y.state.pauseUntil){if(P<y.state.pauseUntil)return;y.state.pauseUntil=null}var W,q=U(y.state.eventQueue),G=q.shift();if(!(z<=(W=G.eventName===x||G.eventName===v?y.options.deleteSpeed==="natural"?n(40,80):y.options.deleteSpeed:y.options.delay==="natural"?n(120,160):y.options.delay))){var K=G.eventName,re=G.eventArgs;switch(y.logInDevMode({currentEvent:G,state:y.state,delay:W}),K){case A:case h:var ie=re.character,ce=re.node,Ze=document.createTextNode(ie),le=Ze;y.options.onCreateTextNode&&typeof y.options.onCreateTextNode=="function"&&(le=y.options.onCreateTextNode(ie,Ze)),le&&(ce?ce.appendChild(le):y.state.elements.wrapper.appendChild(le)),y.state.visibleNodes=[].concat(U(y.state.visibleNodes),[{type:"TEXT_NODE",character:ie,node:le}]);break;case v:q.unshift({eventName:x,eventArgs:{removingCharacterNode:!0}});break;case E:var Tt=G.eventArgs.ms;y.state.pauseUntil=Date.now()+parseInt(Tt);break;case g:var et=G.eventArgs,Pt=et.cb,Rt=et.thisArg;Pt.call(Rt,{elements:y.state.elements});break;case j:var tt=G.eventArgs,we=tt.node,Se=tt.parentNode;Se?Se.appendChild(we):y.state.elements.wrapper.appendChild(we),y.state.visibleNodes=[].concat(U(y.state.visibleNodes),[{type:$,node:we,parentNode:Se||y.state.elements.wrapper}]);break;case C:var Ot=y.state.visibleNodes,je=re.speed,fe=[];je&&fe.push({eventName:b,eventArgs:{speed:je,temp:!0}});for(var rt=0,Dt=Ot.length;rt<Dt;rt++)fe.push({eventName:x,eventArgs:{removingCharacterNode:!1}});je&&fe.push({eventName:b,eventArgs:{speed:y.options.deleteSpeed,temp:!0}}),q.unshift.apply(q,fe);break;case x:var Mt=G.eventArgs.removingCharacterNode;if(y.state.visibleNodes.length){var Ce=y.state.visibleNodes.pop(),Lt=Ce.type,he=Ce.n
3ode,Ut=Ce.character;y.options.onRemoveNode&&typeof y.options.onRemoveNode=="function"&&y.options.onRemoveNode({node:he,character:Ut}),he&&he.parentNode.removeChild(he),Lt===$&&Mt&&q.unshift({eventName:x,eventArgs:{}})}break;case b:y.options.deleteSpeed=G.eventArgs.speed;break;case m:y.options.delay=G.eventArgs.delay;break;case w:y.options.cursor=G.eventArgs.cursor,y.state.elements.cursor.innerHTML=G.eventArgs.cursor}y.options.loop&&(G.eventName===x||G.eventArgs&&G.eventArgs.temp||(y.state.calledEvents=[].concat(U(y.state.calledEvents),[G]))),y.state.eventQueue=q,y.state.lastFrameTime=P}}})),M)if(typeof M=="string"){var Xe=document.querySelector(M);if(!Xe)throw new Error("Could not find container element");this.state.elements.container=Xe}else this.state.elements.container=M;J&&(this.options=N(N({},this.options),J)),this.state.initialOptions=N({},this.options),this.init()}var T,B;return T=D,(B=[{key:"init",value:function(){var M,J;this.setupWrapperElement(),this.addEventToQueue(w,{cursor:this.options.cursor},!0),this.addEventToQueue(C,null,!0),!window||window.___TYPEWRITER_JS_STYLES_ADDED___||this.options.skipAddStyles||(M=".Typewriter__cursor{-webkit-animation:Typewriter-cursor 1s infinite;animation:Typewriter-cursor 1s infinite;margin-left:1px}@-webkit-keyframes Typewriter-cursor{0%{opacity:0}50%{opacity:1}100%{opacity:0}}@keyframes Typewriter-cursor{0%{opacity:0}50%{opacity:1}100%{opacity:0}}",(J=document.createElement("style")).appendChild(document.createTextNode(M)),document.head.appendChild(J),window.___TYPEWRITER_JS_STYLES_ADDED___=!0),this.options.autoStart===!0&&this.options.strings&&this.typeOutAllStrings().start()}},{key:"logInDevMode",value:function(M){this.options.devMode&&console.log(M)}}])&&L(T.prototype,B),Object.defineProperty(T,"prototype",{writable:!1}),D})()},9935:r=>{r.exports=function(){return!1}}},i={};function d(r){var s=i[r];if(s!==void 0)return s.exports;var e=i[r]={id:r,loaded:!1,exports:{}};return u[r].call(e.exports,e,e.exports,d),e.loaded=!0,e.exports}d.n=r=>{var s=r&&r.__esModule?()=>r.default:()=>r;return d.d(s,{a:s}),s},d.d=(r,s)=>{for(var e in s)d.o(s,e)&&!d.o(r,e)&&Object.defineProperty(r,e,{enumerable:!0,get:s[e]})},d.g=(function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}})(),d.o=(r,s)=>Object.prototype.hasOwnProperty.call(r,s),d.nmd=r=>(r.paths=[],r.children||(r.children=[]),r);var S={};return(()=>{d.d(S,{default:()=>j});var r=d(9155),s=d.n(r),e=d(9905),o=d(2404),p=d.n(o);function l(b){return l=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(m){return typeof m}:function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m},l(b)}function n(b,m){for(var w=0;w<m.length;w++){var A=m[w];A.enumerable=A.enumerable||!1,A.configurable=!0,"value"in A&&(A.writable=!0),Object.defineProperty(b,E(A.key),A)}}function h(b,m){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(w,A){return w.__proto__=A,w},h(b,m)}function v(b){if(b===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return b}function C(){try{var b=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch{}return(C=function(){return!!b})()}function x(b){return x=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(m){return m.__proto__||Object.getPrototypeOf(m)},x(b)}function E(b){var m=(function(w){if(l(w)!="object"||!w)return w;var A=w[Symbol.toPrimitive];if(A!==void 0){var $=A.call(w,"string");if(l($)!="object")return $;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(w)})(b);return l(m)=="symbol"?m:m+""}var g=(function(b){(function(k,F){if(typeof F!="function"&&F!==null)throw new TypeError("Super expression must either be null or a function");k.prototype=Object.create(F&&F.prototype,{constructor:{value:k,writable:!0,configurable:!0}}),Object.defineProperty(k,"prototype",{writable:!1}),F&&h(k,F)})($,b);var m,w,A=(function(k){var F=C();return function(){var N,U=x(k);if(F){var I=x(this).constructor;N=Reflect.construct(U,arguments,I)}else N=U.apply(this,arguments);return(function(L,R){if(R&&(l(R)=="object"||typeof R=="function"))return R;if(R!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return v(L)})(this,N)}})($);function $(){var k,F,N,U;(function(_,H){if(!(_ instanceof H))throw new TypeError("Cannot call a class as a function")})(this,$);for(var I=arguments.length,L=new Array(I),R=0;R<I;R++)L[R]=arguments[R];return F=v(k=A.call.apply(A,[this].concat(L))),U={instance:null},(N=E(N="state"))in F?Object.defineProperty(F,N,{value:U,enumerable:!0,configurable:!0,writable:!0}):F[N]=U,k}return m=$,(w=[{key:"componentDidMount",value:function(){var k=this,F=new e.default(this.typewriter,this.props.options);this.setState({instance:F},(function(){var N=k.props.onInit;N&&N(F)}))}},{key:"componentDidUpdate",value:function(k){p()(this.props.options,k.options)||this.setState({instance:new e.default(this.typewriter,this.props.options)})}},{key:"componentWillUnmount",value:function(){this.state.instance&&this.state.instance.stop()}},{key:"render",value:function(){var k=this,F=this.props.component;return s().createElement(F,{ref:function(N){return k.typewriter=N},className:"Typewriter","data-testid":"typewriter-wrapper"})}}])&&n(m.prototype,w),Object.defineProperty(m,"prototype",{writable:!1}),$})(r.Component);g.defaultProps={component:"div"};const j=g})(),S.default})()))})(ye)),ye.exports}var Vi=Gi();const Wi=Ht(Vi),qi=({config:t})=>{const a=O.useRef(null),c=O.useRef(null),u=O.useRef([]),i=O.useRef({x:0,y:0});return O.useEffect(()=>{if(!t?.enabled)return;const d=a.current;if(!d)return;const S=d.getContext("2d");let r=[];const s=b=>{const m=d.getBoundingClientRect();i.current.x=b.clientX-m.left,i.current.y=b.clientY-m.top};(t.type==="animated-network"||t.type==="particles")&&window.addEventListener("mousemove",s);const e=()=>{const b=t.gradient||{};if(!b.enabled&&t.type!=="gradient")return;const m=S.createLinearGradient(0,0,b.direction==="to bottom right"?d.width:0,(b.direction==="to bottom right",d.height)),w=b.colors||["rgba(15, 23, 42, 1)","rgba(30, 41, 59,
30.8)","rgba(51, 65, 85, 0.6)"];w.forEach((A,$)=>{m.addColorStop($/(w.length-1),A)}),S.fillStyle=m,S.fillRect(0,0,d.width,d.height)};if(t.type==="gradient")return e(),()=>{window.removeEventListener("resize",v)};if(t.type!=="animated-network"&&t.type!=="particles")return()=>{window.removeEventListener("resize",v)};const o=t.particles||{},p=t.animation||{},l=t.gradient||{},n=()=>{const b=d.width*d.height,m=1920*1080,w=o.count||150,A=Math.sqrt(b/m),$=Math.round(w*A),k=o.minParticles||20,F=o.maxParticles||500;return Math.max(k,Math.min(F,$))},h=()=>{const b=n();r=[];for(let m=0;m<b;m++)r.push(new C);u.current=r},v=()=>{if(d.width=window.innerWidth,d.height=window.innerHeight,r.length>0){const b=n(),m=r.length;if(Math.abs(b-m)>5){if(b>m)for(let w=m;w<b;w++)r.push(new C);else r.splice(b);u.current=r}}};class C{constructor(){this.x=Math.random()*d.width,this.y=Math.random()*d.height,this.baseVx=(Math.random()-.5)*(o.speed||.5),this.baseVy=(Math.random()-.5)*(o.speed||.5),this.vx=this.baseVx,this.vy=this.baseVy,this.size=(o.size||2)+Math.random()*2,this.color=o.color||"#ef4444",this.opacity=.4+Math.random()*.6,this.baseOpacity=this.opacity}update(){const m=o.mouseInfluence||120,w=o.mouseForce||3,A=o.returnSpeed||.05,$=i.current.x-this.x,k=i.current.y-this.y,F=Math.sqrt($*$+k*k);if(F<m){const L=(m-F)/m,R=Math.atan2(k,$);this.vx=this.baseVx-Math.cos(R)*L*w,this.vy=this.baseVy-Math.sin(R)*L*w}else this.vx+=(this.baseVx-this.vx)*A,this.vy+=(this.baseVy-this.vy)*A;const N=p.speed||1;this.x+=this.vx*N,this.y+=this.vy*N,(this.x<=0||this.x>=d.width)&&(this.vx*=-1,this.baseVx*=-1),(this.y<=0||this.y>=d.height)&&(this.vy*=-1,this.baseVy*=-1),this.x=Math.max(0,Math.min(d.width,this.x)),this.y=Math.max(0,Math.min(d.height,this.y));const U=o.pulseIntensity||.3,I=o.pulseSpeed||.002;this.opacity=this.baseOpacity+Math.sin(Date.now()*I+this.x*.01)*U}draw(){if(S.save(),S.globalAlpha=Math.max(0,Math.min(1,this.opacity)),S.beginPath(),S.arc(this.x,this.y,this.size,0,Math.PI*2),S.fillStyle=this.color,o.glow!==!1){const m=o.glowSize||8;S.shadowBlur=m,S.shadowColor=this.color}S.fill(),S.restore()}}v(),window.addEventListener("resize",v),h();let x=0;const g=1e3/(p.smoothness||60),j=b=>{if(b-x>=g){if(S.clearRect(0,0,d.width,d.height),l.enabled){const w=S.createLinearGradient(0,0,l.direction==="to bottom right"?d.width:0,(l.direction==="to bottom right",d.height)),A=l.colors||["rgba(15, 23, 42, 1)","rgba(30, 41, 59,
30.8)","rgba(51, 65, 85, 0.6)"];A.forEach(($,k)=>{w.addColorStop(k/(A.length-1),$)}),S.fillStyle=w,S.fillRect(0,0,d.width,d.height)}r.forEach(w=>{w.update(),w.draw()});const m=o.connections||{};if(t.type==="animated-network"&&m.enabled){const w=m.distance||200,A=m.color||"rgba(147, 51, 234, 0.2)",$=m.width||2,k=m.maxOpacity||.5;S.strokeStyle=A,S.lineWidth=$;for(let F=0;F<r.length;F++)for(let N=F+1;N<r.length;N++){const U=r[F].x-r[N].x,I=r[F].y-r[N].y,L=Math.sqrt(U*U+I*I);if(L<w){const R=(1-L/w)*k;S.save(),S.globalAlpha=R,S.beginPath(),S.moveTo(r[F].x,r[F].y),S.lineTo(r[N].x,r[N].y),S.stroke(),S.restore()}}}x=b}c.current=requestAnimationFrame(j)};return j(),()=>{window.removeEventListener("resize",v),window.removeEventListener("mousemove",s),c.current&&cancelAnimationFrame(c.current)}},[t]),!t?.enabled||t.type==="none"?null:f.jsx("canvas",{ref:a,className:"absolute inset-0 w-full h-full pointer-events-none",style:{zIndex:1,background:(t.type==="gradient","transparent")}})},Y=t=>{if(!t)return null;if(t.startsWith("#")||t.startsWith("rgb")||t.startsWith("hsl")||t.startsWith("var(")||!/^[a-z-]+$/i.test(t))return t;const a=t.match(/(text|bg|border)-([\w-]+)-([\d]+)(?:\/(\d+))?/);if(a){const[,,u,i,d]=a;return st(u,i,d)}const c=t.match(/([\w-]+)-([\d]+)(?:\/(\d+))?/);if(c){const[,u,i,d]=c;return st(u,i,d)}return t},st=(t,a,c)=>{const u={purple:{100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87"},blue:{100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a"},green:{100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b"},red:{100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d"},yellow:{100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f"},pink:{100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843"},gray:{100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827"},white:"#ffffff",black:"#000000"},i=u[t]?.[a]||u[t]||t;if(c){const d=parseFloat(c)/100;if(i.startsWith("#")){const S=parseInt(i.slice(1,3),16),r=parseInt(i.slice(3,5),16),s=parseInt(i.slice(5,7),16);return`rgba(${S}, ${r}, ${s}, ${d})`}}return i},it=(t,a=!1)=>t?t.type==="primary"?{background:a&&t.hoverGradient||t.gradient||"linear-gradient(to right, #a855f7, #ec4899)",color:t.textColor?Y(t.textColor):"#ffffff",...t.shadowColor&&{boxShadow:`0 10px 25px -5px ${Y(t.shadowColor)}`}}:t.type==="outline"?{borderColor:Y(t.borderColor)||"#a855f7",color:a?Y(t.hoverText)||"#ffffff":Y(t.textColor)||"#c084fc",...a&&t.hoverBg&&{backgroundColor:Y(t.hoverBg)||"#a855f7"}}:{}:{},_e=(t,a=!1)=>t?{color:a?Y(t.hoverColor)||"#c084fc":Y(t.color)||"#9ca3af"}:{},Nc=(t,a)=>{if(!t)return null;const c=t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/);if(c){const[,u,i,d]=c;return`rgba(${u}, ${i}, ${d}, ${a})`}if(t.startsWith("#")){const u=parseInt(t.slice(1,3),16),i=parseInt(t.slice(3,5),16),d=parseInt(t.slice(5,7),16);return`rgba(${u}, ${i}, ${d}, ${a})`}return t},Ki=()=>{const[t,a]=O.useState({}),[c,u]=O.useState(null),[i,d]=O.useState(!1);O.useEffect(()=>{se().then(g=>a(g)).catch(g=>console.warn("Could not fetch settings:",g))},[]);const S={FaGithub:He,FaLinkedin:Ue,FaTwitter:Re,FaInstagram:Be,FaDiscord:Ge,FaYoutube:Pe,FaTwitch:Oe,FaTiktok:De,FaMedium:Le,FaDev:Ve,FaStackOverflow:Me,FaDribbble:ze,FaBehance:qe,FaCodepen:We},r={ArrowDownIcon:$e,DocumentArrowDownIcon:Ct},s=g=>S[g],e=g=>r[g],o=()=>{const g=t.home?.profileImage;if(!g)return t.display?.profileImage;switch(g.type){case"github":return g.customUrl||`https://github.com/${t.home?.profileImage?.devUsername||pe(t)}.png`;case"display":return t.display?.profileImage;case"custom":return g.customUrl;default:return t.display?.profileImage}},p=()=>
3t.social?.platforms?t.social.platforms.filter(g=>g.enabled&&g.url&&g.url.trim()!==""&&g.showInHome):[],l={initial:{opacity:0,y:60},animate:{opacity:1,y:0},transition:{duration:t.home?.animations?.fadeInDuration||.6}},n={animate:{transition:{staggerChildren:t.home?.animations?.staggerDelay||.1}}},h=p(),C={...{enabled:!0,format:"markdown",label:"Copy All Data",copiedLabel:"Copied All Data",tooltip:"Copy this portfolio as text an AI can read",successDurationMs:2200},...t.home?.copyData||{}},x=g=>{const j=g!=="plain",b=[],m=(_,H)=>b.push(j?`${"#".repeat(_)} ${H}`:H.toUpperCase()),w=(_,H)=>{H&&b.push(j?`**${_}**: ${H}`:`${_}: ${H}`)},A=_=>b.push(j?`- ${_}`:` * ${_}`),$=()=>b.push(""),k=(_,H,D)=>{!Array.isArray(H)||H.length===0||(m(2,_),$(),H.forEach(T=>{D(T),$()}))},F=t.about||{},N=t.resume||{},U=Et(t),I=pe(t);m(1,Q(t)||"Portfolio"),$(),F.title&&(b.push(F.title),$()),w("Location",t.home?.location),w("Website",U),I&&w("GitHub",`https://github.com/${I}`),$();const L=Array.isArray(F.paragraphs)?F.paragraphs:[F.paragraphs].filter(Boolean);L.length&&(m(2,"About"),$(),L.forEach(_=>{b.push(_),$()}));const R=N.skills||F.skills;return Array.isArray(R)&&R.length&&(m(2,"Skills"),$(),R.forEach(_=>{const H=(_.items||[]).map(D=>
3typeof D=="string"?D:D?.name).filter(Boolean);H.length&&w(_.category,H.join(", "))}),$()),k("Work Experience",N.experiences,_=>{m(3,[_.title,_.company].filter(Boolean).join(" â ")),w("Period",_.period),w("Location",_.location),_.description&&b.push(_.description)}),k("Education",N.education,_=>{m(3,[_.degree,_.field].filter(Boolean).join(", ")),w("Institution",_.school),w("Period",_.period),w("GPA",_.gpa),(_.achievements||[]).forEach(A)}),k("Projects",N.personalProjects,_=>{m(3,_.name),_.description&&b.push(_.description),w("Tech",(_.technologies||[]).join(", ")),w("Source",_.githubUrl),w("Live",_.liveUrl)}),k("Awards & Honours",N.awards,_=>{m(3,_.name),w("Organisation",_.organization),w("Date",_.date),w("Prize",_.rewardAmount?.displayText),_.description&&b.push(_.description)}),k("Certifications",N.certifications,_=>{m(3,_.name),w("Issuer",_.issuer),w("Issued",_.issueDate),w("Credential ID",_.credentialId),w("Verify",_.verificationUrl)}),k("Publications",N.publications,_=>{m(3,_.title),w("Type",_.type),w("Publisher",_.publisher),w("Date",_.date),w("URL",_.url),_.description&&b.push(_.description)}),Array.isArray(N.languages)&&N.languages.length&&(m(2,"Languages"),$(),N.languages.forEac
3h(_=>{A([_.name,_.proficiency||_.level].filter(Boolean).join(" â "))}),$()),k("Volunteer Experience",N.volunteerExperience,_=>{m(3,[_.role,_.organization].filter(Boolean).join(" â ")),w("Period",_.period),_.description&&b.push(_.description)}),U&&(m(2,"Machine-Readable Sources"),$(),A(`${U}/llms.txt`),A(`${U}/api/portfolio.json`),A(`${U}/api/projects.json`),$()),b.join(` 4`).replace(/\n{3,}/g,` 5 6`).trim()},E=async()=>{const g=x(C.format),j=C.successDurationMs;try{await navigator.clipboard.writeText(g),d(!0),setTimeout(()=>d(!1),j)}catch{try{const b=document.createElement("textarea");b.value=g,document.body.appendChild(b),b.select(),document.execCommand("copy"),document.body.removeChild(b),d(!0),setTimeout(()=>d(!1),j)}catch(b){console.warn("Could not copy portfolio data:",b)}}};return f.jsxs(V.div,{className:"relative min-h-screen flex items-center justify-center overflow-hidden bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.5},children:[f.jsx("div",{className:"absolute inset-0",children:f.jsx(qi,{config:t.home?.background})}),f.jsxs(V.div,{className:"relative z-10 text-center px-4 max-w-6xl mx-auto",variants:n,initial:"initial",animate:"animate",children:[f.jsxs(V.div,{className:"mb-8 relative",variants:l,children:[f.jsx("div",{className:"w-32 h-32 md:w-40 md:h-40 mx-auto rounded-full overflow-hidden border-4 shadow-2xl hover:scale-105 transition-transform duration-300",style:{borderColor:Y(t.home?.profileImage?.borderColor||"rgba(168, 85, 247, 0.3)"),boxShadow:`0 25px 50px -12px ${Y(t.home?.profileImage?.shadowColor||"rgba(168, 85, 247, 0.2)")}`},children:f.jsx("img",{src:o(),alt:t.home?.profileImage?.altText||t.display?.officialName||"Profile",className:"w-full h-full object-cover hover:scale-110 transition-transform duration-500"})}),f.jsx("div",{className:"absolute inset-0 w-32 h-32 md:w-40 md:h-40 mx-auto rounded-full border-2 border-purple-400/20 animate-pulse"})]}),f.jsx(V.div,{className:"mb-6",variants:l,children:f.jsx("span",{className:"text-xl md:text-2xl text-gray-300 font-light",children:t.home?.greeting||"Hi There! ðð» I'm"})}),f.jsx(V.h1,{className:"text-4xl md:text-6xl lg:text-7xl font-bold mb-6 gradient-text",variants:l,style:{backgroundImage:t.home?.nameGradient||"linear-gradient(to right, #c770f0, #ec4899, #ef4444)",backgroundSize:"100%",backgroundRepeat:"no-repeat"},children:t.home?.name||t.display?.officialName||"Your Name"}),f.jsx(V.div,{className:"text-2xl md:text-3xl lg:text-4xl text-purple-400 font-semibold mb-8",variants:l,children:t.home?.typewriterStrings&&t.home.typewriterStrings.length>0&&f.jsx(Wi,{options:{strings:t.home.typewriterStrings,autoStart:t.home?.animations?.typewriterSettings?.autoStart??!0,loop:t.home?.animations?.typewriterSettings?.loop??!0,deleteSpeed:t.home?.animations?.typewriterSettings?.deleteSpeed||50,delay:t.home?.animations?.typewriterSettings?.delay||100}})}),f.jsx(V.p,{className:"text-lg md:text-xl text-gray-300 max-w-3xl mx-auto mb-8 leading-relaxed",variants:l,children:t.home?.description||"Welc
6ome to my portfolio!"}),t.home?.location?.show&&f.jsx(V.div,{className:"flex items-center justify-center text-gray-400 mb-12",variants:l,children:f.jsx("span",{className:"text-lg",children:t.home.location.text||`${t.home.location.icon||"ð"} ${t.home.location.city||""}, ${t.home.location.country||""}`})}),f.jsxs(V.div,{className:"flex flex-col sm:flex-row gap-4 justify-center items-center mb-12 relative z-20",variants:l,children:[t.home?.buttons?.map((g,j)=>{const b=e(g.icon),m=c===j;return g.type==="primary"?f.jsx(Z,{to:g.link,children:f.jsxs(V.div,{className:"group relative inline-flex items-center px-8 py-3 font-semibold rounded-full transition-all duration-300 shadow-lg cursor-pointer",style:it(g,!1),whileHover:{scale:1.05},whileTap:{scale:.95},children:[g.text,b&&f.jsx(b,{className:"ml-2 w-4 h-4 group-hover:translate-y-1 transition-transform"})]})},j):g.type==="outline"?f.jsx(Z,{to:g.link,children:f.jsxs(V.div,{className:"group relative inline-flex items-center px-8 py-3 border-2 font-semibold rounded-full transition-all duration-300 cursor-pointer hover:bg-opacity-100",style:it(g,m),onMouseEnter:()=>u(j),onMouseLeave:()=>u(null),whileHover:{scale:1.05},whileTap:{scale:.95},children:[g.text,b&&f.jsx(b,{className:"ml-2 w-4 h-4 group-hover:translate-y-1 transition-transform"})]})},j):null}),C.enabled&&f.jsxs(V.button,{type:"button",onClick:E,className:`group relative inline-flex items-center px-8 py-3 border-2 font-semibold rounded-full transition-all duration-300 cursor-pointer ${i?"text-green-300 border-green-500/60 bg-green-500/10":"text-cyan-300 border-cyan-400/50 hover:border-cyan-300 hover:bg-cyan-500/10"}`,whileHover:{scale:1.05},whileTap:{scale:.95},title:C.tooltip,children:[i?f.jsx(Ft,{className:"mr-2 w-4 h-4"}):f.jsx(jt,{className:"mr-2 w-4 h-4"}),i?C.copiedLabel:C.label]})]}),f.jsx(V.div,{className:"flex justify-center space-x-6",variants:l,children:h.map((g,j)=>{const b=s(g.icon);return b?f.jsx(V.a,{href:g.url,target:"_blank",rel:"noopener noreferrer",className:"transition-all duration-300 hover:scale-110",style:_e(g,!1),onMouseEnter:m=>Object.assign(m.currentTarget.style,_e(g,!0)),onMouseLeave:m=>Object.assign(m.currentTarget.style,_e(g,!1)),whileHover:{scale:1.2,y:-5,rotate:[0,-10,10,0]},whileTap:{scale:.9},"aria-label":g.label,children:f.jsx(b,{className:"w-6 h-6"})},j):null})})]}),t.home?.showScrollIndicator!==!1&&f.jsx(V.div,{className:"absolute bottom-8 left-1/2 transform -translate-x-1/2 z-20",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:1,duration:.6},children:f.jsx(V.div,{animate:{y:[0,10,0]},transition:{duration:2,repeat:1/0},className:"text-gray-400 hover:text-purple-400 transition-colors cursor-pointer",children:f.jsx($e,{className:"w-6 h-6"})})})]})},Ji=()=>f.jsx("div",{className:"flex flex-col items-center justify-center min-h-screen bg-gray-950 text-white px-4",children:f.jsxs("div",{className:"text-center max-w-2xl",children:[f.jsx("h1",{className:"text-9xl font-bold mb-4 bg-gradient-to-r from-primary-500 to-accent-500 bg-clip-text text-transparent",children:"404"}),f.jsx("h2",{className:"text-3xl font-semibold mb-6",children:"Page Not Found"}),f.jsx("p",{className:"text-lg mb-8 text-gray-400",children:"Oops! The page you're looking for doesn't exist. It might have been moved, deleted, or you entered the wrong URL."}),f.jsxs("div",{className:"space-y-4",children:[f.jsx(Z,{to:"/",className:"inline-block bg-gradient-to-r from-primary-500 to-accent-500 text-white px-8 py-3 rounded-lg font-semibold hover:opacity-90 transition-opacity duration-200 mr-4",children:"Go Home"}),f.jsx(Z,{to:"/projects",className:"inline-block border-2 border-primary-500/60 text-white px-8 py-3 rounded-lg font-semibold hover:bg-primary-500/10 transition-colors duration-200",children:"View Projects"})]}),f.jsx("div",{className:"mt-12 text-gray-500",children:f.jsxs("p",{className:"text-sm",children:["If you think this is an error, please"," ",f.jsx(Z,{to:"/contact",className:"underline hover:text-white",children:"contact me"}),"."]})})]})}),Qi=async(t,a={})=>{const{size:c=32,color:u="#000000",backgroundColor:i="transparent",padding:d=4}=a;try{const S=await ji(t);if(!S)return null;const r=document.createElement("div");r.style.position="absolute",r.style.top="-9999px",r.style.left="-9999px",r.style.width=`${c}px`,r.style.height=`${c}px`,document.body.appendChild(r);const s=zt.createRoot(r);await new Promise(n=>{s.render(lt.createElement(S,{size:c-d*2,color:u,style:{margin:`${d}px`,backgroundColor:i==="transparent"?"transparent":i,borderRadius:i!=="transparent"?"4px":"0"}})),setTimeout(n,100)});const e=r.querySelector("svg");if(!e)return console.warn("No SVG element found for icon:",t),null;const o=e.cloneNode(!0);if(o.setAttribute("width",c),o.setAttribute("height",c),o.setAttribute("viewBox",`0 0 ${c} ${c}`),i&&i!=="transparent"){const n=document.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("width","100%"),n.setAttribute("height","100%"),n.setAttribute("fill",i),n.setAttribute("rx","4"),o.insertBefore(n,o.firstChild)}const p=new XMLSerializer().serializeToString(o),l=`data:image/svg+xml;base64,${btoa(p)}`;return s.unmount(),document.body.removeChild(r),l}
6catch(S){return console.error(`Error converting icon ${t} to data URL:`,S),null}},Ee=async t=>new Promise((a,c)=>{document.querySelectorAll('link[rel*="icon"]').forEach(s=>s.remove());const i=t?.endsWith(".ico")?"image/x-icon":t?.endsWith(".jpg")||t?.endsWith(".jpeg")?"image/jpeg":"image/png",d=document.createElement("link");d.rel="icon",d.type=i,d.href=t;const S=document.createElement("link");S.rel="shortcut icon",S.type=i,S.href=t,d.onload=()=>{console.log("Favicon loaded successfully"),a(t)},d.onerror=s=>{console.error("Failed to load favicon:",s),c(s)},document.head.appendChild(d),document.head.appendChild(S);const r=document.createElement("link");r.rel="apple-touch-icon",r.href=t,document.head.appendChild(r)}),Yi=async(t,a={})=>{try{console.log(`Generating React Icon favicon: ${t}`);const{size:c=32,color:u="#6366f1",backgroundColor:i="transparent",padding:d=4}=a;if(!Si(t))return console.warn(`Invalid React Icon name: ${t}`),null;const r=await Qi(t,{size:c,color:u,backgroundColor:i,padding:d});return r||(console.warn(`Failed to generate data URL for icon: ${t}`),null)}catch(c){return console.error("Error generating React Icon favicon:",c),null}},Xi=(t,a=32)=>{try{const c=document.createElement("canvas"),u=c.getContext("2d");return c.width=a,c.height=a,u.font=`${a*.75}px Arial`,u.textAlign="center",u.textBaseline="middle",u.fillText(t,a/2,a/2),c.toDataURL("image/png")}catch(c){return console.error("Error generating emoji favicon:",c),null}},ct=(t,a=32,c="#6366f1",u="#ffffff",i="Arial, sans-serif")=>{try{const d=document.createElement("canvas"),S=d.getContext("2d");return d.width=a,d.height=a,S.fillStyle=c,S.fillRect(0,0,a,a),S.fillStyle=u,S.font=`bold ${a*.6}px ${i}`,S.textAlign="center",S.textBaseline="middle",S.fillText(t.charAt(0).toUpperCase(),a/2,a/2),d.toDataURL("image/png")}catch(d){return console.error("Error generating text favicon:",d),null}},Zi=async t=>{try{if(!t?.favicon){console.log("No favicon settings found");return}const{favicon:a}=t;let c=null;const u=a.githubUsername||t.github?.username||t.projects?.devUsername||null;switch(a.type){case"icon":case"react-icon":a.iconName&&(c=await Yi(a.iconName,{size:a.iconSize||a.size||32,color:a.iconColor||a.color||"#6366f1",backgroundColor:a.backgroundColor||"transparent",padding:a.padding||4}));break;case"github":u&&(c=`https://github.com/${u}.png`);break;case"custom":a.customUrl&&(c=a.customUrl);break;case"default":c="/favicon-32x32.png";break;case"emoji":a.emoji&&(c=Xi(a.emoji,a.iconSize||a.size||32));break;case"text":a.text&&(c=ct(a.text,a.iconSize||a.size||32,a.backgroundColor||"#6366f1",a.iconColor||a.color||"#ffffff",a.fontFamily||"Arial, sans-serif"));break;default:(a.url||a.path||a.customUrl)&&(c=a.url||a.path||a.customUrl);break}if(c)await Ee(c),console.log(`Favicons updated successfully: ${c}`);else{if(console.warn("No valid favicon could be generated, using default"),t.favicon?.customUrl){await Ee(t.favicon.customUrl);return}if(document.querySelector('link[rel="icon"][href="/favicon-32x32.png"]'))return;try{const i=ct("K",32,"#c770f0","#0a0a0a");await Ee(i),console.log("Fallback favicon applied successfully")}catch(i){console.warn("Could not apply fallback favicon:",i)}}}catch(a){console.error("Error initializing favicons:",a)}},ec=({settings:t,children:a})=>{const c=O.useRef(!1),u=O.useRef(null);return O.useEffect(()=>{const i=t?.favicon;if(!i)return;const d=JSON.stringify(i);if(u.current===d&&c.current)return;const S=setTimeout(()=>{try{Zi(t),c.current=!0,u.current=d}catch(r){console.warn("Failed to initialize favicons:",r)}},100);return()=>clearTimeout(S)},[t?.favicon?.default,t?.favicon?.darkMode]),a||null},tc=()=>{const[t,a]=O.useState(!1);O.useEffect(()=>{localStorage.getItem("privacy-notice-acknowledged")||a(!0)},[]);const c=()=>{localStorage.setItem("privacy-notice-acknowledged","true"),a(!1)};return t?f.jsx("div",{className:"fixed bottom-4 left-4 right-4 md:left-auto md:w-96 bg-white/10 backdrop-blur-md border border-white/20 rounded-lg p-4 shadow-lg z-50",children:f.jsxs("div",{className:"text-white",children:[f.jsx("h3",{className:"font-semibold text-sm mb-2",children:"Local Storage Notice"}),f.jsx("p",{className:"text-xs text-white/80 mb-3",children:"This site uses local storage to cache GitHub data for better performance, and an anonymous visit counter. No personal data is stored or shared."}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx("button",{onClick:c,className:"px-3 py-1 bg-primary-500 text-white text-xs rounded hover:bg-primary-600 transition-colors",children:"Got it"}),f.jsx("button",{onClick:c,className:"px-3 py-1 text-white/70 text-xs hover:text-white transition-colors",children:"Dismiss"})]})]})}):null},rc="",ac=300*1e3;let It=0;const Je=()=>Date.now()<It,oc=()=>typeof window<"u"&&window.__PRERENDER__===!0;let te=rc,$t=!1,Te=!1,Ae=null;function Nt(t){$t=t?.enabled===!0,t?.baseUrl&&(te=t.baseUrl),Te=!0}const nc=async()=>{Te||(Ae??(Ae=se().then(t=>Nt(t?.counterAPI)).catch(()=>{Te=!0})),await Ae)},Qe=async()=>oc()?!0:(await nc(),!$t),Ye=()=>{It=Date.now()+ac};async function xe(t,a,c={},u=te){if(!t||!a||await Qe()||Je())return null;const i=u||te;try{const d=await fetch(`${i}/api/events`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({category:t,event:a,metadata:c})});return d.status===429?(Ye(),null):d.ok?await d.json():null}catch{return null}}async function sc(t,a=te){if(!t)return console.warn("[CFlair-Counter] Project name is required"),null;if(await Qe()||Je())return null;try{const u=`${a||te}/api/views/${encodeURIComponent(t)}`,i=await fetch(u,{method:"POST",headers:{Accept:"application/json"}});if(i.status===429)return Ye(),console.warn("[CFlair-Counter] Rate limited (429). Backing off for 5 minutes."),null;if(i.ok){const d=await i.json();if(d.success)return console.log(`[CFlair-Counter] Tracked view for ${t}: ${d.totalViews} total views`),{success:!0,projectName:d.projectName,totalViews:d.totalViews||0,uniqueViews:d.uniqueViews||0,timestamp:d.timestamp}}return console.warn(`[CFlair-Counter] Failed to track view for ${t}: ${i.status}`),null}catch(c){return console.warn(`[CFlair-Counter] Error tracking view for ${t}:`,c.message),null}}
6async function Tc(t,a=te){if(await Qe())return null;if(!t)return console.warn("[CFlair-Counter] Project name is required"),null;if(Je())return null;try{const u=`${a||te}/api/views/${encodeURIComponent(t)}`,i=await fetch(u,{method:"GET",headers:{Accept:"application/json"}});if(i.ok){const d=await i.json();if(d.success)return{success:!0,projectName:d.projectName,totalViews:d.totalViews||0,uniqueViews:d.uniqueViews||0,description:d.description,createdAt:d.createdAt}}return i.status===429?(Ye(),console.warn("[CFlair-Counter] Rate limited (429). Backing off for 5 minutes."),null):(console.warn(`[CFlair-Counter] Failed to get stats for ${t}: ${i.status}`),null)}catch(c){return console.warn(`[CFlair-Counter] Error getting stats for ${t}:`,c.message),null}}async function ic(t=te){return sc("portfolio",t)}const Pc=t=>xe("resume","page-view",{},t),Rc=t=>xe("resume","pdf-download",{},t),Oc=(t,a)=>xe("resume","copy",{format:t},a),Dc=t=>xe("contact","form-submit",{},t),X=(t,a,c)=>{if(!c)return;let u=document.head.querySelector(`meta[${t}="${a}"]`);u||(u=document.createElement("meta"),u.setAttribute(t,a),document.head.appendChild(u)),u.setAttribute("content",c)},cc=t=>{if(!t)return;let a=document.head.querySelector('link[rel="canonical"]');a||(a=document.createElement("link"),a.rel="canonical",document.head.appendChild(a)),a.href=t},lc=t=>{let a=document.getElementById("route-jsonld");if(!t){a?.remove();return}a||(a=document.createElement("script"),a.type="application/ld+json",a.id="route-jsonld",document.head.appendChild(a)),a.textContent=JSON.stringify(t)},uc=({title:t,description:a,url:c,image:u,jsonLd:i})=>{t&&(document.title=t),cc(c),X("name","description",a),X("property","og:title",t),X("property","og:description",a),X("property","og:url",c),u&&(X("property","og:image",u),X("name","twitter:image",u),X("name","twitter:card","summary_large_image")),X("name","twitter:title",t),X("name","twitter:description",a),lc(i)},dc=O.lazy(()=>ne(()=>import("./About-Bk74oNFg.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),pc=O.lazy(()=>ne(()=>import("./Projects-CpMDnX6a.js"),__vite__mapDeps([8,1,7,4,5,2,6]))),fc=O.lazy(()=>ne(()=>import("./ProjectDetail-BwTMwh53.js"),__vite__mapDeps([9,6,1,7,5,4]))),hc=O.lazy(()=>ne(()=>import("./Resume-CIXtAsD8.js"),__vite__mapDeps([10,1,7,3,4,6,5]))),mc=O.lazy(()=>ne(()=>import("./Stats-Bg6RCbv4.js"),__vite__mapDeps([11,1,2,4,6,7,5]))),gc=O.lazy(()=>ne(()=>import("./Contact-C90dLMEh.js"),__vite__mapDeps([12,1,7,3,4,6,5]))),bc=()=>f.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-950",children:f.jsx("div",{className:"w-10 h-10 rounded-full border-2 border-primary-500/30 border-t-primary-500 animate-spin"})}),yc={"/about":"AboutPage","/projects":"CollectionPage","/resume":"ProfilePage","/stats":"WebPage","/contact":"ContactPage"},vc=(t,a,c,u,i)=>t==="/"?null:{"@context":"https://schema.org","@type":yc[t]||"WebPage",name:c,description:u,url:a,isPartOf:{"@type":"WebSite",name:i,url:new URL(a).origin},about:{"@type":"Person",name:i}},xc=t=>{const[a,c]=O.useState({}),u=O.useRef(!1);return O.useEffect(()=>{se().then(i=>c(i)).catch(i=>console.warn("Could not fetch settings:",i))},[]),O.useEffect(()=>{const i=a?.counterAPI;i&&(Nt(i),!u.current&&i.enabled===!0&&(u.current=!0,ic(i.baseUrl).catch(d=>console.warn("Could not track portfolio view:",d))))},[a]),O.useEffect(()=>{if(!Object.keys(a).length||/^\/projects\/[^/]+/.test(t.pathname))return;const i=a.display?.officialName||a.seo?.author||"Portfolio",S={"/":a.seo?.title||`${i} - Portfolio`,"/about":`About - ${i}`,"/projects":`Projects - ${i}`,"/resume":`Resume - ${i}`,"/stats":`DSA Stats - ${i}`,"/contact":`Contact - ${i}`}[t.pathname]||`${i} - Portfolio`,r=Et(a),s=t.pathname==="/"?`${r}/`:`${r}${t.pathname}`,e=a.seo?.pageDescriptions?.[t.pathname]||a.seo?.description||"";uc({title:S,description:e,url:s,jsonLd:vc(t.pathname,s,S,e,i)})},[t.pathname,a]),a},wc=O.memo(()=>{const t=Ke(),a=xc(t);return O.useEffect(()=>{window.location.hash||window.scrollTo(0,0)},[t.pathname]),f.jsxs("div",{className:"App",children:[f.jsx(ec,{settings:a}),f.jsx(Ai,{}),f.jsx("main",{className:"page-transition",children:f.jsx(O.Suspense,{fallback:f.jsx(bc,{}),children:f.jsxs(yi,{location:t,children:[f.jsx(ee,{path:"/",element:f.jsx(Ki,{})}),f.jsx(ee,{path:"/about",element:f.jsx(dc,{})}),f.jsx(ee,{path:"/projects",element:f.jsx(pc,{})}),f.jsx(ee,{path:"/projects/:slug",element:f.jsx(fc,{})}),f.jsx(ee,{path:"/resume",element:f.jsx(hc,{})}),f.jsx(ee,{path:"/stats",element:f.jsx(mc,{})}),f.jsx(ee,{path:"/contact",element:f.jsx(gc,{})}),f.jsx(ee,{path:"*",element:f.jsx(Ji,{})})]})})},t.pathname),f.jsx(Bi,{}),f.jsx(Li,{}),f.jsx(tc,{}),f.jsx(Hi,{})]})}),Sc=O.memo(()=>f.jsx(vi,{future:{v7_startTransition:!0,v7_relativeSplatPath:!0},children:f.jsx(wc,{})})),ve={initialized:!1,lastValidation:0,status:"pending"};function jc(){return ve.lastValidation=Date.now(),ve.status="val
6id",!0}function Cc(){ve.initialized||(ve.initialized=!0,jc(),console.log("[Protection] Build-time protection initialized"))}Cc();function Fc(){if(typeof navigator>"u"||!("serviceWorker"in navigator))return;const t="/";window.addEventListener("load",()=>{navigator.serviceWorker.register(`${t}sw.js`,{scope:t}).catch(a=>{console.warn("[sw] registration failed:",a)})})}Fc();Gt.createRoot(document.getElementById("root")).render(f.jsx(lt.StrictMode,{children:f.jsx(Sc,{})}));export{Ne as U,pe as a,Nc as b,$c as c,Ei as d,Di as e,se as f,ji as g,ot as h,Q as i,Nt as j,Tc as k,Et as l,uc as m,Pc as n,Rc as o,Y as p,Oc as q,_t as r,Dc as s,sc as t};
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.