From 45c71cefee84be346521b558b913376e20ef1da5 Mon Sep 17 00:00:00 2001 From: sverg84 <134344913+sverg84@users.noreply.github.com> Date: Fri, 26 Jan 2024 20:05:25 -0800 Subject: [PATCH] Updates --- asset-manifest.json | 14 +++++++------- index.html | 2 +- ...818.83eeeeea.chunk.js => 818.56208234.chunk.js} | 4 ++-- static/js/818.56208234.chunk.js.map | 1 + static/js/818.83eeeeea.chunk.js.map | 1 - static/js/996.b42b4184.chunk.js.map | 1 - ...996.b42b4184.chunk.js => 996.fd524d3d.chunk.js} | 4 ++-- static/js/996.fd524d3d.chunk.js.map | 1 + static/js/{main.8878d467.js => main.4b1fc840.js} | 6 +++--- ...js.LICENSE.txt => main.4b1fc840.js.LICENSE.txt} | 0 .../{main.8878d467.js.map => main.4b1fc840.js.map} | 2 +- 11 files changed, 18 insertions(+), 18 deletions(-) rename static/js/{818.83eeeeea.chunk.js => 818.56208234.chunk.js} (65%) create mode 100644 static/js/818.56208234.chunk.js.map delete mode 100644 static/js/818.83eeeeea.chunk.js.map delete mode 100644 static/js/996.b42b4184.chunk.js.map rename static/js/{996.b42b4184.chunk.js => 996.fd524d3d.chunk.js} (59%) create mode 100644 static/js/996.fd524d3d.chunk.js.map rename static/js/{main.8878d467.js => main.4b1fc840.js} (99%) rename static/js/{main.8878d467.js.LICENSE.txt => main.4b1fc840.js.LICENSE.txt} (100%) rename static/js/{main.8878d467.js.map => main.4b1fc840.js.map} (99%) diff --git a/asset-manifest.json b/asset-manifest.json index cd290cd..7abf7b4 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,11 +1,11 @@ { "files": { "main.css": "/static/css/main.37d981fa.css", - "main.js": "/static/js/main.8878d467.js", + "main.js": "/static/js/main.4b1fc840.js", "static/css/818.b6e58dde.chunk.css": "/static/css/818.b6e58dde.chunk.css", - "static/js/818.83eeeeea.chunk.js": "/static/js/818.83eeeeea.chunk.js", + "static/js/818.56208234.chunk.js": "/static/js/818.56208234.chunk.js", "static/css/996.c3a1c8b7.chunk.css": "/static/css/996.c3a1c8b7.chunk.css", - "static/js/996.b42b4184.chunk.js": "/static/js/996.b42b4184.chunk.js", + "static/js/996.fd524d3d.chunk.js": "/static/js/996.fd524d3d.chunk.js", "static/js/217.9e819b16.chunk.js": "/static/js/217.9e819b16.chunk.js", "static/css/306.25be4d54.chunk.css": "/static/css/306.25be4d54.chunk.css", "static/js/306.7c9b72c8.chunk.js": "/static/js/306.7c9b72c8.chunk.js", @@ -18,11 +18,11 @@ "static/js/950.aca04b31.chunk.js": "/static/js/950.aca04b31.chunk.js", "index.html": "/index.html", "main.37d981fa.css.map": "/static/css/main.37d981fa.css.map", - "main.8878d467.js.map": "/static/js/main.8878d467.js.map", + "main.4b1fc840.js.map": "/static/js/main.4b1fc840.js.map", "818.b6e58dde.chunk.css.map": "/static/css/818.b6e58dde.chunk.css.map", - "818.83eeeeea.chunk.js.map": "/static/js/818.83eeeeea.chunk.js.map", + "818.56208234.chunk.js.map": "/static/js/818.56208234.chunk.js.map", "996.c3a1c8b7.chunk.css.map": "/static/css/996.c3a1c8b7.chunk.css.map", - "996.b42b4184.chunk.js.map": "/static/js/996.b42b4184.chunk.js.map", + "996.fd524d3d.chunk.js.map": "/static/js/996.fd524d3d.chunk.js.map", "217.9e819b16.chunk.js.map": "/static/js/217.9e819b16.chunk.js.map", "306.25be4d54.chunk.css.map": "/static/css/306.25be4d54.chunk.css.map", "306.7c9b72c8.chunk.js.map": "/static/js/306.7c9b72c8.chunk.js.map", @@ -36,6 +36,6 @@ }, "entrypoints": [ "static/css/main.37d981fa.css", - "static/js/main.8878d467.js" + "static/js/main.4b1fc840.js" ] } \ No newline at end of file diff --git a/index.html b/index.html index 09e9e14..a5e4aad 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Stephen Vergara
\ No newline at end of file +Stephen Vergara
\ No newline at end of file diff --git a/static/js/818.83eeeeea.chunk.js b/static/js/818.56208234.chunk.js similarity index 65% rename from static/js/818.83eeeeea.chunk.js rename to static/js/818.56208234.chunk.js index 24d8c11..0070eff 100644 --- a/static/js/818.83eeeeea.chunk.js +++ b/static/js/818.56208234.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunksverg84_github_io=self.webpackChunksverg84_github_io||[]).push([[818],{9818:(e,n,t)=>{t.r(n),t.d(n,{Component:()=>ye});var i=t(2791),a=t(8025);const s={bg:"background_bg__rHR4m",bg3:"background_bg3__WZ4Pm",bg2:"background_bg2__XB2Tl",slide:"background_slide__Sq8xw"};var r=t(184);function o(){const e=function(){const{color:e}=(0,i.useContext)(a.Z);return{backgroundImage:"linear-gradient(-60deg, ".concat(e," 50%, white 50%)")}}();return(0,r.jsx)(r.Fragment,{children:[s.bg,s.bg2,s.bg3].map((n=>(0,r.jsx)("div",{className:n,style:e},n)))})}var l=t(8957),c=t(2982),d=t(8188),u=t(1694),m=t.n(u),h=t(2426),g=t.n(h),p=t(1087),x=t(4769);const f={bold:"text_bold__TiUuq",italic:"text_italic__fvjzk"},_=new Date("1998-05-06T10:47:00.000-06:00");function j(e){let{language:n}=e;const t=(0,x.Z)();return(0,r.jsx)("span",{className:f.bold,style:t,children:n})}function b(){const e=(0,x.Z)(),n=g().duration(g()().diff(_)).years();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.Z.Text,{as:"h2",className:m()("text-center","text-xl-start"),style:e,children:"About Me"}),(0,r.jsx)(l.Z.Text,{as:"h6",className:m()(f.italic,"text-center","text-xl-start"),children:"Front-End Software Engineer, Web Developer"}),(0,r.jsxs)(l.Z.Text,{children:["Hi there! My name is"," ",(0,r.jsx)("span",{className:m()(f.bold,f.italic),style:e,children:c.Z}),". I am a ",n," year-old software engineer with a fondness for user interface and user experience (UI/UX) development."]}),(0,r.jsxs)(l.Z.Text,{children:["I started learning to code during my senior year of high school when I took an introduction course to ",(0,r.jsx)(j,{language:"Java"})," on a whim, and I loved learning as much as I could since then! Throughout my time at university, I applied myself to a substantial amount of coursework in"," ",(0,r.jsx)(j,{language:"C++"})," and ",(0,r.jsx)(j,{language:"Python"})," with a splash of ",(0,r.jsx)(j,{language:"JavaScript"}),","," ",(0,r.jsx)(j,{language:"OCaml"}),", and ",(0,r.jsx)(j,{language:"C#"}),"."]}),(0,r.jsxs)(l.Z.Text,{children:["All of my full-time experience (as of Summer 2023) stems from my time at Meta where I challenged myself further in exploring web programming, learning ",(0,r.jsx)(j,{language:"PHP"})," and"," ",(0,r.jsx)(j,{language:"React"})," for the first time in a rigorous, fast-paced environment."]}),(0,r.jsxs)(l.Z.Text,{children:["Since parting with Meta, I have been self-teaching"," ",(0,r.jsx)(j,{language:"TypeScript"})," in order to keep my UI-building skills fresh, replete with ",(0,r.jsx)(j,{language:"SCSS"})," modules."]}),(0,r.jsxs)(l.Z.Text,{children:["Click"," ",(0,r.jsx)(p.rU,{className:f.bold,style:e,to:"/personal",children:"here"})," ","if you would like to learn more about me beyond my career!"]})]})}function v(){return(0,r.jsx)(d.Z,{alt:"Picture of ".concat(c.Z),src:"/sverg.jpeg",children:(0,r.jsx)(b,{})})}var y=t(2677),Z=t(9743),k=t(775),w=t(9841),C=t(9806),M=t(3360),N=t(2381);const S={button:"email_button__FW+sr"};function I(){const{isHovering:e,...n}=(0,N.Z)();return(0,r.jsx)(M.Z,{className:S.button,href:"mailto:sverg84@gmail.com",...n,children:(0,r.jsx)(C.G,{fade:e,icon:w.FU,size:"2xl"})})}var P=t(8036),L=t(5943),R=t(1791);function E(){return(0,r.jsx)(R.Z,{className:L.Z.github,href:"https://github.com/sverg84",icon:P.zh})}var T=t(1561);function z(){return(0,r.jsx)(R.Z,{className:L.Z.linkedin,href:"https://www.linkedin.com/in/stephen-vergara-2bab8614b/",icon:T.D9})}var H=t(517),B=t(5791);const F={resume:"resume_resume__92JEE"};function K(){const{isHovering:e,...n}=(0,N.Z)(),t=function(e){const{color:n}=i.useContext(a.Z),t=(0,B.Z)(),s=e?t:n;return{backgroundColor:e?n:void 0,borderColor:s,boxShadow:"4px 4px ".concat(n),color:s}}(e);return(0,r.jsxs)(M.Z,{className:F.resume,href:"/sverg_resume.pdf",style:t,target:"_blank",variant:"outline-light",...n,children:[(0,r.jsx)("span",{children:"Download resume"}),(0,r.jsx)(C.G,{beat:e,icon:H.q7})]})}function U(){return(0,r.jsx)(l.Z.Footer,{children:(0,r.jsxs)(Z.Z,{className:"gy-3",xs:1,sm:2,md:2,lg:3,children:[(0,r.jsx)(y.Z,{className:k.Z.resume,children:(0,r.jsx)(K,{})}),(0,r.jsx)(y.Z,{className:k.Z.resume,children:(0,r.jsx)(I,{})}),(0,r.jsxs)(y.Z,{className:k.Z.buttons,sm:12,md:12,children:[(0,r.jsx)(E,{}),(0,r.jsx)(z,{})]})]})})}function A(){return(0,r.jsxs)(l.Z,{id:"about",children:[(0,r.jsx)(v,{}),(0,r.jsx)(U,{})]})}const D={header:"card_header__C3ziB"};function q(e){let{children:n,id:t,title:i}=e;const a=(0,x.Z)();return(0,r.jsxs)(l.Z,{id:t,children:[(0,r.jsx)(l.Z.Header,{as:"h2",className:D.header,style:a,children:i}),(0,r.jsx)(l.Z.Body,{children:n})]})}var O=t(7093);const G={timeline:"timeline_timeline__VfjcF",bar:"timeline_bar__V3BAE"};var Q=t(5862),W=t(2576),J=t(3441);const V="tooltip_tooltip__5pJPW";function Y(e){let{content:n,tooltip:t}=e;const{ref:i,entry:a}=(0,J.YD)({rootMargin:"-50% 0px 0px"});return(0,r.jsx)(Q.Z,{placement:null!==a&&void 0!==a&&a.isIntersecting?"top":"bottom",overlay:(0,r.jsx)(W.Z,{children:t}),children:(0,r.jsx)("span",{className:V,ref:i,children:n})})}const X={item:"timelineItem_item__005F5",circle:"timelineItem_circle__ADJyP",in:"timelineItem_in__PSeNd",fadeInLeft:"timelineItem_fadeInLeft__vvxlT",content:"timelineItem_content__izpwq",fadeInRight:"timelineItem_fadeInRight__uPKi+",header:"timelineItem_header__H24TC",tag:"timelineItem_tag__k8jMy"},$={list:"skillsList_list__-3yy3",skills:"skillsList_skills__Q4+OB"};function ee(e){let{skillsList:n,style:t}=e;return(0,r.jsxs)("p",{className:$.list,children:[(0,r.jsxs)("span",{className:$.skills,style:t,children:["Skills:"," "]}),n.join(", ")]})}function ne(e){let{data:n,isOdd:t}=e;const s=(0,O.Z)(),o=function(){const{color:e}=i.useContext(a.Z);return{borderColor:e}}(),l=(0,x.Z)(),{inView:c,ref:d}=(0,J.YD)({triggerOnce:!0,rootMargin:"-200px 0px"}),u=(0,r.jsx)("span",{className:X.tag,style:s,children:n.tag}),h=(0,r.jsx)("time",{children:n.timeframe}),g=t?(0,r.jsxs)(r.Fragment,{children:[u,h]}):(0,r.jsxs)(r.Fragment,{children:[h,u]});return(0,r.jsxs)("div",{className:X.item,children:[(0,r.jsxs)("div",{className:m()(X.content,c?X.in:"opacity-0"),ref:d,children:[(0,r.jsx)("div",{className:X.header,children:g}),(0,r.jsx)("h6",{style:l,children:n.title}),(0,r.jsx)("img",{loading:"lazy",src:n.src,width:"100%"}),n.description,(0,r.jsx)(ee,{style:l,skillsList:n.skillsList})]}),(0,r.jsx)("span",{className:X.circle,style:o})]})}const te=[{description:(0,r.jsx)("p",{children:"Full-stack product software engineer (PHP/Hack and JS/React) for the Org Effectiveness team within the Enterprise Engineering division. Released multiple high-priority stakeholder feature requests pertaining to HR-sensitive employee data. Leader of team app performance optimization opportunities."}),skillsList:["PHP","React","GraphQL","MySQL"],src:"/meta.gif",tag:"Meta Platforms, Inc.",timeframe:"2020-2023",title:"Software Engineer"},{description:(0,r.jsx)("p",{children:"Intern for the Traffic Analytics team within the Infrastructure division. Created monitoring tool for team oncall to measure network packet failures with interactive web page."}),skillsList:["C++","Python","Apache Thrift","MySQL"],src:"/meta.gif",tag:"Meta Platforms, Inc.",timeframe:"Summer 2019",title:"Software Engineer Intern"},{description:(0,r.jsxs)("p",{children:["Assistant at the university's Transportation Research Institute as part of the Undergraduate Research Opportunity Program (UROP). Participated in"," ",(0,r.jsx)(Y,{content:"anthropometric",tooltip:"of or relating to the scientific study of the measurements and proportions of the human body"})," ","study for Defence Research & Development Canada (DRDC)."]}),skillsList:["MATLAB","Wolfram Mathematica"],src:"/umich.jpeg",tag:"University of Michigan",timeframe:"2016-2017",title:"Research Assistant"}];function ie(){const e=(0,O.Z)();return(0,r.jsxs)("div",{className:G.timeline,children:[(0,r.jsx)("div",{className:G.bar,style:e}),te.map(((e,n)=>(0,r.jsx)(ne,{data:e,isOdd:n%2!==0},e.title)))]})}function ae(){return(0,r.jsx)(q,{id:"experience",title:"Experience",children:(0,r.jsx)(ie,{})})}var se=t(5364),re=t(4559);const oe={cpp:"C++",csharp:"C#",graphql:"GraphQL",hack:"Hack",mysql:"MySQL",python:"Python",react:"React",typescript:"TypeScript"};var le=t(6055),ce=t(7749),de=t(7361),ue=t(9578),me=t(5912),he=t(7333);const ge={button:"item_button__GmSRm",expand:"item_expand__4Sxrl",firstExpand:"item_firstExpand__kSWZa",collapse:"item_collapse__JYgde",header:"item_header__w8Yjy"};function pe(e){let{callback:n,eventKey:t}=e;const{activeEventKey:s}=i.useContext(me.Z),o=function(){const{color:e}=i.useContext(a.Z);return{backgroundColor:e,color:(0,B.Z)()}}(),l=(0,he.k)(t,(()=>{n&&n(t)})),c=s===t,d=[];return c?d.push(t===oe.react?ge.firstExpand:ge.expand):d.push(ge.collapse),(0,r.jsxs)("button",{className:m()(d),style:c?o:void 0,onClick:l,children:[t,(0,r.jsx)(C.G,{icon:c?ue.mT:de.pt})]})}function xe(e){let{children:n,eventKey:t}=e;return(0,r.jsxs)(ce.Z,{eventKey:t,children:[(0,r.jsx)(pe,{eventKey:t}),(0,r.jsx)(le.Z,{eventKey:t,children:(0,r.jsx)(l.Z.Body,{children:n})})]})}function fe(){return(0,r.jsx)(q,{id:"skills",title:"Skills",children:(0,r.jsxs)(re.Z,{defaultActiveKey:oe.react,children:[(0,r.jsx)(xe,{eventKey:oe.react,children:"Ramped up on React skills while transitioning from web infra (PHP) to UI programming in my full-time position at Meta. Developed an expertise in applying Hooks, code-splitting APIs, and React18 concurrency features to create seamless user experiences while optimizing app/page performance. Expanding upon Meta-internal skills with public React app building (e.g., this web page!)."}),(0,r.jsx)(xe,{eventKey:oe.typescript,children:'Self-taught during the summer of 2023 in order to create a modern React app at home while still enforcing type safety. Very similar to Meta\'s "Flow" but with broader appeal.'}),(0,r.jsx)(xe,{eventKey:oe.hack,children:"First programming language learned while working full-time at Meta. Built multiple scalable features by focusing on asynchronous programming. Moved to implementing GraphQL queries and mutations on the server side in addition to server-calling React routes and their corresponding components."}),(0,r.jsx)(xe,{eventKey:oe.graphql,children:"Learned back-end GraphQL field implementation skills while learning Hack, and gained client-side GraphQL experience in tandem with coding in React while full-time at Meta."}),(0,r.jsx)(xe,{eventKey:oe.mysql,children:"Database management skills applied during both the internship and full-time Meta experiences. MySQL queries created for mass aggregates of traffic data in C++/Python, queries and mutations optimized for employee directory information in Hack."}),(0,r.jsx)(xe,{eventKey:oe.python,children:"First applied in class projects around web development (e.g., Flask, Jinja, REST) while at the University of Michigan, later used to create data pipeline jobs for traffic aggregation as an intern at Meta. Presently, using FastAPI and PostgreSQL for personal projects."}),(0,r.jsx)(xe,{eventKey:oe.cpp,children:"First programming language learned as an undergraduate at the University of Michigan. Used for package building and app compression while coding as a Meta intern. Skills in asynchronous programming (e.g., threads, mutexes, semaphores, etc.) and file system management as part of a course on operating systems."}),(0,r.jsx)(xe,{eventKey:oe.csharp,children:"Onboarded as part of university senior capstone project at Michigan. Gained experience in C# in order to create a video game as part of a team of four (4) using the Unity game engine."})]})})}function _e(){return(0,r.jsxs)(se.Z,{children:[(0,r.jsx)(A,{}),(0,r.jsx)(ae,{}),(0,r.jsx)(fe,{})]})}const je=835;function be(){const[e,n]=i.useState(window.innerWidth>je),[a,s]=i.useState(null),o=()=>{n(window.innerWidth>je)};return i.useEffect((()=>(window.addEventListener("resize",o),()=>window.removeEventListener("resize",o))),[]),i.useEffect((()=>{(async()=>{s(i.lazy((async()=>await(e?t.e(306).then(t.bind(t,9306)):t.e(560).then(t.bind(t,560))))))})()}),[e]),null!=a?(0,r.jsx)(i.Suspense,{fallback:null,children:(0,r.jsx)(a,{})}):null}var ve=t(9430);function ye(){return(0,r.jsx)(ve.Z,{background:(0,r.jsx)(o,{}),breadcrumbs:(0,r.jsx)(be,{}),children:(0,r.jsx)(_e,{})})}},9430:(e,n,t)=>{t.d(n,{Z:()=>w});var i=t(2791),a=t(8025),s=t(1694),r=t.n(s),o=t(7022),l=t(2677),c=t(2251),d=t(1087),u=t(2982),m=t(7093);const h={brand:"navbar_brand__zDvLc",navbar:"navbar_navbar__pEuvw",rightContent:"navbar_rightContent__ikOZ0"};var g=t(5),p=t(5088),x=t(9806),f=t(192),_=t(4849);const j={fallback:"colorPicker_fallback__pvhTA"};var b=t(9415),v=t(184);const y=(0,b.Z)((()=>t.e(154).then(t.bind(t,1154))));function Z(){return(0,v.jsx)(f.Z,{align:"end",className:j.icon,renderMenuOnMount:!1,title:(0,v.jsx)(x.G,{icon:p.q2,bounce:!0}),onMouseEnter:()=>{y.preload()},children:(0,v.jsx)(i.Suspense,{fallback:(0,v.jsx)("div",{className:j.fallback,children:(0,v.jsx)(_.Z,{animation:"border",variant:"secondary"})}),children:(0,v.jsx)(y,{})})})}function k(e){let{breadcrumbs:n}=e;const t=(0,m.Z)();return(0,v.jsx)(c.Z,{expand:!1,sticky:"top",style:t,children:(0,v.jsxs)(o.Z,{className:r()(g.Z.page,h.navbar),children:[(0,v.jsx)(l.Z,{children:(0,v.jsx)(d.rU,{className:h.brand,to:"/",children:u.Z})}),(0,v.jsxs)(l.Z,{className:h.rightContent,children:[n,(0,v.jsx)(Z,{})]})]})})}function w(e){let{background:n,breadcrumbs:t,children:s}=e;const[r,o]=(0,i.useState)("#2e3134");return(0,v.jsxs)(a.Z.Provider,{value:{color:r,setColor:o},children:[n,(0,v.jsx)(k,{breadcrumbs:t}),s]})}},5364:(e,n,t)=>{t.d(n,{Z:()=>l});var i=t(1694),a=t.n(i);t(2791);const s={body:"pageBody_body__aNOKo"};var r=t(5),o=t(184);function l(e){let{children:n}=e;return(0,o.jsx)("div",{className:a()(r.Z.page,s.body),children:n})}},8188:(e,n,t)=>{t.d(n,{Z:()=>h});var i=t(2791),a=t(8957),s=t(2677),r=t(7022),o=t(9743),l=t(6638),c=t(5267),d=t(184);const u=i.lazy((async()=>await t.e(217).then(t.bind(t,1217))));function m(e){return(0,d.jsx)(i.Suspense,{fallback:(0,d.jsx)(c.Z,{animation:"wave",as:"div",bg:"secondary",className:l.Z.glimmer}),children:(0,d.jsx)(u,{...e})})}function h(e){let{children:n,...t}=e;return(0,d.jsx)(a.Z.Body,{children:(0,d.jsx)(r.Z,{children:(0,d.jsxs)(o.Z,{className:l.Z.body,xs:1,children:[(0,d.jsx)(s.Z,{className:l.Z.imageColumn,xl:4,children:(0,d.jsx)(m,{...t})}),(0,d.jsx)(s.Z,{xl:8,children:n})]})})})}},1791:(e,n,t)=>{t.d(n,{Z:()=>o});var i=t(9806),a=(t(2791),t(3360)),s=t(2381),r=t(184);function o(e){let{className:n,href:t,icon:o}=e;const{isHovering:l,...c}=(0,s.Z)();return(0,r.jsx)(a.Z,{className:n,href:t,target:"_blank",variant:"link",...c,children:(0,r.jsx)(i.G,{icon:o,size:"2xl"})})}},2982:(e,n,t)=>{t.d(n,{Z:()=>i});const i="Stephen Vergara"},8025:(e,n,t)=>{t.d(n,{Z:()=>i});const i=(0,t(2791).createContext)({color:"#2e3134",setColor:()=>{}})},7093:(e,n,t)=>{t.d(n,{Z:()=>r});var i=t(2791),a=t(8025),s=t(5791);function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const{color:n}=i.useContext(a.Z),t=(0,s.Z)();return{backgroundColor:"".concat(n).concat(e),color:t}}},4769:(e,n,t)=>{t.d(n,{Z:()=>s});var i=t(2791),a=t(8025);function s(){const{color:e}=i.useContext(a.Z);return{color:e}}},2381:(e,n,t)=>{t.d(n,{Z:()=>a});var i=t(2791);function a(){const[e,n]=i.useState(!1);return{isHovering:e,onMouseEnter:()=>{n(!0)},onMouseLeave:()=>{n(!1)}}}},5791:(e,n,t)=>{t.d(n,{Z:()=>s});var i=t(2791),a=t(8025);function s(){const{color:e}=i.useContext(a.Z);return i.useMemo((()=>{var n,t,i;const a=Math.floor((e.length-1)/3),s=((e,n)=>e.match(new RegExp(".{".concat(n,"}"),"g")))(e.slice(1),a),r=null===s||void 0===s?void 0:s.map((e=>parseInt(e.repeat(2/e.length),16)));return Math.round((299*(null!==(n=null===r||void 0===r?void 0:r.at(0))&&void 0!==n?n:0)+587*(null!==(t=null===r||void 0===r?void 0:r.at(1))&&void 0!==t?t:0)+114*(null!==(i=null===r||void 0===r?void 0:r.at(2))&&void 0!==i?i:0))/1e3)>125?"black":"white"}),[e])}},9415:(e,n,t)=>{t.d(n,{Z:()=>a});var i=t(2791);function a(e){return Object.assign(i.lazy(e),{preload:e})}},6638:(e,n,t)=>{t.d(n,{Z:()=>i});const i={body:"aboutMeCardBody_body__px0Z-",base:"aboutMeCardBody_base__HWSO5",image:"aboutMeCardBody_image__r0pwR",glimmer:"aboutMeCardBody_glimmer__ztngv",imageColumn:"aboutMeCardBody_imageColumn__Decwz"}},775:(e,n,t)=>{t.d(n,{Z:()=>i});const i={buttons:"footer_buttons__X-wEA",resume:"footer_resume__j2AKe"}},5943:(e,n,t)=>{t.d(n,{Z:()=>i});const i={github:"linkButton_github__ltM-y",linkedin:"linkButton_linkedin__MRpaF",steam:"linkButton_steam__qizUa",discord:"linkButton_discord__zToU1"}},5:(e,n,t)=>{t.d(n,{Z:()=>i});const i={page:"pageMargin_page__oYkHI"}}}]); -//# sourceMappingURL=818.83eeeeea.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunksverg84_github_io=self.webpackChunksverg84_github_io||[]).push([[818],{9818:(e,n,t)=>{t.r(n),t.d(n,{Component:()=>ve});var a=t(2791),s=t(8025);const i={bg:"background_bg__rHR4m",bg3:"background_bg3__WZ4Pm",bg2:"background_bg2__XB2Tl",slide:"background_slide__Sq8xw"};var r=t(184);function o(){const e=function(){const{color:e}=(0,a.useContext)(s.Z);return{backgroundImage:"linear-gradient(-60deg, ".concat(e," 50%, white 50%)")}}();return(0,r.jsx)(r.Fragment,{children:[i.bg,i.bg2,i.bg3].map((n=>(0,r.jsx)("div",{className:n,style:e},n)))})}var l=t(8957),c=t(2982),d=t(8188),u=t(1694),m=t.n(u),h=t(2426),g=t.n(h),p=t(1087),x=t(4769);const f={bold:"text_bold__TiUuq",italic:"text_italic__fvjzk"},_=new Date("1998-05-06T10:47:00.000-06:00");function j(e){let{language:n}=e;const t=(0,x.Z)();return(0,r.jsx)("span",{className:f.bold,style:t,children:n})}function b(){const e=(0,x.Z)(),n=g().duration(g()().diff(_)).years();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.Z.Text,{as:"h2",className:m()("text-center","text-xl-start"),style:e,children:"About Me"}),(0,r.jsx)(l.Z.Text,{as:"h6",className:m()(f.italic,"text-center","text-xl-start"),children:"Front-End Software Engineer, Web Developer"}),(0,r.jsxs)(l.Z.Text,{children:["Hi there! My name is"," ",(0,r.jsx)("span",{className:m()(f.bold,f.italic),style:e,children:c.Z}),". I am a ",n," year-old software engineer with a fondness for user interface and user experience (UI/UX) development."]}),(0,r.jsxs)(l.Z.Text,{children:["I started learning to code during my senior year of high school when I took an introduction course to ",(0,r.jsx)(j,{language:"Java"})," on a whim, and I loved learning as much as I could since then! Throughout my time at university, I applied myself to a substantial amount of coursework in"," ",(0,r.jsx)(j,{language:"C++"})," and ",(0,r.jsx)(j,{language:"Python"})," with a splash of ",(0,r.jsx)(j,{language:"JavaScript"}),","," ",(0,r.jsx)(j,{language:"OCaml"}),", and ",(0,r.jsx)(j,{language:"C#"}),"."]}),(0,r.jsxs)(l.Z.Text,{children:["All of my full-time experience (as of Summer 2023) stems from my time at Meta where I challenged myself further in exploring web programming, learning ",(0,r.jsx)(j,{language:"PHP"})," and"," ",(0,r.jsx)(j,{language:"React"})," for the first time in a rigorous, fast-paced environment."]}),(0,r.jsxs)(l.Z.Text,{children:["Since parting with Meta, I have been self-teaching"," ",(0,r.jsx)(j,{language:"TypeScript"})," in order to keep my UI-building skills fresh, replete with ",(0,r.jsx)(j,{language:"SCSS"})," modules."]}),(0,r.jsxs)(l.Z.Text,{children:["Click"," ",(0,r.jsx)(p.rU,{className:f.bold,style:e,to:"/personal",children:"here"})," ","if you would like to learn more about me beyond my career!"]})]})}function y(){return(0,r.jsx)(d.Z,{alt:"Picture of ".concat(c.Z),src:"/sverg.jpeg",children:(0,r.jsx)(b,{})})}var v=t(2677),Z=t(9743),k=t(775),w=t(9841),C=t(9806),M=t(3360),N=t(2381);const S={button:"email_button__FW+sr"};function I(){const{isHovering:e,...n}=(0,N.Z)();return(0,r.jsx)(M.Z,{className:S.button,href:"mailto:sverg84@gmail.com",...n,children:(0,r.jsx)(C.G,{fade:e,icon:w.FU,size:"2xl"})})}var P=t(8036),L=t(5943),R=t(1791);function E(){return(0,r.jsx)(R.Z,{className:L.Z.github,href:"https://github.com/sverg84",icon:P.zh})}var T=t(1561);function z(){return(0,r.jsx)(R.Z,{className:L.Z.linkedin,href:"https://www.linkedin.com/in/stephen-vergara-2bab8614b/",icon:T.D9})}var H=t(517),B=t(5791);const F={resume:"resume_resume__92JEE"};function K(){const{isHovering:e,...n}=(0,N.Z)(),t=function(e){const{color:n}=a.useContext(s.Z),t=(0,B.Z)(),i=e?t:n;return{backgroundColor:e?n:void 0,borderColor:i,boxShadow:"4px 4px ".concat(n),color:i}}(e);return(0,r.jsxs)(M.Z,{className:F.resume,href:"/sverg_resume.pdf",style:t,target:"_blank",variant:"outline-light",...n,children:[(0,r.jsx)("span",{children:"Download resume"}),(0,r.jsx)(C.G,{beat:e,icon:H.q7})]})}function U(){return(0,r.jsx)(l.Z.Footer,{children:(0,r.jsxs)(Z.Z,{className:"gy-3",xs:1,sm:2,md:2,lg:3,children:[(0,r.jsx)(v.Z,{className:k.Z.resume,children:(0,r.jsx)(K,{})}),(0,r.jsx)(v.Z,{className:k.Z.resume,children:(0,r.jsx)(I,{})}),(0,r.jsxs)(v.Z,{className:k.Z.buttons,sm:12,md:12,children:[(0,r.jsx)(E,{}),(0,r.jsx)(z,{})]})]})})}function A(){return(0,r.jsxs)(l.Z,{id:"about",children:[(0,r.jsx)(y,{}),(0,r.jsx)(U,{})]})}const D={header:"card_header__C3ziB"};function q(e){let{children:n,id:t,title:a}=e;const s=(0,x.Z)();return(0,r.jsxs)(l.Z,{id:t,children:[(0,r.jsx)(l.Z.Header,{as:"h2",className:D.header,style:s,children:a}),(0,r.jsx)(l.Z.Body,{children:n})]})}var O=t(7093);const G={timeline:"timeline_timeline__VfjcF",bar:"timeline_bar__V3BAE"};var Q=t(5862),W=t(2576),J=t(3441);const V="tooltip_tooltip__5pJPW";function Y(e){let{content:n,tooltip:t}=e;const{ref:a,entry:s}=(0,J.YD)({rootMargin:"-50% 0px 0px"});return(0,r.jsx)(Q.Z,{placement:null!==s&&void 0!==s&&s.isIntersecting?"top":"bottom",overlay:(0,r.jsx)(W.Z,{children:t}),children:(0,r.jsx)("span",{className:V,ref:a,children:n})})}const X={item:"timelineItem_item__005F5",circle:"timelineItem_circle__ADJyP",in:"timelineItem_in__PSeNd",fadeInLeft:"timelineItem_fadeInLeft__vvxlT",content:"timelineItem_content__izpwq",fadeInRight:"timelineItem_fadeInRight__uPKi+",header:"timelineItem_header__H24TC",tag:"timelineItem_tag__k8jMy"},$={list:"skillsList_list__-3yy3",skills:"skillsList_skills__Q4+OB"};function ee(e){let{skillsList:n,style:t}=e;return(0,r.jsxs)("p",{className:$.list,children:[(0,r.jsxs)("span",{className:$.skills,style:t,children:["Skills:"," "]}),n.join(", ")]})}function ne(e){let{data:n,isOdd:t}=e;const i=(0,O.Z)(),o=function(){const{color:e}=a.useContext(s.Z);return{borderColor:e}}(),l=(0,x.Z)(),{inView:c,ref:d}=(0,J.YD)({triggerOnce:!0,rootMargin:"-200px 0px"}),u=(0,r.jsx)("span",{className:X.tag,style:i,children:n.tag}),h=(0,r.jsx)("time",{children:n.timeframe}),g=t?(0,r.jsxs)(r.Fragment,{children:[u,h]}):(0,r.jsxs)(r.Fragment,{children:[h,u]});return(0,r.jsxs)("div",{className:X.item,children:[(0,r.jsxs)("div",{className:m()(X.content,c?X.in:"opacity-0"),ref:d,children:[(0,r.jsx)("div",{className:X.header,children:g}),(0,r.jsx)("h6",{style:l,children:n.title}),(0,r.jsx)("img",{loading:"lazy",src:n.src,width:"100%"}),n.description,(0,r.jsx)(ee,{style:l,skillsList:n.skillsList})]}),(0,r.jsx)("span",{className:X.circle,style:o})]})}const te=[{description:(0,r.jsx)("p",{children:"Full-stack product software engineer (PHP/Hack and JS/React) for the Org Effectiveness team within the Enterprise Engineering division. Released multiple high-priority stakeholder feature requests pertaining to HR-sensitive employee data. Leader of team app performance optimization opportunities."}),skillsList:["PHP","React","GraphQL","MySQL"],src:"/meta.gif",tag:"Meta Platforms, Inc.",timeframe:"2020-2023",title:"Software Engineer"},{description:(0,r.jsx)("p",{children:"Intern for the Traffic Analytics team within the Infrastructure division. Created monitoring tool for team oncall to measure network packet failures with interactive web page."}),skillsList:["C++","Python","Apache Thrift","MySQL"],src:"/meta.gif",tag:"Meta Platforms, Inc.",timeframe:"Summer 2019",title:"Software Engineer Intern"},{description:(0,r.jsxs)("p",{children:["Assistant at the university's Transportation Research Institute as part of the Undergraduate Research Opportunity Program (UROP). Participated in"," ",(0,r.jsx)(Y,{content:"anthropometric",tooltip:"of or relating to the scientific study of the measurements and proportions of the human body"})," ","study for Defence Research & Development Canada (DRDC)."]}),skillsList:["MATLAB","Wolfram Mathematica"],src:"/umich.jpeg",tag:"University of Michigan",timeframe:"2016-2017",title:"Research Assistant"}];function ae(){const e=(0,O.Z)();return(0,r.jsxs)("div",{className:G.timeline,children:[(0,r.jsx)("div",{className:G.bar,style:e}),te.map(((e,n)=>(0,r.jsx)(ne,{data:e,isOdd:n%2!==0},e.title)))]})}function se(){return(0,r.jsx)(q,{id:"experience",title:"Experience",children:(0,r.jsx)(ae,{})})}var ie=t(5364),re=t(4559);const oe={cpp:"C++",csharp:"C#",graphql:"GraphQL",hack:"Hack",mysql:"MySQL",python:"Python",react:"React",typescript:"TypeScript"};var le=t(6055),ce=t(7749),de=t(7361),ue=t(9578),me=t(5912),he=t(7333);const ge={button:"item_button__GmSRm",expand:"item_expand__4Sxrl",firstExpand:"item_firstExpand__kSWZa",collapse:"item_collapse__JYgde",header:"item_header__w8Yjy"};function pe(e){let{callback:n,eventKey:t}=e;const{activeEventKey:i}=a.useContext(me.Z),o=function(){const{color:e}=a.useContext(s.Z);return{backgroundColor:e,color:(0,B.Z)()}}(),l=(0,he.k)(t,(()=>{n&&n(t)})),c=i===t,d=[];return c?d.push(t===oe.react?ge.firstExpand:ge.expand):d.push(ge.collapse),(0,r.jsxs)("button",{className:m()(d),style:c?o:void 0,onClick:l,children:[t,(0,r.jsx)(C.G,{icon:c?ue.mT:de.pt})]})}function xe(e){let{children:n,eventKey:t}=e;return(0,r.jsxs)(ce.Z,{eventKey:t,children:[(0,r.jsx)(pe,{eventKey:t}),(0,r.jsx)(le.Z,{eventKey:t,children:(0,r.jsx)(l.Z.Body,{children:n})})]})}function fe(){return(0,r.jsx)(q,{id:"skills",title:"Skills",children:(0,r.jsxs)(re.Z,{defaultActiveKey:oe.react,children:[(0,r.jsx)(xe,{eventKey:oe.react,children:"Ramped up on React skills while transitioning from web infra (PHP) to UI programming in my full-time position at Meta. Developed an expertise in applying Hooks, code-splitting APIs, and React18 concurrency features to create seamless user experiences while optimizing app/page performance. Expanding upon Meta-internal skills with public React app building (e.g., this web page!)."}),(0,r.jsx)(xe,{eventKey:oe.typescript,children:'Self-taught during the summer of 2023 in order to create a modern React app at home while still enforcing type safety. Very similar to Meta\'s "Flow" but with broader appeal.'}),(0,r.jsx)(xe,{eventKey:oe.hack,children:"First programming language learned while working full-time at Meta. Built multiple scalable features by focusing on asynchronous programming. Moved to implementing GraphQL queries and mutations on the server side in addition to server-calling React routes and their corresponding components."}),(0,r.jsx)(xe,{eventKey:oe.graphql,children:"Learned back-end GraphQL field implementation skills while learning Hack, and gained client-side GraphQL experience in tandem with coding in React while full-time at Meta."}),(0,r.jsx)(xe,{eventKey:oe.mysql,children:"Database management skills applied during both the internship and full-time Meta experiences. MySQL queries created for mass aggregates of traffic data in C++/Python, queries and mutations optimized for employee directory information in Hack."}),(0,r.jsx)(xe,{eventKey:oe.python,children:"First applied in class projects around web development (e.g., Flask, Jinja, REST) while at the University of Michigan, later used to create data pipeline jobs for traffic aggregation as an intern at Meta. Presently, using FastAPI and PostgreSQL for personal projects."}),(0,r.jsx)(xe,{eventKey:oe.cpp,children:"First programming language learned as an undergraduate at the University of Michigan. Used for package building and app compression while coding as a Meta intern. Skills in asynchronous programming (e.g., threads, mutexes, semaphores, etc.) and file system management as part of a course on operating systems."}),(0,r.jsx)(xe,{eventKey:oe.csharp,children:"Onboarded as part of university senior capstone project at Michigan. Gained experience in C# in order to create a video game as part of a team of four (4) using the Unity game engine."})]})})}function _e(){return(0,r.jsxs)(ie.Z,{children:[(0,r.jsx)(A,{}),(0,r.jsx)(se,{}),(0,r.jsx)(fe,{})]})}const je=835;function be(){const[e,n]=a.useState(window.innerWidth>je),[s,i]=a.useState(null),o=()=>{n(window.innerWidth>je)};return a.useEffect((()=>(window.addEventListener("resize",o),()=>window.removeEventListener("resize",o))),[]),a.useEffect((()=>{(async()=>{i(a.lazy((async()=>await(e?t.e(306).then(t.bind(t,9306)):t.e(560).then(t.bind(t,560))))))})()}),[e]),null!=s?(0,r.jsx)(a.Suspense,{fallback:null,children:(0,r.jsx)(s,{})}):null}var ye=t(9430);function ve(){return(0,r.jsx)(ye.Z,{background:(0,r.jsx)(o,{}),breadcrumbs:(0,r.jsx)(be,{}),children:(0,r.jsx)(_e,{})})}},9430:(e,n,t)=>{t.d(n,{Z:()=>w});var a=t(2791),s=t(8025),i=t(1694),r=t.n(i),o=t(7022),l=t(2677),c=t(2251),d=t(1087),u=t(2982),m=t(7093);const h={brand:"navbar_brand__zDvLc",navbar:"navbar_navbar__pEuvw",rightContent:"navbar_rightContent__ikOZ0"};var g=t(5),p=t(5088),x=t(9806),f=t(192),_=t(4849);const j={fallback:"colorPicker_fallback__pvhTA"};var b=t(9415),y=t(184);const v=(0,b.Z)((()=>t.e(154).then(t.bind(t,1154))));function Z(){return(0,y.jsx)(f.Z,{align:"end",className:j.icon,renderMenuOnMount:!1,title:(0,y.jsx)(x.G,{icon:p.q2,bounce:!0}),onMouseEnter:()=>{v.preload()},children:(0,y.jsx)(a.Suspense,{fallback:(0,y.jsx)("div",{className:j.fallback,children:(0,y.jsx)(_.Z,{animation:"border",variant:"secondary"})}),children:(0,y.jsx)(v,{})})})}function k(e){let{breadcrumbs:n}=e;const t=(0,m.Z)();return(0,y.jsx)(c.Z,{expand:!1,sticky:"top",style:t,children:(0,y.jsxs)(o.Z,{className:r()(g.Z.page,h.navbar),children:[(0,y.jsx)(l.Z,{children:(0,y.jsx)(d.rU,{className:h.brand,to:"/",children:u.Z})}),(0,y.jsxs)(l.Z,{className:h.rightContent,children:[n,(0,y.jsx)(Z,{})]})]})})}function w(e){let{background:n,breadcrumbs:t,children:i}=e;const[r,o]=(0,a.useState)("#2e3134");return(0,y.jsxs)(s.Z.Provider,{value:{color:r,setColor:o},children:[n,(0,y.jsx)(k,{breadcrumbs:t}),i]})}},5364:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(1694),s=t.n(a);t(2791);const i={body:"pageBody_body__aNOKo"};var r=t(5),o=t(184);function l(e){let{children:n}=e;return(0,o.jsx)("div",{className:s()(r.Z.page,i.body),children:n})}},8188:(e,n,t)=>{t.d(n,{Z:()=>h});var a=t(2791),s=t(8957),i=t(2677),r=t(7022),o=t(9743),l=t(6638),c=t(5267),d=t(184);const u=a.lazy((async()=>await t.e(217).then(t.bind(t,1217))));function m(e){return(0,d.jsx)(a.Suspense,{fallback:(0,d.jsx)(c.Z,{animation:"wave",as:"div",bg:"secondary",className:l.Z.glimmer}),children:(0,d.jsx)(u,{...e})})}function h(e){let{children:n,...t}=e;return(0,d.jsx)(s.Z.Body,{children:(0,d.jsx)(r.Z,{children:(0,d.jsxs)(o.Z,{className:l.Z.body,xs:1,children:[(0,d.jsx)(i.Z,{className:l.Z.imageColumn,xl:4,children:(0,d.jsx)(m,{...t})}),(0,d.jsx)(i.Z,{xl:8,children:n})]})})})}},1791:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(9806),s=(t(2791),t(3360)),i=t(2381),r=t(184);function o(e){let{className:n,href:t,icon:o}=e;const{isHovering:l,...c}=(0,i.Z)();return(0,r.jsx)(s.Z,{className:n,href:t,target:"_blank",variant:"link",...c,children:(0,r.jsx)(a.G,{icon:o,size:"2xl"})})}},2982:(e,n,t)=>{t.d(n,{Z:()=>a});const a="Stephen Vergara"},8025:(e,n,t)=>{t.d(n,{Z:()=>a});const a=(0,t(2791).createContext)({color:"#2e3134",setColor:()=>{}})},7093:(e,n,t)=>{t.d(n,{Z:()=>r});var a=t(2791),s=t(8025),i=t(5791);function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const{color:n}=a.useContext(s.Z),t=(0,i.Z)();return{backgroundColor:"".concat(n).concat(e),color:t}}},4769:(e,n,t)=>{t.d(n,{Z:()=>i});var a=t(2791),s=t(8025);function i(){const{color:e}=a.useContext(s.Z);return{color:e}}},2381:(e,n,t)=>{t.d(n,{Z:()=>s});var a=t(2791);function s(){const[e,n]=a.useState(!1);return{isHovering:e,onMouseEnter:()=>{n(!0)},onMouseLeave:()=>{n(!1)}}}},5791:(e,n,t)=>{t.d(n,{Z:()=>c});var a=t(2791),s=t(8025);const i=128,r=.299,o=.587,l=.114;function c(){const{color:e}=a.useContext(s.Z);return a.useMemo((()=>{const n=Math.floor((e.length-1)/3),t=((e,n)=>e.match(new RegExp(".{".concat(n,"}"),"g")))(e.slice(1),n),[a,s,c]=(null!==t&&void 0!==t?t:[]).map((e=>parseInt(e.repeat(2/e.length),16)));return Math.round((null!==a&&void 0!==a?a:0)*r+(null!==s&&void 0!==s?s:0)*o+(null!==c&&void 0!==c?c:0)*l)>i?"black":"white"}),[e])}},9415:(e,n,t)=>{t.d(n,{Z:()=>s});var a=t(2791);function s(e){return Object.assign(a.lazy(e),{preload:e})}},6638:(e,n,t)=>{t.d(n,{Z:()=>a});const a={body:"aboutMeCardBody_body__px0Z-",base:"aboutMeCardBody_base__HWSO5",image:"aboutMeCardBody_image__r0pwR",glimmer:"aboutMeCardBody_glimmer__ztngv",imageColumn:"aboutMeCardBody_imageColumn__Decwz"}},775:(e,n,t)=>{t.d(n,{Z:()=>a});const a={buttons:"footer_buttons__X-wEA",resume:"footer_resume__j2AKe"}},5943:(e,n,t)=>{t.d(n,{Z:()=>a});const a={github:"linkButton_github__ltM-y",linkedin:"linkButton_linkedin__MRpaF",steam:"linkButton_steam__qizUa",discord:"linkButton_discord__zToU1"}},5:(e,n,t)=>{t.d(n,{Z:()=>a});const a={page:"pageMargin_page__oYkHI"}}}]); +//# sourceMappingURL=818.56208234.chunk.js.map \ No newline at end of file diff --git a/static/js/818.56208234.chunk.js.map b/static/js/818.56208234.chunk.js.map new file mode 100644 index 0000000..04e0987 --- /dev/null +++ b/static/js/818.56208234.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/818.56208234.chunk.js","mappings":"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","sources":["webpack://sverg84.github.io/./src/impl/styles/background.module.scss?ebba","impl/components/AppBackground.tsx","impl/hooks/useBackgroundStyle.ts","webpack://sverg84.github.io/./src/impl/styles/body/about/text.module.scss?83aa","impl/components/body/about/AboutMeText.tsx","impl/components/body/about/AboutMeCardBody.tsx","webpack://sverg84.github.io/./src/impl/styles/body/buttons/email.module.scss?9739","impl/components/buttons/EmailButton.tsx","impl/components/buttons/GitHubButton.tsx","impl/components/buttons/LinkedInButton.tsx","webpack://sverg84.github.io/./src/impl/styles/body/buttons/resume.module.scss?5a4c","impl/components/buttons/ResumeButton.tsx","impl/hooks/usePageColorButtonStyle.ts","impl/components/body/about/AboutMeCardFooter.tsx","impl/components/body/about/AboutMeCard.tsx","webpack://sverg84.github.io/./src/impl/styles/body/experience/card.module.scss?9595","impl/components/body/BodyCard.tsx","webpack://sverg84.github.io/./src/impl/styles/body/experience/timeline.module.scss?0093","webpack://sverg84.github.io/./src/impl/styles/tooltip.module.scss?f869","impl/components/AppTooltip.tsx","webpack://sverg84.github.io/./src/impl/styles/body/experience/timelineItem.module.scss?2c42","webpack://sverg84.github.io/./src/impl/styles/body/experience/skillsList.module.scss?e95e","impl/components/body/experience/ExperienceTimelineSkillsList.tsx","impl/components/body/experience/ExperienceTimelineItem.tsx","impl/hooks/useBorderColorStyle.ts","impl/components/body/experience/ExperienceTimeline.tsx","impl/components/body/experience/ExperienceCard.tsx","impl/consts/EventKeys.ts","webpack://sverg84.github.io/./src/impl/styles/body/skills/item.module.scss?a30c","impl/components/body/skills/SkillsItemToggle.tsx","impl/hooks/useActiveBackgroundColorStyle.ts","impl/components/body/skills/SkillsItem.tsx","impl/components/body/skills/SkillsCard.tsx","impl/components/body/JobSeekerBody.tsx","impl/components/nav/JobSeekerNavWrapper.tsx","impl/components/AppJobSeeker.tsx","webpack://sverg84.github.io/./src/impl/styles/nav/navbar.module.scss?5af6","webpack://sverg84.github.io/./src/impl/styles/nav/colorPicker.module.scss?f351","impl/components/nav/PageNavColorPicker.tsx","impl/components/nav/PageNavBar.tsx","impl/components/Page.tsx","webpack://sverg84.github.io/./src/impl/styles/pageBody.module.scss?5416","impl/components/body/PageBody.tsx","impl/components/body/about/AboutMeCardLazyImage.tsx","impl/components/body/about/AboutMeCardBodyContainer.tsx","impl/components/buttons/ExternalLinkButton.tsx","impl/consts/MyName.ts","impl/contexts/ColorContext.ts","impl/hooks/useBackgroundColorStyle.ts","impl/hooks/useColorStyle.ts","impl/hooks/useHover.ts","impl/hooks/useTextColorForCustomBackground.ts","impl/utils/lazyWithPreload.ts","webpack://sverg84.github.io/./src/impl/styles/body/about/aboutMeCardBody.module.scss?747a","webpack://sverg84.github.io/./src/impl/styles/body/about/footer.module.scss?b32c","webpack://sverg84.github.io/./src/impl/styles/body/buttons/linkButton.module.scss?4ee4","webpack://sverg84.github.io/./src/impl/styles/pageMargin.module.scss?e8bc"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"bg\":\"background_bg__rHR4m\",\"bg3\":\"background_bg3__WZ4Pm\",\"bg2\":\"background_bg2__XB2Tl\",\"slide\":\"background_slide__Sq8xw\"};","import * as React from 'react';\n\nimport useBackgroundStyle from '../hooks/useBackgroundStyle';\nimport styles from '../styles/background.module.scss';\n\nexport default function AppBackground(): React.JSX.Element {\n\tconst color = useBackgroundStyle();\n\treturn (\n\t\t<>\n\t\t\t{[styles.bg, styles.bg2, styles.bg3].map(bg => (\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n}\n","import { useContext } from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nexport default function useBackgroundStyle(): React.CSSProperties {\n\tconst {color} = useContext(ColorContext);\n\treturn {backgroundImage: `linear-gradient(-60deg, ${color} 50%, white 50%)`};\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"bold\":\"text_bold__TiUuq\",\"italic\":\"text_italic__fvjzk\"};","import classNames from 'classnames';\nimport moment from 'moment';\nimport * as React from 'react';\nimport Card from 'react-bootstrap/esm/Card';\nimport { Link } from 'react-router-dom';\n\nimport MyName from '../../../consts/MyName';\nimport useColorStyle from '../../../hooks/useColorStyle';\nimport styles from '../../../styles/body/about/text.module.scss';\n\nconst BIRTHDATE: Date = new Date('1998-05-06T10:47:00.000-06:00'); // 6 May 1998 11:47 A.M. US Central Time\n\nfunction Language({language}: {language: string}): React.JSX.Element {\n\tconst color = useColorStyle();\n\treturn (\n\t\t\n\t\t\t{language}\n\t\t\n\t);\n}\n\nexport default function AboutMeText(): React.JSX.Element {\n\tconst color = useColorStyle();\n\tconst age = moment.duration(moment().diff(BIRTHDATE)).years();\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\tAbout Me\n\t\t\t\n\t\t\t\n\t\t\t\tFront-End Software Engineer, Web Developer\n\t\t\t\n\t\t\t\n\t\t\t\tHi there! My name is{' '}\n\t\t\t\t\n\t\t\t\t\t{MyName}\n\t\t\t\t\n\t\t\t\t. I am a {age} year-old software engineer with a fondness for user\n\t\t\t\tinterface and user experience (UI/UX) development.\n\t\t\t\n\t\t\t\n\t\t\t\tI started learning to code during my senior year of high school when I\n\t\t\t\ttook an introduction course to {} on a whim,\n\t\t\t\tand I loved learning as much as I could since then! Throughout my time\n\t\t\t\tat university, I applied myself to a substantial amount of coursework in{' '}\n\t\t\t\t{} and {} with\n\t\t\t\ta splash of {},{' '}\n\t\t\t\t{}, and {}.\n\t\t\t\n\t\t\t\n\t\t\t\tAll of my full-time experience (as of Summer 2023) stems from my time at\n\t\t\t\tMeta where I challenged myself further in exploring web programming,\n\t\t\t\tlearning {} and{' '}\n\t\t\t\t{} for the first time in a rigorous,\n\t\t\t\tfast-paced environment.\n\t\t\t\n\t\t\t\n\t\t\t\tSince parting with Meta, I have been self-teaching{' '}\n\t\t\t\t{} in order to keep my UI-building\n\t\t\t\tskills fresh, replete with {} modules.\n\t\t\t\n\t\t\t\n\t\t\t\tClick{' '}\n\t\t\t\t{\n\t\t\t\t\t\n\t\t\t\t\t\there\n\t\t\t\t\t\n\t\t\t\t}{' '}\n\t\t\t\tif you would like to learn more about me beyond my career!\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport MyName from '../../../consts/MyName';\nimport AboutMeCardBodyContainer from './AboutMeCardBodyContainer';\nimport AboutMeText from './AboutMeText';\n\nexport default function AboutMeCardBody(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"email_button__FW+sr\"};","import { solid } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport { Button } from 'react-bootstrap';\n\nimport useHover from '../../hooks/useHover';\nimport styles from '../../styles/body/buttons/email.module.scss';\n\nexport default function EmailButton(): React.JSX.Element {\n\tconst {isHovering, ...mouseEvents} = useHover();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import { brands } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport * as React from 'react';\n\nimport styles from '../../styles/body/buttons/linkButton.module.scss';\nimport ExternalLinkButton from './ExternalLinkButton';\n\nexport default function GitHubButton(): React.JSX.Element {\n\treturn (\n\t\t\n\t);\n}\n","import { brands } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport * as React from 'react';\n\nimport styles from '../../styles/body/buttons/linkButton.module.scss';\nimport ExternalLinkButton from './ExternalLinkButton';\n\nexport default function LinkedInButton(): React.JSX.Element {\n\treturn (\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"resume\":\"resume_resume__92JEE\"};","import { solid } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport Button from 'react-bootstrap/Button';\n\nimport useHover from '../../hooks/useHover';\nimport usePageColorButtonStyle from '../../hooks/usePageColorButtonStyle';\nimport styles from '../../styles/body/buttons/resume.module.scss';\n\nexport default function ResumeButton(): React.JSX.Element {\n\tconst {isHovering, ...mouseEvents} = useHover();\n\tconst style = usePageColorButtonStyle(isHovering);\n\n\treturn (\n\t\t\n\t\t\tDownload resume\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport useTextColorForCustomBackground from './useTextColorForCustomBackground';\n\nexport default function usePageColorButtonStyle(\n\tisHovering: boolean,\n): React.CSSProperties {\n\tconst {color} = React.useContext(ColorContext);\n\tconst hoverTextColor = useTextColorForCustomBackground();\n\n\tconst borderAndTextColor = isHovering ? hoverTextColor : color;\n\n\treturn {\n\t\tbackgroundColor: isHovering ? color : undefined,\n\t\tborderColor: borderAndTextColor,\n\t\tboxShadow: `4px 4px ${color}`,\n\t\tcolor: borderAndTextColor,\n\t};\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/Card';\nimport Col from 'react-bootstrap/Col';\nimport Row from 'react-bootstrap/Row';\n\nimport styles from '../../../styles/body/about/footer.module.scss';\nimport EmailButton from '../../buttons/EmailButton';\nimport GitHubButton from '../../buttons/GitHubButton';\nimport LinkedInButton from '../../buttons/LinkedInButton';\nimport ResumeButton from '../../buttons/ResumeButton';\n\nexport default function AboutMeCardFooter(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/Card';\n\nimport AboutMeCardBody from './AboutMeCardBody';\nimport AboutMeCardFooter from './AboutMeCardFooter';\n\nexport default function AboutMeCard(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"card_header__C3ziB\"};","import * as React from 'react';\nimport Card from 'react-bootstrap/Card';\n\nimport useColorStyle from '../../hooks/useColorStyle';\nimport styles from '../../styles/body/experience/card.module.scss';\n\ntype Props = Readonly<{\n\tchildren: React.JSX.Element;\n\tid?: string;\n\ttitle: string;\n}>;\n\nexport default function BodyCard({\n\tchildren,\n\tid,\n\ttitle,\n}: Props): React.JSX.Element {\n\tconst color = useColorStyle();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{title}\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"timeline\":\"timeline_timeline__VfjcF\",\"bar\":\"timeline_bar__V3BAE\"};","// extracted by mini-css-extract-plugin\nexport default {\"tooltip\":\"tooltip_tooltip__5pJPW\"};","import * as React from 'react';\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\nimport Tooltip from 'react-bootstrap/Tooltip';\nimport { useInView } from 'react-intersection-observer';\n\nimport styles from '../styles/tooltip.module.scss';\n\ntype Props = Readonly<{\n\tcontent: string;\n\ttooltip: string;\n}>;\n\nexport default function AppTooltip({\n\tcontent,\n\ttooltip,\n}: Props): React.JSX.Element {\n\tconst {ref, entry} = useInView({\n\t\trootMargin: '-50% 0px 0px',\n\t});\n\n\treturn (\n\t\t{tooltip}}>\n\t\t\t{content}\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"timelineItem_item__005F5\",\"circle\":\"timelineItem_circle__ADJyP\",\"in\":\"timelineItem_in__PSeNd\",\"fadeInLeft\":\"timelineItem_fadeInLeft__vvxlT\",\"content\":\"timelineItem_content__izpwq\",\"fadeInRight\":\"timelineItem_fadeInRight__uPKi+\",\"header\":\"timelineItem_header__H24TC\",\"tag\":\"timelineItem_tag__k8jMy\"};","// extracted by mini-css-extract-plugin\nexport default {\"list\":\"skillsList_list__-3yy3\",\"skills\":\"skillsList_skills__Q4+OB\"};","import * as React from 'react';\n\nimport styles from '../../../styles/body/experience/skillsList.module.scss';\n\ntype Props = Readonly<{\n\tskillsList: ReadonlyArray;\n\tstyle?: React.CSSProperties;\n}>;\n\nexport default function ExperienceTimelineSkillsList({\n\tskillsList,\n\tstyle,\n}: Props): React.JSX.Element {\n\treturn (\n\t\t

\n\t\t\t\n\t\t\t\tSkills:{' '}\n\t\t\t\n\t\t\t{skillsList.join(', ')}\n\t\t

\n\t);\n}\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport useBackgroundColorStyle from '../../../hooks/useBackgroundColorStyle';\nimport useBorderColorStyle from '../../../hooks/useBorderColorStyle';\nimport useColorStyle from '../../../hooks/useColorStyle';\nimport styles from '../../../styles/body/experience/timelineItem.module.scss';\nimport type { TimelineItemData } from './ExperienceTimeline';\nimport ExperienceTimelineSkillsList from './ExperienceTimelineSkillsList';\n\ntype Props = Readonly<{\n\tdata: TimelineItemData;\n\tisOdd: boolean;\n}>;\n\nexport default function ExperienceTimelineItem({\n\tdata,\n\tisOdd,\n}: Props): React.JSX.Element {\n\tconst background = useBackgroundColorStyle();\n\tconst border = useBorderColorStyle();\n\tconst color = useColorStyle();\n\n\tconst {inView, ref} = useInView({\n\t\ttriggerOnce: true,\n\t\trootMargin: '-200px 0px',\n\t});\n\n\tconst tag = (\n\t\t{data.tag}\n\t);\n\tconst time = ;\n\n\tconst header = isOdd ? (\n\t\t<>\n\t\t\t{tag}\n\t\t\t{time}\n\t\t\n\t) : (\n\t\t<>\n\t\t\t{time}\n\t\t\t{tag}\n\t\t\n\t);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t
{header}
\n\t\t\t\t
{data.title}
\n\t\t\t\t\n\t\t\t\t{data.description}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nexport default function useBorderColorStyle(): React.CSSProperties {\n\tconst {color} = React.useContext(ColorContext);\n\n\treturn {borderColor: color};\n}\n","import * as React from 'react';\n\nimport useBackgroundColorStyle from '../../../hooks/useBackgroundColorStyle';\nimport styles from '../../../styles/body/experience/timeline.module.scss';\nimport AppTooltip from '../../AppTooltip';\nimport ExperienceTimelineItem from './ExperienceTimelineItem';\n\nexport type TimelineItemData = Readonly<{\n\tdescription: React.JSX.Element;\n\tskillsList: ReadonlyArray;\n\tsrc: string;\n\ttag: string;\n\ttimeframe: string;\n\ttitle: string;\n}>;\n\nconst items: ReadonlyArray = [\n\t{\n\t\tdescription: (\n\t\t\t

\n\t\t\t\tFull-stack product software engineer (PHP/Hack and JS/React) for the Org\n\t\t\t\tEffectiveness team within the Enterprise Engineering division. Released\n\t\t\t\tmultiple high-priority stakeholder feature requests pertaining to\n\t\t\t\tHR-sensitive employee data. Leader of team app performance optimization\n\t\t\t\topportunities.\n\t\t\t

\n\t\t),\n\t\tskillsList: ['PHP', 'React', 'GraphQL', 'MySQL'],\n\t\tsrc: '/meta.gif',\n\t\ttag: 'Meta Platforms, Inc.',\n\t\ttimeframe: '2020-2023',\n\t\ttitle: 'Software Engineer',\n\t},\n\n\t{\n\t\tdescription: (\n\t\t\t

\n\t\t\t\tIntern for the Traffic Analytics team within the Infrastructure\n\t\t\t\tdivision. Created monitoring tool for team oncall to measure network\n\t\t\t\tpacket failures with interactive web page.\n\t\t\t

\n\t\t),\n\t\tskillsList: ['C++', 'Python', 'Apache Thrift', 'MySQL'],\n\t\tsrc: '/meta.gif',\n\t\ttag: 'Meta Platforms, Inc.',\n\t\ttimeframe: 'Summer 2019',\n\t\ttitle: 'Software Engineer Intern',\n\t},\n\t{\n\t\tdescription: (\n\t\t\t

\n\t\t\t\tAssistant at the university's Transportation Research Institute as part\n\t\t\t\tof the Undergraduate Research Opportunity Program (UROP). Participated\n\t\t\t\tin{' '}\n\t\t\t\t{' '}\n\t\t\t\tstudy for Defence Research & Development Canada (DRDC).\n\t\t\t

\n\t\t),\n\t\tskillsList: ['MATLAB', 'Wolfram Mathematica'],\n\t\tsrc: '/umich.jpeg',\n\t\ttag: 'University of Michigan',\n\t\ttimeframe: '2016-2017',\n\t\ttitle: 'Research Assistant',\n\t},\n];\n\nexport default function ExperienceTimeline(): React.JSX.Element {\n\tconst color = useBackgroundColorStyle();\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t{items.map((item, idx) => (\n\t\t\t\t\n\t\t\t))}\n\t\t
\n\t);\n}\n","import * as React from 'react';\n\nimport BodyCard from '../BodyCard';\nimport ExperienceTimeline from './ExperienceTimeline';\n\nexport default function ExperienceCard(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","const EventKeys = {\n\tcpp: 'C++',\n\tcsharp: 'C#',\n\tgraphql: 'GraphQL',\n\thack: 'Hack',\n\tmysql: 'MySQL',\n\tpython: 'Python',\n\treact: 'React',\n\ttypescript: 'TypeScript',\n} as const;\n\nexport default EventKeys;\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"item_button__GmSRm\",\"expand\":\"item_expand__4Sxrl\",\"firstExpand\":\"item_firstExpand__kSWZa\",\"collapse\":\"item_collapse__JYgde\",\"header\":\"item_header__w8Yjy\"};","import { solid } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { AccordionContext, useAccordionButton } from 'react-bootstrap';\n\nimport EventKeys from '../../../consts/EventKeys';\nimport useActiveBackgroundColorStyle from '../../../hooks/useActiveBackgroundColorStyle';\nimport styles from '../../../styles/body/skills/item.module.scss';\n\ntype Props = Readonly<{\n\tcallback?: (eventKey: string) => void;\n\teventKey: string;\n}>;\n\nexport default function SkillsItemToggle({\n\tcallback,\n\teventKey,\n}: Props): React.JSX.Element {\n\tconst {activeEventKey} = React.useContext(AccordionContext);\n\tconst color = useActiveBackgroundColorStyle();\n\tconst onClick = useAccordionButton(eventKey, () => {\n\t\tcallback && callback(eventKey);\n\t});\n\n\tconst isCurrentEventKey = activeEventKey === eventKey;\n\n\tconst classnames: Array = [];\n\n\tif (isCurrentEventKey) {\n\t\tclassnames.push(\n\t\t\teventKey === EventKeys.react ? styles.firstExpand : styles.expand,\n\t\t);\n\t} else {\n\t\tclassnames.push(styles.collapse);\n\t}\n\n\treturn (\n\t\t\n\t\t\t{eventKey}\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport useTextColorForCustomBackground from './useTextColorForCustomBackground';\n\nexport default function useActiveBackgroundColorStyle(): React.CSSProperties {\n\tconst {color} = React.useContext(ColorContext);\n\tconst textColor = useTextColorForCustomBackground();\n\n\treturn {backgroundColor: color, color: textColor};\n}\n","import * as React from 'react';\nimport AccordionCollapse from 'react-bootstrap/esm/AccordionCollapse';\nimport AccordionItem from 'react-bootstrap/esm/AccordionItem';\nimport Card from 'react-bootstrap/esm/Card';\n\nimport SkillsItemToggle from './SkillsItemToggle';\n\ntype Props = Readonly<{\n\tchildren: React.ReactNode;\n\teventKey: string;\n}>;\n\nexport default function SkillsItem({\n\tchildren,\n\teventKey,\n}: Props): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Accordion from 'react-bootstrap/Accordion';\n\nimport EventKeys from '../../../consts/EventKeys';\nimport BodyCard from '../BodyCard';\nimport SkillsItem from './SkillsItem';\n\nexport default function SkillsCard(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tRamped up on React skills while transitioning from web infra (PHP) to\n\t\t\t\t\tUI programming in my full-time position at Meta. Developed an\n\t\t\t\t\texpertise in applying Hooks, code-splitting APIs, and React18\n\t\t\t\t\tconcurrency features to create seamless user experiences while\n\t\t\t\t\toptimizing app/page performance. Expanding upon Meta-internal skills\n\t\t\t\t\twith public React app building (e.g., this web page!).\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tSelf-taught during the summer of 2023 in order to create a modern\n\t\t\t\t\tReact app at home while still enforcing type safety. Very similar to\n\t\t\t\t\tMeta's \"Flow\" but with broader appeal.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tFirst programming language learned while working full-time at Meta.\n\t\t\t\t\tBuilt multiple scalable features by focusing on asynchronous\n\t\t\t\t\tprogramming. Moved to implementing GraphQL queries and mutations on\n\t\t\t\t\tthe server side in addition to server-calling React routes and their\n\t\t\t\t\tcorresponding components.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tLearned back-end GraphQL field implementation skills while learning\n\t\t\t\t\tHack, and gained client-side GraphQL experience in tandem with coding\n\t\t\t\t\tin React while full-time at Meta.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tDatabase management skills applied during both the internship and\n\t\t\t\t\tfull-time Meta experiences. MySQL queries created for mass aggregates\n\t\t\t\t\tof traffic data in C++/Python, queries and mutations optimized for\n\t\t\t\t\temployee directory information in Hack.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tFirst applied in class projects around web development (e.g., Flask,\n\t\t\t\t\tJinja, REST) while at the University of Michigan, later used to create\n\t\t\t\t\tdata pipeline jobs for traffic aggregation as an intern at Meta.\n\t\t\t\t\tPresently, using FastAPI and PostgreSQL for personal projects.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tFirst programming language learned as an undergraduate at the\n\t\t\t\t\tUniversity of Michigan. Used for package building and app compression\n\t\t\t\t\twhile coding as a Meta intern. Skills in asynchronous programming\n\t\t\t\t\t(e.g., threads, mutexes, semaphores, etc.) and file system management\n\t\t\t\t\tas part of a course on operating systems.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tOnboarded as part of university senior capstone project at Michigan.\n\t\t\t\t\tGained experience in C# in order to create a video game as part of a\n\t\t\t\t\tteam of four (4) using the Unity game engine.\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport AboutMeCard from './about/AboutMeCard';\nimport ExperienceCard from './experience/ExperienceCard';\nimport PageBody from './PageBody';\nimport SkillsCard from './skills/SkillsCard';\n\nexport default function JobSeekerBody(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nconst SCREEN_WIDTH_BREAKPOINT = 835;\n\nexport default function JobSeekerNavWrapper(): React.JSX.Element | null {\n\tconst [isDesktop, setIsDesktop] = React.useState(\n\t\twindow.innerWidth > SCREEN_WIDTH_BREAKPOINT,\n\t);\n\n\tconst [Module, setModule] = React.useState React.JSX.Element\n\t> | null>(null);\n\n\tconst updateMedia = () => {\n\t\tsetIsDesktop(window.innerWidth > SCREEN_WIDTH_BREAKPOINT);\n\t};\n\n\tReact.useEffect(() => {\n\t\twindow.addEventListener('resize', updateMedia);\n\t\treturn () => window.removeEventListener('resize', updateMedia);\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tconst conditionalImport = async () => {\n\t\t\tsetModule(\n\t\t\t\tReact.lazy(\n\t\t\t\t\tasync () =>\n\t\t\t\t\t\tawait (isDesktop\n\t\t\t\t\t\t\t? import('./JobSeekerNavBreadcrumbs')\n\t\t\t\t\t\t\t: import('./JobSeekerNavDropdown')),\n\t\t\t\t),\n\t\t\t);\n\t\t};\n\t\tconditionalImport();\n\t}, [isDesktop]);\n\n\treturn Module != null ? (\n\t\t\n\t\t\t\n\t\t\n\t) : null;\n}\n","import * as React from 'react';\n\nimport AppBackground from './AppBackground';\nimport JobSeekerBody from './body/JobSeekerBody';\nimport JobSeekerNavWrapper from './nav/JobSeekerNavWrapper';\nimport Page from './Page';\n\nexport function Component(): React.JSX.Element {\n\treturn (\n\t\t}\n\t\t\tbreadcrumbs={}>\n\t\t\t\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"brand\":\"navbar_brand__zDvLc\",\"navbar\":\"navbar_navbar__pEuvw\",\"rightContent\":\"navbar_rightContent__ikOZ0\"};","// extracted by mini-css-extract-plugin\nexport default {\"fallback\":\"colorPicker_fallback__pvhTA\"};","import { solid } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport NavDropdown from 'react-bootstrap/esm/NavDropdown';\nimport Spinner from 'react-bootstrap/Spinner';\n\nimport styles from '../../styles/nav/colorPicker.module.scss';\nimport lazyWithPreload from '../../utils/lazyWithPreload.ts';\n\nconst PageNavColorPickerMenu = lazyWithPreload(() =>\n\timport('./PageNavColorPickerMenu.tsx'),\n);\n\nexport default function PageNavColorPicker(): React.JSX.Element {\n\tconst onMouseEnter = () => {\n\t\tPageNavColorPickerMenu.preload();\n\t};\n\n\treturn (\n\t\t\n\t\t\t}\n\t\t\tonMouseEnter={onMouseEnter}>\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport Container from 'react-bootstrap/Container';\nimport Col from 'react-bootstrap/esm/Col';\nimport Navbar from 'react-bootstrap/Navbar';\nimport {Link} from 'react-router-dom';\n\nimport MyName from '../../consts/MyName.ts';\nimport useBackgroundColorStyle from '../../hooks/useBackgroundColorStyle.ts';\nimport navStyles from '../../styles/nav/navbar.module.scss';\nimport pageStyles from '../../styles/pageMargin.module.scss';\nimport PageNavColorPicker from './PageNavColorPicker.tsx';\n\ntype Props = Readonly<{\n\tbreadcrumbs?: React.JSX.Element | undefined;\n}>;\n\nexport default function PageNavBar({breadcrumbs}: Props): React.JSX.Element {\n\tconst style = useBackgroundColorStyle();\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{MyName}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{breadcrumbs}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport { useState } from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport PageNavBar from './nav/PageNavBar';\n\ntype Props = Readonly<{\n\tbackground: React.JSX.Element;\n\tbreadcrumbs?: React.JSX.Element;\n\tchildren: React.ReactNode;\n}>;\n\nexport default function Page({\n\tbackground,\n\tbreadcrumbs,\n\tchildren,\n}: Props): React.JSX.Element {\n\tconst [hex, setHex] = useState('#2e3134');\n\n\treturn (\n\t\t\n\t\t\t{background}\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"body\":\"pageBody_body__aNOKo\"};","import classNames from 'classnames';\nimport * as React from 'react';\n\nimport pageBodyStyles from '../../styles/pageBody.module.scss';\nimport pageStyles from '../../styles/pageMargin.module.scss';\n\ntype Props = Readonly<{\n\tchildren: React.ReactNode;\n}>;\n\nexport default function PageBody({children}: Props): React.JSX.Element {\n\treturn (\n\t\t
\n\t\t\t{children}\n\t\t
\n\t);\n}\n","import * as React from 'react';\nimport Placeholder from 'react-bootstrap/esm/Placeholder';\n\nimport styles from '../../../styles/body/about/aboutMeCardBody.module.scss';\nimport type { Props as ImageProps } from '../about/AboutMeCardImage';\n\nconst AboutMeCardImage = React.lazy(\n\tasync () => await import('../about/AboutMeCardImage'),\n);\n\nexport default function AboutMeCardLazyImage(\n\tprops: ImageProps,\n): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t}>\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/Card';\nimport Col from 'react-bootstrap/Col';\nimport Container from 'react-bootstrap/Container';\nimport Row from 'react-bootstrap/Row';\n\nimport styles from '../../../styles/body/about/aboutMeCardBody.module.scss';\nimport type { Props as ImageProps } from './AboutMeCardImage';\nimport AboutMeCardLazyImage from './AboutMeCardLazyImage';\n\ntype Props = Readonly<{\n\tchildren: React.JSX.Element;\n}> &\n\tImageProps;\n\nexport default function AboutMeCardBodyContainer({\n\tchildren,\n\t...imageProps\n}: Props): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{children}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport Button from 'react-bootstrap/Button';\n\nimport useHover from '../../hooks/useHover';\n\ntype Props = Readonly<{\n\tclassName?: string;\n\thref: string;\n\ticon: IconProp;\n}>;\n\nexport default function ExternalLinkButton({\n\tclassName,\n\thref,\n\ticon,\n}: Props): React.JSX.Element {\n\tconst {isHovering: _isHovering, ...mouseEvents} = useHover();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","const MyName: string = \"Stephen Vergara\";\n\nexport default MyName;\n","import { createContext } from 'react';\n\ntype ContextType = Readonly<{\n\tcolor: string;\n\tsetColor: React.Dispatch>;\n}>;\n\nexport default createContext({\n\tcolor: '#2e3134',\n\tsetColor: () => {},\n});\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport useTextColorForCustomBackground from './useTextColorForCustomBackground';\n\nexport default function useBackgroundColorStyle(\n\talpha: string = '',\n): React.CSSProperties {\n\tconst {color} = React.useContext(ColorContext);\n\tconst textColor = useTextColorForCustomBackground();\n\n\treturn {backgroundColor: `${color}${alpha}`, color: textColor};\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nexport default function useColorStyle(): React.CSSProperties {\n const {color} = React.useContext(ColorContext);\n\n return {color};\n}","import * as React from 'react';\n\ntype ReturnType = Readonly<{\n\tisHovering: boolean;\n\tonMouseEnter: () => void;\n\tonMouseLeave: () => void;\n}>;\n\nexport default function useHover(): ReturnType {\n\tconst [isHovering, setIsHovering] = React.useState(false);\n\n\tconst onMouseEnter = () => {\n\t\tsetIsHovering(true);\n\t};\n\n\tconst onMouseLeave = () => {\n\t\tsetIsHovering(false);\n\t};\n\n\treturn {isHovering, onMouseEnter, onMouseLeave};\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nconst BRIGHTNESS_THRESHOLD = 128;\n\n// NTSC luminance formula (linear approximation): Y = .299r' + .587g' + .114b'\nconst RED_LUMINANCE_COEFFICIENT = 0.299;\nconst GREEN_LUMINANCE_COEFFICIENT = 0.587;\nconst BLUE_LUMINANCE_COEFFICIENT = 0.114;\n\nexport default function useTextColorForCustomBackground(): string {\n\tconst {color} = React.useContext(ColorContext);\n\n\treturn React.useMemo(() => {\n\t\tconst getChunksFromString = (st: string, chunkSize: number) =>\n\t\t\tst.match(new RegExp(`.{${chunkSize}}`, 'g'));\n\n\t\tconst convertHexUnitTo256 = (hexStr: string) =>\n\t\t\tparseInt(hexStr.repeat(2 / hexStr.length), 16);\n\n\t\tconst chunkSize = Math.floor((color.length - 1) / 3);\n\t\tconst hexArr = getChunksFromString(color.slice(1), chunkSize);\n\n\t\tconst [red, green, blue] = (hexArr ?? []).map(convertHexUnitTo256);\n\n\t\tconst brightness = Math.round(\n\t\t\t(red ?? 0) * RED_LUMINANCE_COEFFICIENT +\n\t\t\t\t(green ?? 0) * GREEN_LUMINANCE_COEFFICIENT +\n\t\t\t\t(blue ?? 0) * BLUE_LUMINANCE_COEFFICIENT,\n\t\t);\n\n\t\treturn brightness > BRIGHTNESS_THRESHOLD ? 'black' : 'white';\n\t}, [color]);\n}\n","import * as React from 'react';\n\ninterface PreloadedExoticComponent>\n\textends React.LazyExoticComponent {\n\tpreload: () => {};\n}\n\nexport default function lazyWithPreload>(\n\tfactory: () => Promise<{\n\t\tdefault: T;\n\t}>,\n): PreloadedExoticComponent {\n\treturn Object.assign(React.lazy(factory), {preload: factory});\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"body\":\"aboutMeCardBody_body__px0Z-\",\"base\":\"aboutMeCardBody_base__HWSO5\",\"image\":\"aboutMeCardBody_image__r0pwR\",\"glimmer\":\"aboutMeCardBody_glimmer__ztngv\",\"imageColumn\":\"aboutMeCardBody_imageColumn__Decwz\"};","// extracted by mini-css-extract-plugin\nexport default {\"buttons\":\"footer_buttons__X-wEA\",\"resume\":\"footer_resume__j2AKe\"};","// extracted by mini-css-extract-plugin\nexport default {\"github\":\"linkButton_github__ltM-y\",\"linkedin\":\"linkButton_linkedin__MRpaF\",\"steam\":\"linkButton_steam__qizUa\",\"discord\":\"linkButton_discord__zToU1\"};","// extracted by mini-css-extract-plugin\nexport default {\"page\":\"pageMargin_page__oYkHI\"};"],"names":["AppBackground","color","useContext","ColorContext","backgroundImage","concat","useBackgroundStyle","_jsx","_Fragment","children","styles","bg","bg2","bg3","map","className","style","BIRTHDATE","Date","Language","_ref","language","useColorStyle","bold","AboutMeText","age","moment","diff","years","_jsxs","Card","Text","as","classNames","italic","MyName","Link","to","AboutMeCardBody","AboutMeCardBodyContainer","alt","src","EmailButton","isHovering","mouseEvents","useHover","Button","button","href","FontAwesomeIcon","fade","icon","_faEnvelope","size","GitHubButton","ExternalLinkButton","github","_faGithub","LinkedInButton","linkedin","_faLinkedin","ResumeButton","React","hoverTextColor","useTextColorForCustomBackground","borderAndTextColor","backgroundColor","undefined","borderColor","boxShadow","usePageColorButtonStyle","resume","target","variant","beat","_faDownload","AboutMeCardFooter","Footer","Row","xs","sm","md","lg","Col","buttons","AboutMeCard","id","BodyCard","title","Header","header","Body","AppTooltip","content","tooltip","ref","entry","useInView","rootMargin","OverlayTrigger","placement","isIntersecting","overlay","Tooltip","ExperienceTimelineSkillsList","skillsList","list","skills","join","ExperienceTimelineItem","data","isOdd","background","useBackgroundColorStyle","border","useBorderColorStyle","inView","triggerOnce","tag","time","timeframe","item","in","loading","width","description","circle","items","ExperienceTimeline","timeline","bar","idx","ExperienceCard","cpp","csharp","graphql","hack","mysql","python","react","typescript","SkillsItemToggle","callback","eventKey","activeEventKey","AccordionContext","useActiveBackgroundColorStyle","onClick","useAccordionButton","isCurrentEventKey","classnames","push","EventKeys","firstExpand","expand","collapse","_faChevronUp","_faChevronDown","SkillsItem","AccordionItem","AccordionCollapse","SkillsCard","Accordion","defaultActiveKey","JobSeekerBody","PageBody","SCREEN_WIDTH_BREAKPOINT","JobSeekerNavWrapper","isDesktop","setIsDesktop","window","innerWidth","Module","setModule","updateMedia","addEventListener","removeEventListener","async","conditionalImport","fallback","Component","Page","breadcrumbs","PageNavColorPickerMenu","lazyWithPreload","PageNavColorPicker","NavDropdown","align","renderMenuOnMount","_faPalette","bounce","onMouseEnter","preload","Spinner","animation","PageNavBar","Navbar","sticky","Container","pageStyles","page","navStyles","navbar","brand","rightContent","hex","setHex","useState","Provider","value","setColor","pageBodyStyles","body","AboutMeCardImage","AboutMeCardLazyImage","props","Placeholder","glimmer","imageProps","imageColumn","xl","_isHovering","createContext","alpha","arguments","length","textColor","setIsHovering","onMouseLeave","BRIGHTNESS_THRESHOLD","RED_LUMINANCE_COEFFICIENT","GREEN_LUMINANCE_COEFFICIENT","BLUE_LUMINANCE_COEFFICIENT","chunkSize","Math","floor","hexArr","getChunksFromString","st","match","RegExp","slice","red","green","blue","hexStr","parseInt","repeat","round","factory","Object","assign"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/818.83eeeeea.chunk.js.map b/static/js/818.83eeeeea.chunk.js.map deleted file mode 100644 index ba5b6cc..0000000 --- a/static/js/818.83eeeeea.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/818.83eeeeea.chunk.js","mappings":"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","sources":["webpack://sverg84.github.io/./src/impl/styles/background.module.scss?ebba","impl/components/AppBackground.tsx","impl/hooks/useBackgroundStyle.ts","webpack://sverg84.github.io/./src/impl/styles/body/about/text.module.scss?83aa","impl/components/body/about/AboutMeText.tsx","impl/components/body/about/AboutMeCardBody.tsx","webpack://sverg84.github.io/./src/impl/styles/body/buttons/email.module.scss?9739","impl/components/buttons/EmailButton.tsx","impl/components/buttons/GitHubButton.tsx","impl/components/buttons/LinkedInButton.tsx","webpack://sverg84.github.io/./src/impl/styles/body/buttons/resume.module.scss?5a4c","impl/components/buttons/ResumeButton.tsx","impl/hooks/usePageColorButtonStyle.ts","impl/components/body/about/AboutMeCardFooter.tsx","impl/components/body/about/AboutMeCard.tsx","webpack://sverg84.github.io/./src/impl/styles/body/experience/card.module.scss?9595","impl/components/body/BodyCard.tsx","webpack://sverg84.github.io/./src/impl/styles/body/experience/timeline.module.scss?0093","webpack://sverg84.github.io/./src/impl/styles/tooltip.module.scss?f869","impl/components/AppTooltip.tsx","webpack://sverg84.github.io/./src/impl/styles/body/experience/timelineItem.module.scss?2c42","webpack://sverg84.github.io/./src/impl/styles/body/experience/skillsList.module.scss?e95e","impl/components/body/experience/ExperienceTimelineSkillsList.tsx","impl/components/body/experience/ExperienceTimelineItem.tsx","impl/hooks/useBorderColorStyle.ts","impl/components/body/experience/ExperienceTimeline.tsx","impl/components/body/experience/ExperienceCard.tsx","impl/consts/EventKeys.ts","webpack://sverg84.github.io/./src/impl/styles/body/skills/item.module.scss?a30c","impl/components/body/skills/SkillsItemToggle.tsx","impl/hooks/useActiveBackgroundColorStyle.ts","impl/components/body/skills/SkillsItem.tsx","impl/components/body/skills/SkillsCard.tsx","impl/components/body/JobSeekerBody.tsx","impl/components/nav/JobSeekerNavWrapper.tsx","impl/components/AppJobSeeker.tsx","webpack://sverg84.github.io/./src/impl/styles/nav/navbar.module.scss?5af6","webpack://sverg84.github.io/./src/impl/styles/nav/colorPicker.module.scss?f351","impl/components/nav/PageNavColorPicker.tsx","impl/components/nav/PageNavBar.tsx","impl/components/Page.tsx","webpack://sverg84.github.io/./src/impl/styles/pageBody.module.scss?5416","impl/components/body/PageBody.tsx","impl/components/body/about/AboutMeCardLazyImage.tsx","impl/components/body/about/AboutMeCardBodyContainer.tsx","impl/components/buttons/ExternalLinkButton.tsx","impl/consts/MyName.ts","impl/contexts/ColorContext.ts","impl/hooks/useBackgroundColorStyle.ts","impl/hooks/useColorStyle.ts","impl/hooks/useHover.ts","impl/hooks/useTextColorForCustomBackground.ts","impl/utils/lazyWithPreload.ts","webpack://sverg84.github.io/./src/impl/styles/body/about/aboutMeCardBody.module.scss?747a","webpack://sverg84.github.io/./src/impl/styles/body/about/footer.module.scss?b32c","webpack://sverg84.github.io/./src/impl/styles/body/buttons/linkButton.module.scss?4ee4","webpack://sverg84.github.io/./src/impl/styles/pageMargin.module.scss?e8bc"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"bg\":\"background_bg__rHR4m\",\"bg3\":\"background_bg3__WZ4Pm\",\"bg2\":\"background_bg2__XB2Tl\",\"slide\":\"background_slide__Sq8xw\"};","import * as React from 'react';\n\nimport useBackgroundStyle from '../hooks/useBackgroundStyle';\nimport styles from '../styles/background.module.scss';\n\nexport default function AppBackground(): React.JSX.Element {\n\tconst color = useBackgroundStyle();\n\treturn (\n\t\t<>\n\t\t\t{[styles.bg, styles.bg2, styles.bg3].map(bg => (\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n}\n","import { useContext } from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nexport default function useBackgroundStyle(): React.CSSProperties {\n\tconst {color} = useContext(ColorContext);\n\treturn {backgroundImage: `linear-gradient(-60deg, ${color} 50%, white 50%)`};\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"bold\":\"text_bold__TiUuq\",\"italic\":\"text_italic__fvjzk\"};","import classNames from 'classnames';\nimport moment from 'moment';\nimport * as React from 'react';\nimport Card from 'react-bootstrap/esm/Card';\nimport { Link } from 'react-router-dom';\n\nimport MyName from '../../../consts/MyName';\nimport useColorStyle from '../../../hooks/useColorStyle';\nimport styles from '../../../styles/body/about/text.module.scss';\n\nconst BIRTHDATE: Date = new Date('1998-05-06T10:47:00.000-06:00'); // 6 May 1998 11:47 A.M. US Central Time\n\nfunction Language({language}: {language: string}): React.JSX.Element {\n\tconst color = useColorStyle();\n\treturn (\n\t\t\n\t\t\t{language}\n\t\t\n\t);\n}\n\nexport default function AboutMeText(): React.JSX.Element {\n\tconst color = useColorStyle();\n\tconst age = moment.duration(moment().diff(BIRTHDATE)).years();\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\tAbout Me\n\t\t\t\n\t\t\t\n\t\t\t\tFront-End Software Engineer, Web Developer\n\t\t\t\n\t\t\t\n\t\t\t\tHi there! My name is{' '}\n\t\t\t\t\n\t\t\t\t\t{MyName}\n\t\t\t\t\n\t\t\t\t. I am a {age} year-old software engineer with a fondness for user\n\t\t\t\tinterface and user experience (UI/UX) development.\n\t\t\t\n\t\t\t\n\t\t\t\tI started learning to code during my senior year of high school when I\n\t\t\t\ttook an introduction course to {} on a whim,\n\t\t\t\tand I loved learning as much as I could since then! Throughout my time\n\t\t\t\tat university, I applied myself to a substantial amount of coursework in{' '}\n\t\t\t\t{} and {} with\n\t\t\t\ta splash of {},{' '}\n\t\t\t\t{}, and {}.\n\t\t\t\n\t\t\t\n\t\t\t\tAll of my full-time experience (as of Summer 2023) stems from my time at\n\t\t\t\tMeta where I challenged myself further in exploring web programming,\n\t\t\t\tlearning {} and{' '}\n\t\t\t\t{} for the first time in a rigorous,\n\t\t\t\tfast-paced environment.\n\t\t\t\n\t\t\t\n\t\t\t\tSince parting with Meta, I have been self-teaching{' '}\n\t\t\t\t{} in order to keep my UI-building\n\t\t\t\tskills fresh, replete with {} modules.\n\t\t\t\n\t\t\t\n\t\t\t\tClick{' '}\n\t\t\t\t{\n\t\t\t\t\t\n\t\t\t\t\t\there\n\t\t\t\t\t\n\t\t\t\t}{' '}\n\t\t\t\tif you would like to learn more about me beyond my career!\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport MyName from '../../../consts/MyName';\nimport AboutMeCardBodyContainer from './AboutMeCardBodyContainer';\nimport AboutMeText from './AboutMeText';\n\nexport default function AboutMeCardBody(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"email_button__FW+sr\"};","import { solid } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport { Button } from 'react-bootstrap';\n\nimport useHover from '../../hooks/useHover';\nimport styles from '../../styles/body/buttons/email.module.scss';\n\nexport default function EmailButton(): React.JSX.Element {\n\tconst {isHovering, ...mouseEvents} = useHover();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import { brands } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport * as React from 'react';\n\nimport styles from '../../styles/body/buttons/linkButton.module.scss';\nimport ExternalLinkButton from './ExternalLinkButton';\n\nexport default function GitHubButton(): React.JSX.Element {\n\treturn (\n\t\t\n\t);\n}\n","import { brands } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport * as React from 'react';\n\nimport styles from '../../styles/body/buttons/linkButton.module.scss';\nimport ExternalLinkButton from './ExternalLinkButton';\n\nexport default function LinkedInButton(): React.JSX.Element {\n\treturn (\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"resume\":\"resume_resume__92JEE\"};","import { solid } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport Button from 'react-bootstrap/Button';\n\nimport useHover from '../../hooks/useHover';\nimport usePageColorButtonStyle from '../../hooks/usePageColorButtonStyle';\nimport styles from '../../styles/body/buttons/resume.module.scss';\n\nexport default function ResumeButton(): React.JSX.Element {\n\tconst {isHovering, ...mouseEvents} = useHover();\n\tconst style = usePageColorButtonStyle(isHovering);\n\n\treturn (\n\t\t\n\t\t\tDownload resume\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport useTextColorForCustomBackground from './useTextColorForCustomBackground';\n\nexport default function usePageColorButtonStyle(\n\tisHovering: boolean,\n): React.CSSProperties {\n\tconst {color} = React.useContext(ColorContext);\n\tconst hoverTextColor = useTextColorForCustomBackground();\n\n\tconst borderAndTextColor = isHovering ? hoverTextColor : color;\n\n\treturn {\n\t\tbackgroundColor: isHovering ? color : undefined,\n\t\tborderColor: borderAndTextColor,\n\t\tboxShadow: `4px 4px ${color}`,\n\t\tcolor: borderAndTextColor,\n\t};\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/Card';\nimport Col from 'react-bootstrap/Col';\nimport Row from 'react-bootstrap/Row';\n\nimport styles from '../../../styles/body/about/footer.module.scss';\nimport EmailButton from '../../buttons/EmailButton';\nimport GitHubButton from '../../buttons/GitHubButton';\nimport LinkedInButton from '../../buttons/LinkedInButton';\nimport ResumeButton from '../../buttons/ResumeButton';\n\nexport default function AboutMeCardFooter(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/Card';\n\nimport AboutMeCardBody from './AboutMeCardBody';\nimport AboutMeCardFooter from './AboutMeCardFooter';\n\nexport default function AboutMeCard(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"card_header__C3ziB\"};","import * as React from 'react';\nimport Card from 'react-bootstrap/Card';\n\nimport useColorStyle from '../../hooks/useColorStyle';\nimport styles from '../../styles/body/experience/card.module.scss';\n\ntype Props = Readonly<{\n\tchildren: React.JSX.Element;\n\tid?: string;\n\ttitle: string;\n}>;\n\nexport default function BodyCard({\n\tchildren,\n\tid,\n\ttitle,\n}: Props): React.JSX.Element {\n\tconst color = useColorStyle();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{title}\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"timeline\":\"timeline_timeline__VfjcF\",\"bar\":\"timeline_bar__V3BAE\"};","// extracted by mini-css-extract-plugin\nexport default {\"tooltip\":\"tooltip_tooltip__5pJPW\"};","import * as React from 'react';\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\nimport Tooltip from 'react-bootstrap/Tooltip';\nimport { useInView } from 'react-intersection-observer';\n\nimport styles from '../styles/tooltip.module.scss';\n\ntype Props = Readonly<{\n\tcontent: string;\n\ttooltip: string;\n}>;\n\nexport default function AppTooltip({\n\tcontent,\n\ttooltip,\n}: Props): React.JSX.Element {\n\tconst {ref, entry} = useInView({\n\t\trootMargin: '-50% 0px 0px',\n\t});\n\n\treturn (\n\t\t{tooltip}}>\n\t\t\t{content}\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"timelineItem_item__005F5\",\"circle\":\"timelineItem_circle__ADJyP\",\"in\":\"timelineItem_in__PSeNd\",\"fadeInLeft\":\"timelineItem_fadeInLeft__vvxlT\",\"content\":\"timelineItem_content__izpwq\",\"fadeInRight\":\"timelineItem_fadeInRight__uPKi+\",\"header\":\"timelineItem_header__H24TC\",\"tag\":\"timelineItem_tag__k8jMy\"};","// extracted by mini-css-extract-plugin\nexport default {\"list\":\"skillsList_list__-3yy3\",\"skills\":\"skillsList_skills__Q4+OB\"};","import * as React from 'react';\n\nimport styles from '../../../styles/body/experience/skillsList.module.scss';\n\ntype Props = Readonly<{\n\tskillsList: ReadonlyArray;\n\tstyle?: React.CSSProperties;\n}>;\n\nexport default function ExperienceTimelineSkillsList({\n\tskillsList,\n\tstyle,\n}: Props): React.JSX.Element {\n\treturn (\n\t\t

\n\t\t\t\n\t\t\t\tSkills:{' '}\n\t\t\t\n\t\t\t{skillsList.join(', ')}\n\t\t

\n\t);\n}\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport useBackgroundColorStyle from '../../../hooks/useBackgroundColorStyle';\nimport useBorderColorStyle from '../../../hooks/useBorderColorStyle';\nimport useColorStyle from '../../../hooks/useColorStyle';\nimport styles from '../../../styles/body/experience/timelineItem.module.scss';\nimport type { TimelineItemData } from './ExperienceTimeline';\nimport ExperienceTimelineSkillsList from './ExperienceTimelineSkillsList';\n\ntype Props = Readonly<{\n\tdata: TimelineItemData;\n\tisOdd: boolean;\n}>;\n\nexport default function ExperienceTimelineItem({\n\tdata,\n\tisOdd,\n}: Props): React.JSX.Element {\n\tconst background = useBackgroundColorStyle();\n\tconst border = useBorderColorStyle();\n\tconst color = useColorStyle();\n\n\tconst {inView, ref} = useInView({\n\t\ttriggerOnce: true,\n\t\trootMargin: '-200px 0px',\n\t});\n\n\tconst tag = (\n\t\t{data.tag}\n\t);\n\tconst time = ;\n\n\tconst header = isOdd ? (\n\t\t<>\n\t\t\t{tag}\n\t\t\t{time}\n\t\t\n\t) : (\n\t\t<>\n\t\t\t{time}\n\t\t\t{tag}\n\t\t\n\t);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t
{header}
\n\t\t\t\t
{data.title}
\n\t\t\t\t\n\t\t\t\t{data.description}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nexport default function useBorderColorStyle(): React.CSSProperties {\n\tconst {color} = React.useContext(ColorContext);\n\n\treturn {borderColor: color};\n}\n","import * as React from 'react';\n\nimport useBackgroundColorStyle from '../../../hooks/useBackgroundColorStyle';\nimport styles from '../../../styles/body/experience/timeline.module.scss';\nimport AppTooltip from '../../AppTooltip';\nimport ExperienceTimelineItem from './ExperienceTimelineItem';\n\nexport type TimelineItemData = Readonly<{\n\tdescription: React.JSX.Element;\n\tskillsList: ReadonlyArray;\n\tsrc: string;\n\ttag: string;\n\ttimeframe: string;\n\ttitle: string;\n}>;\n\nconst items: ReadonlyArray = [\n\t{\n\t\tdescription: (\n\t\t\t

\n\t\t\t\tFull-stack product software engineer (PHP/Hack and JS/React) for the Org\n\t\t\t\tEffectiveness team within the Enterprise Engineering division. Released\n\t\t\t\tmultiple high-priority stakeholder feature requests pertaining to\n\t\t\t\tHR-sensitive employee data. Leader of team app performance optimization\n\t\t\t\topportunities.\n\t\t\t

\n\t\t),\n\t\tskillsList: ['PHP', 'React', 'GraphQL', 'MySQL'],\n\t\tsrc: '/meta.gif',\n\t\ttag: 'Meta Platforms, Inc.',\n\t\ttimeframe: '2020-2023',\n\t\ttitle: 'Software Engineer',\n\t},\n\n\t{\n\t\tdescription: (\n\t\t\t

\n\t\t\t\tIntern for the Traffic Analytics team within the Infrastructure\n\t\t\t\tdivision. Created monitoring tool for team oncall to measure network\n\t\t\t\tpacket failures with interactive web page.\n\t\t\t

\n\t\t),\n\t\tskillsList: ['C++', 'Python', 'Apache Thrift', 'MySQL'],\n\t\tsrc: '/meta.gif',\n\t\ttag: 'Meta Platforms, Inc.',\n\t\ttimeframe: 'Summer 2019',\n\t\ttitle: 'Software Engineer Intern',\n\t},\n\t{\n\t\tdescription: (\n\t\t\t

\n\t\t\t\tAssistant at the university's Transportation Research Institute as part\n\t\t\t\tof the Undergraduate Research Opportunity Program (UROP). Participated\n\t\t\t\tin{' '}\n\t\t\t\t{' '}\n\t\t\t\tstudy for Defence Research & Development Canada (DRDC).\n\t\t\t

\n\t\t),\n\t\tskillsList: ['MATLAB', 'Wolfram Mathematica'],\n\t\tsrc: '/umich.jpeg',\n\t\ttag: 'University of Michigan',\n\t\ttimeframe: '2016-2017',\n\t\ttitle: 'Research Assistant',\n\t},\n];\n\nexport default function ExperienceTimeline(): React.JSX.Element {\n\tconst color = useBackgroundColorStyle();\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t{items.map((item, idx) => (\n\t\t\t\t\n\t\t\t))}\n\t\t
\n\t);\n}\n","import * as React from 'react';\n\nimport BodyCard from '../BodyCard';\nimport ExperienceTimeline from './ExperienceTimeline';\n\nexport default function ExperienceCard(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","const EventKeys = {\n\tcpp: 'C++',\n\tcsharp: 'C#',\n\tgraphql: 'GraphQL',\n\thack: 'Hack',\n\tmysql: 'MySQL',\n\tpython: 'Python',\n\treact: 'React',\n\ttypescript: 'TypeScript',\n} as const;\n\nexport default EventKeys;\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"item_button__GmSRm\",\"expand\":\"item_expand__4Sxrl\",\"firstExpand\":\"item_firstExpand__kSWZa\",\"collapse\":\"item_collapse__JYgde\",\"header\":\"item_header__w8Yjy\"};","import { solid } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { AccordionContext, useAccordionButton } from 'react-bootstrap';\n\nimport EventKeys from '../../../consts/EventKeys';\nimport useActiveBackgroundColorStyle from '../../../hooks/useActiveBackgroundColorStyle';\nimport styles from '../../../styles/body/skills/item.module.scss';\n\ntype Props = Readonly<{\n\tcallback?: (eventKey: string) => void;\n\teventKey: string;\n}>;\n\nexport default function SkillsItemToggle({\n\tcallback,\n\teventKey,\n}: Props): React.JSX.Element {\n\tconst {activeEventKey} = React.useContext(AccordionContext);\n\tconst color = useActiveBackgroundColorStyle();\n\tconst onClick = useAccordionButton(eventKey, () => {\n\t\tcallback && callback(eventKey);\n\t});\n\n\tconst isCurrentEventKey = activeEventKey === eventKey;\n\n\tconst classnames: Array = [];\n\n\tif (isCurrentEventKey) {\n\t\tclassnames.push(\n\t\t\teventKey === EventKeys.react ? styles.firstExpand : styles.expand,\n\t\t);\n\t} else {\n\t\tclassnames.push(styles.collapse);\n\t}\n\n\treturn (\n\t\t\n\t\t\t{eventKey}\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport useTextColorForCustomBackground from './useTextColorForCustomBackground';\n\nexport default function useActiveBackgroundColorStyle(): React.CSSProperties {\n\tconst {color} = React.useContext(ColorContext);\n\tconst textColor = useTextColorForCustomBackground();\n\n\treturn {backgroundColor: color, color: textColor};\n}\n","import * as React from 'react';\nimport AccordionCollapse from 'react-bootstrap/esm/AccordionCollapse';\nimport AccordionItem from 'react-bootstrap/esm/AccordionItem';\nimport Card from 'react-bootstrap/esm/Card';\n\nimport SkillsItemToggle from './SkillsItemToggle';\n\ntype Props = Readonly<{\n\tchildren: React.ReactNode;\n\teventKey: string;\n}>;\n\nexport default function SkillsItem({\n\tchildren,\n\teventKey,\n}: Props): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Accordion from 'react-bootstrap/Accordion';\n\nimport EventKeys from '../../../consts/EventKeys';\nimport BodyCard from '../BodyCard';\nimport SkillsItem from './SkillsItem';\n\nexport default function SkillsCard(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tRamped up on React skills while transitioning from web infra (PHP) to\n\t\t\t\t\tUI programming in my full-time position at Meta. Developed an\n\t\t\t\t\texpertise in applying Hooks, code-splitting APIs, and React18\n\t\t\t\t\tconcurrency features to create seamless user experiences while\n\t\t\t\t\toptimizing app/page performance. Expanding upon Meta-internal skills\n\t\t\t\t\twith public React app building (e.g., this web page!).\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tSelf-taught during the summer of 2023 in order to create a modern\n\t\t\t\t\tReact app at home while still enforcing type safety. Very similar to\n\t\t\t\t\tMeta's \"Flow\" but with broader appeal.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tFirst programming language learned while working full-time at Meta.\n\t\t\t\t\tBuilt multiple scalable features by focusing on asynchronous\n\t\t\t\t\tprogramming. Moved to implementing GraphQL queries and mutations on\n\t\t\t\t\tthe server side in addition to server-calling React routes and their\n\t\t\t\t\tcorresponding components.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tLearned back-end GraphQL field implementation skills while learning\n\t\t\t\t\tHack, and gained client-side GraphQL experience in tandem with coding\n\t\t\t\t\tin React while full-time at Meta.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tDatabase management skills applied during both the internship and\n\t\t\t\t\tfull-time Meta experiences. MySQL queries created for mass aggregates\n\t\t\t\t\tof traffic data in C++/Python, queries and mutations optimized for\n\t\t\t\t\temployee directory information in Hack.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tFirst applied in class projects around web development (e.g., Flask,\n\t\t\t\t\tJinja, REST) while at the University of Michigan, later used to create\n\t\t\t\t\tdata pipeline jobs for traffic aggregation as an intern at Meta.\n\t\t\t\t\tPresently, using FastAPI and PostgreSQL for personal projects.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tFirst programming language learned as an undergraduate at the\n\t\t\t\t\tUniversity of Michigan. Used for package building and app compression\n\t\t\t\t\twhile coding as a Meta intern. Skills in asynchronous programming\n\t\t\t\t\t(e.g., threads, mutexes, semaphores, etc.) and file system management\n\t\t\t\t\tas part of a course on operating systems.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tOnboarded as part of university senior capstone project at Michigan.\n\t\t\t\t\tGained experience in C# in order to create a video game as part of a\n\t\t\t\t\tteam of four (4) using the Unity game engine.\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport AboutMeCard from './about/AboutMeCard';\nimport ExperienceCard from './experience/ExperienceCard';\nimport PageBody from './PageBody';\nimport SkillsCard from './skills/SkillsCard';\n\nexport default function JobSeekerBody(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nconst SCREEN_WIDTH_BREAKPOINT = 835;\n\nexport default function JobSeekerNavWrapper(): React.JSX.Element | null {\n\tconst [isDesktop, setIsDesktop] = React.useState(\n\t\twindow.innerWidth > SCREEN_WIDTH_BREAKPOINT,\n\t);\n\n\tconst [Module, setModule] = React.useState React.JSX.Element\n\t> | null>(null);\n\n\tconst updateMedia = () => {\n\t\tsetIsDesktop(window.innerWidth > SCREEN_WIDTH_BREAKPOINT);\n\t};\n\n\tReact.useEffect(() => {\n\t\twindow.addEventListener('resize', updateMedia);\n\t\treturn () => window.removeEventListener('resize', updateMedia);\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tconst conditionalImport = async () => {\n\t\t\tsetModule(\n\t\t\t\tReact.lazy(\n\t\t\t\t\tasync () =>\n\t\t\t\t\t\tawait (isDesktop\n\t\t\t\t\t\t\t? import('./JobSeekerNavBreadcrumbs')\n\t\t\t\t\t\t\t: import('./JobSeekerNavDropdown')),\n\t\t\t\t),\n\t\t\t);\n\t\t};\n\t\tconditionalImport();\n\t}, [isDesktop]);\n\n\treturn Module != null ? (\n\t\t\n\t\t\t\n\t\t\n\t) : null;\n}\n","import * as React from 'react';\n\nimport AppBackground from './AppBackground';\nimport JobSeekerBody from './body/JobSeekerBody';\nimport JobSeekerNavWrapper from './nav/JobSeekerNavWrapper';\nimport Page from './Page';\n\nexport function Component(): React.JSX.Element {\n\treturn (\n\t\t}\n\t\t\tbreadcrumbs={}>\n\t\t\t\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"brand\":\"navbar_brand__zDvLc\",\"navbar\":\"navbar_navbar__pEuvw\",\"rightContent\":\"navbar_rightContent__ikOZ0\"};","// extracted by mini-css-extract-plugin\nexport default {\"fallback\":\"colorPicker_fallback__pvhTA\"};","import { solid } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport NavDropdown from 'react-bootstrap/esm/NavDropdown';\nimport Spinner from 'react-bootstrap/Spinner';\n\nimport styles from '../../styles/nav/colorPicker.module.scss';\nimport lazyWithPreload from '../../utils/lazyWithPreload.ts';\n\nconst PageNavColorPickerMenu = lazyWithPreload(() =>\n\timport('./PageNavColorPickerMenu.tsx'),\n);\n\nexport default function PageNavColorPicker(): React.JSX.Element {\n\tconst onMouseEnter = () => {\n\t\tPageNavColorPickerMenu.preload();\n\t};\n\n\treturn (\n\t\t\n\t\t\t}\n\t\t\tonMouseEnter={onMouseEnter}>\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport Container from 'react-bootstrap/Container';\nimport Col from 'react-bootstrap/esm/Col';\nimport Navbar from 'react-bootstrap/Navbar';\nimport {Link} from 'react-router-dom';\n\nimport MyName from '../../consts/MyName.ts';\nimport useBackgroundColorStyle from '../../hooks/useBackgroundColorStyle.ts';\nimport navStyles from '../../styles/nav/navbar.module.scss';\nimport pageStyles from '../../styles/pageMargin.module.scss';\nimport PageNavColorPicker from './PageNavColorPicker.tsx';\n\ntype Props = Readonly<{\n\tbreadcrumbs?: React.JSX.Element | undefined;\n}>;\n\nexport default function PageNavBar({breadcrumbs}: Props): React.JSX.Element {\n\tconst style = useBackgroundColorStyle();\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{MyName}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{breadcrumbs}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport { useState } from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport PageNavBar from './nav/PageNavBar';\n\ntype Props = Readonly<{\n\tbackground: React.JSX.Element;\n\tbreadcrumbs?: React.JSX.Element;\n\tchildren: React.ReactNode;\n}>;\n\nexport default function Page({\n\tbackground,\n\tbreadcrumbs,\n\tchildren,\n}: Props): React.JSX.Element {\n\tconst [hex, setHex] = useState('#2e3134');\n\n\treturn (\n\t\t\n\t\t\t{background}\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"body\":\"pageBody_body__aNOKo\"};","import classNames from 'classnames';\nimport * as React from 'react';\n\nimport pageBodyStyles from '../../styles/pageBody.module.scss';\nimport pageStyles from '../../styles/pageMargin.module.scss';\n\ntype Props = Readonly<{\n\tchildren: React.ReactNode;\n}>;\n\nexport default function PageBody({children}: Props): React.JSX.Element {\n\treturn (\n\t\t
\n\t\t\t{children}\n\t\t
\n\t);\n}\n","import * as React from 'react';\nimport Placeholder from 'react-bootstrap/esm/Placeholder';\n\nimport styles from '../../../styles/body/about/aboutMeCardBody.module.scss';\nimport type { Props as ImageProps } from '../about/AboutMeCardImage';\n\nconst AboutMeCardImage = React.lazy(\n\tasync () => await import('../about/AboutMeCardImage'),\n);\n\nexport default function AboutMeCardLazyImage(\n\tprops: ImageProps,\n): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t}>\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/Card';\nimport Col from 'react-bootstrap/Col';\nimport Container from 'react-bootstrap/Container';\nimport Row from 'react-bootstrap/Row';\n\nimport styles from '../../../styles/body/about/aboutMeCardBody.module.scss';\nimport type { Props as ImageProps } from './AboutMeCardImage';\nimport AboutMeCardLazyImage from './AboutMeCardLazyImage';\n\ntype Props = Readonly<{\n\tchildren: React.JSX.Element;\n}> &\n\tImageProps;\n\nexport default function AboutMeCardBodyContainer({\n\tchildren,\n\t...imageProps\n}: Props): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{children}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport Button from 'react-bootstrap/Button';\n\nimport useHover from '../../hooks/useHover';\n\ntype Props = Readonly<{\n\tclassName?: string;\n\thref: string;\n\ticon: IconProp;\n}>;\n\nexport default function ExternalLinkButton({\n\tclassName,\n\thref,\n\ticon,\n}: Props): React.JSX.Element {\n\tconst {isHovering: _isHovering, ...mouseEvents} = useHover();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","const MyName: string = \"Stephen Vergara\";\n\nexport default MyName;\n","import { createContext } from 'react';\n\ntype ContextType = Readonly<{\n\tcolor: string;\n\tsetColor: React.Dispatch>;\n}>;\n\nexport default createContext({\n\tcolor: '#2e3134',\n\tsetColor: () => {},\n});\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport useTextColorForCustomBackground from './useTextColorForCustomBackground';\n\nexport default function useBackgroundColorStyle(\n\talpha: string = '',\n): React.CSSProperties {\n\tconst {color} = React.useContext(ColorContext);\n\tconst textColor = useTextColorForCustomBackground();\n\n\treturn {backgroundColor: `${color}${alpha}`, color: textColor};\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nexport default function useColorStyle(): React.CSSProperties {\n const {color} = React.useContext(ColorContext);\n\n return {color};\n}","import * as React from 'react';\n\ntype ReturnType = Readonly<{\n\tisHovering: boolean;\n\tonMouseEnter: () => void;\n\tonMouseLeave: () => void;\n}>;\n\nexport default function useHover(): ReturnType {\n\tconst [isHovering, setIsHovering] = React.useState(false);\n\n\tconst onMouseEnter = () => {\n\t\tsetIsHovering(true);\n\t};\n\n\tconst onMouseLeave = () => {\n\t\tsetIsHovering(false);\n\t};\n\n\treturn {isHovering, onMouseEnter, onMouseLeave};\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nexport default function useTextColorForCustomBackground(): string {\n\tconst {color} = React.useContext(ColorContext);\n\n\treturn React.useMemo(() => {\n\t\tconst getChunksFromString = (st: string, chunkSize: number) =>\n\t\t\tst.match(new RegExp(`.{${chunkSize}}`, 'g'));\n\n\t\tconst convertHexUnitTo256 = (hexStr: string) =>\n\t\t\tparseInt(hexStr.repeat(2 / hexStr.length), 16);\n\n\t\tconst chunkSize = Math.floor((color.length - 1) / 3);\n\t\tconst hexArr = getChunksFromString(color.slice(1), chunkSize);\n\n\t\tconst rgb = hexArr?.map(convertHexUnitTo256);\n\n\t\tconst brightness = Math.round(\n\t\t\t((rgb?.at(0) ?? 0) * 299 +\n\t\t\t\t(rgb?.at(1) ?? 0) * 587 +\n\t\t\t\t(rgb?.at(2) ?? 0) * 114) /\n\t\t\t\t1000,\n\t\t);\n\n\t\treturn brightness > 125 ? 'black' : 'white';\n\t}, [color]);\n}\n","import * as React from 'react';\n\ninterface PreloadedExoticComponent>\n\textends React.LazyExoticComponent {\n\tpreload: () => {};\n}\n\nexport default function lazyWithPreload>(\n\tfactory: () => Promise<{\n\t\tdefault: T;\n\t}>,\n): PreloadedExoticComponent {\n\treturn Object.assign(React.lazy(factory), {preload: factory});\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"body\":\"aboutMeCardBody_body__px0Z-\",\"base\":\"aboutMeCardBody_base__HWSO5\",\"image\":\"aboutMeCardBody_image__r0pwR\",\"glimmer\":\"aboutMeCardBody_glimmer__ztngv\",\"imageColumn\":\"aboutMeCardBody_imageColumn__Decwz\"};","// extracted by mini-css-extract-plugin\nexport default {\"buttons\":\"footer_buttons__X-wEA\",\"resume\":\"footer_resume__j2AKe\"};","// extracted by mini-css-extract-plugin\nexport default {\"github\":\"linkButton_github__ltM-y\",\"linkedin\":\"linkButton_linkedin__MRpaF\",\"steam\":\"linkButton_steam__qizUa\",\"discord\":\"linkButton_discord__zToU1\"};","// extracted by mini-css-extract-plugin\nexport default {\"page\":\"pageMargin_page__oYkHI\"};"],"names":["AppBackground","color","useContext","ColorContext","backgroundImage","concat","useBackgroundStyle","_jsx","_Fragment","children","styles","bg","bg2","bg3","map","className","style","BIRTHDATE","Date","Language","_ref","language","useColorStyle","bold","AboutMeText","age","moment","diff","years","_jsxs","Card","Text","as","classNames","italic","MyName","Link","to","AboutMeCardBody","AboutMeCardBodyContainer","alt","src","EmailButton","isHovering","mouseEvents","useHover","Button","button","href","FontAwesomeIcon","fade","icon","_faEnvelope","size","GitHubButton","ExternalLinkButton","github","_faGithub","LinkedInButton","linkedin","_faLinkedin","ResumeButton","React","hoverTextColor","useTextColorForCustomBackground","borderAndTextColor","backgroundColor","undefined","borderColor","boxShadow","usePageColorButtonStyle","resume","target","variant","beat","_faDownload","AboutMeCardFooter","Footer","Row","xs","sm","md","lg","Col","buttons","AboutMeCard","id","BodyCard","title","Header","header","Body","AppTooltip","content","tooltip","ref","entry","useInView","rootMargin","OverlayTrigger","placement","isIntersecting","overlay","Tooltip","ExperienceTimelineSkillsList","skillsList","list","skills","join","ExperienceTimelineItem","data","isOdd","background","useBackgroundColorStyle","border","useBorderColorStyle","inView","triggerOnce","tag","time","timeframe","item","in","loading","width","description","circle","items","ExperienceTimeline","timeline","bar","idx","ExperienceCard","cpp","csharp","graphql","hack","mysql","python","react","typescript","SkillsItemToggle","callback","eventKey","activeEventKey","AccordionContext","useActiveBackgroundColorStyle","onClick","useAccordionButton","isCurrentEventKey","classnames","push","EventKeys","firstExpand","expand","collapse","_faChevronUp","_faChevronDown","SkillsItem","AccordionItem","AccordionCollapse","SkillsCard","Accordion","defaultActiveKey","JobSeekerBody","PageBody","SCREEN_WIDTH_BREAKPOINT","JobSeekerNavWrapper","isDesktop","setIsDesktop","window","innerWidth","Module","setModule","updateMedia","addEventListener","removeEventListener","async","conditionalImport","fallback","Component","Page","breadcrumbs","PageNavColorPickerMenu","lazyWithPreload","PageNavColorPicker","NavDropdown","align","renderMenuOnMount","_faPalette","bounce","onMouseEnter","preload","Spinner","animation","PageNavBar","Navbar","sticky","Container","pageStyles","page","navStyles","navbar","brand","rightContent","hex","setHex","useState","Provider","value","setColor","pageBodyStyles","body","AboutMeCardImage","AboutMeCardLazyImage","props","Placeholder","glimmer","imageProps","imageColumn","xl","_isHovering","createContext","alpha","arguments","length","textColor","setIsHovering","onMouseLeave","_rgb$at","_rgb$at2","_rgb$at3","chunkSize","Math","floor","hexArr","getChunksFromString","st","match","RegExp","slice","rgb","hexStr","parseInt","repeat","round","at","factory","Object","assign"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/996.b42b4184.chunk.js.map b/static/js/996.b42b4184.chunk.js.map deleted file mode 100644 index 7a75654..0000000 --- a/static/js/996.b42b4184.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/996.b42b4184.chunk.js","mappings":"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","sources":["webpack://sverg84.github.io/./src/impl/styles/body/personal/background.module.scss?368e","impl/components/body/personal/PersonalBackground.tsx","impl/components/buttons/DiscordButton.tsx","impl/components/buttons/SteamButton.tsx","impl/components/body/personal/about/PersonalAboutMeCardFooter.tsx","webpack://sverg84.github.io/./src/impl/styles/body/personal/about/header.module.scss?19f6","impl/components/body/personal/about/PersonalAboutMeCardHeader.tsx","../node_modules/@restart/hooks/esm/useUpdateEffect.js","../node_modules/react-bootstrap/esm/CarouselCaption.js","../node_modules/react-bootstrap/esm/CarouselItem.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/Carousel.js","impl/components/body/personal/about/PersonalAboutMeCarouselItem.tsx","impl/components/body/personal/about/PersonalAboutMePhotoCarousel.tsx","impl/components/body/personal/about/PersonalAboutMeCard.tsx","impl/components/body/PersonalBody.tsx","impl/components/AppPersonal.tsx","webpack://sverg84.github.io/./src/impl/styles/nav/navbar.module.scss?5af6","webpack://sverg84.github.io/./src/impl/styles/nav/colorPicker.module.scss?f351","impl/components/nav/PageNavColorPicker.tsx","impl/components/nav/PageNavBar.tsx","impl/components/Page.tsx","webpack://sverg84.github.io/./src/impl/styles/pageBody.module.scss?5416","impl/components/body/PageBody.tsx","impl/components/body/about/AboutMeCardLazyImage.tsx","impl/components/body/about/AboutMeCardBodyContainer.tsx","impl/components/buttons/ExternalLinkButton.tsx","impl/consts/MyName.ts","impl/contexts/ColorContext.ts","impl/hooks/useBackgroundColorStyle.ts","impl/hooks/useColorStyle.ts","impl/hooks/useHover.ts","impl/hooks/useTextColorForCustomBackground.ts","impl/utils/lazyWithPreload.ts","../node_modules/@fortawesome/free-brands-svg-icons/faDiscord.js","../node_modules/@fortawesome/free-brands-svg-icons/faSteam.js","webpack://sverg84.github.io/./src/impl/styles/body/about/aboutMeCardBody.module.scss?747a","webpack://sverg84.github.io/./src/impl/styles/body/about/footer.module.scss?b32c","webpack://sverg84.github.io/./src/impl/styles/body/buttons/linkButton.module.scss?4ee4","webpack://sverg84.github.io/./src/impl/styles/pageMargin.module.scss?e8bc"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"background\":\"background_background__jno86\",\"stars\":\"background_stars__SBhqV\",\"animStar\":\"background_animStar__vPf6G\",\"stars2\":\"background_stars2__qibmf\",\"stars3\":\"background_stars3__sA9u9\"};","import * as React from 'react';\n\nimport ColorContext from '../../../contexts/ColorContext';\nimport styles from '../../../styles/body/personal/background.module.scss';\n\ntype StarsProps = Readonly<{\n\tclassName: string;\n\tnumStars: number;\n}>;\n\nconst STARS: ReadonlyArray = [\n\t{className: styles.stars, numStars: 700},\n\t{className: styles.stars2, numStars: 200},\n\t{className: styles.stars3, numStars: 100},\n];\n\nfunction Stars({className, numStars}: StarsProps): React.JSX.Element {\n\tconst {color} = React.useContext(ColorContext);\n\n\tconst boxShadow = React.useMemo(() => {\n\t\tconst rand = () => Math.floor(Math.random() * 2000 + 1);\n\t\tconst calc = () => `${rand()}px ${rand()}px ${color}`;\n\n\t\tlet shadow = calc();\n\n\t\tfor (let i = 2; i <= numStars; i++) {\n\t\t\tshadow = `${shadow}, ${calc()}`;\n\t\t}\n\n\t\treturn shadow;\n\t}, [color, numStars]);\n\n\treturn
;\n}\n\nexport default function PersonalBackground(): React.JSX.Element {\n\treturn (\n\t\t
\n\t\t\t{STARS.map(props => (\n\t\t\t\t\n\t\t\t))}\n\t\t
\n\t);\n}\n","import { brands } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport * as React from 'react';\n\nimport styles from '../../styles/body/buttons/linkButton.module.scss';\nimport ExternalLinkButton from './ExternalLinkButton';\n\nexport default function DiscordButton(): React.JSX.Element {\n\treturn (\n\t\t\n\t);\n}\n","import { brands } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport * as React from 'react';\n\nimport styles from '../../styles/body/buttons/linkButton.module.scss';\nimport ExternalLinkButton from './ExternalLinkButton';\n\nexport default function SteamButton(): React.JSX.Element {\n\treturn (\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/esm/Card';\nimport Container from 'react-bootstrap/esm/Container';\n\nimport styles from '../../../../styles/body/about/footer.module.scss';\nimport DiscordButton from '../../../buttons/DiscordButton';\nimport SteamButton from '../../../buttons/SteamButton';\n\nexport default function PersonalAboutMeCardFooter(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"header_header__dljDF\",\"wavy\":\"header_wavy__GVntJ\"};","import * as React from 'react';\nimport CardHeader from 'react-bootstrap/esm/CardHeader';\n\nimport useBackgroundColorStyle from '../../../../hooks/useBackgroundColorStyle';\nimport useColorStyle from '../../../../hooks/useColorStyle';\nimport styles from '../../../../styles/body/personal/about/header.module.scss';\n\nconst HALF_OPACITY = '88';\nconst HEADER_LABEL = 'Oh, Hello!';\n\nexport default function PersonalAboutMeCardHeader(): React.JSX.Element {\n\tconst color = useColorStyle();\n\tconst bg = useBackgroundColorStyle(HALF_OPACITY);\n\n\treturn (\n\t\t\n\t\t\t{HEADER_LABEL.split('').map((character, index, label) => (\n\t\t\t\t 0 ? label[index - 1] : '')}>\n\t\t\t\t\t{character}\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n}\n","import { useEffect, useRef } from 'react';\n\n/**\n * Runs an effect only when the dependencies have changed, skipping the\n * initial \"on mount\" run. Caution, if the dependency list never changes,\n * the effect is **never run**\n *\n * ```ts\n * const ref = useRef(null);\n *\n * // focuses an element only if the focus changes, and not on mount\n * useUpdateEffect(() => {\n * const element = ref.current?.children[focusedIdx] as HTMLElement\n *\n * element?.focus()\n *\n * }, [focusedIndex])\n * ```\n * @param effect An effect to run on mount\n *\n * @category effects\n */\nfunction useUpdateEffect(fn, deps) {\n const isFirst = useRef(true);\n useEffect(() => {\n if (isFirst.current) {\n isFirst.current = false;\n return;\n }\n return fn();\n }, deps);\n}\nexport default useUpdateEffect;","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('carousel-caption');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CarouselItem = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n className,\n ...props\n}, ref) => {\n const finalClassName = classNames(className, useBootstrapPrefix(bsPrefix, 'carousel-item'));\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: finalClassName\n });\n});\nCarouselItem.displayName = 'CarouselItem';\nexport default CarouselItem;","import * as React from 'react';\n\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\nfunction map(children, func) {\n let index = 0;\n return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\nfunction forEach(children, func) {\n let index = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\nfunction hasChildOfType(children, type) {\n return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\nexport { map, forEach, hasChildOfType };","import useEventCallback from '@restart/hooks/useEventCallback';\nimport useUpdateEffect from '@restart/hooks/useUpdateEffect';\nimport useCommittedRef from '@restart/hooks/useCommittedRef';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport Anchor from '@restart/ui/Anchor';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport CarouselCaption from './CarouselCaption';\nimport CarouselItem from './CarouselItem';\nimport { map, forEach } from './ElementChildren';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport transitionEndListener from './transitionEndListener';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nconst SWIPE_THRESHOLD = 40;\nfunction isVisible(element) {\n if (!element || !element.style || !element.parentNode || !element.parentNode.style) {\n return false;\n }\n const elementStyle = getComputedStyle(element);\n return elementStyle.display !== 'none' && elementStyle.visibility !== 'hidden' && getComputedStyle(element.parentNode).display !== 'none';\n}\nconst Carousel = /*#__PURE__*/React.forwardRef(({\n defaultActiveIndex = 0,\n ...uncontrolledProps\n}, ref) => {\n const {\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n slide = true,\n fade = false,\n controls = true,\n indicators = true,\n indicatorLabels = [],\n activeIndex,\n onSelect,\n onSlide,\n onSlid,\n interval = 5000,\n keyboard = true,\n onKeyDown,\n pause = 'hover',\n onMouseOver,\n onMouseOut,\n wrap = true,\n touch = true,\n onTouchStart,\n onTouchMove,\n onTouchEnd,\n prevIcon = /*#__PURE__*/_jsx(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"carousel-control-prev-icon\"\n }),\n prevLabel = 'Previous',\n nextIcon = /*#__PURE__*/_jsx(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"carousel-control-next-icon\"\n }),\n nextLabel = 'Next',\n variant,\n className,\n children,\n ...props\n } = useUncontrolled({\n defaultActiveIndex,\n ...uncontrolledProps\n }, {\n activeIndex: 'onSelect'\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'carousel');\n const isRTL = useIsRTL();\n const nextDirectionRef = useRef(null);\n const [direction, setDirection] = useState('next');\n const [paused, setPaused] = useState(false);\n const [isSliding, setIsSliding] = useState(false);\n const [renderedActiveIndex, setRenderedActiveIndex] = useState(activeIndex || 0);\n useEffect(() => {\n if (!isSliding && activeIndex !== renderedActiveIndex) {\n if (nextDirectionRef.current) {\n setDirection(nextDirectionRef.current);\n } else {\n setDirection((activeIndex || 0) > renderedActiveIndex ? 'next' : 'prev');\n }\n if (slide) {\n setIsSliding(true);\n }\n setRenderedActiveIndex(activeIndex || 0);\n }\n }, [activeIndex, isSliding, renderedActiveIndex, slide]);\n useEffect(() => {\n if (nextDirectionRef.current) {\n nextDirectionRef.current = null;\n }\n });\n let numChildren = 0;\n let activeChildInterval;\n\n // Iterate to grab all of the children's interval values\n // (and count them, too)\n forEach(children, (child, index) => {\n ++numChildren;\n if (index === activeIndex) {\n activeChildInterval = child.props.interval;\n }\n });\n const activeChildIntervalRef = useCommittedRef(activeChildInterval);\n const prev = useCallback(event => {\n if (isSliding) {\n return;\n }\n let nextActiveIndex = renderedActiveIndex - 1;\n if (nextActiveIndex < 0) {\n if (!wrap) {\n return;\n }\n nextActiveIndex = numChildren - 1;\n }\n nextDirectionRef.current = 'prev';\n onSelect == null ? void 0 : onSelect(nextActiveIndex, event);\n }, [isSliding, renderedActiveIndex, onSelect, wrap, numChildren]);\n\n // This is used in the setInterval, so it should not invalidate.\n const next = useEventCallback(event => {\n if (isSliding) {\n return;\n }\n let nextActiveIndex = renderedActiveIndex + 1;\n if (nextActiveIndex >= numChildren) {\n if (!wrap) {\n return;\n }\n nextActiveIndex = 0;\n }\n nextDirectionRef.current = 'next';\n onSelect == null ? void 0 : onSelect(nextActiveIndex, event);\n });\n const elementRef = useRef();\n useImperativeHandle(ref, () => ({\n element: elementRef.current,\n prev,\n next\n }));\n\n // This is used in the setInterval, so it should not invalidate.\n const nextWhenVisible = useEventCallback(() => {\n if (!document.hidden && isVisible(elementRef.current)) {\n if (isRTL) {\n prev();\n } else {\n next();\n }\n }\n });\n const slideDirection = direction === 'next' ? 'start' : 'end';\n useUpdateEffect(() => {\n if (slide) {\n // These callbacks will be handled by the callbacks.\n return;\n }\n onSlide == null ? void 0 : onSlide(renderedActiveIndex, slideDirection);\n onSlid == null ? void 0 : onSlid(renderedActiveIndex, slideDirection);\n }, [renderedActiveIndex]);\n const orderClassName = `${prefix}-item-${direction}`;\n const directionalClassName = `${prefix}-item-${slideDirection}`;\n const handleEnter = useCallback(node => {\n triggerBrowserReflow(node);\n onSlide == null ? void 0 : onSlide(renderedActiveIndex, slideDirection);\n }, [onSlide, renderedActiveIndex, slideDirection]);\n const handleEntered = useCallback(() => {\n setIsSliding(false);\n onSlid == null ? void 0 : onSlid(renderedActiveIndex, slideDirection);\n }, [onSlid, renderedActiveIndex, slideDirection]);\n const handleKeyDown = useCallback(event => {\n if (keyboard && !/input|textarea/i.test(event.target.tagName)) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n if (isRTL) {\n next(event);\n } else {\n prev(event);\n }\n return;\n case 'ArrowRight':\n event.preventDefault();\n if (isRTL) {\n prev(event);\n } else {\n next(event);\n }\n return;\n default:\n }\n }\n onKeyDown == null ? void 0 : onKeyDown(event);\n }, [keyboard, onKeyDown, prev, next, isRTL]);\n const handleMouseOver = useCallback(event => {\n if (pause === 'hover') {\n setPaused(true);\n }\n onMouseOver == null ? void 0 : onMouseOver(event);\n }, [pause, onMouseOver]);\n const handleMouseOut = useCallback(event => {\n setPaused(false);\n onMouseOut == null ? void 0 : onMouseOut(event);\n }, [onMouseOut]);\n const touchStartXRef = useRef(0);\n const touchDeltaXRef = useRef(0);\n const touchUnpauseTimeout = useTimeout();\n const handleTouchStart = useCallback(event => {\n touchStartXRef.current = event.touches[0].clientX;\n touchDeltaXRef.current = 0;\n if (pause === 'hover') {\n setPaused(true);\n }\n onTouchStart == null ? void 0 : onTouchStart(event);\n }, [pause, onTouchStart]);\n const handleTouchMove = useCallback(event => {\n if (event.touches && event.touches.length > 1) {\n touchDeltaXRef.current = 0;\n } else {\n touchDeltaXRef.current = event.touches[0].clientX - touchStartXRef.current;\n }\n onTouchMove == null ? void 0 : onTouchMove(event);\n }, [onTouchMove]);\n const handleTouchEnd = useCallback(event => {\n if (touch) {\n const touchDeltaX = touchDeltaXRef.current;\n if (Math.abs(touchDeltaX) > SWIPE_THRESHOLD) {\n if (touchDeltaX > 0) {\n prev(event);\n } else {\n next(event);\n }\n }\n }\n if (pause === 'hover') {\n touchUnpauseTimeout.set(() => {\n setPaused(false);\n }, interval || undefined);\n }\n onTouchEnd == null ? void 0 : onTouchEnd(event);\n }, [touch, pause, prev, next, touchUnpauseTimeout, interval, onTouchEnd]);\n const shouldPlay = interval != null && !paused && !isSliding;\n const intervalHandleRef = useRef();\n useEffect(() => {\n var _ref, _activeChildIntervalR;\n if (!shouldPlay) {\n return undefined;\n }\n const nextFunc = isRTL ? prev : next;\n intervalHandleRef.current = window.setInterval(document.visibilityState ? nextWhenVisible : nextFunc, (_ref = (_activeChildIntervalR = activeChildIntervalRef.current) != null ? _activeChildIntervalR : interval) != null ? _ref : undefined);\n return () => {\n if (intervalHandleRef.current !== null) {\n clearInterval(intervalHandleRef.current);\n }\n };\n }, [shouldPlay, prev, next, activeChildIntervalRef, interval, nextWhenVisible, isRTL]);\n const indicatorOnClicks = useMemo(() => indicators && Array.from({\n length: numChildren\n }, (_, index) => event => {\n onSelect == null ? void 0 : onSelect(index, event);\n }), [indicators, numChildren, onSelect]);\n return /*#__PURE__*/_jsxs(Component, {\n ref: elementRef,\n ...props,\n onKeyDown: handleKeyDown,\n onMouseOver: handleMouseOver,\n onMouseOut: handleMouseOut,\n onTouchStart: handleTouchStart,\n onTouchMove: handleTouchMove,\n onTouchEnd: handleTouchEnd,\n className: classNames(className, prefix, slide && 'slide', fade && `${prefix}-fade`, variant && `${prefix}-${variant}`),\n children: [indicators && /*#__PURE__*/_jsx(\"div\", {\n className: `${prefix}-indicators`,\n children: map(children, (_, index) => /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n \"data-bs-target\": \"\" // Bootstrap requires this in their css.\n ,\n \"aria-label\": indicatorLabels != null && indicatorLabels.length ? indicatorLabels[index] : `Slide ${index + 1}`,\n className: index === renderedActiveIndex ? 'active' : undefined,\n onClick: indicatorOnClicks ? indicatorOnClicks[index] : undefined,\n \"aria-current\": index === renderedActiveIndex\n }, index))\n }), /*#__PURE__*/_jsx(\"div\", {\n className: `${prefix}-inner`,\n children: map(children, (child, index) => {\n const isActive = index === renderedActiveIndex;\n return slide ? /*#__PURE__*/_jsx(TransitionWrapper, {\n in: isActive,\n onEnter: isActive ? handleEnter : undefined,\n onEntered: isActive ? handleEntered : undefined,\n addEndListener: transitionEndListener,\n children: (status, innerProps) => /*#__PURE__*/React.cloneElement(child, {\n ...innerProps,\n className: classNames(child.props.className, isActive && status !== 'entered' && orderClassName, (status === 'entered' || status === 'exiting') && 'active', (status === 'entering' || status === 'exiting') && directionalClassName)\n })\n }) : /*#__PURE__*/React.cloneElement(child, {\n className: classNames(child.props.className, isActive && 'active')\n });\n })\n }), controls && /*#__PURE__*/_jsxs(_Fragment, {\n children: [(wrap || activeIndex !== 0) && /*#__PURE__*/_jsxs(Anchor, {\n className: `${prefix}-control-prev`,\n onClick: prev,\n children: [prevIcon, prevLabel && /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: prevLabel\n })]\n }), (wrap || activeIndex !== numChildren - 1) && /*#__PURE__*/_jsxs(Anchor, {\n className: `${prefix}-control-next`,\n onClick: next,\n children: [nextIcon, nextLabel && /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: nextLabel\n })]\n })]\n })]\n });\n});\nCarousel.displayName = 'Carousel';\nexport default Object.assign(Carousel, {\n Caption: CarouselCaption,\n Item: CarouselItem\n});","import * as React from 'react';\nimport Card from 'react-bootstrap/esm/Card';\n\nimport AboutMeCardBodyContainer from '../../about/AboutMeCardBodyContainer';\n\ntype Props = Readonly<{\n\tsrc: string;\n}>;\n\nexport default function PersonalAboutMeCarouselItem({\n\tsrc,\n}: Props): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\tBlep\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Carousel from 'react-bootstrap/esm/Carousel';\n\nimport PersonalAboutMeCarouselItem from './PersonalAboutMeCarouselItem';\n\nconst IMAGES = ['/portrait-mode.jpg', '/pinksuit.jpeg', '/dokidoki.jpeg'];\n\nexport default function PersonalAboutMePhotoCarousel(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t{IMAGES.map(img => (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/esm/Card';\n\nimport PersonalAboutMeCardFooter from './PersonalAboutMeCardFooter';\nimport PersonalAboutMeCardHeader from './PersonalAboutMeCardHeader';\nimport PersonalAboutMePhotoCarousel from './PersonalAboutMePhotoCarousel';\n\nexport default function PersonalAboutMeCard(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport PageBody from './PageBody';\nimport PersonalAboutMeCard from './personal/about/PersonalAboutMeCard';\n\nexport default function PersonalBody(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport PersonalBackground from './body/personal/PersonalBackground';\nimport PersonalBody from './body/PersonalBody';\nimport Page from './Page';\n\nexport function Component(): React.JSX.Element {\n\treturn (\n\t\t}>\n\t\t\t\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"brand\":\"navbar_brand__zDvLc\",\"navbar\":\"navbar_navbar__pEuvw\",\"rightContent\":\"navbar_rightContent__ikOZ0\"};","// extracted by mini-css-extract-plugin\nexport default {\"fallback\":\"colorPicker_fallback__pvhTA\"};","import { solid } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport NavDropdown from 'react-bootstrap/esm/NavDropdown';\nimport Spinner from 'react-bootstrap/Spinner';\n\nimport styles from '../../styles/nav/colorPicker.module.scss';\nimport lazyWithPreload from '../../utils/lazyWithPreload.ts';\n\nconst PageNavColorPickerMenu = lazyWithPreload(() =>\n\timport('./PageNavColorPickerMenu.tsx'),\n);\n\nexport default function PageNavColorPicker(): React.JSX.Element {\n\tconst onMouseEnter = () => {\n\t\tPageNavColorPickerMenu.preload();\n\t};\n\n\treturn (\n\t\t\n\t\t\t}\n\t\t\tonMouseEnter={onMouseEnter}>\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t}>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport Container from 'react-bootstrap/Container';\nimport Col from 'react-bootstrap/esm/Col';\nimport Navbar from 'react-bootstrap/Navbar';\nimport {Link} from 'react-router-dom';\n\nimport MyName from '../../consts/MyName.ts';\nimport useBackgroundColorStyle from '../../hooks/useBackgroundColorStyle.ts';\nimport navStyles from '../../styles/nav/navbar.module.scss';\nimport pageStyles from '../../styles/pageMargin.module.scss';\nimport PageNavColorPicker from './PageNavColorPicker.tsx';\n\ntype Props = Readonly<{\n\tbreadcrumbs?: React.JSX.Element | undefined;\n}>;\n\nexport default function PageNavBar({breadcrumbs}: Props): React.JSX.Element {\n\tconst style = useBackgroundColorStyle();\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{MyName}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{breadcrumbs}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport { useState } from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport PageNavBar from './nav/PageNavBar';\n\ntype Props = Readonly<{\n\tbackground: React.JSX.Element;\n\tbreadcrumbs?: React.JSX.Element;\n\tchildren: React.ReactNode;\n}>;\n\nexport default function Page({\n\tbackground,\n\tbreadcrumbs,\n\tchildren,\n}: Props): React.JSX.Element {\n\tconst [hex, setHex] = useState('#2e3134');\n\n\treturn (\n\t\t\n\t\t\t{background}\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"body\":\"pageBody_body__aNOKo\"};","import classNames from 'classnames';\nimport * as React from 'react';\n\nimport pageBodyStyles from '../../styles/pageBody.module.scss';\nimport pageStyles from '../../styles/pageMargin.module.scss';\n\ntype Props = Readonly<{\n\tchildren: React.ReactNode;\n}>;\n\nexport default function PageBody({children}: Props): React.JSX.Element {\n\treturn (\n\t\t
\n\t\t\t{children}\n\t\t
\n\t);\n}\n","import * as React from 'react';\nimport Placeholder from 'react-bootstrap/esm/Placeholder';\n\nimport styles from '../../../styles/body/about/aboutMeCardBody.module.scss';\nimport type { Props as ImageProps } from '../about/AboutMeCardImage';\n\nconst AboutMeCardImage = React.lazy(\n\tasync () => await import('../about/AboutMeCardImage'),\n);\n\nexport default function AboutMeCardLazyImage(\n\tprops: ImageProps,\n): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t}>\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/Card';\nimport Col from 'react-bootstrap/Col';\nimport Container from 'react-bootstrap/Container';\nimport Row from 'react-bootstrap/Row';\n\nimport styles from '../../../styles/body/about/aboutMeCardBody.module.scss';\nimport type { Props as ImageProps } from './AboutMeCardImage';\nimport AboutMeCardLazyImage from './AboutMeCardLazyImage';\n\ntype Props = Readonly<{\n\tchildren: React.JSX.Element;\n}> &\n\tImageProps;\n\nexport default function AboutMeCardBodyContainer({\n\tchildren,\n\t...imageProps\n}: Props): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{children}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport Button from 'react-bootstrap/Button';\n\nimport useHover from '../../hooks/useHover';\n\ntype Props = Readonly<{\n\tclassName?: string;\n\thref: string;\n\ticon: IconProp;\n}>;\n\nexport default function ExternalLinkButton({\n\tclassName,\n\thref,\n\ticon,\n}: Props): React.JSX.Element {\n\tconst {isHovering: _isHovering, ...mouseEvents} = useHover();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","const MyName: string = \"Stephen Vergara\";\n\nexport default MyName;\n","import { createContext } from 'react';\n\ntype ContextType = Readonly<{\n\tcolor: string;\n\tsetColor: React.Dispatch>;\n}>;\n\nexport default createContext({\n\tcolor: '#2e3134',\n\tsetColor: () => {},\n});\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport useTextColorForCustomBackground from './useTextColorForCustomBackground';\n\nexport default function useBackgroundColorStyle(\n\talpha: string = '',\n): React.CSSProperties {\n\tconst {color} = React.useContext(ColorContext);\n\tconst textColor = useTextColorForCustomBackground();\n\n\treturn {backgroundColor: `${color}${alpha}`, color: textColor};\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nexport default function useColorStyle(): React.CSSProperties {\n const {color} = React.useContext(ColorContext);\n\n return {color};\n}","import * as React from 'react';\n\ntype ReturnType = Readonly<{\n\tisHovering: boolean;\n\tonMouseEnter: () => void;\n\tonMouseLeave: () => void;\n}>;\n\nexport default function useHover(): ReturnType {\n\tconst [isHovering, setIsHovering] = React.useState(false);\n\n\tconst onMouseEnter = () => {\n\t\tsetIsHovering(true);\n\t};\n\n\tconst onMouseLeave = () => {\n\t\tsetIsHovering(false);\n\t};\n\n\treturn {isHovering, onMouseEnter, onMouseLeave};\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nexport default function useTextColorForCustomBackground(): string {\n\tconst {color} = React.useContext(ColorContext);\n\n\treturn React.useMemo(() => {\n\t\tconst getChunksFromString = (st: string, chunkSize: number) =>\n\t\t\tst.match(new RegExp(`.{${chunkSize}}`, 'g'));\n\n\t\tconst convertHexUnitTo256 = (hexStr: string) =>\n\t\t\tparseInt(hexStr.repeat(2 / hexStr.length), 16);\n\n\t\tconst chunkSize = Math.floor((color.length - 1) / 3);\n\t\tconst hexArr = getChunksFromString(color.slice(1), chunkSize);\n\n\t\tconst rgb = hexArr?.map(convertHexUnitTo256);\n\n\t\tconst brightness = Math.round(\n\t\t\t((rgb?.at(0) ?? 0) * 299 +\n\t\t\t\t(rgb?.at(1) ?? 0) * 587 +\n\t\t\t\t(rgb?.at(2) ?? 0) * 114) /\n\t\t\t\t1000,\n\t\t);\n\n\t\treturn brightness > 125 ? 'black' : 'white';\n\t}, [color]);\n}\n","import * as React from 'react';\n\ninterface PreloadedExoticComponent>\n\textends React.LazyExoticComponent {\n\tpreload: () => {};\n}\n\nexport default function lazyWithPreload>(\n\tfactory: () => Promise<{\n\t\tdefault: T;\n\t}>,\n): PreloadedExoticComponent {\n\treturn Object.assign(React.lazy(factory), {preload: factory});\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'discord';\nvar width = 640;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f392';\nvar svgPathData = 'M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faDiscord = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'steam';\nvar width = 496;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f1b6';\nvar svgPathData = 'M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faSteam = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","// extracted by mini-css-extract-plugin\nexport default {\"body\":\"aboutMeCardBody_body__px0Z-\",\"base\":\"aboutMeCardBody_base__HWSO5\",\"image\":\"aboutMeCardBody_image__r0pwR\",\"glimmer\":\"aboutMeCardBody_glimmer__ztngv\",\"imageColumn\":\"aboutMeCardBody_imageColumn__Decwz\"};","// extracted by mini-css-extract-plugin\nexport default {\"buttons\":\"footer_buttons__X-wEA\",\"resume\":\"footer_resume__j2AKe\"};","// extracted by mini-css-extract-plugin\nexport default {\"github\":\"linkButton_github__ltM-y\",\"linkedin\":\"linkButton_linkedin__MRpaF\",\"steam\":\"linkButton_steam__qizUa\",\"discord\":\"linkButton_discord__zToU1\"};","// extracted by mini-css-extract-plugin\nexport default {\"page\":\"pageMargin_page__oYkHI\"};"],"names":["STARS","className","styles","stars","numStars","stars2","stars3","Stars","_ref","color","React","ColorContext","boxShadow","rand","Math","floor","random","calc","concat","shadow","i","_jsx","style","PersonalBackground","background","children","map","props","_createElement","key","DiscordButton","ExternalLinkButton","discord","href","icon","_faDiscord","SteamButton","steam","_faSteam","PersonalAboutMeCardFooter","Card","Footer","_jsxs","Container","buttons","HALF_OPACITY","HEADER_LABEL","PersonalAboutMeCardHeader","useColorStyle","bg","useBackgroundColorStyle","CardHeader","as","header","split","character","index","label","fn","deps","isFirst","useRef","useEffect","current","createWithBsPrefix","CarouselItem","ref","Component","bsPrefix","finalClassName","classNames","useBootstrapPrefix","displayName","func","child","Carousel","_ref2","defaultActiveIndex","uncontrolledProps","slide","fade","controls","indicators","indicatorLabels","activeIndex","onSelect","onSlide","onSlid","interval","keyboard","onKeyDown","pause","onMouseOver","onMouseOut","wrap","touch","onTouchStart","onTouchMove","onTouchEnd","prevIcon","prevLabel","nextIcon","nextLabel","variant","useUncontrolled","prefix","isRTL","useIsRTL","nextDirectionRef","direction","setDirection","useState","paused","setPaused","isSliding","setIsSliding","renderedActiveIndex","setRenderedActiveIndex","activeChildInterval","numChildren","forEach","activeChildIntervalRef","useCommittedRef","prev","useCallback","event","nextActiveIndex","next","useEventCallback","elementRef","useImperativeHandle","element","nextWhenVisible","document","hidden","parentNode","elementStyle","getComputedStyle","display","visibility","isVisible","slideDirection","useUpdateEffect","orderClassName","directionalClassName","handleEnter","node","triggerBrowserReflow","handleEntered","handleKeyDown","test","target","tagName","preventDefault","handleMouseOver","handleMouseOut","touchStartXRef","touchDeltaXRef","touchUnpauseTimeout","useTimeout","handleTouchStart","touches","clientX","handleTouchMove","length","handleTouchEnd","touchDeltaX","abs","set","undefined","shouldPlay","intervalHandleRef","_activeChildIntervalR","nextFunc","window","setInterval","visibilityState","clearInterval","indicatorOnClicks","useMemo","Array","from","_","type","onClick","isActive","TransitionWrapper","in","onEnter","onEntered","addEndListener","transitionEndListener","status","innerProps","_Fragment","Anchor","Object","assign","Caption","CarouselCaption","Item","PersonalAboutMeCarouselItem","src","AboutMeCardBodyContainer","Text","IMAGES","PersonalAboutMePhotoCarousel","img","PersonalAboutMeCard","Body","PersonalBody","PageBody","Page","PageNavColorPickerMenu","lazyWithPreload","PageNavColorPicker","NavDropdown","align","renderMenuOnMount","title","FontAwesomeIcon","_faPalette","bounce","onMouseEnter","preload","fallback","Spinner","animation","PageNavBar","breadcrumbs","Navbar","expand","sticky","pageStyles","page","navStyles","navbar","Col","Link","brand","to","MyName","rightContent","hex","setHex","Provider","value","setColor","pageBodyStyles","body","AboutMeCardImage","async","AboutMeCardLazyImage","Placeholder","glimmer","imageProps","Row","xs","imageColumn","xl","isHovering","_isHovering","mouseEvents","useHover","Button","size","createContext","alpha","arguments","textColor","useTextColorForCustomBackground","backgroundColor","setIsHovering","onMouseLeave","_rgb$at","_rgb$at2","_rgb$at3","chunkSize","hexArr","getChunksFromString","st","match","RegExp","slice","rgb","hexStr","parseInt","repeat","round","at","factory","iconName","aliases","unicode","svgPathData","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/996.b42b4184.chunk.js b/static/js/996.fd524d3d.chunk.js similarity index 59% rename from static/js/996.b42b4184.chunk.js rename to static/js/996.fd524d3d.chunk.js index b5b12f2..da385ca 100644 --- a/static/js/996.b42b4184.chunk.js +++ b/static/js/996.fd524d3d.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunksverg84_github_io=self.webpackChunksverg84_github_io||[]).push([[996],{4996:(e,n,t)=>{t.r(n),t.d(n,{Component:()=>$});var r=t(2791),a=t(8025);const s={background:"background_background__jno86",stars:"background_stars__SBhqV",animStar:"background_animStar__vPf6G",stars2:"background_stars2__qibmf",stars3:"background_stars3__sA9u9"};var c=t(184);const o=[{className:s.stars,numStars:700},{className:s.stars2,numStars:200},{className:s.stars3,numStars:100}];function l(e){let{className:n,numStars:t}=e;const{color:s}=r.useContext(a.Z),o=r.useMemo((()=>{const e=()=>Math.floor(2e3*Math.random()+1),n=()=>"".concat(e(),"px ").concat(e(),"px ").concat(s);let r=n();for(let a=2;a<=t;a++)r="".concat(r,", ").concat(n());return r}),[s,t]);return(0,c.jsx)("div",{className:n,style:{boxShadow:o}})}function i(){return(0,c.jsx)("div",{className:s.background,children:o.map((e=>(0,r.createElement)(l,{...e,key:e.className})))})}var u=t(5364),d=t(8957),v=t(7022),m=t(775),h=t(280),x=t(5943),f=t(1791);function b(){return(0,c.jsx)(f.Z,{className:x.Z.discord,href:"https://discord.com/users/652354605497188370",icon:h.om})}var p=t(4018);function _(){return(0,c.jsx)(f.Z,{className:x.Z.steam,href:"https://steamcommunity.com/profiles/76561198060926980/",icon:p.vs})}function Z(){return(0,c.jsx)(d.Z.Footer,{children:(0,c.jsxs)(v.Z,{className:m.Z.buttons,children:[(0,c.jsx)(_,{}),(0,c.jsx)(b,{})]})})}var j=t(7469),g=t(7093),k=t(4769);const N={header:"header_header__dljDF",wavy:"header_wavy__GVntJ"},C="88",y="Oh, Hello!";function M(){const e=(0,k.Z)(),n=(0,g.Z)(C);return(0,c.jsx)(j.Z,{as:"h2",className:N.header,style:{...n,...e},children:y.split("").map(((e,n,t)=>(0,c.jsx)("span",{children:e},e+(n>0?t[n-1]:""))))})}var S=t(9007);const w=function(e,n){const t=(0,r.useRef)(!0);(0,r.useEffect)((()=>{if(!t.current)return e();t.current=!1}),n)};var E=t(7904),A=t(9726),B=t(6445),I=t(1694),z=t.n(I),R=t(8580);const D=(0,t(6543).Z)("carousel-caption");var O=t(162);const L=r.forwardRef(((e,n)=>{let{as:t="div",bsPrefix:r,className:a,...s}=e;const o=z()(a,(0,O.vE)(r,"carousel-item"));return(0,c.jsx)(t,{ref:n,...s,className:o})}));L.displayName="CarouselItem";const T=L;function F(e,n){let t=0;return r.Children.map(e,(e=>r.isValidElement(e)?n(e,t++):e))}var H=t(933),P=t(7202),V=t(5007);const q=r.forwardRef(((e,n)=>{let{defaultActiveIndex:t=0,...a}=e;const{as:s="div",bsPrefix:o,slide:l=!0,fade:i=!1,controls:u=!0,indicators:d=!0,indicatorLabels:v=[],activeIndex:m,onSelect:h,onSlide:x,onSlid:f,interval:b=5e3,keyboard:p=!0,onKeyDown:_,pause:Z="hover",onMouseOver:j,onMouseOut:g,wrap:k=!0,touch:N=!0,onTouchStart:C,onTouchMove:y,onTouchEnd:M,prevIcon:I=(0,c.jsx)("span",{"aria-hidden":"true",className:"carousel-control-prev-icon"}),prevLabel:D="Previous",nextIcon:L=(0,c.jsx)("span",{"aria-hidden":"true",className:"carousel-control-next-icon"}),nextLabel:T="Next",variant:q,className:G,children:K,...U}=(0,R.Ch)({defaultActiveIndex:t,...a},{activeIndex:"onSelect"}),X=(0,O.vE)(o,"carousel"),J=(0,O.SC)(),W=(0,r.useRef)(null),[Y,Q]=(0,r.useState)("next"),[$,ee]=(0,r.useState)(!1),[ne,te]=(0,r.useState)(!1),[re,ae]=(0,r.useState)(m||0);(0,r.useEffect)((()=>{ne||m===re||(W.current?Q(W.current):Q((m||0)>re?"next":"prev"),l&&te(!0),ae(m||0))}),[m,ne,re,l]),(0,r.useEffect)((()=>{W.current&&(W.current=null)}));let se,ce=0;!function(e,n){let t=0;r.Children.forEach(e,(e=>{r.isValidElement(e)&&n(e,t++)}))}(K,((e,n)=>{++ce,n===m&&(se=e.props.interval)}));const oe=(0,E.Z)(se),le=(0,r.useCallback)((e=>{if(ne)return;let n=re-1;if(n<0){if(!k)return;n=ce-1}W.current="prev",null==h||h(n,e)}),[ne,re,h,k,ce]),ie=(0,S.Z)((e=>{if(ne)return;let n=re+1;if(n>=ce){if(!k)return;n=0}W.current="next",null==h||h(n,e)})),ue=(0,r.useRef)();(0,r.useImperativeHandle)(n,(()=>({element:ue.current,prev:le,next:ie})));const de=(0,S.Z)((()=>{!document.hidden&&function(e){if(!e||!e.style||!e.parentNode||!e.parentNode.style)return!1;const n=getComputedStyle(e);return"none"!==n.display&&"hidden"!==n.visibility&&"none"!==getComputedStyle(e.parentNode).display}(ue.current)&&(J?le():ie())})),ve="next"===Y?"start":"end";w((()=>{l||(null==x||x(re,ve),null==f||f(re,ve))}),[re]);const me="".concat(X,"-item-").concat(Y),he="".concat(X,"-item-").concat(ve),xe=(0,r.useCallback)((e=>{(0,P.Z)(e),null==x||x(re,ve)}),[x,re,ve]),fe=(0,r.useCallback)((()=>{te(!1),null==f||f(re,ve)}),[f,re,ve]),be=(0,r.useCallback)((e=>{if(p&&!/input|textarea/i.test(e.target.tagName))switch(e.key){case"ArrowLeft":return e.preventDefault(),void(J?ie(e):le(e));case"ArrowRight":return e.preventDefault(),void(J?le(e):ie(e))}null==_||_(e)}),[p,_,le,ie,J]),pe=(0,r.useCallback)((e=>{"hover"===Z&&ee(!0),null==j||j(e)}),[Z,j]),_e=(0,r.useCallback)((e=>{ee(!1),null==g||g(e)}),[g]),Ze=(0,r.useRef)(0),je=(0,r.useRef)(0),ge=(0,A.Z)(),ke=(0,r.useCallback)((e=>{Ze.current=e.touches[0].clientX,je.current=0,"hover"===Z&&ee(!0),null==C||C(e)}),[Z,C]),Ne=(0,r.useCallback)((e=>{e.touches&&e.touches.length>1?je.current=0:je.current=e.touches[0].clientX-Ze.current,null==y||y(e)}),[y]),Ce=(0,r.useCallback)((e=>{if(N){const n=je.current;Math.abs(n)>40&&(n>0?le(e):ie(e))}"hover"===Z&&ge.set((()=>{ee(!1)}),b||void 0),null==M||M(e)}),[N,Z,le,ie,ge,b,M]),ye=null!=b&&!$&&!ne,Me=(0,r.useRef)();(0,r.useEffect)((()=>{var e,n;if(!ye)return;const t=J?le:ie;return Me.current=window.setInterval(document.visibilityState?de:t,null!=(e=null!=(n=oe.current)?n:b)?e:void 0),()=>{null!==Me.current&&clearInterval(Me.current)}}),[ye,le,ie,oe,b,de,J]);const Se=(0,r.useMemo)((()=>d&&Array.from({length:ce},((e,n)=>e=>{null==h||h(n,e)}))),[d,ce,h]);return(0,c.jsxs)(s,{ref:ue,...U,onKeyDown:be,onMouseOver:pe,onMouseOut:_e,onTouchStart:ke,onTouchMove:Ne,onTouchEnd:Ce,className:z()(G,X,l&&"slide",i&&"".concat(X,"-fade"),q&&"".concat(X,"-").concat(q)),children:[d&&(0,c.jsx)("div",{className:"".concat(X,"-indicators"),children:F(K,((e,n)=>(0,c.jsx)("button",{type:"button","data-bs-target":"","aria-label":null!=v&&v.length?v[n]:"Slide ".concat(n+1),className:n===re?"active":void 0,onClick:Se?Se[n]:void 0,"aria-current":n===re},n)))}),(0,c.jsx)("div",{className:"".concat(X,"-inner"),children:F(K,((e,n)=>{const t=n===re;return l?(0,c.jsx)(V.Z,{in:t,onEnter:t?xe:void 0,onEntered:t?fe:void 0,addEndListener:H.Z,children:(n,a)=>r.cloneElement(e,{...a,className:z()(e.props.className,t&&"entered"!==n&&me,("entered"===n||"exiting"===n)&&"active",("entering"===n||"exiting"===n)&&he)})}):r.cloneElement(e,{className:z()(e.props.className,t&&"active")})}))}),u&&(0,c.jsxs)(c.Fragment,{children:[(k||0!==m)&&(0,c.jsxs)(B.Z,{className:"".concat(X,"-control-prev"),onClick:le,children:[I,D&&(0,c.jsx)("span",{className:"visually-hidden",children:D})]}),(k||m!==ce-1)&&(0,c.jsxs)(B.Z,{className:"".concat(X,"-control-next"),onClick:ie,children:[L,T&&(0,c.jsx)("span",{className:"visually-hidden",children:T})]})]})]})}));q.displayName="Carousel";const G=Object.assign(q,{Caption:D,Item:T});var K=t(8188);function U(e){let{src:n}=e;return(0,c.jsx)(K.Z,{src:n,children:(0,c.jsx)(d.Z.Text,{children:"Blep"})})}const X=["/portrait-mode.jpg","/pinksuit.jpeg","/dokidoki.jpeg"];function J(){return(0,c.jsx)(G,{controls:!1,fade:!0,indicators:!1,interval:4e3,wrap:!0,children:X.map((e=>(0,c.jsx)(G.Item,{children:(0,c.jsx)(U,{src:e})},e)))})}function W(){return(0,c.jsxs)(d.Z,{children:[(0,c.jsx)(M,{}),(0,c.jsx)(d.Z.Body,{children:(0,c.jsx)(J,{})}),(0,c.jsx)(Z,{})]})}function Y(){return(0,c.jsx)(u.Z,{children:(0,c.jsx)(W,{})})}var Q=t(9430);function $(){return(0,c.jsx)(Q.Z,{background:(0,c.jsx)(i,{}),children:(0,c.jsx)(Y,{})})}},9430:(e,n,t)=>{t.d(n,{Z:()=>C});var r=t(2791),a=t(8025),s=t(1694),c=t.n(s),o=t(7022),l=t(2677),i=t(2251),u=t(1087),d=t(2982),v=t(7093);const m={brand:"navbar_brand__zDvLc",navbar:"navbar_navbar__pEuvw",rightContent:"navbar_rightContent__ikOZ0"};var h=t(5),x=t(5088),f=t(9806),b=t(192),p=t(4849);const _={fallback:"colorPicker_fallback__pvhTA"};var Z=t(9415),j=t(184);const g=(0,Z.Z)((()=>t.e(154).then(t.bind(t,1154))));function k(){return(0,j.jsx)(b.Z,{align:"end",className:_.icon,renderMenuOnMount:!1,title:(0,j.jsx)(f.G,{icon:x.q2,bounce:!0}),onMouseEnter:()=>{g.preload()},children:(0,j.jsx)(r.Suspense,{fallback:(0,j.jsx)("div",{className:_.fallback,children:(0,j.jsx)(p.Z,{animation:"border",variant:"secondary"})}),children:(0,j.jsx)(g,{})})})}function N(e){let{breadcrumbs:n}=e;const t=(0,v.Z)();return(0,j.jsx)(i.Z,{expand:!1,sticky:"top",style:t,children:(0,j.jsxs)(o.Z,{className:c()(h.Z.page,m.navbar),children:[(0,j.jsx)(l.Z,{children:(0,j.jsx)(u.rU,{className:m.brand,to:"/",children:d.Z})}),(0,j.jsxs)(l.Z,{className:m.rightContent,children:[n,(0,j.jsx)(k,{})]})]})})}function C(e){let{background:n,breadcrumbs:t,children:s}=e;const[c,o]=(0,r.useState)("#2e3134");return(0,j.jsxs)(a.Z.Provider,{value:{color:c,setColor:o},children:[n,(0,j.jsx)(N,{breadcrumbs:t}),s]})}},5364:(e,n,t)=>{t.d(n,{Z:()=>l});var r=t(1694),a=t.n(r);t(2791);const s={body:"pageBody_body__aNOKo"};var c=t(5),o=t(184);function l(e){let{children:n}=e;return(0,o.jsx)("div",{className:a()(c.Z.page,s.body),children:n})}},8188:(e,n,t)=>{t.d(n,{Z:()=>m});var r=t(2791),a=t(8957),s=t(2677),c=t(7022),o=t(9743),l=t(6638),i=t(5267),u=t(184);const d=r.lazy((async()=>await t.e(217).then(t.bind(t,1217))));function v(e){return(0,u.jsx)(r.Suspense,{fallback:(0,u.jsx)(i.Z,{animation:"wave",as:"div",bg:"secondary",className:l.Z.glimmer}),children:(0,u.jsx)(d,{...e})})}function m(e){let{children:n,...t}=e;return(0,u.jsx)(a.Z.Body,{children:(0,u.jsx)(c.Z,{children:(0,u.jsxs)(o.Z,{className:l.Z.body,xs:1,children:[(0,u.jsx)(s.Z,{className:l.Z.imageColumn,xl:4,children:(0,u.jsx)(v,{...t})}),(0,u.jsx)(s.Z,{xl:8,children:n})]})})})}},1791:(e,n,t)=>{t.d(n,{Z:()=>o});var r=t(9806),a=(t(2791),t(3360)),s=t(2381),c=t(184);function o(e){let{className:n,href:t,icon:o}=e;const{isHovering:l,...i}=(0,s.Z)();return(0,c.jsx)(a.Z,{className:n,href:t,target:"_blank",variant:"link",...i,children:(0,c.jsx)(r.G,{icon:o,size:"2xl"})})}},2982:(e,n,t)=>{t.d(n,{Z:()=>r});const r="Stephen Vergara"},8025:(e,n,t)=>{t.d(n,{Z:()=>r});const r=(0,t(2791).createContext)({color:"#2e3134",setColor:()=>{}})},7093:(e,n,t)=>{t.d(n,{Z:()=>c});var r=t(2791),a=t(8025),s=t(5791);function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const{color:n}=r.useContext(a.Z),t=(0,s.Z)();return{backgroundColor:"".concat(n).concat(e),color:t}}},4769:(e,n,t)=>{t.d(n,{Z:()=>s});var r=t(2791),a=t(8025);function s(){const{color:e}=r.useContext(a.Z);return{color:e}}},2381:(e,n,t)=>{t.d(n,{Z:()=>a});var r=t(2791);function a(){const[e,n]=r.useState(!1);return{isHovering:e,onMouseEnter:()=>{n(!0)},onMouseLeave:()=>{n(!1)}}}},5791:(e,n,t)=>{t.d(n,{Z:()=>s});var r=t(2791),a=t(8025);function s(){const{color:e}=r.useContext(a.Z);return r.useMemo((()=>{var n,t,r;const a=Math.floor((e.length-1)/3),s=((e,n)=>e.match(new RegExp(".{".concat(n,"}"),"g")))(e.slice(1),a),c=null===s||void 0===s?void 0:s.map((e=>parseInt(e.repeat(2/e.length),16)));return Math.round((299*(null!==(n=null===c||void 0===c?void 0:c.at(0))&&void 0!==n?n:0)+587*(null!==(t=null===c||void 0===c?void 0:c.at(1))&&void 0!==t?t:0)+114*(null!==(r=null===c||void 0===c?void 0:c.at(2))&&void 0!==r?r:0))/1e3)>125?"black":"white"}),[e])}},9415:(e,n,t)=>{t.d(n,{Z:()=>a});var r=t(2791);function a(e){return Object.assign(r.lazy(e),{preload:e})}},280:(e,n)=>{var t="discord",r=[],a="f392",s="M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z";n.DF={prefix:"fab",iconName:t,icon:[640,512,r,a,s]},n.om=n.DF},4018:(e,n)=>{var t="steam",r=[],a="f1b6",s="M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z";n.DF={prefix:"fab",iconName:t,icon:[496,512,r,a,s]},n.vs=n.DF},6638:(e,n,t)=>{t.d(n,{Z:()=>r});const r={body:"aboutMeCardBody_body__px0Z-",base:"aboutMeCardBody_base__HWSO5",image:"aboutMeCardBody_image__r0pwR",glimmer:"aboutMeCardBody_glimmer__ztngv",imageColumn:"aboutMeCardBody_imageColumn__Decwz"}},775:(e,n,t)=>{t.d(n,{Z:()=>r});const r={buttons:"footer_buttons__X-wEA",resume:"footer_resume__j2AKe"}},5943:(e,n,t)=>{t.d(n,{Z:()=>r});const r={github:"linkButton_github__ltM-y",linkedin:"linkButton_linkedin__MRpaF",steam:"linkButton_steam__qizUa",discord:"linkButton_discord__zToU1"}},5:(e,n,t)=>{t.d(n,{Z:()=>r});const r={page:"pageMargin_page__oYkHI"}}}]); -//# sourceMappingURL=996.b42b4184.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunksverg84_github_io=self.webpackChunksverg84_github_io||[]).push([[996],{4996:(e,n,t)=>{t.r(n),t.d(n,{Component:()=>$});var r=t(2791),a=t(8025);const s={background:"background_background__jno86",stars:"background_stars__SBhqV",animStar:"background_animStar__vPf6G",stars2:"background_stars2__qibmf",stars3:"background_stars3__sA9u9"};var c=t(184);const o=[{className:s.stars,numStars:700},{className:s.stars2,numStars:200},{className:s.stars3,numStars:100}];function l(e){let{className:n,numStars:t}=e;const{color:s}=r.useContext(a.Z),o=r.useMemo((()=>{const e=()=>Math.floor(2e3*Math.random()+1),n=()=>"".concat(e(),"px ").concat(e(),"px ").concat(s);let r=n();for(let a=2;a<=t;a++)r="".concat(r,", ").concat(n());return r}),[s,t]);return(0,c.jsx)("div",{className:n,style:{boxShadow:o}})}function i(){return(0,c.jsx)("div",{className:s.background,children:o.map((e=>(0,r.createElement)(l,{...e,key:e.className})))})}var u=t(5364),d=t(8957),m=t(7022),h=t(775),v=t(280),x=t(5943),f=t(1791);function b(){return(0,c.jsx)(f.Z,{className:x.Z.discord,href:"https://discord.com/users/652354605497188370",icon:v.om})}var p=t(4018);function _(){return(0,c.jsx)(f.Z,{className:x.Z.steam,href:"https://steamcommunity.com/profiles/76561198060926980/",icon:p.vs})}function Z(){return(0,c.jsx)(d.Z.Footer,{children:(0,c.jsxs)(m.Z,{className:h.Z.buttons,children:[(0,c.jsx)(_,{}),(0,c.jsx)(b,{})]})})}var j=t(7469),g=t(7093),k=t(4769);const N={header:"header_header__dljDF",wavy:"header_wavy__GVntJ"},C="88",y="Oh, Hello!";function M(){const e=(0,k.Z)(),n=(0,g.Z)(C);return(0,c.jsx)(j.Z,{as:"h2",className:N.header,style:{...n,...e},children:y.split("").map(((e,n,t)=>(0,c.jsx)("span",{children:e},e+(n>0?t[n-1]:""))))})}var S=t(9007);const w=function(e,n){const t=(0,r.useRef)(!0);(0,r.useEffect)((()=>{if(!t.current)return e();t.current=!1}),n)};var E=t(7904),A=t(9726),B=t(6445),I=t(1694),z=t.n(I),R=t(8580);const D=(0,t(6543).Z)("carousel-caption");var O=t(162);const L=r.forwardRef(((e,n)=>{let{as:t="div",bsPrefix:r,className:a,...s}=e;const o=z()(a,(0,O.vE)(r,"carousel-item"));return(0,c.jsx)(t,{ref:n,...s,className:o})}));L.displayName="CarouselItem";const T=L;function F(e,n){let t=0;return r.Children.map(e,(e=>r.isValidElement(e)?n(e,t++):e))}var H=t(933),P=t(7202),V=t(5007);const q=r.forwardRef(((e,n)=>{let{defaultActiveIndex:t=0,...a}=e;const{as:s="div",bsPrefix:o,slide:l=!0,fade:i=!1,controls:u=!0,indicators:d=!0,indicatorLabels:m=[],activeIndex:h,onSelect:v,onSlide:x,onSlid:f,interval:b=5e3,keyboard:p=!0,onKeyDown:_,pause:Z="hover",onMouseOver:j,onMouseOut:g,wrap:k=!0,touch:N=!0,onTouchStart:C,onTouchMove:y,onTouchEnd:M,prevIcon:I=(0,c.jsx)("span",{"aria-hidden":"true",className:"carousel-control-prev-icon"}),prevLabel:D="Previous",nextIcon:L=(0,c.jsx)("span",{"aria-hidden":"true",className:"carousel-control-next-icon"}),nextLabel:T="Next",variant:q,className:G,children:K,...U}=(0,R.Ch)({defaultActiveIndex:t,...a},{activeIndex:"onSelect"}),X=(0,O.vE)(o,"carousel"),J=(0,O.SC)(),W=(0,r.useRef)(null),[Y,Q]=(0,r.useState)("next"),[$,ee]=(0,r.useState)(!1),[ne,te]=(0,r.useState)(!1),[re,ae]=(0,r.useState)(h||0);(0,r.useEffect)((()=>{ne||h===re||(W.current?Q(W.current):Q((h||0)>re?"next":"prev"),l&&te(!0),ae(h||0))}),[h,ne,re,l]),(0,r.useEffect)((()=>{W.current&&(W.current=null)}));let se,ce=0;!function(e,n){let t=0;r.Children.forEach(e,(e=>{r.isValidElement(e)&&n(e,t++)}))}(K,((e,n)=>{++ce,n===h&&(se=e.props.interval)}));const oe=(0,E.Z)(se),le=(0,r.useCallback)((e=>{if(ne)return;let n=re-1;if(n<0){if(!k)return;n=ce-1}W.current="prev",null==v||v(n,e)}),[ne,re,v,k,ce]),ie=(0,S.Z)((e=>{if(ne)return;let n=re+1;if(n>=ce){if(!k)return;n=0}W.current="next",null==v||v(n,e)})),ue=(0,r.useRef)();(0,r.useImperativeHandle)(n,(()=>({element:ue.current,prev:le,next:ie})));const de=(0,S.Z)((()=>{!document.hidden&&function(e){if(!e||!e.style||!e.parentNode||!e.parentNode.style)return!1;const n=getComputedStyle(e);return"none"!==n.display&&"hidden"!==n.visibility&&"none"!==getComputedStyle(e.parentNode).display}(ue.current)&&(J?le():ie())})),me="next"===Y?"start":"end";w((()=>{l||(null==x||x(re,me),null==f||f(re,me))}),[re]);const he="".concat(X,"-item-").concat(Y),ve="".concat(X,"-item-").concat(me),xe=(0,r.useCallback)((e=>{(0,P.Z)(e),null==x||x(re,me)}),[x,re,me]),fe=(0,r.useCallback)((()=>{te(!1),null==f||f(re,me)}),[f,re,me]),be=(0,r.useCallback)((e=>{if(p&&!/input|textarea/i.test(e.target.tagName))switch(e.key){case"ArrowLeft":return e.preventDefault(),void(J?ie(e):le(e));case"ArrowRight":return e.preventDefault(),void(J?le(e):ie(e))}null==_||_(e)}),[p,_,le,ie,J]),pe=(0,r.useCallback)((e=>{"hover"===Z&&ee(!0),null==j||j(e)}),[Z,j]),_e=(0,r.useCallback)((e=>{ee(!1),null==g||g(e)}),[g]),Ze=(0,r.useRef)(0),je=(0,r.useRef)(0),ge=(0,A.Z)(),ke=(0,r.useCallback)((e=>{Ze.current=e.touches[0].clientX,je.current=0,"hover"===Z&&ee(!0),null==C||C(e)}),[Z,C]),Ne=(0,r.useCallback)((e=>{e.touches&&e.touches.length>1?je.current=0:je.current=e.touches[0].clientX-Ze.current,null==y||y(e)}),[y]),Ce=(0,r.useCallback)((e=>{if(N){const n=je.current;Math.abs(n)>40&&(n>0?le(e):ie(e))}"hover"===Z&&ge.set((()=>{ee(!1)}),b||void 0),null==M||M(e)}),[N,Z,le,ie,ge,b,M]),ye=null!=b&&!$&&!ne,Me=(0,r.useRef)();(0,r.useEffect)((()=>{var e,n;if(!ye)return;const t=J?le:ie;return Me.current=window.setInterval(document.visibilityState?de:t,null!=(e=null!=(n=oe.current)?n:b)?e:void 0),()=>{null!==Me.current&&clearInterval(Me.current)}}),[ye,le,ie,oe,b,de,J]);const Se=(0,r.useMemo)((()=>d&&Array.from({length:ce},((e,n)=>e=>{null==v||v(n,e)}))),[d,ce,v]);return(0,c.jsxs)(s,{ref:ue,...U,onKeyDown:be,onMouseOver:pe,onMouseOut:_e,onTouchStart:ke,onTouchMove:Ne,onTouchEnd:Ce,className:z()(G,X,l&&"slide",i&&"".concat(X,"-fade"),q&&"".concat(X,"-").concat(q)),children:[d&&(0,c.jsx)("div",{className:"".concat(X,"-indicators"),children:F(K,((e,n)=>(0,c.jsx)("button",{type:"button","data-bs-target":"","aria-label":null!=m&&m.length?m[n]:"Slide ".concat(n+1),className:n===re?"active":void 0,onClick:Se?Se[n]:void 0,"aria-current":n===re},n)))}),(0,c.jsx)("div",{className:"".concat(X,"-inner"),children:F(K,((e,n)=>{const t=n===re;return l?(0,c.jsx)(V.Z,{in:t,onEnter:t?xe:void 0,onEntered:t?fe:void 0,addEndListener:H.Z,children:(n,a)=>r.cloneElement(e,{...a,className:z()(e.props.className,t&&"entered"!==n&&he,("entered"===n||"exiting"===n)&&"active",("entering"===n||"exiting"===n)&&ve)})}):r.cloneElement(e,{className:z()(e.props.className,t&&"active")})}))}),u&&(0,c.jsxs)(c.Fragment,{children:[(k||0!==h)&&(0,c.jsxs)(B.Z,{className:"".concat(X,"-control-prev"),onClick:le,children:[I,D&&(0,c.jsx)("span",{className:"visually-hidden",children:D})]}),(k||h!==ce-1)&&(0,c.jsxs)(B.Z,{className:"".concat(X,"-control-next"),onClick:ie,children:[L,T&&(0,c.jsx)("span",{className:"visually-hidden",children:T})]})]})]})}));q.displayName="Carousel";const G=Object.assign(q,{Caption:D,Item:T});var K=t(8188);function U(e){let{src:n}=e;return(0,c.jsx)(K.Z,{src:n,children:(0,c.jsx)(d.Z.Text,{children:"Blep"})})}const X=["/portrait-mode.jpg","/pinksuit.jpeg","/dokidoki.jpeg"];function J(){return(0,c.jsx)(G,{controls:!1,fade:!0,indicators:!1,interval:4e3,wrap:!0,children:X.map((e=>(0,c.jsx)(G.Item,{children:(0,c.jsx)(U,{src:e})},e)))})}function W(){return(0,c.jsxs)(d.Z,{children:[(0,c.jsx)(M,{}),(0,c.jsx)(d.Z.Body,{children:(0,c.jsx)(J,{})}),(0,c.jsx)(Z,{})]})}function Y(){return(0,c.jsx)(u.Z,{children:(0,c.jsx)(W,{})})}var Q=t(9430);function $(){return(0,c.jsx)(Q.Z,{background:(0,c.jsx)(i,{}),children:(0,c.jsx)(Y,{})})}},9430:(e,n,t)=>{t.d(n,{Z:()=>C});var r=t(2791),a=t(8025),s=t(1694),c=t.n(s),o=t(7022),l=t(2677),i=t(2251),u=t(1087),d=t(2982),m=t(7093);const h={brand:"navbar_brand__zDvLc",navbar:"navbar_navbar__pEuvw",rightContent:"navbar_rightContent__ikOZ0"};var v=t(5),x=t(5088),f=t(9806),b=t(192),p=t(4849);const _={fallback:"colorPicker_fallback__pvhTA"};var Z=t(9415),j=t(184);const g=(0,Z.Z)((()=>t.e(154).then(t.bind(t,1154))));function k(){return(0,j.jsx)(b.Z,{align:"end",className:_.icon,renderMenuOnMount:!1,title:(0,j.jsx)(f.G,{icon:x.q2,bounce:!0}),onMouseEnter:()=>{g.preload()},children:(0,j.jsx)(r.Suspense,{fallback:(0,j.jsx)("div",{className:_.fallback,children:(0,j.jsx)(p.Z,{animation:"border",variant:"secondary"})}),children:(0,j.jsx)(g,{})})})}function N(e){let{breadcrumbs:n}=e;const t=(0,m.Z)();return(0,j.jsx)(i.Z,{expand:!1,sticky:"top",style:t,children:(0,j.jsxs)(o.Z,{className:c()(v.Z.page,h.navbar),children:[(0,j.jsx)(l.Z,{children:(0,j.jsx)(u.rU,{className:h.brand,to:"/",children:d.Z})}),(0,j.jsxs)(l.Z,{className:h.rightContent,children:[n,(0,j.jsx)(k,{})]})]})})}function C(e){let{background:n,breadcrumbs:t,children:s}=e;const[c,o]=(0,r.useState)("#2e3134");return(0,j.jsxs)(a.Z.Provider,{value:{color:c,setColor:o},children:[n,(0,j.jsx)(N,{breadcrumbs:t}),s]})}},5364:(e,n,t)=>{t.d(n,{Z:()=>l});var r=t(1694),a=t.n(r);t(2791);const s={body:"pageBody_body__aNOKo"};var c=t(5),o=t(184);function l(e){let{children:n}=e;return(0,o.jsx)("div",{className:a()(c.Z.page,s.body),children:n})}},8188:(e,n,t)=>{t.d(n,{Z:()=>h});var r=t(2791),a=t(8957),s=t(2677),c=t(7022),o=t(9743),l=t(6638),i=t(5267),u=t(184);const d=r.lazy((async()=>await t.e(217).then(t.bind(t,1217))));function m(e){return(0,u.jsx)(r.Suspense,{fallback:(0,u.jsx)(i.Z,{animation:"wave",as:"div",bg:"secondary",className:l.Z.glimmer}),children:(0,u.jsx)(d,{...e})})}function h(e){let{children:n,...t}=e;return(0,u.jsx)(a.Z.Body,{children:(0,u.jsx)(c.Z,{children:(0,u.jsxs)(o.Z,{className:l.Z.body,xs:1,children:[(0,u.jsx)(s.Z,{className:l.Z.imageColumn,xl:4,children:(0,u.jsx)(m,{...t})}),(0,u.jsx)(s.Z,{xl:8,children:n})]})})})}},1791:(e,n,t)=>{t.d(n,{Z:()=>o});var r=t(9806),a=(t(2791),t(3360)),s=t(2381),c=t(184);function o(e){let{className:n,href:t,icon:o}=e;const{isHovering:l,...i}=(0,s.Z)();return(0,c.jsx)(a.Z,{className:n,href:t,target:"_blank",variant:"link",...i,children:(0,c.jsx)(r.G,{icon:o,size:"2xl"})})}},2982:(e,n,t)=>{t.d(n,{Z:()=>r});const r="Stephen Vergara"},8025:(e,n,t)=>{t.d(n,{Z:()=>r});const r=(0,t(2791).createContext)({color:"#2e3134",setColor:()=>{}})},7093:(e,n,t)=>{t.d(n,{Z:()=>c});var r=t(2791),a=t(8025),s=t(5791);function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const{color:n}=r.useContext(a.Z),t=(0,s.Z)();return{backgroundColor:"".concat(n).concat(e),color:t}}},4769:(e,n,t)=>{t.d(n,{Z:()=>s});var r=t(2791),a=t(8025);function s(){const{color:e}=r.useContext(a.Z);return{color:e}}},2381:(e,n,t)=>{t.d(n,{Z:()=>a});var r=t(2791);function a(){const[e,n]=r.useState(!1);return{isHovering:e,onMouseEnter:()=>{n(!0)},onMouseLeave:()=>{n(!1)}}}},5791:(e,n,t)=>{t.d(n,{Z:()=>i});var r=t(2791),a=t(8025);const s=128,c=.299,o=.587,l=.114;function i(){const{color:e}=r.useContext(a.Z);return r.useMemo((()=>{const n=Math.floor((e.length-1)/3),t=((e,n)=>e.match(new RegExp(".{".concat(n,"}"),"g")))(e.slice(1),n),[r,a,i]=(null!==t&&void 0!==t?t:[]).map((e=>parseInt(e.repeat(2/e.length),16)));return Math.round((null!==r&&void 0!==r?r:0)*c+(null!==a&&void 0!==a?a:0)*o+(null!==i&&void 0!==i?i:0)*l)>s?"black":"white"}),[e])}},9415:(e,n,t)=>{t.d(n,{Z:()=>a});var r=t(2791);function a(e){return Object.assign(r.lazy(e),{preload:e})}},280:(e,n)=>{var t="discord",r=[],a="f392",s="M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z";n.DF={prefix:"fab",iconName:t,icon:[640,512,r,a,s]},n.om=n.DF},4018:(e,n)=>{var t="steam",r=[],a="f1b6",s="M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z";n.DF={prefix:"fab",iconName:t,icon:[496,512,r,a,s]},n.vs=n.DF},6638:(e,n,t)=>{t.d(n,{Z:()=>r});const r={body:"aboutMeCardBody_body__px0Z-",base:"aboutMeCardBody_base__HWSO5",image:"aboutMeCardBody_image__r0pwR",glimmer:"aboutMeCardBody_glimmer__ztngv",imageColumn:"aboutMeCardBody_imageColumn__Decwz"}},775:(e,n,t)=>{t.d(n,{Z:()=>r});const r={buttons:"footer_buttons__X-wEA",resume:"footer_resume__j2AKe"}},5943:(e,n,t)=>{t.d(n,{Z:()=>r});const r={github:"linkButton_github__ltM-y",linkedin:"linkButton_linkedin__MRpaF",steam:"linkButton_steam__qizUa",discord:"linkButton_discord__zToU1"}},5:(e,n,t)=>{t.d(n,{Z:()=>r});const r={page:"pageMargin_page__oYkHI"}}}]); +//# sourceMappingURL=996.fd524d3d.chunk.js.map \ No newline at end of file diff --git a/static/js/996.fd524d3d.chunk.js.map b/static/js/996.fd524d3d.chunk.js.map new file mode 100644 index 0000000..a808910 --- /dev/null +++ b/static/js/996.fd524d3d.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/996.fd524d3d.chunk.js","mappings":"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","sources":["webpack://sverg84.github.io/./src/impl/styles/body/personal/background.module.scss?368e","impl/components/body/personal/PersonalBackground.tsx","impl/components/buttons/DiscordButton.tsx","impl/components/buttons/SteamButton.tsx","impl/components/body/personal/about/PersonalAboutMeCardFooter.tsx","webpack://sverg84.github.io/./src/impl/styles/body/personal/about/header.module.scss?19f6","impl/components/body/personal/about/PersonalAboutMeCardHeader.tsx","../node_modules/@restart/hooks/esm/useUpdateEffect.js","../node_modules/react-bootstrap/esm/CarouselCaption.js","../node_modules/react-bootstrap/esm/CarouselItem.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/Carousel.js","impl/components/body/personal/about/PersonalAboutMeCarouselItem.tsx","impl/components/body/personal/about/PersonalAboutMePhotoCarousel.tsx","impl/components/body/personal/about/PersonalAboutMeCard.tsx","impl/components/body/PersonalBody.tsx","impl/components/AppPersonal.tsx","webpack://sverg84.github.io/./src/impl/styles/nav/navbar.module.scss?5af6","webpack://sverg84.github.io/./src/impl/styles/nav/colorPicker.module.scss?f351","impl/components/nav/PageNavColorPicker.tsx","impl/components/nav/PageNavBar.tsx","impl/components/Page.tsx","webpack://sverg84.github.io/./src/impl/styles/pageBody.module.scss?5416","impl/components/body/PageBody.tsx","impl/components/body/about/AboutMeCardLazyImage.tsx","impl/components/body/about/AboutMeCardBodyContainer.tsx","impl/components/buttons/ExternalLinkButton.tsx","impl/consts/MyName.ts","impl/contexts/ColorContext.ts","impl/hooks/useBackgroundColorStyle.ts","impl/hooks/useColorStyle.ts","impl/hooks/useHover.ts","impl/hooks/useTextColorForCustomBackground.ts","impl/utils/lazyWithPreload.ts","../node_modules/@fortawesome/free-brands-svg-icons/faDiscord.js","../node_modules/@fortawesome/free-brands-svg-icons/faSteam.js","webpack://sverg84.github.io/./src/impl/styles/body/about/aboutMeCardBody.module.scss?747a","webpack://sverg84.github.io/./src/impl/styles/body/about/footer.module.scss?b32c","webpack://sverg84.github.io/./src/impl/styles/body/buttons/linkButton.module.scss?4ee4","webpack://sverg84.github.io/./src/impl/styles/pageMargin.module.scss?e8bc"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"background\":\"background_background__jno86\",\"stars\":\"background_stars__SBhqV\",\"animStar\":\"background_animStar__vPf6G\",\"stars2\":\"background_stars2__qibmf\",\"stars3\":\"background_stars3__sA9u9\"};","import * as React from 'react';\n\nimport ColorContext from '../../../contexts/ColorContext';\nimport styles from '../../../styles/body/personal/background.module.scss';\n\ntype StarsProps = Readonly<{\n\tclassName: string;\n\tnumStars: number;\n}>;\n\nconst STARS: ReadonlyArray = [\n\t{className: styles.stars, numStars: 700},\n\t{className: styles.stars2, numStars: 200},\n\t{className: styles.stars3, numStars: 100},\n];\n\nfunction Stars({className, numStars}: StarsProps): React.JSX.Element {\n\tconst {color} = React.useContext(ColorContext);\n\n\tconst boxShadow = React.useMemo(() => {\n\t\tconst rand = () => Math.floor(Math.random() * 2000 + 1);\n\t\tconst calc = () => `${rand()}px ${rand()}px ${color}`;\n\n\t\tlet shadow = calc();\n\n\t\tfor (let i = 2; i <= numStars; i++) {\n\t\t\tshadow = `${shadow}, ${calc()}`;\n\t\t}\n\n\t\treturn shadow;\n\t}, [color, numStars]);\n\n\treturn
;\n}\n\nexport default function PersonalBackground(): React.JSX.Element {\n\treturn (\n\t\t
\n\t\t\t{STARS.map(props => (\n\t\t\t\t\n\t\t\t))}\n\t\t
\n\t);\n}\n","import { brands } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport * as React from 'react';\n\nimport styles from '../../styles/body/buttons/linkButton.module.scss';\nimport ExternalLinkButton from './ExternalLinkButton';\n\nexport default function DiscordButton(): React.JSX.Element {\n\treturn (\n\t\t\n\t);\n}\n","import { brands } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport * as React from 'react';\n\nimport styles from '../../styles/body/buttons/linkButton.module.scss';\nimport ExternalLinkButton from './ExternalLinkButton';\n\nexport default function SteamButton(): React.JSX.Element {\n\treturn (\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/esm/Card';\nimport Container from 'react-bootstrap/esm/Container';\n\nimport styles from '../../../../styles/body/about/footer.module.scss';\nimport DiscordButton from '../../../buttons/DiscordButton';\nimport SteamButton from '../../../buttons/SteamButton';\n\nexport default function PersonalAboutMeCardFooter(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"header_header__dljDF\",\"wavy\":\"header_wavy__GVntJ\"};","import * as React from 'react';\nimport CardHeader from 'react-bootstrap/esm/CardHeader';\n\nimport useBackgroundColorStyle from '../../../../hooks/useBackgroundColorStyle';\nimport useColorStyle from '../../../../hooks/useColorStyle';\nimport styles from '../../../../styles/body/personal/about/header.module.scss';\n\nconst HALF_OPACITY = '88';\nconst HEADER_LABEL = 'Oh, Hello!';\n\nexport default function PersonalAboutMeCardHeader(): React.JSX.Element {\n\tconst color = useColorStyle();\n\tconst bg = useBackgroundColorStyle(HALF_OPACITY);\n\n\treturn (\n\t\t\n\t\t\t{HEADER_LABEL.split('').map((character, index, label) => (\n\t\t\t\t 0 ? label[index - 1] : '')}>\n\t\t\t\t\t{character}\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n}\n","import { useEffect, useRef } from 'react';\n\n/**\n * Runs an effect only when the dependencies have changed, skipping the\n * initial \"on mount\" run. Caution, if the dependency list never changes,\n * the effect is **never run**\n *\n * ```ts\n * const ref = useRef(null);\n *\n * // focuses an element only if the focus changes, and not on mount\n * useUpdateEffect(() => {\n * const element = ref.current?.children[focusedIdx] as HTMLElement\n *\n * element?.focus()\n *\n * }, [focusedIndex])\n * ```\n * @param effect An effect to run on mount\n *\n * @category effects\n */\nfunction useUpdateEffect(fn, deps) {\n const isFirst = useRef(true);\n useEffect(() => {\n if (isFirst.current) {\n isFirst.current = false;\n return;\n }\n return fn();\n }, deps);\n}\nexport default useUpdateEffect;","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('carousel-caption');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CarouselItem = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n className,\n ...props\n}, ref) => {\n const finalClassName = classNames(className, useBootstrapPrefix(bsPrefix, 'carousel-item'));\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: finalClassName\n });\n});\nCarouselItem.displayName = 'CarouselItem';\nexport default CarouselItem;","import * as React from 'react';\n\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\nfunction map(children, func) {\n let index = 0;\n return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\nfunction forEach(children, func) {\n let index = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\nfunction hasChildOfType(children, type) {\n return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\nexport { map, forEach, hasChildOfType };","import useEventCallback from '@restart/hooks/useEventCallback';\nimport useUpdateEffect from '@restart/hooks/useUpdateEffect';\nimport useCommittedRef from '@restart/hooks/useCommittedRef';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport Anchor from '@restart/ui/Anchor';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport CarouselCaption from './CarouselCaption';\nimport CarouselItem from './CarouselItem';\nimport { map, forEach } from './ElementChildren';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport transitionEndListener from './transitionEndListener';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nconst SWIPE_THRESHOLD = 40;\nfunction isVisible(element) {\n if (!element || !element.style || !element.parentNode || !element.parentNode.style) {\n return false;\n }\n const elementStyle = getComputedStyle(element);\n return elementStyle.display !== 'none' && elementStyle.visibility !== 'hidden' && getComputedStyle(element.parentNode).display !== 'none';\n}\nconst Carousel = /*#__PURE__*/React.forwardRef(({\n defaultActiveIndex = 0,\n ...uncontrolledProps\n}, ref) => {\n const {\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n slide = true,\n fade = false,\n controls = true,\n indicators = true,\n indicatorLabels = [],\n activeIndex,\n onSelect,\n onSlide,\n onSlid,\n interval = 5000,\n keyboard = true,\n onKeyDown,\n pause = 'hover',\n onMouseOver,\n onMouseOut,\n wrap = true,\n touch = true,\n onTouchStart,\n onTouchMove,\n onTouchEnd,\n prevIcon = /*#__PURE__*/_jsx(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"carousel-control-prev-icon\"\n }),\n prevLabel = 'Previous',\n nextIcon = /*#__PURE__*/_jsx(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"carousel-control-next-icon\"\n }),\n nextLabel = 'Next',\n variant,\n className,\n children,\n ...props\n } = useUncontrolled({\n defaultActiveIndex,\n ...uncontrolledProps\n }, {\n activeIndex: 'onSelect'\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'carousel');\n const isRTL = useIsRTL();\n const nextDirectionRef = useRef(null);\n const [direction, setDirection] = useState('next');\n const [paused, setPaused] = useState(false);\n const [isSliding, setIsSliding] = useState(false);\n const [renderedActiveIndex, setRenderedActiveIndex] = useState(activeIndex || 0);\n useEffect(() => {\n if (!isSliding && activeIndex !== renderedActiveIndex) {\n if (nextDirectionRef.current) {\n setDirection(nextDirectionRef.current);\n } else {\n setDirection((activeIndex || 0) > renderedActiveIndex ? 'next' : 'prev');\n }\n if (slide) {\n setIsSliding(true);\n }\n setRenderedActiveIndex(activeIndex || 0);\n }\n }, [activeIndex, isSliding, renderedActiveIndex, slide]);\n useEffect(() => {\n if (nextDirectionRef.current) {\n nextDirectionRef.current = null;\n }\n });\n let numChildren = 0;\n let activeChildInterval;\n\n // Iterate to grab all of the children's interval values\n // (and count them, too)\n forEach(children, (child, index) => {\n ++numChildren;\n if (index === activeIndex) {\n activeChildInterval = child.props.interval;\n }\n });\n const activeChildIntervalRef = useCommittedRef(activeChildInterval);\n const prev = useCallback(event => {\n if (isSliding) {\n return;\n }\n let nextActiveIndex = renderedActiveIndex - 1;\n if (nextActiveIndex < 0) {\n if (!wrap) {\n return;\n }\n nextActiveIndex = numChildren - 1;\n }\n nextDirectionRef.current = 'prev';\n onSelect == null ? void 0 : onSelect(nextActiveIndex, event);\n }, [isSliding, renderedActiveIndex, onSelect, wrap, numChildren]);\n\n // This is used in the setInterval, so it should not invalidate.\n const next = useEventCallback(event => {\n if (isSliding) {\n return;\n }\n let nextActiveIndex = renderedActiveIndex + 1;\n if (nextActiveIndex >= numChildren) {\n if (!wrap) {\n return;\n }\n nextActiveIndex = 0;\n }\n nextDirectionRef.current = 'next';\n onSelect == null ? void 0 : onSelect(nextActiveIndex, event);\n });\n const elementRef = useRef();\n useImperativeHandle(ref, () => ({\n element: elementRef.current,\n prev,\n next\n }));\n\n // This is used in the setInterval, so it should not invalidate.\n const nextWhenVisible = useEventCallback(() => {\n if (!document.hidden && isVisible(elementRef.current)) {\n if (isRTL) {\n prev();\n } else {\n next();\n }\n }\n });\n const slideDirection = direction === 'next' ? 'start' : 'end';\n useUpdateEffect(() => {\n if (slide) {\n // These callbacks will be handled by the callbacks.\n return;\n }\n onSlide == null ? void 0 : onSlide(renderedActiveIndex, slideDirection);\n onSlid == null ? void 0 : onSlid(renderedActiveIndex, slideDirection);\n }, [renderedActiveIndex]);\n const orderClassName = `${prefix}-item-${direction}`;\n const directionalClassName = `${prefix}-item-${slideDirection}`;\n const handleEnter = useCallback(node => {\n triggerBrowserReflow(node);\n onSlide == null ? void 0 : onSlide(renderedActiveIndex, slideDirection);\n }, [onSlide, renderedActiveIndex, slideDirection]);\n const handleEntered = useCallback(() => {\n setIsSliding(false);\n onSlid == null ? void 0 : onSlid(renderedActiveIndex, slideDirection);\n }, [onSlid, renderedActiveIndex, slideDirection]);\n const handleKeyDown = useCallback(event => {\n if (keyboard && !/input|textarea/i.test(event.target.tagName)) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n if (isRTL) {\n next(event);\n } else {\n prev(event);\n }\n return;\n case 'ArrowRight':\n event.preventDefault();\n if (isRTL) {\n prev(event);\n } else {\n next(event);\n }\n return;\n default:\n }\n }\n onKeyDown == null ? void 0 : onKeyDown(event);\n }, [keyboard, onKeyDown, prev, next, isRTL]);\n const handleMouseOver = useCallback(event => {\n if (pause === 'hover') {\n setPaused(true);\n }\n onMouseOver == null ? void 0 : onMouseOver(event);\n }, [pause, onMouseOver]);\n const handleMouseOut = useCallback(event => {\n setPaused(false);\n onMouseOut == null ? void 0 : onMouseOut(event);\n }, [onMouseOut]);\n const touchStartXRef = useRef(0);\n const touchDeltaXRef = useRef(0);\n const touchUnpauseTimeout = useTimeout();\n const handleTouchStart = useCallback(event => {\n touchStartXRef.current = event.touches[0].clientX;\n touchDeltaXRef.current = 0;\n if (pause === 'hover') {\n setPaused(true);\n }\n onTouchStart == null ? void 0 : onTouchStart(event);\n }, [pause, onTouchStart]);\n const handleTouchMove = useCallback(event => {\n if (event.touches && event.touches.length > 1) {\n touchDeltaXRef.current = 0;\n } else {\n touchDeltaXRef.current = event.touches[0].clientX - touchStartXRef.current;\n }\n onTouchMove == null ? void 0 : onTouchMove(event);\n }, [onTouchMove]);\n const handleTouchEnd = useCallback(event => {\n if (touch) {\n const touchDeltaX = touchDeltaXRef.current;\n if (Math.abs(touchDeltaX) > SWIPE_THRESHOLD) {\n if (touchDeltaX > 0) {\n prev(event);\n } else {\n next(event);\n }\n }\n }\n if (pause === 'hover') {\n touchUnpauseTimeout.set(() => {\n setPaused(false);\n }, interval || undefined);\n }\n onTouchEnd == null ? void 0 : onTouchEnd(event);\n }, [touch, pause, prev, next, touchUnpauseTimeout, interval, onTouchEnd]);\n const shouldPlay = interval != null && !paused && !isSliding;\n const intervalHandleRef = useRef();\n useEffect(() => {\n var _ref, _activeChildIntervalR;\n if (!shouldPlay) {\n return undefined;\n }\n const nextFunc = isRTL ? prev : next;\n intervalHandleRef.current = window.setInterval(document.visibilityState ? nextWhenVisible : nextFunc, (_ref = (_activeChildIntervalR = activeChildIntervalRef.current) != null ? _activeChildIntervalR : interval) != null ? _ref : undefined);\n return () => {\n if (intervalHandleRef.current !== null) {\n clearInterval(intervalHandleRef.current);\n }\n };\n }, [shouldPlay, prev, next, activeChildIntervalRef, interval, nextWhenVisible, isRTL]);\n const indicatorOnClicks = useMemo(() => indicators && Array.from({\n length: numChildren\n }, (_, index) => event => {\n onSelect == null ? void 0 : onSelect(index, event);\n }), [indicators, numChildren, onSelect]);\n return /*#__PURE__*/_jsxs(Component, {\n ref: elementRef,\n ...props,\n onKeyDown: handleKeyDown,\n onMouseOver: handleMouseOver,\n onMouseOut: handleMouseOut,\n onTouchStart: handleTouchStart,\n onTouchMove: handleTouchMove,\n onTouchEnd: handleTouchEnd,\n className: classNames(className, prefix, slide && 'slide', fade && `${prefix}-fade`, variant && `${prefix}-${variant}`),\n children: [indicators && /*#__PURE__*/_jsx(\"div\", {\n className: `${prefix}-indicators`,\n children: map(children, (_, index) => /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n \"data-bs-target\": \"\" // Bootstrap requires this in their css.\n ,\n \"aria-label\": indicatorLabels != null && indicatorLabels.length ? indicatorLabels[index] : `Slide ${index + 1}`,\n className: index === renderedActiveIndex ? 'active' : undefined,\n onClick: indicatorOnClicks ? indicatorOnClicks[index] : undefined,\n \"aria-current\": index === renderedActiveIndex\n }, index))\n }), /*#__PURE__*/_jsx(\"div\", {\n className: `${prefix}-inner`,\n children: map(children, (child, index) => {\n const isActive = index === renderedActiveIndex;\n return slide ? /*#__PURE__*/_jsx(TransitionWrapper, {\n in: isActive,\n onEnter: isActive ? handleEnter : undefined,\n onEntered: isActive ? handleEntered : undefined,\n addEndListener: transitionEndListener,\n children: (status, innerProps) => /*#__PURE__*/React.cloneElement(child, {\n ...innerProps,\n className: classNames(child.props.className, isActive && status !== 'entered' && orderClassName, (status === 'entered' || status === 'exiting') && 'active', (status === 'entering' || status === 'exiting') && directionalClassName)\n })\n }) : /*#__PURE__*/React.cloneElement(child, {\n className: classNames(child.props.className, isActive && 'active')\n });\n })\n }), controls && /*#__PURE__*/_jsxs(_Fragment, {\n children: [(wrap || activeIndex !== 0) && /*#__PURE__*/_jsxs(Anchor, {\n className: `${prefix}-control-prev`,\n onClick: prev,\n children: [prevIcon, prevLabel && /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: prevLabel\n })]\n }), (wrap || activeIndex !== numChildren - 1) && /*#__PURE__*/_jsxs(Anchor, {\n className: `${prefix}-control-next`,\n onClick: next,\n children: [nextIcon, nextLabel && /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: nextLabel\n })]\n })]\n })]\n });\n});\nCarousel.displayName = 'Carousel';\nexport default Object.assign(Carousel, {\n Caption: CarouselCaption,\n Item: CarouselItem\n});","import * as React from 'react';\nimport Card from 'react-bootstrap/esm/Card';\n\nimport AboutMeCardBodyContainer from '../../about/AboutMeCardBodyContainer';\n\ntype Props = Readonly<{\n\tsrc: string;\n}>;\n\nexport default function PersonalAboutMeCarouselItem({\n\tsrc,\n}: Props): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\tBlep\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Carousel from 'react-bootstrap/esm/Carousel';\n\nimport PersonalAboutMeCarouselItem from './PersonalAboutMeCarouselItem';\n\nconst IMAGES = ['/portrait-mode.jpg', '/pinksuit.jpeg', '/dokidoki.jpeg'];\n\nexport default function PersonalAboutMePhotoCarousel(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t{IMAGES.map(img => (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/esm/Card';\n\nimport PersonalAboutMeCardFooter from './PersonalAboutMeCardFooter';\nimport PersonalAboutMeCardHeader from './PersonalAboutMeCardHeader';\nimport PersonalAboutMePhotoCarousel from './PersonalAboutMePhotoCarousel';\n\nexport default function PersonalAboutMeCard(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport PageBody from './PageBody';\nimport PersonalAboutMeCard from './personal/about/PersonalAboutMeCard';\n\nexport default function PersonalBody(): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\n\nimport PersonalBackground from './body/personal/PersonalBackground';\nimport PersonalBody from './body/PersonalBody';\nimport Page from './Page';\n\nexport function Component(): React.JSX.Element {\n\treturn (\n\t\t}>\n\t\t\t\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"brand\":\"navbar_brand__zDvLc\",\"navbar\":\"navbar_navbar__pEuvw\",\"rightContent\":\"navbar_rightContent__ikOZ0\"};","// extracted by mini-css-extract-plugin\nexport default {\"fallback\":\"colorPicker_fallback__pvhTA\"};","import { solid } from '@fortawesome/fontawesome-svg-core/import.macro';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport NavDropdown from 'react-bootstrap/esm/NavDropdown';\nimport Spinner from 'react-bootstrap/Spinner';\n\nimport styles from '../../styles/nav/colorPicker.module.scss';\nimport lazyWithPreload from '../../utils/lazyWithPreload.ts';\n\nconst PageNavColorPickerMenu = lazyWithPreload(() =>\n\timport('./PageNavColorPickerMenu.tsx'),\n);\n\nexport default function PageNavColorPicker(): React.JSX.Element {\n\tconst onMouseEnter = () => {\n\t\tPageNavColorPickerMenu.preload();\n\t};\n\n\treturn (\n\t\t\n\t\t\t}\n\t\t\tonMouseEnter={onMouseEnter}>\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t}>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport Container from 'react-bootstrap/Container';\nimport Col from 'react-bootstrap/esm/Col';\nimport Navbar from 'react-bootstrap/Navbar';\nimport {Link} from 'react-router-dom';\n\nimport MyName from '../../consts/MyName.ts';\nimport useBackgroundColorStyle from '../../hooks/useBackgroundColorStyle.ts';\nimport navStyles from '../../styles/nav/navbar.module.scss';\nimport pageStyles from '../../styles/pageMargin.module.scss';\nimport PageNavColorPicker from './PageNavColorPicker.tsx';\n\ntype Props = Readonly<{\n\tbreadcrumbs?: React.JSX.Element | undefined;\n}>;\n\nexport default function PageNavBar({breadcrumbs}: Props): React.JSX.Element {\n\tconst style = useBackgroundColorStyle();\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{MyName}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{breadcrumbs}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport { useState } from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport PageNavBar from './nav/PageNavBar';\n\ntype Props = Readonly<{\n\tbackground: React.JSX.Element;\n\tbreadcrumbs?: React.JSX.Element;\n\tchildren: React.ReactNode;\n}>;\n\nexport default function Page({\n\tbackground,\n\tbreadcrumbs,\n\tchildren,\n}: Props): React.JSX.Element {\n\tconst [hex, setHex] = useState('#2e3134');\n\n\treturn (\n\t\t\n\t\t\t{background}\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"body\":\"pageBody_body__aNOKo\"};","import classNames from 'classnames';\nimport * as React from 'react';\n\nimport pageBodyStyles from '../../styles/pageBody.module.scss';\nimport pageStyles from '../../styles/pageMargin.module.scss';\n\ntype Props = Readonly<{\n\tchildren: React.ReactNode;\n}>;\n\nexport default function PageBody({children}: Props): React.JSX.Element {\n\treturn (\n\t\t
\n\t\t\t{children}\n\t\t
\n\t);\n}\n","import * as React from 'react';\nimport Placeholder from 'react-bootstrap/esm/Placeholder';\n\nimport styles from '../../../styles/body/about/aboutMeCardBody.module.scss';\nimport type { Props as ImageProps } from '../about/AboutMeCardImage';\n\nconst AboutMeCardImage = React.lazy(\n\tasync () => await import('../about/AboutMeCardImage'),\n);\n\nexport default function AboutMeCardLazyImage(\n\tprops: ImageProps,\n): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t}>\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from 'react';\nimport Card from 'react-bootstrap/Card';\nimport Col from 'react-bootstrap/Col';\nimport Container from 'react-bootstrap/Container';\nimport Row from 'react-bootstrap/Row';\n\nimport styles from '../../../styles/body/about/aboutMeCardBody.module.scss';\nimport type { Props as ImageProps } from './AboutMeCardImage';\nimport AboutMeCardLazyImage from './AboutMeCardLazyImage';\n\ntype Props = Readonly<{\n\tchildren: React.JSX.Element;\n}> &\n\tImageProps;\n\nexport default function AboutMeCardBodyContainer({\n\tchildren,\n\t...imageProps\n}: Props): React.JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{children}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport Button from 'react-bootstrap/Button';\n\nimport useHover from '../../hooks/useHover';\n\ntype Props = Readonly<{\n\tclassName?: string;\n\thref: string;\n\ticon: IconProp;\n}>;\n\nexport default function ExternalLinkButton({\n\tclassName,\n\thref,\n\ticon,\n}: Props): React.JSX.Element {\n\tconst {isHovering: _isHovering, ...mouseEvents} = useHover();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","const MyName: string = \"Stephen Vergara\";\n\nexport default MyName;\n","import { createContext } from 'react';\n\ntype ContextType = Readonly<{\n\tcolor: string;\n\tsetColor: React.Dispatch>;\n}>;\n\nexport default createContext({\n\tcolor: '#2e3134',\n\tsetColor: () => {},\n});\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\nimport useTextColorForCustomBackground from './useTextColorForCustomBackground';\n\nexport default function useBackgroundColorStyle(\n\talpha: string = '',\n): React.CSSProperties {\n\tconst {color} = React.useContext(ColorContext);\n\tconst textColor = useTextColorForCustomBackground();\n\n\treturn {backgroundColor: `${color}${alpha}`, color: textColor};\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nexport default function useColorStyle(): React.CSSProperties {\n const {color} = React.useContext(ColorContext);\n\n return {color};\n}","import * as React from 'react';\n\ntype ReturnType = Readonly<{\n\tisHovering: boolean;\n\tonMouseEnter: () => void;\n\tonMouseLeave: () => void;\n}>;\n\nexport default function useHover(): ReturnType {\n\tconst [isHovering, setIsHovering] = React.useState(false);\n\n\tconst onMouseEnter = () => {\n\t\tsetIsHovering(true);\n\t};\n\n\tconst onMouseLeave = () => {\n\t\tsetIsHovering(false);\n\t};\n\n\treturn {isHovering, onMouseEnter, onMouseLeave};\n}\n","import * as React from 'react';\n\nimport ColorContext from '../contexts/ColorContext';\n\nconst BRIGHTNESS_THRESHOLD = 128;\n\n// NTSC luminance formula (linear approximation): Y = .299r' + .587g' + .114b'\nconst RED_LUMINANCE_COEFFICIENT = 0.299;\nconst GREEN_LUMINANCE_COEFFICIENT = 0.587;\nconst BLUE_LUMINANCE_COEFFICIENT = 0.114;\n\nexport default function useTextColorForCustomBackground(): string {\n\tconst {color} = React.useContext(ColorContext);\n\n\treturn React.useMemo(() => {\n\t\tconst getChunksFromString = (st: string, chunkSize: number) =>\n\t\t\tst.match(new RegExp(`.{${chunkSize}}`, 'g'));\n\n\t\tconst convertHexUnitTo256 = (hexStr: string) =>\n\t\t\tparseInt(hexStr.repeat(2 / hexStr.length), 16);\n\n\t\tconst chunkSize = Math.floor((color.length - 1) / 3);\n\t\tconst hexArr = getChunksFromString(color.slice(1), chunkSize);\n\n\t\tconst [red, green, blue] = (hexArr ?? []).map(convertHexUnitTo256);\n\n\t\tconst brightness = Math.round(\n\t\t\t(red ?? 0) * RED_LUMINANCE_COEFFICIENT +\n\t\t\t\t(green ?? 0) * GREEN_LUMINANCE_COEFFICIENT +\n\t\t\t\t(blue ?? 0) * BLUE_LUMINANCE_COEFFICIENT,\n\t\t);\n\n\t\treturn brightness > BRIGHTNESS_THRESHOLD ? 'black' : 'white';\n\t}, [color]);\n}\n","import * as React from 'react';\n\ninterface PreloadedExoticComponent>\n\textends React.LazyExoticComponent {\n\tpreload: () => {};\n}\n\nexport default function lazyWithPreload>(\n\tfactory: () => Promise<{\n\t\tdefault: T;\n\t}>,\n): PreloadedExoticComponent {\n\treturn Object.assign(React.lazy(factory), {preload: factory});\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'discord';\nvar width = 640;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f392';\nvar svgPathData = 'M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faDiscord = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'steam';\nvar width = 496;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f1b6';\nvar svgPathData = 'M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faSteam = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","// extracted by mini-css-extract-plugin\nexport default {\"body\":\"aboutMeCardBody_body__px0Z-\",\"base\":\"aboutMeCardBody_base__HWSO5\",\"image\":\"aboutMeCardBody_image__r0pwR\",\"glimmer\":\"aboutMeCardBody_glimmer__ztngv\",\"imageColumn\":\"aboutMeCardBody_imageColumn__Decwz\"};","// extracted by mini-css-extract-plugin\nexport default {\"buttons\":\"footer_buttons__X-wEA\",\"resume\":\"footer_resume__j2AKe\"};","// extracted by mini-css-extract-plugin\nexport default {\"github\":\"linkButton_github__ltM-y\",\"linkedin\":\"linkButton_linkedin__MRpaF\",\"steam\":\"linkButton_steam__qizUa\",\"discord\":\"linkButton_discord__zToU1\"};","// extracted by mini-css-extract-plugin\nexport default {\"page\":\"pageMargin_page__oYkHI\"};"],"names":["STARS","className","styles","stars","numStars","stars2","stars3","Stars","_ref","color","React","ColorContext","boxShadow","rand","Math","floor","random","calc","concat","shadow","i","_jsx","style","PersonalBackground","background","children","map","props","_createElement","key","DiscordButton","ExternalLinkButton","discord","href","icon","_faDiscord","SteamButton","steam","_faSteam","PersonalAboutMeCardFooter","Card","Footer","_jsxs","Container","buttons","HALF_OPACITY","HEADER_LABEL","PersonalAboutMeCardHeader","useColorStyle","bg","useBackgroundColorStyle","CardHeader","as","header","split","character","index","label","fn","deps","isFirst","useRef","useEffect","current","createWithBsPrefix","CarouselItem","ref","Component","bsPrefix","finalClassName","classNames","useBootstrapPrefix","displayName","func","child","Carousel","_ref2","defaultActiveIndex","uncontrolledProps","slide","fade","controls","indicators","indicatorLabels","activeIndex","onSelect","onSlide","onSlid","interval","keyboard","onKeyDown","pause","onMouseOver","onMouseOut","wrap","touch","onTouchStart","onTouchMove","onTouchEnd","prevIcon","prevLabel","nextIcon","nextLabel","variant","useUncontrolled","prefix","isRTL","useIsRTL","nextDirectionRef","direction","setDirection","useState","paused","setPaused","isSliding","setIsSliding","renderedActiveIndex","setRenderedActiveIndex","activeChildInterval","numChildren","forEach","activeChildIntervalRef","useCommittedRef","prev","useCallback","event","nextActiveIndex","next","useEventCallback","elementRef","useImperativeHandle","element","nextWhenVisible","document","hidden","parentNode","elementStyle","getComputedStyle","display","visibility","isVisible","slideDirection","useUpdateEffect","orderClassName","directionalClassName","handleEnter","node","triggerBrowserReflow","handleEntered","handleKeyDown","test","target","tagName","preventDefault","handleMouseOver","handleMouseOut","touchStartXRef","touchDeltaXRef","touchUnpauseTimeout","useTimeout","handleTouchStart","touches","clientX","handleTouchMove","length","handleTouchEnd","touchDeltaX","abs","set","undefined","shouldPlay","intervalHandleRef","_activeChildIntervalR","nextFunc","window","setInterval","visibilityState","clearInterval","indicatorOnClicks","useMemo","Array","from","_","type","onClick","isActive","TransitionWrapper","in","onEnter","onEntered","addEndListener","transitionEndListener","status","innerProps","_Fragment","Anchor","Object","assign","Caption","CarouselCaption","Item","PersonalAboutMeCarouselItem","src","AboutMeCardBodyContainer","Text","IMAGES","PersonalAboutMePhotoCarousel","img","PersonalAboutMeCard","Body","PersonalBody","PageBody","Page","PageNavColorPickerMenu","lazyWithPreload","PageNavColorPicker","NavDropdown","align","renderMenuOnMount","title","FontAwesomeIcon","_faPalette","bounce","onMouseEnter","preload","fallback","Spinner","animation","PageNavBar","breadcrumbs","Navbar","expand","sticky","pageStyles","page","navStyles","navbar","Col","Link","brand","to","MyName","rightContent","hex","setHex","Provider","value","setColor","pageBodyStyles","body","AboutMeCardImage","async","AboutMeCardLazyImage","Placeholder","glimmer","imageProps","Row","xs","imageColumn","xl","isHovering","_isHovering","mouseEvents","useHover","Button","size","createContext","alpha","arguments","textColor","useTextColorForCustomBackground","backgroundColor","setIsHovering","onMouseLeave","BRIGHTNESS_THRESHOLD","RED_LUMINANCE_COEFFICIENT","GREEN_LUMINANCE_COEFFICIENT","BLUE_LUMINANCE_COEFFICIENT","chunkSize","hexArr","getChunksFromString","st","match","RegExp","slice","red","green","blue","hexStr","parseInt","repeat","round","factory","iconName","aliases","unicode","svgPathData","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.8878d467.js b/static/js/main.4b1fc840.js similarity index 99% rename from static/js/main.8878d467.js rename to static/js/main.4b1fc840.js index 4a45835..21ca206 100644 --- a/static/js/main.8878d467.js +++ b/static/js/main.4b1fc840.js @@ -1,3 +1,3 @@ -/*! For license information please see main.8878d467.js.LICENSE.txt */ -(()=>{var e={8278:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;td,J0:()=>i,RQ:()=>O,WK:()=>B,X3:()=>j,Zn:()=>z,Zq:()=>D,aU:()=>a,cP:()=>f,fp:()=>g,iQ:()=>A,lX:()=>l,p7:()=>Z,pC:()=>M}),function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(a||(a={}));const o="popstate";function l(e){return void 0===e&&(e={}),p((function(e,t){let{pathname:n,search:r,hash:a}=e.location;return c("",{pathname:n,search:r,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"===typeof t?t:d(t)}),null,e)}function i(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function u(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(n){}}}function s(e,t){return{usr:e.state,key:e.key,idx:t}}function c(e,t,n,a){return void 0===n&&(n=null),r({pathname:"string"===typeof e?e:e.pathname,search:"",hash:""},"string"===typeof t?f(t):t,{state:n,key:t&&t.key||a||Math.random().toString(36).substr(2,8)})}function d(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(t+="#"===r.charAt(0)?r:"#"+r),t}function f(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function p(e,t,n,l){void 0===l&&(l={});let{window:u=document.defaultView,v5Compat:f=!1}=l,p=u.history,h=a.Pop,m=null,v=g();function g(){return(p.state||{idx:null}).idx}function y(){h=a.Pop;let e=g(),t=null==e?null:e-v;v=e,m&&m({action:h,location:w.location,delta:t})}function b(e){let t="null"!==u.location.origin?u.location.origin:u.location.href,n="string"===typeof e?e:d(e);return i(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==v&&(v=0,p.replaceState(r({},p.state,{idx:v}),""));let w={get action(){return h},get location(){return e(u,p)},listen(e){if(m)throw new Error("A history only accepts one active listener");return u.addEventListener(o,y),m=e,()=>{u.removeEventListener(o,y),m=null}},createHref:e=>t(u,e),createURL:b,encodeLocation(e){let t=b(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){h=a.Push;let r=c(w.location,e,t);n&&n(r,e),v=g()+1;let o=s(r,v),l=w.createHref(r);try{p.pushState(o,"",l)}catch(i){if(i instanceof DOMException&&"DataCloneError"===i.name)throw i;u.location.assign(l)}f&&m&&m({action:h,location:w.location,delta:1})},replace:function(e,t){h=a.Replace;let r=c(w.location,e,t);n&&n(r,e),v=g();let o=s(r,v),l=w.createHref(r);p.replaceState(o,"",l),f&&m&&m({action:h,location:w.location,delta:0})},go:e=>p.go(e)};return w}var h;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(h||(h={}));const m=new Set(["lazy","caseSensitive","path","id","index","children"]);function v(e,t,n,a){return void 0===n&&(n=[]),void 0===a&&(a={}),e.map(((e,o)=>{let l=[...n,o],u="string"===typeof e.id?e.id:l.join("-");if(i(!0!==e.index||!e.children,"Cannot specify children on an index route"),i(!a[u],'Found a route id collision on id "'+u+"\". Route id's must be globally unique within Data Router usages"),function(e){return!0===e.index}(e)){let n=r({},e,t(e),{id:u});return a[u]=n,n}{let n=r({},e,t(e),{id:u,children:void 0});return a[u]=n,e.children&&(n.children=v(e.children,t,l,a)),n}}))}function g(e,t,n){void 0===n&&(n="/");let r=z(("string"===typeof t?f(t):t).pathname||"/",n);if(null==r)return null;let a=y(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(a);let o=null;for(let l=0;null==o&&l{let l={relativePath:void 0===o?e.path||"":o,caseSensitive:!0===e.caseSensitive,childrenIndex:a,route:e};l.relativePath.startsWith("/")&&(i(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path "'+r+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),l.relativePath=l.relativePath.slice(r.length));let u=O([r,l.relativePath]),s=n.concat(l);e.children&&e.children.length>0&&(i(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+u+'".'),y(e.children,t,s,u)),(null!=e.path||e.index)&&t.push({path:u,score:P(u,e.index),routesMeta:s})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let r of b(e.path))a(e,t,r);else a(e,t)})),t}function b(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,a=n.endsWith("?"),o=n.replace(/\?$/,"");if(0===r.length)return a?[o,""]:[o];let l=b(r.join("/")),i=[];return i.push(...l.map((e=>""===e?o:[o,e].join("/")))),a&&i.push(...l),i.map((t=>e.startsWith("/")&&""===t?"/":t))}const w=/^:\w+$/,k=3,S=2,E=1,x=10,C=-2,_=e=>"*"===e;function P(e,t){let n=e.split("/"),r=n.length;return n.some(_)&&(r+=C),t&&(r+=S),n.filter((e=>!_(e))).reduce(((e,t)=>e+(w.test(t)?k:""===t?E:x)),r)}function R(e,t){let{routesMeta:n}=e,r={},a="/",o=[];for(let l=0;l(r.push(t),"/([^\\/]+)")));e.endsWith("*")?(r.push("*"),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))");let o=new RegExp(a,t?void 0:"i");return[o,r]}(e.path,e.caseSensitive,e.end),a=t.match(n);if(!a)return null;let o=a[0],l=o.replace(/(.)\/+$/,"$1"),i=a.slice(1);return{params:r.reduce(((e,t,n)=>{if("*"===t){let e=i[n]||"";l=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}return e[t]=function(e,t){try{return decodeURIComponent(e)}catch(n){return u(!1,'The value for the URL param "'+t+'" will not be decoded because the string "'+e+'" is a malformed URL segment. This is probably due to a bad percent encoding ('+n+")."),e}}(i[n]||"",t),e}),{}),pathname:o,pathnameBase:l,pattern:e}}function N(e){try{return decodeURI(e)}catch(t){return u(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function z(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function T(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in and the router will parse it for you.'}function D(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function M(e,t,n,a){let o;void 0===a&&(a=!1),"string"===typeof e?o=f(e):(o=r({},e),i(!o.pathname||!o.pathname.includes("?"),T("?","pathname","search",o)),i(!o.pathname||!o.pathname.includes("#"),T("#","pathname","hash",o)),i(!o.search||!o.search.includes("#"),T("#","search","hash",o)));let l,u=""===e||""===o.pathname,s=u?"/":o.pathname;if(a||null==s)l=n;else{let e=t.length-1;if(s.startsWith("..")){let t=s.split("/");for(;".."===t[0];)t.shift(),e-=1;o.pathname=t.join("/")}l=e>=0?t[e]:"/"}let c=function(e,t){void 0===t&&(t="/");let{pathname:n,search:r="",hash:a=""}="string"===typeof e?f(e):e,o=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:o,search:F(r),hash:I(a)}}(o,l),d=s&&"/"!==s&&s.endsWith("/"),p=(u||"."===s)&&n.endsWith("/");return c.pathname.endsWith("/")||!d&&!p||(c.pathname+="/"),c}const O=e=>e.join("/").replace(/\/\/+/g,"/"),U=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),F=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",I=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";class j extends Error{}class A{constructor(e,t,n,r){void 0===r&&(r=!1),this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function B(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}const W=["post","put","patch","delete"],$=new Set(W),H=["get",...W],V=new Set(H),Q=new Set([301,302,303,307,308]),q=new Set([307,308]),K={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Y={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},J={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},X=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,G=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)});function Z(e){const t=e.window?e.window:"undefined"!==typeof window?window:void 0,n="undefined"!==typeof t&&"undefined"!==typeof t.document&&"undefined"!==typeof t.document.createElement,o=!n;let l;if(i(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)l=e.mapRouteProperties;else if(e.detectErrorBoundary){let t=e.detectErrorBoundary;l=e=>({hasErrorBoundary:t(e)})}else l=G;let s,d={},f=v(e.routes,l,void 0,d),p=e.basename||"/",m=r({v7_normalizeFormMethod:!1,v7_prependBasename:!1},e.future),y=null,b=new Set,w=null,k=null,S=null,E=null!=e.hydrationData,x=g(f,e.history.location,p),C=null;if(null==x){let t=ve(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=me(f);x=n,C={[r.id]:t}}let _,P,R=!x.some((e=>e.route.lazy))&&(!x.some((e=>e.route.loader))||null!=e.hydrationData),L={historyAction:e.history.action,location:e.history.location,matches:x,initialized:R,navigation:K,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||C,fetchers:new Map,blockers:new Map},N=a.Pop,T=!1,D=!1,M=!1,O=[],U=[],F=new Map,I=0,j=-1,A=new Map,B=new Set,W=new Map,$=new Map,H=new Map,V=!1;function Q(e){L=r({},L,e),b.forEach((e=>e(L)))}function Z(t,n){var o,l;let i,u=null!=L.actionData&&null!=L.navigation.formMethod&&xe(L.navigation.formMethod)&&"loading"===L.navigation.state&&!0!==(null==(o=t.state)?void 0:o._isRedirect);i=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:u?L.actionData:null;let c=n.loaderData?pe(L.loaderData,n.loaderData,n.matches||[],n.errors):L.loaderData,d=L.blockers;d.size>0&&(d=new Map(d),d.forEach(((e,t)=>d.set(t,J))));let p=!0===T||null!=L.navigation.formMethod&&xe(L.navigation.formMethod)&&!0!==(null==(l=t.state)?void 0:l._isRedirect);s&&(f=s,s=void 0),D||N===a.Pop||(N===a.Push?e.history.push(t,t.state):N===a.Replace&&e.history.replace(t,t.state)),Q(r({},n,{actionData:i,loaderData:c,historyAction:N,location:t,initialized:!0,navigation:K,revalidation:"idle",restoreScrollPosition:Ie(t,n.matches||L.matches),preventScrollReset:p,blockers:d})),N=a.Pop,T=!1,D=!1,M=!1,O=[],U=[]}async function ne(t,n,o){P&&P.abort(),P=null,N=t,D=!0===(o&&o.startUninterruptedRevalidation),function(e,t){if(w&&S){let n=Fe(e,t);w[n]=S()}}(L.location,L.matches),T=!0===(o&&o.preventScrollReset);let i=s||f,u=o&&o.overrideNavigation,c=g(i,n,p);if(!c){let e=ve(404,{pathname:n.pathname}),{matches:t,route:r}=me(i);return Ue(),void Z(n,{matches:t,loaderData:{},errors:{[r.id]:e}})}if(L.initialized&&!M&&function(e,t){if(e.pathname!==t.pathname||e.search!==t.search)return!1;if(""===e.hash)return""!==t.hash;if(e.hash===t.hash)return!0;if(""!==t.hash)return!0;return!1}(L.location,n)&&!(o&&o.submission&&xe(o.submission.formMethod)))return void Z(n,{matches:c});P=new AbortController;let m,v,y=ue(e.history,n,P.signal,o&&o.submission);if(o&&o.pendingError)v={[he(c).route.id]:o.pendingError};else if(o&&o.submission&&xe(o.submission.formMethod)){let e=await async function(e,t,n,r,o){void 0===o&&(o={});se();let i,u=function(e,t){let n={state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text};return n}(t,n);Q({navigation:u});let s=Re(r,t);if(s.route.action||s.route.lazy){if(i=await ie("action",e,s,r,d,l,p),e.signal.aborted)return{shortCircuited:!0}}else i={type:h.error,error:ve(405,{method:e.method,pathname:t.pathname,routeId:s.route.id})};if(ke(i)){let e;return e=o&&null!=o.replace?o.replace:i.location===L.location.pathname+L.location.search,await oe(L,i,{submission:n,replace:e}),{shortCircuited:!0}}if(we(i)){let e=he(r,s.route.id);return!0!==(o&&o.replace)&&(N=a.Push),{pendingActionData:{},pendingActionError:{[e.route.id]:i.error}}}if(be(i))throw ve(400,{type:"defer-action"});return{pendingActionData:{[s.route.id]:i.data}}}(y,n,o.submission,c,{replace:o.replace});if(e.shortCircuited)return;m=e.pendingActionData,v=e.pendingActionError,u=Ne(n,o.submission),y=new Request(y.url,{signal:y.signal})}let{shortCircuited:b,loaderData:k,errors:E}=await async function(t,n,a,o,l,i,u,c,d){let h=o||Ne(n,l),m=l||i||Le(h),v=s||f,[g,y]=re(e.history,L,a,m,n,M,O,U,W,B,v,p,c,d);if(Ue((e=>!(a&&a.some((t=>t.route.id===e)))||g&&g.some((t=>t.route.id===e)))),j=++I,0===g.length&&0===y.length){let e=Ee();return Z(n,r({matches:a,loaderData:{},errors:d||null},c?{actionData:c}:{},e?{fetchers:new Map(L.fetchers)}:{})),{shortCircuited:!0}}if(!D){y.forEach((e=>{let t=L.fetchers.get(e.key),n=ze(void 0,t?t.data:void 0);L.fetchers.set(e.key,n)}));let e=c||L.actionData;Q(r({navigation:h},e?0===Object.keys(e).length?{actionData:null}:{actionData:e}:{},y.length>0?{fetchers:new Map(L.fetchers)}:{}))}y.forEach((e=>{F.has(e.key)&&ye(e.key),e.controller&&F.set(e.key,e.controller)}));let b=()=>y.forEach((e=>ye(e.key)));P&&P.signal.addEventListener("abort",b);let{results:w,loaderResults:k,fetcherResults:S}=await le(L.matches,a,g,y,t);if(t.signal.aborted)return{shortCircuited:!0};P&&P.signal.removeEventListener("abort",b);y.forEach((e=>F.delete(e.key)));let E=ge(w);if(E){if(E.idx>=g.length){let e=y[E.idx-g.length].key;B.add(e)}return await oe(L,E.result,{replace:u}),{shortCircuited:!0}}let{loaderData:x,errors:C}=fe(L,a,g,k,d,y,S,$);$.forEach(((e,t)=>{e.subscribe((n=>{(n||e.done)&&$.delete(t)}))}));let _=Ee(),R=Pe(j),N=_||R||y.length>0;return r({loaderData:x,errors:C},N?{fetchers:new Map(L.fetchers)}:{})}(y,n,c,u,o&&o.submission,o&&o.fetcherSubmission,o&&o.replace,m,v);b||(P=null,Z(n,r({matches:c},m?{actionData:m}:{},{loaderData:k,errors:E})))}function ae(e){return L.fetchers.get(e)||Y}async function oe(o,l,u){let{submission:s,replace:d,isFetchActionRedirect:f}=void 0===u?{}:u;l.revalidate&&(M=!0);let h=c(o.location,l.location,r({_isRedirect:!0},f?{_isFetchActionRedirect:!0}:{}));if(i(h,"Expected a location on the redirect navigation"),X.test(l.location)&&n){let n=e.history.createURL(l.location),r=null==z(n.pathname,p);if(t.location.origin!==n.origin||r)return void(d?t.location.replace(l.location):t.location.assign(l.location))}P=null;let m=!0===d?a.Replace:a.Push,v=s||Le(o.navigation);if(q.has(l.status)&&v&&xe(v.formMethod))await ne(m,h,{submission:r({},v,{formAction:l.location}),preventScrollReset:T});else if(f)await ne(m,h,{overrideNavigation:Ne(h),fetcherSubmission:v,preventScrollReset:T});else{let e=Ne(h,v);await ne(m,h,{overrideNavigation:e,preventScrollReset:T})}}async function le(t,n,r,a,o){let i=await Promise.all([...r.map((e=>ie("loader",o,e,n,d,l,p))),...a.map((t=>{if(t.matches&&t.match&&t.controller)return ie("loader",ue(e.history,t.path,t.controller.signal),t.match,t.matches,d,l,p);return{type:h.error,error:ve(404,{pathname:t.path})}}))]),u=i.slice(0,r.length),s=i.slice(r.length);return await Promise.all([Ce(t,r,u,u.map((()=>o.signal)),!1,L.loaderData),Ce(t,a.map((e=>e.match)),s,a.map((e=>e.controller?e.controller.signal:null)),!0)]),{results:i,loaderResults:u,fetcherResults:s}}function se(){M=!0,O.push(...Ue()),W.forEach(((e,t)=>{F.has(t)&&(U.push(t),ye(t))}))}function ce(e,t,n){let r=he(L.matches,t);de(e),Q({errors:{[r.route.id]:n},fetchers:new Map(L.fetchers)})}function de(e){let t=L.fetchers.get(e);!F.has(e)||t&&"loading"===t.state&&A.has(e)||ye(e),W.delete(e),A.delete(e),B.delete(e),L.fetchers.delete(e)}function ye(e){let t=F.get(e);i(t,"Expected fetch controller: "+e),t.abort(),F.delete(e)}function Se(e){for(let t of e){let e=Te(ae(t).data);L.fetchers.set(t,e)}}function Ee(){let e=[],t=!1;for(let n of B){let r=L.fetchers.get(n);i(r,"Expected fetcher: "+n),"loading"===r.state&&(B.delete(n),e.push(n),t=!0)}return Se(e),t}function Pe(e){let t=[];for(let[n,r]of A)if(r0}function De(e){L.blockers.delete(e),H.delete(e)}function Me(e,t){let n=L.blockers.get(e)||J;i("unblocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"proceeding"===t.state||"blocked"===n.state&&"unblocked"===t.state||"proceeding"===n.state&&"unblocked"===t.state,"Invalid blocker state transition: "+n.state+" -> "+t.state);let r=new Map(L.blockers);r.set(e,t),Q({blockers:r})}function Oe(e){let{currentLocation:t,nextLocation:n,historyAction:r}=e;if(0===H.size)return;H.size>1&&u(!1,"A router only supports one blocker at a time");let a=Array.from(H.entries()),[o,l]=a[a.length-1],i=L.blockers.get(o);return i&&"proceeding"===i.state?void 0:l({currentLocation:t,nextLocation:n,historyAction:r})?o:void 0}function Ue(e){let t=[];return $.forEach(((n,r)=>{e&&!e(r)||(n.cancel(),t.push(r),$.delete(r))})),t}function Fe(e,t){if(k){return k(e,t.map((e=>function(e,t){let{route:n,pathname:r,params:a}=e;return{id:n.id,pathname:r,params:a,data:t[n.id],handle:n.handle}}(e,L.loaderData))))||e.key}return e.key}function Ie(e,t){if(w){let n=Fe(e,t),r=w[n];if("number"===typeof r)return r}return null}return _={get basename(){return p},get state(){return L},get routes(){return f},initialize:function(){return y=e.history.listen((t=>{let{action:n,location:r,delta:a}=t;if(V)return void(V=!1);u(0===H.size||null!=a,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let o=Oe({currentLocation:L.location,nextLocation:r,historyAction:n});return o&&null!=a?(V=!0,e.history.go(-1*a),void Me(o,{state:"blocked",location:r,proceed(){Me(o,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),e.history.go(a)},reset(){let e=new Map(L.blockers);e.set(o,J),Q({blockers:e})}})):ne(n,r)})),L.initialized||ne(a.Pop,L.location),_},subscribe:function(e){return b.add(e),()=>b.delete(e)},enableScrollRestoration:function(e,t,n){if(w=e,S=t,k=n||null,!E&&L.navigation===K){E=!0;let e=Ie(L.location,L.matches);null!=e&&Q({restoreScrollPosition:e})}return()=>{w=null,S=null,k=null}},navigate:async function t(n,o){if("number"===typeof n)return void e.history.go(n);let l=ee(L.location,L.matches,p,m.v7_prependBasename,n,null==o?void 0:o.fromRouteId,null==o?void 0:o.relative),{path:i,submission:u,error:s}=te(m.v7_normalizeFormMethod,!1,l,o),d=L.location,f=c(L.location,i,o&&o.state);f=r({},f,e.history.encodeLocation(f));let h=o&&null!=o.replace?o.replace:void 0,v=a.Push;!0===h?v=a.Replace:!1===h||null!=u&&xe(u.formMethod)&&u.formAction===L.location.pathname+L.location.search&&(v=a.Replace);let g=o&&"preventScrollReset"in o?!0===o.preventScrollReset:void 0,y=Oe({currentLocation:d,nextLocation:f,historyAction:v});if(!y)return await ne(v,f,{submission:u,pendingError:s,preventScrollReset:g,replace:o&&o.replace});Me(y,{state:"blocked",location:f,proceed(){Me(y,{state:"proceeding",proceed:void 0,reset:void 0,location:f}),t(n,o)},reset(){let e=new Map(L.blockers);e.set(y,J),Q({blockers:e})}})},fetch:function(t,n,a,u){if(o)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");F.has(t)&&ye(t);let c=s||f,h=ee(L.location,L.matches,p,m.v7_prependBasename,a,n,null==u?void 0:u.relative),v=g(c,h,p);if(!v)return void ce(t,n,ve(404,{pathname:h}));let{path:y,submission:b,error:w}=te(m.v7_normalizeFormMethod,!0,h,u);if(w)return void ce(t,n,w);let k=Re(v,y);T=!0===(u&&u.preventScrollReset),b&&xe(b.formMethod)?async function(t,n,a,o,u,c){if(se(),W.delete(t),!o.route.action&&!o.route.lazy){let e=ve(405,{method:c.formMethod,pathname:a,routeId:n});return void ce(t,n,e)}let h=L.fetchers.get(t),m=function(e,t){let n={state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0," _hasFetcherDoneAnything ":!0};return n}(c,h);L.fetchers.set(t,m),Q({fetchers:new Map(L.fetchers)});let v=new AbortController,y=ue(e.history,a,v.signal,c);F.set(t,v);let b=I,w=await ie("action",y,o,u,d,l,p);if(y.signal.aborted)return void(F.get(t)===v&&F.delete(t));if(ke(w)){if(F.delete(t),j>b){let e=Te(void 0);return L.fetchers.set(t,e),void Q({fetchers:new Map(L.fetchers)})}{B.add(t);let e=ze(c);return L.fetchers.set(t,e),Q({fetchers:new Map(L.fetchers)}),oe(L,w,{submission:c,isFetchActionRedirect:!0})}}if(we(w))return void ce(t,n,w.error);if(be(w))throw ve(400,{type:"defer-action"});let k=L.navigation.location||L.location,S=ue(e.history,k,v.signal),E=s||f,x="idle"!==L.navigation.state?g(E,L.navigation.location,p):L.matches;i(x,"Didn't find any matches after fetcher action");let C=++I;A.set(t,C);let _=ze(c,w.data);L.fetchers.set(t,_);let[R,z]=re(e.history,L,x,c,k,M,O,U,W,B,E,p,{[o.route.id]:w.data},void 0);z.filter((e=>e.key!==t)).forEach((e=>{let t=e.key,n=L.fetchers.get(t),r=ze(void 0,n?n.data:void 0);L.fetchers.set(t,r),F.has(t)&&ye(t),e.controller&&F.set(t,e.controller)})),Q({fetchers:new Map(L.fetchers)});let T=()=>z.forEach((e=>ye(e.key)));v.signal.addEventListener("abort",T);let{results:D,loaderResults:H,fetcherResults:V}=await le(L.matches,x,R,z,S);if(v.signal.aborted)return;v.signal.removeEventListener("abort",T),A.delete(t),F.delete(t),z.forEach((e=>F.delete(e.key)));let q=ge(D);if(q){if(q.idx>=R.length){let e=z[q.idx-R.length].key;B.add(e)}return oe(L,q.result)}let{loaderData:K,errors:Y}=fe(L,L.matches,R,H,void 0,z,V,$);if(L.fetchers.has(t)){let e=Te(w.data);L.fetchers.set(t,e)}let J=Pe(C);"loading"===L.navigation.state&&C>j?(i(N,"Expected pending action"),P&&P.abort(),Z(L.navigation.location,{matches:x,loaderData:K,errors:Y,fetchers:new Map(L.fetchers)})):(Q(r({errors:Y,loaderData:pe(L.loaderData,K,x,Y)},J||z.length>0?{fetchers:new Map(L.fetchers)}:{})),M=!1)}(t,n,y,k,v,b):(W.set(t,{routeId:n,path:y}),async function(t,n,r,a,o,u){let s=L.fetchers.get(t),c=ze(u,s?s.data:void 0);L.fetchers.set(t,c),Q({fetchers:new Map(L.fetchers)});let f=new AbortController,h=ue(e.history,r,f.signal);F.set(t,f);let m=I,v=await ie("loader",h,a,o,d,l,p);be(v)&&(v=await _e(v,h.signal,!0)||v);F.get(t)===f&&F.delete(t);if(h.signal.aborted)return;if(ke(v)){if(j>m){let e=Te(void 0);return L.fetchers.set(t,e),void Q({fetchers:new Map(L.fetchers)})}return B.add(t),void await oe(L,v)}if(we(v)){let e=he(L.matches,n);return L.fetchers.delete(t),void Q({fetchers:new Map(L.fetchers),errors:{[e.route.id]:v.error}})}i(!be(v),"Unhandled fetcher deferred data");let g=Te(v.data);L.fetchers.set(t,g),Q({fetchers:new Map(L.fetchers)})}(t,n,y,k,v,b))},revalidate:function(){se(),Q({revalidation:"loading"}),"submitting"!==L.navigation.state&&("idle"!==L.navigation.state?ne(N||L.historyAction,L.navigation.location,{overrideNavigation:L.navigation}):ne(L.historyAction,L.location,{startUninterruptedRevalidation:!0}))},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:ae,deleteFetcher:de,dispose:function(){y&&y(),b.clear(),P&&P.abort(),L.fetchers.forEach(((e,t)=>de(t))),L.blockers.forEach(((e,t)=>De(t)))},getBlocker:function(e,t){let n=L.blockers.get(e)||J;return H.get(e)!==t&&H.set(e,t),n},deleteBlocker:De,_internalFetchControllers:F,_internalActiveDeferreds:$,_internalSetRoutes:function(e){d={},s=v(e,l,void 0,d)}},_}Symbol("deferred");function ee(e,t,n,r,a,o,l){let i,u;if(null!=o&&"path"!==l){i=[];for(let e of t)if(i.push(e),e.route.id===o){u=e;break}}else i=t,u=t[t.length-1];let s=M(a||".",D(i).map((e=>e.pathnameBase)),z(e.pathname,n)||e.pathname,"path"===l);return null==a&&(s.search=e.search,s.hash=e.hash),null!=a&&""!==a&&"."!==a||!u||!u.route.index||Pe(s.search)||(s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index"),r&&"/"!==n&&(s.pathname="/"===s.pathname?n:O([n,s.pathname])),d(s)}function te(e,t,n,r){if(!r||!function(e){return null!=e&&("formData"in e&&null!=e.formData||"body"in e&&void 0!==e.body)}(r))return{path:n};if(r.formMethod&&!Ee(r.formMethod))return{path:n,error:ve(405,{method:r.formMethod})};let a,o,l=()=>({path:n,error:ve(400,{type:"invalid-body"})}),u=r.formMethod||"get",s=e?u.toUpperCase():u.toLowerCase(),c=ye(n);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!xe(s))return l();let e="string"===typeof r.body?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce(((e,t)=>{let[n,r]=t;return""+e+n+"="+r+"\n"}),""):String(r.body);return{path:n,submission:{formMethod:s,formAction:c,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===r.formEncType){if(!xe(s))return l();try{let e="string"===typeof r.body?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:s,formAction:c,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(m){return l()}}}if(i("function"===typeof FormData,"FormData is not available in this environment"),r.formData)a=se(r.formData),o=r.formData;else if(r.body instanceof FormData)a=se(r.body),o=r.body;else if(r.body instanceof URLSearchParams)a=r.body,o=ce(a);else if(null==r.body)a=new URLSearchParams,o=new FormData;else try{a=new URLSearchParams(r.body),o=ce(a)}catch(m){return l()}let p={formMethod:s,formAction:c,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:o,json:void 0,text:void 0};if(xe(p.formMethod))return{path:n,submission:p};let h=f(n);return t&&h.search&&Pe(h.search)&&a.append("index",""),h.search="?"+a,{path:d(h),submission:p}}function ne(e,t){let n=e;if(t){let r=e.findIndex((e=>e.route.id===t));r>=0&&(n=e.slice(0,r))}return n}function re(e,t,n,a,o,l,i,u,s,c,d,f,p,h){let m=h?Object.values(h)[0]:p?Object.values(p)[0]:void 0,v=e.createURL(t.location),y=e.createURL(o),b=h?Object.keys(h)[0]:void 0,w=ne(n,b).filter(((e,n)=>{if(e.route.lazy)return!0;if(null==e.route.loader)return!1;if(function(e,t,n){let r=!t||n.route.id!==t.route.id,a=void 0===e[n.route.id];return r||a}(t.loaderData,t.matches[n],e)||i.some((t=>t===e.route.id)))return!0;let o=t.matches[n],u=e;return oe(e,r({currentUrl:v,currentParams:o.params,nextUrl:y,nextParams:u.params},a,{actionResult:m,defaultShouldRevalidate:l||v.pathname+v.search===y.pathname+y.search||v.search!==y.search||ae(o,u)}))})),k=[];return s.forEach(((e,o)=>{if(!n.some((t=>t.route.id===e.routeId)))return;let i=g(d,e.path,f);if(!i)return void k.push({key:o,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let s=t.fetchers.get(o),p=Re(i,e.path),h=!1;h=!c.has(o)&&(!!u.includes(o)||(s&&"idle"!==s.state&&void 0===s.data?l:oe(p,r({currentUrl:v,currentParams:t.matches[t.matches.length-1].params,nextUrl:y,nextParams:n[n.length-1].params},a,{actionResult:m,defaultShouldRevalidate:l})))),h&&k.push({key:o,routeId:e.routeId,path:e.path,matches:i,match:p,controller:new AbortController})})),[w,k]}function ae(e,t){let n=e.route.path;return e.pathname!==t.pathname||null!=n&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function oe(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if("boolean"===typeof n)return n}return t.defaultShouldRevalidate}async function le(e,t,n){if(!e.lazy)return;let a=await e.lazy();if(!e.lazy)return;let o=n[e.id];i(o,"No route found in manifest");let l={};for(let r in a){let e=void 0!==o[r]&&"hasErrorBoundary"!==r;u(!e,'Route "'+o.id+'" has a static property "'+r+'" defined but its lazy function is also returning a value for this property. The lazy route property "'+r+'" will be ignored.'),e||m.has(r)||(l[r]=a[r])}Object.assign(o,l),Object.assign(o,r({},t(o),{lazy:void 0}))}async function ie(e,t,n,r,a,o,l,u){let s,c,d;void 0===u&&(u={});let f=e=>{let r,a=new Promise(((e,t)=>r=t));return d=()=>r(),t.signal.addEventListener("abort",d),Promise.race([e({request:t,params:n.params,context:u.requestContext}),a])};try{let r=n.route[e];if(n.route.lazy)if(r){c=(await Promise.all([f(r),le(n.route,o,a)]))[0]}else{if(await le(n.route,o,a),r=n.route[e],!r){if("action"===e){let e=new URL(t.url),r=e.pathname+e.search;throw ve(405,{method:t.method,pathname:r,routeId:n.route.id})}return{type:h.data,data:void 0}}c=await f(r)}else{if(!r){let e=new URL(t.url);throw ve(404,{pathname:e.pathname+e.search})}c=await f(r)}i(void 0!==c,"You defined "+("action"===e?"an action":"a loader")+' for route "'+n.route.id+"\" but didn't return anything from your `"+e+"` function. Please return a value or `null`.")}catch(v){s=h.error,c=v}finally{d&&t.signal.removeEventListener("abort",d)}if(Se(c)){let e,a=c.status;if(Q.has(a)){let e=c.headers.get("Location");if(i(e,"Redirects returned/thrown from loaders/actions must have a Location header"),X.test(e)){if(!u.isStaticRequest){let n=new URL(t.url),r=e.startsWith("//")?new URL(n.protocol+e):new URL(e),a=null!=z(r.pathname,l);r.origin===n.origin&&a&&(e=r.pathname+r.search+r.hash)}}else e=ee(new URL(t.url),r.slice(0,r.indexOf(n)+1),l,!0,e);if(u.isStaticRequest)throw c.headers.set("Location",e),c;return{type:h.redirect,status:a,location:e,revalidate:null!==c.headers.get("X-Remix-Revalidate")}}if(u.isRouteRequest)throw{type:s||h.data,response:c};let o=c.headers.get("Content-Type");return e=o&&/\bapplication\/json\b/.test(o)?await c.json():await c.text(),s===h.error?{type:s,error:new A(a,c.statusText,e),headers:c.headers}:{type:h.data,data:e,statusCode:c.status,headers:c.headers}}return s===h.error?{type:s,error:c}:function(e){let t=e;return t&&"object"===typeof t&&"object"===typeof t.data&&"function"===typeof t.subscribe&&"function"===typeof t.cancel&&"function"===typeof t.resolveData}(c)?{type:h.deferred,deferredData:c,statusCode:null==(p=c.init)?void 0:p.status,headers:(null==(m=c.init)?void 0:m.headers)&&new Headers(c.init.headers)}:{type:h.data,data:c};var p,m}function ue(e,t,n,r){let a=e.createURL(ye(t)).toString(),o={signal:n};if(r&&xe(r.formMethod)){let{formMethod:e,formEncType:t}=r;o.method=e.toUpperCase(),"application/json"===t?(o.headers=new Headers({"Content-Type":t}),o.body=JSON.stringify(r.json)):"text/plain"===t?o.body=r.text:"application/x-www-form-urlencoded"===t&&r.formData?o.body=se(r.formData):o.body=r.formData}return new Request(a,o)}function se(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,"string"===typeof r?r:r.name);return t}function ce(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function de(e,t,n,r,a){let o,l={},u=null,s=!1,c={};return n.forEach(((n,d)=>{let f=t[d].route.id;if(i(!ke(n),"Cannot handle redirect results in processLoaderData"),we(n)){let t=he(e,f),a=n.error;r&&(a=Object.values(r)[0],r=void 0),u=u||{},null==u[t.route.id]&&(u[t.route.id]=a),l[f]=void 0,s||(s=!0,o=B(n.error)?n.error.status:500),n.headers&&(c[f]=n.headers)}else be(n)?(a.set(f,n.deferredData),l[f]=n.deferredData.data):l[f]=n.data,null==n.statusCode||200===n.statusCode||s||(o=n.statusCode),n.headers&&(c[f]=n.headers)})),r&&(u=r,l[Object.keys(r)[0]]=void 0),{loaderData:l,errors:u,statusCode:o||200,loaderHeaders:c}}function fe(e,t,n,a,o,l,u,s){let{loaderData:c,errors:d}=de(t,n,a,o,s);for(let f=0;fe.route.id===t))+1):[...e]).reverse().find((e=>!0===e.route.hasErrorBoundary))||e[0]}function me(e){let t=e.find((e=>e.index||!e.path||"/"===e.path))||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ve(e,t){let{pathname:n,routeId:r,method:a,type:o}=void 0===t?{}:t,l="Unknown Server Error",i="Unknown @remix-run/router error";return 400===e?(l="Bad Request",a&&n&&r?i="You made a "+a+' request to "'+n+'" but did not provide a `loader` for route "'+r+'", so there is no way to handle the request.':"defer-action"===o?i="defer() is not supported in actions":"invalid-body"===o&&(i="Unable to encode submission body")):403===e?(l="Forbidden",i='Route "'+r+'" does not match URL "'+n+'"'):404===e?(l="Not Found",i='No route matches URL "'+n+'"'):405===e&&(l="Method Not Allowed",a&&n&&r?i="You made a "+a.toUpperCase()+' request to "'+n+'" but did not provide an `action` for route "'+r+'", so there is no way to handle the request.':a&&(i='Invalid request method "'+a.toUpperCase()+'"')),new A(e||500,l,new Error(i),!0)}function ge(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(ke(n))return{result:n,idx:t}}}function ye(e){return d(r({},"string"===typeof e?f(e):e,{hash:""}))}function be(e){return e.type===h.deferred}function we(e){return e.type===h.error}function ke(e){return(e&&e.type)===h.redirect}function Se(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"object"===typeof e.headers&&"undefined"!==typeof e.body}function Ee(e){return V.has(e.toLowerCase())}function xe(e){return $.has(e.toLowerCase())}async function Ce(e,t,n,r,a,o){for(let l=0;le.route.id===s.route.id)),d=null!=c&&!ae(c,s)&&void 0!==(o&&o[s.route.id]);if(be(u)&&(a||d)){let e=r[l];i(e,"Expected an AbortSignal for revalidating fetcher deferred result"),await _e(u,e,a).then((e=>{e&&(n[l]=e||n[l])}))}}}async function _e(e,t,n){if(void 0===n&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:h.data,data:e.deferredData.unwrappedData}}catch(r){return{type:h.error,error:r}}return{type:h.data,data:e.deferredData.data}}}function Pe(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function Re(e,t){let n="string"===typeof t?f(t).search:t.search;if(e[e.length-1].route.index&&Pe(n||""))return e[e.length-1];let r=D(e);return r[r.length-1]}function Le(e){let{formMethod:t,formAction:n,formEncType:r,text:a,formData:o,json:l}=e;if(t&&n&&r)return null!=a?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:a}:null!=o?{formMethod:t,formAction:n,formEncType:r,formData:o,json:void 0,text:void 0}:void 0!==l?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:l,text:void 0}:void 0}function Ne(e,t){if(t){return{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}return{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function ze(e,t){if(e){return{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t," _hasFetcherDoneAnything ":!0}}return{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t," _hasFetcherDoneAnything ":!0}}function Te(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e," _hasFetcherDoneAnything ":!0}}},1694:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t{"use strict";n.d(t,{Z:()=>s});var r=n(1694),a=n.n(r),o=n(2791),l=n(162),i=n(184);const u=o.forwardRef(((e,t)=>{let{bsPrefix:n,variant:r,animation:o="border",size:u,as:s="div",className:c,...d}=e;n=(0,l.vE)(n,"spinner");const f="".concat(n,"-").concat(o);return(0,i.jsx)(s,{ref:t,...d,className:a()(c,f,u&&"".concat(f,"-").concat(u),r&&"text-".concat(r))})}));u.displayName="Spinner";const s=u},162:(e,t,n)=>{"use strict";n.d(t,{SC:()=>f,pi:()=>c,vE:()=>s,zG:()=>d});var r=n(2791);n(184);const a=["xxl","xl","lg","md","sm","xs"],o="xs",l=r.createContext({prefixes:{},breakpoints:a,minBreakpoint:o}),{Consumer:i,Provider:u}=l;function s(e,t){const{prefixes:n}=(0,r.useContext)(l);return e||n[t]||t}function c(){const{breakpoints:e}=(0,r.useContext)(l);return e}function d(){const{minBreakpoint:e}=(0,r.useContext)(l);return e}function f(){const{dir:e}=(0,r.useContext)(l);return"rtl"===e}},4463:(e,t,n)=>{"use strict";var r=n(2791),a=n(5296);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n