@prosophia/personal-portfolio 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -54,20 +54,16 @@ __export(index_exports, {
54
54
  });
55
55
  module.exports = __toCommonJS(index_exports);
56
56
 
57
- // src/components/Divider.module.css
58
- var Divider_default = {};
59
-
60
57
  // src/components/Divider.tsx
58
+ var import_Divider = __toESM(require("./Divider.module.css"));
61
59
  var import_jsx_runtime = require("react/jsx-runtime");
62
60
  function Divider() {
63
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("hr", { className: Divider_default.divider });
61
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("hr", { className: import_Divider.default.divider });
64
62
  }
65
63
 
66
64
  // src/components/Experience.tsx
67
65
  var import_framer_motion = require("framer-motion");
68
-
69
- // src/components/Experience.module.css
70
- var Experience_default = {};
66
+ var import_Experience = __toESM(require("./Experience.module.css"));
71
67
 
72
68
  // src/styles/motion.ts
73
69
  var easeOutExpo = [0.16, 1, 0.3, 1];
@@ -542,19 +538,19 @@ function ExperienceSection({ experiences }) {
542
538
  import_framer_motion.motion.section,
543
539
  {
544
540
  id: "cv",
545
- className: Experience_default.section,
541
+ className: import_Experience.default.section,
546
542
  initial: "hidden",
547
543
  whileInView: "visible",
548
544
  viewport: { once: true, amount: 0.1 },
549
545
  variants: staggerContainer,
550
546
  children: [
551
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_framer_motion.motion.div, { className: Experience_default.header, variants: fadeInUp, children: [
552
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { className: Experience_default.title, children: "Experience & Education" }),
547
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_framer_motion.motion.div, { className: import_Experience.default.header, variants: fadeInUp, children: [
548
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { className: import_Experience.default.title, children: "Experience & Education" }),
553
549
  /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
554
550
  import_framer_motion.motion.a,
555
551
  {
556
552
  href: settings?.resumeUrl || "#",
557
- className: Experience_default.downloadButton,
553
+ className: import_Experience.default.downloadButton,
558
554
  whileHover: hoverLift,
559
555
  whileTap: tapScale,
560
556
  children: [
@@ -564,24 +560,24 @@ function ExperienceSection({ experiences }) {
564
560
  }
565
561
  )
566
562
  ] }),
567
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: Experience_default.timeline, children: displayExperiences.map((exp) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
563
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: import_Experience.default.timeline, children: displayExperiences.map((exp) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
568
564
  import_framer_motion.motion.div,
569
565
  {
570
- className: Experience_default.timelineItem,
566
+ className: import_Experience.default.timelineItem,
571
567
  variants: fadeInUp,
572
568
  children: [
573
569
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
574
570
  "div",
575
571
  {
576
- className: `${Experience_default.timelineDot} ${exp.isCurrent ? Experience_default.timelineDotCurrent : ""}`
572
+ className: `${import_Experience.default.timelineDot} ${exp.isCurrent ? import_Experience.default.timelineDotCurrent : ""}`
577
573
  }
578
574
  ),
579
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: Experience_default.timelineHeader, children: [
580
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { className: Experience_default.timelineTitle, children: exp.title }),
581
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: Experience_default.timelinePeriod, children: exp.period })
575
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: import_Experience.default.timelineHeader, children: [
576
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { className: import_Experience.default.timelineTitle, children: exp.title }),
577
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: import_Experience.default.timelinePeriod, children: exp.period })
582
578
  ] }),
583
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: Experience_default.timelineOrg, children: exp.organization }),
584
- exp.description && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: Experience_default.timelineDescription, children: exp.description })
579
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: import_Experience.default.timelineOrg, children: exp.organization }),
580
+ exp.description && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: import_Experience.default.timelineDescription, children: exp.description })
585
581
  ]
586
582
  },
587
583
  exp._id
@@ -593,24 +589,20 @@ function ExperienceSection({ experiences }) {
593
589
 
594
590
  // src/components/Footer.tsx
595
591
  var import_framer_motion2 = require("framer-motion");
596
-
597
- // src/components/Footer.module.css
598
- var Footer_default = {};
599
-
600
- // src/components/Footer.tsx
592
+ var import_Footer = __toESM(require("./Footer.module.css"));
601
593
  var import_jsx_runtime5 = require("react/jsx-runtime");
602
594
  function Footer() {
603
595
  const { settings, profile } = useSiteSettings();
604
596
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
605
597
  import_framer_motion2.motion.footer,
606
598
  {
607
- className: Footer_default.footer,
599
+ className: import_Footer.default.footer,
608
600
  initial: "hidden",
609
601
  whileInView: "visible",
610
602
  viewport: { once: true },
611
603
  variants: fadeInUp,
612
604
  children: [
613
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { className: Footer_default.copyright, children: [
605
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { className: import_Footer.default.copyright, children: [
614
606
  "\xA9 ",
615
607
  (/* @__PURE__ */ new Date()).getFullYear(),
616
608
  " ",
@@ -619,7 +611,7 @@ function Footer() {
619
611
  " ",
620
612
  settings?.footerText || "Built with Passion."
621
613
  ] }),
622
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { className: Footer_default.updated, children: [
614
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { className: import_Footer.default.updated, children: [
623
615
  "Last updated: ",
624
616
  (/* @__PURE__ */ new Date()).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" })
625
617
  ] })
@@ -632,11 +624,7 @@ function Footer() {
632
624
  var import_react3 = require("react");
633
625
  var import_link = __toESM(require("next/link"));
634
626
  var import_framer_motion3 = require("framer-motion");
635
-
636
- // src/components/Header.module.css
637
- var Header_default = {};
638
-
639
- // src/components/Header.tsx
627
+ var import_Header = __toESM(require("./Header.module.css"));
640
628
  var import_jsx_runtime6 = require("react/jsx-runtime");
641
629
  var navLinks = [
642
630
  { href: "#about", label: "About" },
@@ -650,25 +638,25 @@ function Header() {
650
638
  const [mobileMenuOpen, setMobileMenuOpen] = (0, import_react3.useState)(false);
651
639
  const socialLinks = settings?.socialLinks;
652
640
  const contactEmail = settings?.contactEmail;
653
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("header", { className: Header_default.header, children: [
654
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: Header_default.container, children: [
655
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_link.default, { href: "/", className: Header_default.logo, children: [
656
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: Header_default.logoName, children: profile?.name || "David" }),
657
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: Header_default.logoTitle, children: profile?.title || "PhD Candidate" })
641
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("header", { className: import_Header.default.header, children: [
642
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: import_Header.default.container, children: [
643
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_link.default, { href: "/", className: import_Header.default.logo, children: [
644
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: import_Header.default.logoName, children: profile?.name || "David" }),
645
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: import_Header.default.logoTitle, children: profile?.title || "PhD Candidate" })
658
646
  ] }),
659
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("nav", { className: Header_default.nav, children: navLinks.map((link) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_link.default, { href: link.href, className: Header_default.navLink, children: [
647
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("nav", { className: import_Header.default.nav, children: navLinks.map((link) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_link.default, { href: link.href, className: import_Header.default.navLink, children: [
660
648
  link.label,
661
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: Header_default.navLinkUnderline })
649
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: import_Header.default.navLinkUnderline })
662
650
  ] }, link.href)) }),
663
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: Header_default.actions, children: [
664
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: Header_default.socialLinks, children: [
651
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: import_Header.default.actions, children: [
652
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: import_Header.default.socialLinks, children: [
665
653
  (socialLinks?.twitter || !settings) && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
666
654
  "a",
667
655
  {
668
656
  href: socialLinks?.twitter || "https://twitter.com",
669
657
  target: "_blank",
670
658
  rel: "noopener noreferrer",
671
- className: Header_default.socialLink,
659
+ className: import_Header.default.socialLink,
672
660
  "aria-label": "Twitter",
673
661
  children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84" }) })
674
662
  }
@@ -679,7 +667,7 @@ function Header() {
679
667
  href: socialLinks?.github || "https://github.com",
680
668
  target: "_blank",
681
669
  rel: "noopener noreferrer",
682
- className: Header_default.socialLink,
670
+ className: import_Header.default.socialLink,
683
671
  "aria-label": "GitHub",
684
672
  children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
685
673
  "path",
@@ -697,7 +685,7 @@ function Header() {
697
685
  href: socialLinks?.linkedin || "https://linkedin.com",
698
686
  target: "_blank",
699
687
  rel: "noopener noreferrer",
700
- className: Header_default.socialLink,
688
+ className: import_Header.default.socialLink,
701
689
  "aria-label": "LinkedIn",
702
690
  children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
703
691
  "path",
@@ -713,7 +701,7 @@ function Header() {
713
701
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
714
702
  import_framer_motion3.motion.button,
715
703
  {
716
- className: Header_default.themeToggle,
704
+ className: import_Header.default.themeToggle,
717
705
  onClick: toggleTheme,
718
706
  whileHover: hoverLift,
719
707
  whileTap: tapScale,
@@ -763,19 +751,19 @@ function Header() {
763
751
  import_framer_motion3.motion.a,
764
752
  {
765
753
  href: contactEmail ? `mailto:${contactEmail}` : "mailto:contact@example.com",
766
- className: Header_default.contactButton,
754
+ className: import_Header.default.contactButton,
767
755
  whileHover: hoverLift,
768
756
  whileTap: tapScale,
769
757
  children: [
770
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: `material-symbols-outlined ${Header_default.contactButtonIcon}`, children: "mail" }),
771
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: Header_default.contactButtonText, children: "Contact" })
758
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: `material-symbols-outlined ${import_Header.default.contactButtonIcon}`, children: "mail" }),
759
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: import_Header.default.contactButtonText, children: "Contact" })
772
760
  ]
773
761
  }
774
762
  ),
775
763
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
776
764
  "button",
777
765
  {
778
- className: Header_default.mobileMenuButton,
766
+ className: import_Header.default.mobileMenuButton,
779
767
  onClick: () => setMobileMenuOpen(!mobileMenuOpen),
780
768
  "aria-label": "Toggle menu",
781
769
  children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
@@ -807,7 +795,7 @@ function Header() {
807
795
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_framer_motion3.AnimatePresence, { children: mobileMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
808
796
  import_framer_motion3.motion.nav,
809
797
  {
810
- className: Header_default.mobileNav,
798
+ className: import_Header.default.mobileNav,
811
799
  initial: { opacity: 0, y: -10 },
812
800
  animate: { opacity: 1, y: 0 },
813
801
  exit: { opacity: 0, y: -10 },
@@ -816,7 +804,7 @@ function Header() {
816
804
  import_link.default,
817
805
  {
818
806
  href: link.href,
819
- className: Header_default.mobileNavLink,
807
+ className: import_Header.default.mobileNavLink,
820
808
  onClick: () => setMobileMenuOpen(false),
821
809
  children: link.label
822
810
  },
@@ -830,9 +818,7 @@ function Header() {
830
818
  // src/components/Hero.tsx
831
819
  var import_framer_motion4 = require("framer-motion");
832
820
  var import_react4 = require("@portabletext/react");
833
-
834
- // src/components/Hero.module.css
835
- var Hero_default = {};
821
+ var import_Hero = __toESM(require("./Hero.module.css"));
836
822
 
837
823
  // src/lib/sanity.ts
838
824
  var import_image_url = __toESM(require("@sanity/image-url"));
@@ -889,7 +875,7 @@ var portableTextComponents = {
889
875
  strong: ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("strong", { children }),
890
876
  highlight: ({ children, value }) => {
891
877
  if (value?.style === "underline") {
892
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: Hero_default.underline, children });
878
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: import_Hero.default.underline, children });
893
879
  }
894
880
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("strong", { children });
895
881
  }
@@ -907,51 +893,51 @@ function Hero({ updates }) {
907
893
  import_framer_motion4.motion.section,
908
894
  {
909
895
  id: "about",
910
- className: Hero_default.hero,
896
+ className: import_Hero.default.hero,
911
897
  initial: "hidden",
912
898
  whileInView: "visible",
913
899
  viewport: { once: true, amount: 0.1 },
914
900
  variants: staggerContainer,
915
901
  children: [
916
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: Hero_default.content, children: [
917
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: Hero_default.imageWrapper, children: [
902
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: import_Hero.default.content, children: [
903
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: import_Hero.default.imageWrapper, children: [
918
904
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
919
905
  import_framer_motion4.motion.div,
920
906
  {
921
- className: Hero_default.profileImage,
907
+ className: import_Hero.default.profileImage,
922
908
  style: {
923
909
  backgroundImage: `url("${profileImageUrl}")`
924
910
  },
925
911
  variants: blurFade
926
912
  }
927
913
  ),
928
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: Hero_default.mobileInfo, children: [
929
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h1", { className: Hero_default.mobileInfoName, children: profile?.name || "David" }),
930
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("p", { className: Hero_default.mobileInfoTitle, children: [
914
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: import_Hero.default.mobileInfo, children: [
915
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h1", { className: import_Hero.default.mobileInfoName, children: profile?.name || "David" }),
916
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("p", { className: import_Hero.default.mobileInfoTitle, children: [
931
917
  profile?.title || "PhD Candidate",
932
918
  " ",
933
919
  profile?.institution && `at ${profile.institution}`
934
920
  ] })
935
921
  ] })
936
922
  ] }),
937
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_framer_motion4.motion.div, { className: Hero_default.textContent, variants: staggerContainer, children: [
923
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_framer_motion4.motion.div, { className: import_Hero.default.textContent, variants: staggerContainer, children: [
938
924
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { children: [
939
- profile?.availabilityBadge && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion4.motion.span, { className: Hero_default.badge, variants: fadeInUp, children: profile.availabilityBadge }),
940
- !profile?.availabilityBadge && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion4.motion.span, { className: Hero_default.badge, variants: fadeInUp, children: "Available for 2024 Roles" }),
941
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion4.motion.h2, { className: Hero_default.headline, variants: fadeInUp, children: profile?.headline ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
925
+ profile?.availabilityBadge && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion4.motion.span, { className: import_Hero.default.badge, variants: fadeInUp, children: profile.availabilityBadge }),
926
+ !profile?.availabilityBadge && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion4.motion.span, { className: import_Hero.default.badge, variants: fadeInUp, children: "Available for 2024 Roles" }),
927
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion4.motion.h2, { className: import_Hero.default.headline, variants: fadeInUp, children: profile?.headline ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
942
928
  profile.headline.beforeHighlight,
943
929
  " ",
944
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: Hero_default.highlight, children: profile.headline.highlight }),
930
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: import_Hero.default.highlight, children: profile.headline.highlight }),
945
931
  " ",
946
932
  profile.headline.afterHighlight
947
933
  ] }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
948
934
  "Building the ",
949
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: Hero_default.highlight, children: "future of AI" }),
935
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: import_Hero.default.highlight, children: "future of AI" }),
950
936
  " ",
951
937
  "with robust & scalable vision systems."
952
938
  ] }) })
953
939
  ] }),
954
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion4.motion.div, { className: Hero_default.description, variants: fadeInUp, children: profile?.bio ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react4.PortableText, { value: profile.bio, components: portableTextComponents }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
940
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion4.motion.div, { className: import_Hero.default.description, variants: fadeInUp, children: profile?.bio ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react4.PortableText, { value: profile.bio, components: portableTextComponents }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
955
941
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("p", { children: [
956
942
  "I am a PhD candidate specializing in",
957
943
  " ",
@@ -964,20 +950,20 @@ function Hero({ updates }) {
964
950
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("p", { children: [
965
951
  "Previously, I interned at",
966
952
  " ",
967
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: Hero_default.underline, children: "Google DeepMind" }),
953
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: import_Hero.default.underline, children: "Google DeepMind" }),
968
954
  " and",
969
955
  " ",
970
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: Hero_default.underline, children: "Meta AI" }),
956
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: import_Hero.default.underline, children: "Meta AI" }),
971
957
  ". I am passionate about open-source and making AI accessible to everyone."
972
958
  ] })
973
959
  ] }) }),
974
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_framer_motion4.motion.div, { className: Hero_default.links, variants: fadeInUp, children: [
975
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("a", { href: settings?.resumeUrl || "#", className: Hero_default.link, children: [
976
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: `material-symbols-outlined ${Hero_default.linkIcon}`, children: "download" }),
960
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_framer_motion4.motion.div, { className: import_Hero.default.links, variants: fadeInUp, children: [
961
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("a", { href: settings?.resumeUrl || "#", className: import_Hero.default.link, children: [
962
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: `material-symbols-outlined ${import_Hero.default.linkIcon}`, children: "download" }),
977
963
  "Download CV"
978
964
  ] }),
979
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("a", { href: settings?.socialLinks?.googleScholar || "#", className: Hero_default.link, children: [
980
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: `material-symbols-outlined ${Hero_default.linkIcon}`, children: "school" }),
965
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("a", { href: settings?.socialLinks?.googleScholar || "#", className: import_Hero.default.link, children: [
966
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: `material-symbols-outlined ${import_Hero.default.linkIcon}`, children: "school" }),
981
967
  "Google Scholar"
982
968
  ] })
983
969
  ] })
@@ -986,21 +972,21 @@ function Hero({ updates }) {
986
972
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
987
973
  import_framer_motion4.motion.div,
988
974
  {
989
- className: `glass-panel ${Hero_default.updates}`,
975
+ className: `glass-panel ${import_Hero.default.updates}`,
990
976
  variants: fadeInUp,
991
977
  children: [
992
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("h3", { className: Hero_default.updatesHeader, children: [
993
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: `material-symbols-outlined ${Hero_default.updatesIcon}`, children: "campaign" }),
978
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("h3", { className: import_Hero.default.updatesHeader, children: [
979
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: `material-symbols-outlined ${import_Hero.default.updatesIcon}`, children: "campaign" }),
994
980
  "Latest Updates"
995
981
  ] }),
996
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: Hero_default.updatesList, children: displayUpdates.map((update) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
982
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: import_Hero.default.updatesList, children: displayUpdates.map((update) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
997
983
  import_framer_motion4.motion.div,
998
984
  {
999
- className: Hero_default.updateItem,
985
+ className: import_Hero.default.updateItem,
1000
986
  variants: fadeInUp,
1001
987
  children: [
1002
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: Hero_default.updateDate, children: formatDate(update.date) }),
1003
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: Hero_default.updateContent, children: [
988
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: import_Hero.default.updateDate, children: formatDate(update.date) }),
989
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: import_Hero.default.updateContent, children: [
1004
990
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h4", { children: update.title }),
1005
991
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { children: update.description })
1006
992
  ] })
@@ -1019,11 +1005,7 @@ function Hero({ updates }) {
1019
1005
  // src/components/Projects.tsx
1020
1006
  var import_link2 = __toESM(require("next/link"));
1021
1007
  var import_framer_motion5 = require("framer-motion");
1022
-
1023
- // src/components/Projects.module.css
1024
- var Projects_default = {};
1025
-
1026
- // src/components/Projects.tsx
1008
+ var import_Projects = __toESM(require("./Projects.module.css"));
1027
1009
  var import_jsx_runtime8 = require("react/jsx-runtime");
1028
1010
  var defaultProjects = [
1029
1011
  {
@@ -1057,29 +1039,29 @@ function Projects({ projects }) {
1057
1039
  import_framer_motion5.motion.section,
1058
1040
  {
1059
1041
  id: "projects",
1060
- className: Projects_default.section,
1042
+ className: import_Projects.default.section,
1061
1043
  initial: "hidden",
1062
1044
  whileInView: "visible",
1063
1045
  viewport: { once: true, amount: 0.1 },
1064
1046
  variants: staggerContainer,
1065
1047
  children: [
1066
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_framer_motion5.motion.h2, { className: Projects_default.title, variants: fadeInUp, children: "Selected Projects" }),
1067
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: Projects_default.grid, children: displayProjects.map((project, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_framer_motion5.motion.div, { variants: fadeInUp, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_link2.default, { href: `/projects/${project.slug}`, className: Projects_default.card, children: [
1048
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_framer_motion5.motion.h2, { className: import_Projects.default.title, variants: fadeInUp, children: "Selected Projects" }),
1049
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: import_Projects.default.grid, children: displayProjects.map((project, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_framer_motion5.motion.div, { variants: fadeInUp, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_link2.default, { href: `/projects/${project.slug}`, className: import_Projects.default.card, children: [
1068
1050
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1069
1051
  "div",
1070
1052
  {
1071
- className: Projects_default.cardImage,
1053
+ className: import_Projects.default.cardImage,
1072
1054
  style: { backgroundImage: `url('${getProjectImage(project, index)}')` },
1073
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: Projects_default.cardImageOverlay })
1055
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: import_Projects.default.cardImageOverlay })
1074
1056
  }
1075
1057
  ),
1076
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: Projects_default.cardContent, children: [
1077
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: Projects_default.cardHeader, children: [
1078
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { className: Projects_default.cardTitle, children: project.title }),
1079
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: Projects_default.cardLink, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "material-symbols-outlined", children: "open_in_new" }) })
1058
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: import_Projects.default.cardContent, children: [
1059
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: import_Projects.default.cardHeader, children: [
1060
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { className: import_Projects.default.cardTitle, children: project.title }),
1061
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: import_Projects.default.cardLink, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "material-symbols-outlined", children: "open_in_new" }) })
1080
1062
  ] }),
1081
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: Projects_default.cardDescription, children: project.shortDescription }),
1082
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: Projects_default.cardTags, children: project.tags?.map((tag) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: Projects_default.tag, children: tag }, tag)) })
1063
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: import_Projects.default.cardDescription, children: project.shortDescription }),
1064
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: import_Projects.default.cardTags, children: project.tags?.map((tag) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: import_Projects.default.tag, children: tag }, tag)) })
1083
1065
  ] })
1084
1066
  ] }) }, project._id)) })
1085
1067
  ]
@@ -1089,11 +1071,7 @@ function Projects({ projects }) {
1089
1071
 
1090
1072
  // src/components/Publications.tsx
1091
1073
  var import_framer_motion6 = require("framer-motion");
1092
-
1093
- // src/components/Publications.module.css
1094
- var Publications_default = {};
1095
-
1096
- // src/components/Publications.tsx
1074
+ var import_Publications = __toESM(require("./Publications.module.css"));
1097
1075
  var import_jsx_runtime9 = require("react/jsx-runtime");
1098
1076
  var defaultPublications = [
1099
1077
  {
@@ -1139,7 +1117,7 @@ function Publications({ publications }) {
1139
1117
  const displayPublications = publications.length > 0 ? publications : defaultPublications;
1140
1118
  const renderAuthors = (authors) => {
1141
1119
  return authors.map((author, index) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { children: [
1142
- author.isMe ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: Publications_default.cardAuthorHighlight, children: author.name }) : author.name,
1120
+ author.isMe ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: import_Publications.default.cardAuthorHighlight, children: author.name }) : author.name,
1143
1121
  index < authors.length - 1 && ", "
1144
1122
  ] }, index));
1145
1123
  };
@@ -1147,34 +1125,34 @@ function Publications({ publications }) {
1147
1125
  import_framer_motion6.motion.section,
1148
1126
  {
1149
1127
  id: "publications",
1150
- className: Publications_default.section,
1128
+ className: import_Publications.default.section,
1151
1129
  initial: "hidden",
1152
1130
  whileInView: "visible",
1153
1131
  viewport: { once: true, amount: 0.1 },
1154
1132
  variants: staggerContainer,
1155
1133
  children: [
1156
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_framer_motion6.motion.div, { className: Publications_default.header, variants: fadeInUp, children: [
1157
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h2", { className: Publications_default.title, children: "Publications" }),
1158
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("a", { href: settings?.socialLinks?.googleScholar || "#", className: Publications_default.scholarLink, children: "View Google Scholar ->" })
1134
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_framer_motion6.motion.div, { className: import_Publications.default.header, variants: fadeInUp, children: [
1135
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h2", { className: import_Publications.default.title, children: "Publications" }),
1136
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("a", { href: settings?.socialLinks?.googleScholar || "#", className: import_Publications.default.scholarLink, children: "View Google Scholar ->" })
1159
1137
  ] }),
1160
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: Publications_default.list, children: displayPublications.map((pub) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1138
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: import_Publications.default.list, children: displayPublications.map((pub) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1161
1139
  import_framer_motion6.motion.div,
1162
1140
  {
1163
- className: Publications_default.card,
1141
+ className: import_Publications.default.card,
1164
1142
  variants: fadeInUp,
1165
1143
  whileHover: { y: -2 },
1166
1144
  transition: { duration: 0.2 },
1167
- children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: Publications_default.cardContent, children: [
1168
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: Publications_default.cardInfo, children: [
1169
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { className: Publications_default.cardTitle, children: pub.title }),
1170
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: Publications_default.cardAuthors, children: renderAuthors(pub.authors) }),
1171
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: Publications_default.cardMeta, children: [
1172
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: Publications_default.cardVenue, children: pub.venue }),
1173
- pub.highlight && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: Publications_default.cardHighlight, children: [
1145
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: import_Publications.default.cardContent, children: [
1146
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: import_Publications.default.cardInfo, children: [
1147
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { className: import_Publications.default.cardTitle, children: pub.title }),
1148
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: import_Publications.default.cardAuthors, children: renderAuthors(pub.authors) }),
1149
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: import_Publications.default.cardMeta, children: [
1150
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: import_Publications.default.cardVenue, children: pub.venue }),
1151
+ pub.highlight && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: import_Publications.default.cardHighlight, children: [
1174
1152
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1175
1153
  "span",
1176
1154
  {
1177
- className: `material-symbols-outlined ${Publications_default.cardHighlightIcon}`,
1155
+ className: `material-symbols-outlined ${import_Publications.default.cardHighlightIcon}`,
1178
1156
  children: "star"
1179
1157
  }
1180
1158
  ),
@@ -1182,22 +1160,22 @@ function Publications({ publications }) {
1182
1160
  ] })
1183
1161
  ] })
1184
1162
  ] }),
1185
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: Publications_default.cardActions, children: [
1186
- (pub.pdfUrl || pub.pdfFileUrl) && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("a", { href: pub.pdfUrl || pub.pdfFileUrl, className: Publications_default.actionButton, children: [
1163
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: import_Publications.default.cardActions, children: [
1164
+ (pub.pdfUrl || pub.pdfFileUrl) && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("a", { href: pub.pdfUrl || pub.pdfFileUrl, className: import_Publications.default.actionButton, children: [
1187
1165
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1188
1166
  "span",
1189
1167
  {
1190
- className: `material-symbols-outlined ${Publications_default.actionIcon}`,
1168
+ className: `material-symbols-outlined ${import_Publications.default.actionIcon}`,
1191
1169
  children: "picture_as_pdf"
1192
1170
  }
1193
1171
  ),
1194
1172
  "PDF"
1195
1173
  ] }),
1196
- pub.codeUrl && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("a", { href: pub.codeUrl, className: Publications_default.actionButton, children: [
1174
+ pub.codeUrl && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("a", { href: pub.codeUrl, className: import_Publications.default.actionButton, children: [
1197
1175
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1198
1176
  "span",
1199
1177
  {
1200
- className: `material-symbols-outlined ${Publications_default.actionIcon}`,
1178
+ className: `material-symbols-outlined ${import_Publications.default.actionIcon}`,
1201
1179
  children: "code"
1202
1180
  }
1203
1181
  ),