diff --git a/.env b/.env
new file mode 100644
index 0000000..13267a3
--- /dev/null
+++ b/.env
@@ -0,0 +1 @@
+VITE_PUBLIC_API_URL=https://graff.estate/api
\ No newline at end of file
diff --git a/package.json b/package.json
index 8e234e9..343fe01 100644
--- a/package.json
+++ b/package.json
@@ -11,15 +11,19 @@
},
"dependencies": {
"framer-motion": "^11.3.31",
+ "ky": "^1.7.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
+ "react-input-mask": "^2.0.4",
"react-router-dom": "^6.26.1",
+ "react-swipeable": "^7.0.1",
"usehooks-ts": "^3.1.0"
},
"devDependencies": {
"@eslint/js": "^9.9.0",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
+ "@types/react-input-mask": "^3.0.5",
"@vitejs/plugin-react": "^4.3.1",
"autoprefixer": "^10.4.20",
"eslint": "^9.9.0",
diff --git a/src/Layout/Footer.tsx b/src/Layout/Footer.tsx
index 5364b3b..4629e34 100644
--- a/src/Layout/Footer.tsx
+++ b/src/Layout/Footer.tsx
@@ -1,3 +1,66 @@
+import { Logo } from '../components/icons/Logo';
+import { Link } from 'react-router-dom';
+
export function Footer() {
- return ;
+ return (
+
+ );
+}
+
+function Contact({
+ text,
+ className = '',
+ type,
+}: {
+ className?: string;
+ text: string;
+ type: 'email' | 'phone';
+}) {
+ return (
+
+
+ {text}
+
+
+ );
}
diff --git a/src/Layout/Header.tsx b/src/Layout/Header.tsx
index 4ed9de8..4267ea0 100644
--- a/src/Layout/Header.tsx
+++ b/src/Layout/Header.tsx
@@ -19,7 +19,7 @@ export function Header() {
))}
-