diff --git a/package-lock.json b/package-lock.json
index ba4e7db..c50501c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -99,6 +99,7 @@
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz",
"integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==",
"dev": true,
+ "peer": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.26.2",
@@ -2290,6 +2291,7 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.17.tgz",
"integrity": "sha512-/WndGO4kIfMicEQLTi/mDANUu/iVUhT7KboZPdEqqHQ4aTS+3qT3U5gIqWDFV+XouorjfgGqvKILJeHhuQgFYg==",
"devOptional": true,
+ "peer": true,
"dependencies": {
"undici-types": "~6.19.2"
}
@@ -2306,6 +2308,7 @@
"integrity": "sha512-vUhG0YmQZ7kL/tmKLrD3g5zXbXXreZXB3pmROW8bg3CnLnpjkRVwUlLne7Ufa2r9yJ8+/6B73RzhAek5TBKh2Q==",
"devOptional": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
@@ -2316,6 +2319,7 @@
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz",
"integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==",
"devOptional": true,
+ "peer": true,
"peerDependencies": {
"@types/react": "^18.0.0"
}
@@ -2358,6 +2362,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz",
"integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==",
"dev": true,
+ "peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "7.18.0",
"@typescript-eslint/types": "7.18.0",
@@ -2551,6 +2556,7 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
"dev": true,
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -2745,6 +2751,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "peer": true,
"dependencies": {
"caniuse-lite": "^1.0.30001688",
"electron-to-chromium": "^1.5.73",
@@ -3076,6 +3083,7 @@
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
+ "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -3619,6 +3627,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.23.2"
},
@@ -4253,6 +4262,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"nanoid": "^3.3.8",
"picocolors": "^1.1.1",
@@ -4413,6 +4423,7 @@
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"loose-envify": "^1.1.0"
},
@@ -4425,6 +4436,7 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
@@ -4903,6 +4915,7 @@
"version": "3.4.17",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
"integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
+ "peer": true,
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
"arg": "^5.0.2",
@@ -5003,6 +5016,7 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=12"
},
@@ -5072,6 +5086,7 @@
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
"integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
"devOptional": true,
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -5176,6 +5191,7 @@
"resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
"integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.4.4",
@@ -5264,6 +5280,7 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=12"
},
diff --git a/src/App.tsx b/src/App.tsx
index b8b84db..0aab127 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,15 +1,15 @@
-import {About} from "./components/About";
-import {FAQ} from "./components/FAQ";
-import {Footer} from "./components/Footer";
-import {Hero} from "./components/Hero";
-import {HowItWorks} from "./components/HowItWorks";
-import {Navbar} from "./components/Navbar";
-import {Newsletter} from "./components/Newsletter";
-import {ScrollToTop} from "./components/ScrollToTop";
-import {Services} from "./components/Services";
-import {Sponsors} from "./components/Sponsors";
-import {Team} from "./components/Team";
-import {Applications} from "./components/Testimonials";
+import {About} from "@/containers/About";
+import {FAQ} from "@/containers/FAQ";
+import {Footer} from "@/layouts/Footer";
+import {Hero} from "@/containers/Hero";
+import {HowItWorks} from "@/containers/HowItWorks";
+import {Navbar} from "@/layouts/Navbar";
+import {Newsletter} from "@/containers/Newsletter";
+import {ScrollToTop} from "@/components/ScrollToTop";
+import {Services} from "@/containers/Services";
+import {Sponsors} from "@/containers/Sponsors";
+import {Team} from "@/containers/Team";
+import {Applications} from "@/containers/Testimonials";
import "./App.css";
@@ -25,7 +25,7 @@ function App() {
-
+
>
diff --git a/src/components/mode-toggle.tsx b/src/components/mode-toggle.tsx
index ce57119..0d39c56 100644
--- a/src/components/mode-toggle.tsx
+++ b/src/components/mode-toggle.tsx
@@ -5,7 +5,7 @@ import {
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
-import { useTheme } from "@/components/theme-provider";
+import { useTheme } from "@/providers/theme-provider";
import { Moon, Sun } from "lucide-react";
export function ModeToggle() {
diff --git a/src/components/About.tsx b/src/containers/About.tsx
similarity index 98%
rename from src/components/About.tsx
rename to src/containers/About.tsx
index a43c4f8..7391ec7 100644
--- a/src/components/About.tsx
+++ b/src/containers/About.tsx
@@ -1,7 +1,7 @@
import { useState, useRef } from "react";
import { motion, useInView, AnimatePresence } from "framer-motion";
-import { Statistics } from "./Statistics";
-import pilot from "../assets/pilot.png";
+import { Statistics } from "@/components/Statistics";
+import pilot from "@/assets/pilot.png";
export const About = () => {
const sectionRef = useRef(null);
diff --git a/src/components/FAQ.tsx b/src/containers/FAQ.tsx
similarity index 100%
rename from src/components/FAQ.tsx
rename to src/containers/FAQ.tsx
diff --git a/src/components/Hero.tsx b/src/containers/Hero.tsx
similarity index 100%
rename from src/components/Hero.tsx
rename to src/containers/Hero.tsx
diff --git a/src/components/HowItWorks.tsx b/src/containers/HowItWorks.tsx
similarity index 98%
rename from src/components/HowItWorks.tsx
rename to src/containers/HowItWorks.tsx
index 61b6aa3..4e8ce39 100644
--- a/src/components/HowItWorks.tsx
+++ b/src/containers/HowItWorks.tsx
@@ -1,6 +1,6 @@
import { useRef } from "react";
-import { Card, CardContent, CardHeader, CardTitle } from "./ui/card";
-import { MedalIcon, MapIcon, PlaneIcon, GiftIcon } from "../components/Icons";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { MedalIcon, MapIcon, PlaneIcon, GiftIcon } from "@/components/Icons";
import { motion, useInView, AnimatePresence } from "framer-motion";
interface FeatureProps {
diff --git a/src/components/Newsletter.tsx b/src/containers/Newsletter.tsx
similarity index 99%
rename from src/components/Newsletter.tsx
rename to src/containers/Newsletter.tsx
index fc49232..97e3420 100644
--- a/src/components/Newsletter.tsx
+++ b/src/containers/Newsletter.tsx
@@ -1,6 +1,6 @@
import { useState, useRef } from "react";
-import { Button } from "./ui/button";
-import { Input } from "./ui/input";
+import { Button } from "@/components/ui/button";
+import { Input } from "@/components/ui/input";
import { motion, useInView, AnimatePresence } from "framer-motion";
export const Newsletter = () => {
diff --git a/src/components/Services.tsx b/src/containers/Services.tsx
similarity index 98%
rename from src/components/Services.tsx
rename to src/containers/Services.tsx
index 91b863f..9282f38 100644
--- a/src/components/Services.tsx
+++ b/src/containers/Services.tsx
@@ -1,6 +1,6 @@
import { useRef } from "react";
-import { Card, CardDescription, CardHeader, CardTitle } from "./ui/card";
-import { ChartIcon, WalletIcon, MagnifierIcon } from "./Icons";
+import { Card, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
+import { ChartIcon, WalletIcon, MagnifierIcon } from "@/components/Icons";
import cubeLeg from "../assets/cube-leg.png";
import { motion, useInView, AnimatePresence } from "framer-motion";
diff --git a/src/components/Sponsors.tsx b/src/containers/Sponsors.tsx
similarity index 100%
rename from src/components/Sponsors.tsx
rename to src/containers/Sponsors.tsx
diff --git a/src/components/Team.tsx b/src/containers/Team.tsx
similarity index 100%
rename from src/components/Team.tsx
rename to src/containers/Team.tsx
diff --git a/src/components/Testimonials.tsx b/src/containers/Testimonials.tsx
similarity index 100%
rename from src/components/Testimonials.tsx
rename to src/containers/Testimonials.tsx
diff --git a/src/components/Footer.tsx b/src/layouts/Footer.tsx
similarity index 99%
rename from src/components/Footer.tsx
rename to src/layouts/Footer.tsx
index 04f8b1a..e791878 100644
--- a/src/components/Footer.tsx
+++ b/src/layouts/Footer.tsx
@@ -1,6 +1,6 @@
import { useState, useRef } from "react";
import { motion, useInView, AnimatePresence } from "framer-motion";
-import { LogoIcon } from "./Icons";
+import { LogoIcon } from "../components/Icons";
import { Github, Twitter, Linkedin, Youtube, MessageCircle, Phone } from "lucide-react";
export const Footer = () => {
diff --git a/src/components/Navbar.tsx b/src/layouts/Navbar.tsx
similarity index 98%
rename from src/components/Navbar.tsx
rename to src/layouts/Navbar.tsx
index 1e6d233..b87d0c6 100644
--- a/src/components/Navbar.tsx
+++ b/src/layouts/Navbar.tsx
@@ -13,11 +13,11 @@ import {
} from "@/components/ui/sheet";
import { GitHubLogoIcon } from "@radix-ui/react-icons";
-import { buttonVariants } from "./ui/button";
+import { buttonVariants } from "@/components/ui/button";
import { Menu } from "lucide-react";
-import { ModeToggle } from "./mode-toggle";
-import { LogoIcon } from "./Icons";
-import { LanguageSwitcher } from "./language"; // Import Language Switcher
+import { ModeToggle } from "@/components/mode-toggle";
+import { LogoIcon } from "@/components/Icons";
+import { LanguageSwitcher } from "@/components/language"; // Import Language Switcher
import { motion, AnimatePresence } from "framer-motion";
interface RouteProps {
diff --git a/src/main.tsx b/src/main.tsx
index 9ff309d..3952ee2 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -1,7 +1,7 @@
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App.tsx";
-import { ThemeProvider } from "@/components/theme-provider.tsx";
+import { ThemeProvider } from "@/providers/theme-provider.tsx";
import { LanguageProvider } from "@/components/language.tsx";
import "./i18n";
import "./index.css";
diff --git a/src/components/theme-provider.tsx b/src/providers/theme-provider.tsx
similarity index 100%
rename from src/components/theme-provider.tsx
rename to src/providers/theme-provider.tsx