diff --git a/package.json b/package.json index af9b3ba..4583af0 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "clsx": "^2.1.1", "devicons-react": "1.3.0-beta.0.1.4", "framer-motion": "^10.18.0", - "lucide-react": "^0.395.0", + "hugeicons-react": "^0.3.0", "next": "14.2.14", "next-intl": "^3.20.0", "next-themes": "^0.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 24f8f9c..a79f05e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,9 +53,9 @@ importers: framer-motion: specifier: ^10.18.0 version: 10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - lucide-react: - specifier: ^0.395.0 - version: 0.395.0(react@18.3.1) + hugeicons-react: + specifier: ^0.3.0 + version: 0.3.0(react@18.3.1) next: specifier: 14.2.14 version: 14.2.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1730,6 +1730,11 @@ packages: htmlparser2@8.0.2: resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + hugeicons-react@0.3.0: + resolution: {integrity: sha512-znmC+uX7xVqcIs0q09LvwEvJkjX0U3xgT05BSiRV19farS4lPONOKjYT0JkcQG5cvfV0rXHSEAEVNjbHAu81rg==} + peerDependencies: + react: '>=16.0.0' + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1983,11 +1988,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lucide-react@0.395.0: - resolution: {integrity: sha512-6hzdNH5723A4FLaYZWpK50iyZH8iS2Jq5zuPRRotOFkhu6kxxJiebVdJ72tCR5XkiIeYFOU5NUawFZOac+VeYw==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 - marked@7.0.4: resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==} engines: {node: '>= 16'} @@ -4491,6 +4491,10 @@ snapshots: domutils: 3.1.0 entities: 4.5.0 + hugeicons-react@0.3.0(react@18.3.1): + dependencies: + react: 18.3.1 + ignore@5.3.2: {} import-fresh@3.3.0: @@ -4735,10 +4739,6 @@ snapshots: lru-cache@10.4.3: {} - lucide-react@0.395.0(react@18.3.1): - dependencies: - react: 18.3.1 - marked@7.0.4: {} md-to-react-email@5.0.2(react@18.3.1): diff --git a/public/logo-128x128.png b/public/logo-128x128.png deleted file mode 100644 index 75fce1d..0000000 Binary files a/public/logo-128x128.png and /dev/null differ diff --git a/public/logo-128x128.webp b/public/logo-128x128.webp new file mode 100644 index 0000000..6deba49 Binary files /dev/null and b/public/logo-128x128.webp differ diff --git a/public/logo.png b/public/logo.png deleted file mode 100644 index 2629f11..0000000 Binary files a/public/logo.png and /dev/null differ diff --git a/public/logo.webp b/public/logo.webp new file mode 100644 index 0000000..7a781bb Binary files /dev/null and b/public/logo.webp differ diff --git a/public/profile.webp b/public/profile.webp new file mode 100644 index 0000000..cc12829 Binary files /dev/null and b/public/profile.webp differ diff --git a/src/app/[locale]/layout.tsx b/src/app/[locale]/layout.tsx index e70d57f..318f675 100644 --- a/src/app/[locale]/layout.tsx +++ b/src/app/[locale]/layout.tsx @@ -37,9 +37,9 @@ export const metadata: Metadata = { }, openGraph: { images: { - url: '/logo.png', + url: '/logo.webp', alt: 'Orange letter S, used as the representative logo of the website', - type: 'image/png', + type: 'image/webp', }, title: 'Samuel Molendolff Teixeira', type: 'website', @@ -79,7 +79,6 @@ export default async function RootLayout({ - diff --git a/src/app/[locale]/loading.tsx b/src/app/[locale]/loading.tsx index a13a8ca..6cf6e30 100644 --- a/src/app/[locale]/loading.tsx +++ b/src/app/[locale]/loading.tsx @@ -1,6 +1,6 @@ 'use client' -import React, { useEffect } from 'react' +import { useEffect } from 'react' import Image from 'next/image' import anime from 'animejs' @@ -63,7 +63,7 @@ export default function Loading() {
}> + <>
- project.imageUrl)} /> + - +
- + ) } diff --git a/src/app/robots.ts b/src/app/robots.ts index 87a82a3..146b8bd 100644 --- a/src/app/robots.ts +++ b/src/app/robots.ts @@ -6,7 +6,6 @@ export default function robots(): MetadataRoute.Robots { { userAgent: '*', allow: ['/'], - disallow: '/preview.png', }, ], sitemap: ['https://samuelmteixeira.dev/sitemap.xml'], diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index de10501..eb624b3 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -7,8 +7,8 @@ export default function sitemap(): MetadataRoute.Sitemap { lastModified: new Date(), alternates: { languages: { - es: 'https://samuelmteixeira.dev/en', - de: 'https://samuelmteixeira.dev/pt', + en: 'https://samuelmteixeira.dev/en', + pt: 'https://samuelmteixeira.dev/pt', }, }, }, diff --git a/src/assets/img/console.png b/src/assets/img/console.png deleted file mode 100644 index a1e3e42..0000000 Binary files a/src/assets/img/console.png and /dev/null differ diff --git a/src/assets/img/console.webp b/src/assets/img/console.webp new file mode 100644 index 0000000..51ad0a6 Binary files /dev/null and b/src/assets/img/console.webp differ diff --git a/src/components/project/project-card.tsx b/src/components/project/project-card.tsx index 42e8502..b988131 100644 --- a/src/components/project/project-card.tsx +++ b/src/components/project/project-card.tsx @@ -1,8 +1,5 @@ -'use client' - import Image from 'next/image' import { Button } from '@/components/ui/button' -import { ArrowUpRight, CodeXml } from 'lucide-react' import { Card, CardContent, @@ -13,11 +10,12 @@ import { import { Badge } from '@/components/ui/badge' import { useTranslations } from 'next-intl' import { ProjectProps } from '@/services/projects' +import { LinkSquare02Icon, SourceCodeIcon } from 'hugeicons-react' export default function ProjectCard({ imageUrl, - sourceUrl = '', - previewUrl = '', + sourceUrl, + previewUrl, title, category, tags, @@ -39,8 +37,10 @@ export default function ProjectCard({ {`Representative
@@ -69,14 +69,15 @@ export default function ProjectCard({ href={sourceUrl} target="_blank" rel="noopener noreferrer" - className="w-full lg:w-auto" + className={`w-full lg:w-auto ${sourceUrl ? '' : 'pointer-events-none'}`} > @@ -85,14 +86,16 @@ export default function ProjectCard({ href={previewUrl} target="_blank" rel="noopener noreferrer" - className="w-full lg:w-auto" + className={`w-full lg:w-auto ${previewUrl ? '' : 'pointer-events-none'}`} > diff --git a/src/components/sections/aboutme.tsx b/src/components/sections/aboutme.tsx index 9e3fb64..6c875b5 100644 --- a/src/components/sections/aboutme.tsx +++ b/src/components/sections/aboutme.tsx @@ -1,5 +1,3 @@ -'use client' - import { Card, CardContent, @@ -10,7 +8,7 @@ import { import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' import { useTranslations } from 'next-intl' -import { ArrowRight } from 'lucide-react' +import { ArrowRight02Icon } from 'hugeicons-react' export default function AboutMe() { const t = useTranslations('Aboutme') @@ -34,8 +32,8 @@ export default function AboutMe() {
S @@ -52,7 +50,7 @@ export default function AboutMe() { > {t('linkedinProfile')} - +
diff --git a/src/components/sections/contact.tsx b/src/components/sections/contact.tsx index bf8f76a..5fb1a70 100644 --- a/src/components/sections/contact.tsx +++ b/src/components/sections/contact.tsx @@ -16,8 +16,8 @@ import { import { Input } from '@/components/ui/input' import { Textarea } from '@/components/ui/textarea' import useEmail from '@/hooks/useEmail' -import { LoaderCircle } from 'lucide-react' import Section from '@/components/ui/section' +import { Loading03Icon } from 'hugeicons-react' export default function Projects() { const t = useTranslations('Getintouch') @@ -100,13 +100,14 @@ export default function Projects() { diff --git a/src/components/sections/footer.tsx b/src/components/sections/footer.tsx index 28b43c4..ab2a6ad 100644 --- a/src/components/sections/footer.tsx +++ b/src/components/sections/footer.tsx @@ -3,26 +3,26 @@ import Image from 'next/image' export default function Footer() { return (