├── .env.example ├── .eslintrc.cjs ├── .gitignore ├── LICENSE ├── README.md ├── components.json ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public ├── android-chrome-192x192.png ├── android-chrome-512x512.png ├── apple-touch-icon.png ├── assets │ ├── avatar.webp │ └── page-not-found.webm ├── browserconfig.xml ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── mstile-150x150.png ├── opengraph-image.png ├── projects │ ├── images │ │ ├── basehub-nextjs-blog.png │ │ ├── basement-challenge.png │ │ ├── chat-with-vader.png │ │ ├── cohere-chat.png │ │ ├── comments-app.png │ │ ├── crud-app.png │ │ ├── eloquent-js-chat.png │ │ ├── ep-icon.png │ │ ├── google-translate-clone.png │ │ ├── javascript-quiz.png │ │ ├── meli-challenge.png │ │ ├── morty-s-characters.png │ │ ├── movie-search.png │ │ ├── nextjs-releases-app.png │ │ ├── react-gpt.png │ │ ├── shopping-cart.png │ │ ├── spacex-launches.png │ │ ├── spotify-clone.png │ │ ├── swc-router.png │ │ ├── tic-tac-toe.png │ │ ├── todo-app-ts.png │ │ ├── twitter-clone.png │ │ └── twitter-follow-card.png │ └── videos │ │ ├── image-2-code.webm │ │ ├── mouse-follower.webm │ │ ├── nextjs-chat.webm │ │ ├── screen-recorder.webm │ │ ├── tesla-landing-clone.webm │ │ └── view-transitions-api.webm ├── robots.txt └── site.webmanifest ├── src ├── app │ ├── [locale] │ │ ├── [...rest] │ │ │ └── page.tsx │ │ ├── career │ │ │ └── page.tsx │ │ ├── contact │ │ │ └── page.tsx │ │ ├── layout.tsx │ │ ├── not-found.tsx │ │ ├── page.tsx │ │ └── projects │ │ │ └── page.tsx │ ├── api │ │ └── send │ │ │ └── route.ts │ └── styles │ │ └── globals.css ├── components │ ├── career │ │ ├── index.tsx │ │ └── item.tsx │ ├── contact │ │ ├── email-template.tsx │ │ ├── form.tsx │ │ └── index.tsx │ ├── footer.tsx │ ├── head.tsx │ ├── header.tsx │ ├── hero │ │ └── index.tsx │ ├── icons │ │ ├── github.tsx │ │ ├── lang │ │ │ ├── ar-flag.tsx │ │ │ └── us-flag.tsx │ │ ├── linkedin.tsx │ │ ├── tags │ │ │ ├── astro.tsx │ │ │ ├── basehub.tsx │ │ │ ├── bootstrap.tsx │ │ │ ├── css.tsx │ │ │ ├── graphql.tsx │ │ │ ├── html.tsx │ │ │ ├── javascript.tsx │ │ │ ├── nextjs.tsx │ │ │ ├── nodejs.tsx │ │ │ ├── openai.tsx │ │ │ ├── pnpm.tsx │ │ │ ├── react.tsx │ │ │ ├── redux.tsx │ │ │ ├── shadcn-ui.tsx │ │ │ ├── supabase.tsx │ │ │ ├── svelte.tsx │ │ │ ├── swc.tsx │ │ │ ├── tailwind-css.tsx │ │ │ ├── typescript.tsx │ │ │ ├── vercel.tsx │ │ │ ├── vite.tsx │ │ │ └── vitest.tsx │ │ └── x.tsx │ ├── lang-switcher.tsx │ ├── mode-toggle.tsx │ ├── projects │ │ ├── card.tsx │ │ ├── index.tsx │ │ └── pagination.tsx │ ├── theme-provider.tsx │ └── ui │ │ ├── avatar.tsx │ │ ├── badge.tsx │ │ ├── button.tsx │ │ ├── card.tsx │ │ ├── dropdown-menu.tsx │ │ ├── form.tsx │ │ ├── input.tsx │ │ ├── label.tsx │ │ ├── loader.tsx │ │ ├── pagination.tsx │ │ ├── section.tsx │ │ ├── sonner.tsx │ │ ├── textarea.tsx │ │ ├── toast.tsx │ │ ├── toaster.tsx │ │ ├── tooltip.tsx │ │ └── use-toast.ts ├── constants │ └── index.ts ├── data │ └── index.ts ├── hook │ └── use-pagination.ts ├── i18n.ts ├── lib │ ├── utils.ts │ └── validation.ts ├── messages │ ├── en.json │ └── es.json ├── middleware.ts └── types.d.ts ├── tailwind.config.ts ├── tsconfig.json └── vercel.json /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/.env.example -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/.eslintrc.cjs -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/README.md -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/components.json -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/next.config.mjs -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/postcss.config.js -------------------------------------------------------------------------------- /public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/apple-touch-icon.png -------------------------------------------------------------------------------- /public/assets/avatar.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/assets/avatar.webp -------------------------------------------------------------------------------- /public/assets/page-not-found.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/assets/page-not-found.webm -------------------------------------------------------------------------------- /public/browserconfig.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/browserconfig.xml -------------------------------------------------------------------------------- /public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/favicon-16x16.png -------------------------------------------------------------------------------- /public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/favicon-32x32.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/mstile-150x150.png -------------------------------------------------------------------------------- /public/opengraph-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/opengraph-image.png -------------------------------------------------------------------------------- /public/projects/images/basehub-nextjs-blog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/basehub-nextjs-blog.png -------------------------------------------------------------------------------- /public/projects/images/basement-challenge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/basement-challenge.png -------------------------------------------------------------------------------- /public/projects/images/chat-with-vader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/chat-with-vader.png -------------------------------------------------------------------------------- /public/projects/images/cohere-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/cohere-chat.png -------------------------------------------------------------------------------- /public/projects/images/comments-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/comments-app.png -------------------------------------------------------------------------------- /public/projects/images/crud-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/crud-app.png -------------------------------------------------------------------------------- /public/projects/images/eloquent-js-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/eloquent-js-chat.png -------------------------------------------------------------------------------- /public/projects/images/ep-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/ep-icon.png -------------------------------------------------------------------------------- /public/projects/images/google-translate-clone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/google-translate-clone.png -------------------------------------------------------------------------------- /public/projects/images/javascript-quiz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/javascript-quiz.png -------------------------------------------------------------------------------- /public/projects/images/meli-challenge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/meli-challenge.png -------------------------------------------------------------------------------- /public/projects/images/morty-s-characters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/morty-s-characters.png -------------------------------------------------------------------------------- /public/projects/images/movie-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/movie-search.png -------------------------------------------------------------------------------- /public/projects/images/nextjs-releases-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/nextjs-releases-app.png -------------------------------------------------------------------------------- /public/projects/images/react-gpt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/react-gpt.png -------------------------------------------------------------------------------- /public/projects/images/shopping-cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/shopping-cart.png -------------------------------------------------------------------------------- /public/projects/images/spacex-launches.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/spacex-launches.png -------------------------------------------------------------------------------- /public/projects/images/spotify-clone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/spotify-clone.png -------------------------------------------------------------------------------- /public/projects/images/swc-router.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/swc-router.png -------------------------------------------------------------------------------- /public/projects/images/tic-tac-toe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/tic-tac-toe.png -------------------------------------------------------------------------------- /public/projects/images/todo-app-ts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/todo-app-ts.png -------------------------------------------------------------------------------- /public/projects/images/twitter-clone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/twitter-clone.png -------------------------------------------------------------------------------- /public/projects/images/twitter-follow-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/images/twitter-follow-card.png -------------------------------------------------------------------------------- /public/projects/videos/image-2-code.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/videos/image-2-code.webm -------------------------------------------------------------------------------- /public/projects/videos/mouse-follower.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/videos/mouse-follower.webm -------------------------------------------------------------------------------- /public/projects/videos/nextjs-chat.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/videos/nextjs-chat.webm -------------------------------------------------------------------------------- /public/projects/videos/screen-recorder.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/videos/screen-recorder.webm -------------------------------------------------------------------------------- /public/projects/videos/tesla-landing-clone.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/videos/tesla-landing-clone.webm -------------------------------------------------------------------------------- /public/projects/videos/view-transitions-api.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/projects/videos/view-transitions-api.webm -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: /api/ -------------------------------------------------------------------------------- /public/site.webmanifest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/public/site.webmanifest -------------------------------------------------------------------------------- /src/app/[locale]/[...rest]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/app/[locale]/[...rest]/page.tsx -------------------------------------------------------------------------------- /src/app/[locale]/career/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/app/[locale]/career/page.tsx -------------------------------------------------------------------------------- /src/app/[locale]/contact/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/app/[locale]/contact/page.tsx -------------------------------------------------------------------------------- /src/app/[locale]/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/app/[locale]/layout.tsx -------------------------------------------------------------------------------- /src/app/[locale]/not-found.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/app/[locale]/not-found.tsx -------------------------------------------------------------------------------- /src/app/[locale]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/app/[locale]/page.tsx -------------------------------------------------------------------------------- /src/app/[locale]/projects/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/app/[locale]/projects/page.tsx -------------------------------------------------------------------------------- /src/app/api/send/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/app/api/send/route.ts -------------------------------------------------------------------------------- /src/app/styles/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/app/styles/globals.css -------------------------------------------------------------------------------- /src/components/career/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/career/index.tsx -------------------------------------------------------------------------------- /src/components/career/item.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/career/item.tsx -------------------------------------------------------------------------------- /src/components/contact/email-template.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/contact/email-template.tsx -------------------------------------------------------------------------------- /src/components/contact/form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/contact/form.tsx -------------------------------------------------------------------------------- /src/components/contact/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/contact/index.tsx -------------------------------------------------------------------------------- /src/components/footer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/footer.tsx -------------------------------------------------------------------------------- /src/components/head.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/head.tsx -------------------------------------------------------------------------------- /src/components/header.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/header.tsx -------------------------------------------------------------------------------- /src/components/hero/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/hero/index.tsx -------------------------------------------------------------------------------- /src/components/icons/github.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/github.tsx -------------------------------------------------------------------------------- /src/components/icons/lang/ar-flag.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/lang/ar-flag.tsx -------------------------------------------------------------------------------- /src/components/icons/lang/us-flag.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/lang/us-flag.tsx -------------------------------------------------------------------------------- /src/components/icons/linkedin.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/linkedin.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/astro.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/astro.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/basehub.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/basehub.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/bootstrap.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/bootstrap.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/css.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/css.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/graphql.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/graphql.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/html.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/html.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/javascript.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/javascript.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/nextjs.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/nextjs.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/nodejs.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/nodejs.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/openai.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/openai.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/pnpm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/pnpm.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/react.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/react.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/redux.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/redux.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/shadcn-ui.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/shadcn-ui.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/supabase.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/supabase.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/svelte.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/svelte.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/swc.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/swc.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/tailwind-css.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/tailwind-css.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/typescript.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/typescript.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/vercel.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/vercel.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/vite.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/vite.tsx -------------------------------------------------------------------------------- /src/components/icons/tags/vitest.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/tags/vitest.tsx -------------------------------------------------------------------------------- /src/components/icons/x.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/icons/x.tsx -------------------------------------------------------------------------------- /src/components/lang-switcher.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/lang-switcher.tsx -------------------------------------------------------------------------------- /src/components/mode-toggle.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/mode-toggle.tsx -------------------------------------------------------------------------------- /src/components/projects/card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/projects/card.tsx -------------------------------------------------------------------------------- /src/components/projects/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/projects/index.tsx -------------------------------------------------------------------------------- /src/components/projects/pagination.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/projects/pagination.tsx -------------------------------------------------------------------------------- /src/components/theme-provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/theme-provider.tsx -------------------------------------------------------------------------------- /src/components/ui/avatar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/avatar.tsx -------------------------------------------------------------------------------- /src/components/ui/badge.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/badge.tsx -------------------------------------------------------------------------------- /src/components/ui/button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/button.tsx -------------------------------------------------------------------------------- /src/components/ui/card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/card.tsx -------------------------------------------------------------------------------- /src/components/ui/dropdown-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/dropdown-menu.tsx -------------------------------------------------------------------------------- /src/components/ui/form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/form.tsx -------------------------------------------------------------------------------- /src/components/ui/input.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/input.tsx -------------------------------------------------------------------------------- /src/components/ui/label.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/label.tsx -------------------------------------------------------------------------------- /src/components/ui/loader.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/loader.tsx -------------------------------------------------------------------------------- /src/components/ui/pagination.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/pagination.tsx -------------------------------------------------------------------------------- /src/components/ui/section.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/section.tsx -------------------------------------------------------------------------------- /src/components/ui/sonner.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/sonner.tsx -------------------------------------------------------------------------------- /src/components/ui/textarea.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/textarea.tsx -------------------------------------------------------------------------------- /src/components/ui/toast.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/toast.tsx -------------------------------------------------------------------------------- /src/components/ui/toaster.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/toaster.tsx -------------------------------------------------------------------------------- /src/components/ui/tooltip.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/tooltip.tsx -------------------------------------------------------------------------------- /src/components/ui/use-toast.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/components/ui/use-toast.ts -------------------------------------------------------------------------------- /src/constants/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/constants/index.ts -------------------------------------------------------------------------------- /src/data/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/data/index.ts -------------------------------------------------------------------------------- /src/hook/use-pagination.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/hook/use-pagination.ts -------------------------------------------------------------------------------- /src/i18n.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/i18n.ts -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/lib/utils.ts -------------------------------------------------------------------------------- /src/lib/validation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/lib/validation.ts -------------------------------------------------------------------------------- /src/messages/en.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/messages/en.json -------------------------------------------------------------------------------- /src/messages/es.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/messages/es.json -------------------------------------------------------------------------------- /src/middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/middleware.ts -------------------------------------------------------------------------------- /src/types.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/src/types.d.ts -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/tailwind.config.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emapeire/portfolio/HEAD/vercel.json --------------------------------------------------------------------------------