diff --git a/package.json b/package.json index 9deeca9..3e37060 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@radix-ui/react-select": "^2.1.2", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-toast": "^1.2.2", "@radix-ui/react-tooltip": "^1.1.3", "@react-pdf/renderer": "^3.4.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8dac78d..ee056ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,6 +35,9 @@ importers: '@radix-ui/react-slot': specifier: ^1.1.0 version: 1.1.0(@types/react@18.3.12)(react@18.3.1) + '@radix-ui/react-tabs': + specifier: ^1.1.1 + version: 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-toast': specifier: ^1.2.2 version: 1.2.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) diff --git a/public/resume.pdf b/public/resume.pdf new file mode 100644 index 0000000..3b35691 Binary files /dev/null and b/public/resume.pdf differ diff --git a/src/app/cv/page.tsx b/src/app/cv/page.tsx index 5c4be5e..f2a20ca 100644 --- a/src/app/cv/page.tsx +++ b/src/app/cv/page.tsx @@ -1,8 +1,17 @@ 'use client'; +import { useState } from 'react'; +import { Tabs, TabsList, TabsTrigger, TabsContent } from '~/components/ui/tabs'; +import { Badge } from '~/components/ui/badge'; +import { Card, CardHeader, CardContent, CardTitle, CardDescription } from '~/components/ui/card'; +import { Download } from 'lucide-react'; +import Link from 'next/link'; + export default function CVPage() { + const [activeTab, setActiveTab] = useState('cv'); + return ( -
+

Curriculum Vitae 📄

@@ -10,26 +19,83 @@ export default function CVPage() {

-
- -
-

- Your browser doesn't support PDF preview. -

- + + CV + Resume + + + +
+ - Download PDF - + + +
+ PDF Preview Not Supported +
+ + Your browser doesn't support PDF preview. + +
+ +
+ + + + Download CV + + +
+
+
+
-
-
+ + + +
+ + + + +
+ PDF Preview Not Supported +
+ + Your browser doesn't support PDF preview. + +
+ +
+ + + + Download Resume + + +
+
+
+
+
+
+
); } diff --git a/src/app/page.tsx b/src/app/page.tsx index c49bbc3..1fc2eac 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -72,7 +72,7 @@ export default function HomePage() { {/* Featured Projects Section */} -
+

Featured Projects 🌟

+

Featured Projects 🌟

diff --git a/src/app/publications/page.tsx b/src/app/publications/page.tsx index 028f4f9..52044d6 100644 --- a/src/app/publications/page.tsx +++ b/src/app/publications/page.tsx @@ -58,7 +58,7 @@ export default function PublicationsPage() { }; return ( -

+

Publications 📚

diff --git a/src/components/ui/tabs.tsx b/src/components/ui/tabs.tsx new file mode 100644 index 0000000..8a852e3 --- /dev/null +++ b/src/components/ui/tabs.tsx @@ -0,0 +1,55 @@ +"use client" + +import * as React from "react" +import * as TabsPrimitive from "@radix-ui/react-tabs" + +import { cn } from "~/lib/utils" + +const Tabs = TabsPrimitive.Root + +const TabsList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsList.displayName = TabsPrimitive.List.displayName + +const TabsTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsTrigger.displayName = TabsPrimitive.Trigger.displayName + +const TabsContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsContent.displayName = TabsPrimitive.Content.displayName + +export { Tabs, TabsList, TabsTrigger, TabsContent }