diff --git a/package.json b/package.json index 155a33f..c4689a0 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "axios": "^1.10.0", "clsx": "^2.1.1", "framer-motion": "^12.9.2", + "js-cookie": "^3.0.5", "maplibre-gl": "^5.4.0", "next": "16.1.1", "next-intl": "^4.6.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 385d6dc..d51e7b1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,6 +52,9 @@ importers: framer-motion: specifier: ^12.9.2 version: 12.23.26(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + js-cookie: + specifier: ^3.0.5 + version: 3.0.5 maplibre-gl: specifier: ^5.4.0 version: 5.15.0 @@ -4948,6 +4951,13 @@ packages: } hasBin: true + js-cookie@3.0.5: + resolution: + { + integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==, + } + engines: { node: ">=14" } + js-tokens@4.0.0: resolution: { @@ -10352,6 +10362,8 @@ snapshots: jiti@2.6.1: {} + js-cookie@3.0.5: {} + js-tokens@4.0.0: {} js-yaml@4.1.1: diff --git a/public/icons/avatar-icon.svg b/public/icons/avatar-icon.svg new file mode 100644 index 0000000..c0b550e --- /dev/null +++ b/public/icons/avatar-icon.svg @@ -0,0 +1,4 @@ + diff --git a/public/icons/check-icon.svg b/public/icons/check-icon.svg new file mode 100644 index 0000000..e9dc75a --- /dev/null +++ b/public/icons/check-icon.svg @@ -0,0 +1,3 @@ + diff --git a/public/icons/chevron-icon.svg b/public/icons/chevron-icon.svg new file mode 100644 index 0000000..7914948 --- /dev/null +++ b/public/icons/chevron-icon.svg @@ -0,0 +1,3 @@ + diff --git a/public/icons/close-icon.svg b/public/icons/close-icon.svg new file mode 100644 index 0000000..475466c --- /dev/null +++ b/public/icons/close-icon.svg @@ -0,0 +1,8 @@ + diff --git a/public/icons/dark-mode-icon.svg b/public/icons/dark-mode-icon.svg new file mode 100644 index 0000000..bcab3f0 --- /dev/null +++ b/public/icons/dark-mode-icon.svg @@ -0,0 +1,3 @@ + diff --git a/public/icons/google-maps.svg b/public/icons/google-maps.svg new file mode 100644 index 0000000..492fe52 --- /dev/null +++ b/public/icons/google-maps.svg @@ -0,0 +1,40 @@ + + + \ No newline at end of file diff --git a/public/icons/light-mode-icon.svg b/public/icons/light-mode-icon.svg new file mode 100644 index 0000000..aef07df --- /dev/null +++ b/public/icons/light-mode-icon.svg @@ -0,0 +1,3 @@ + diff --git a/public/icons/logout.svg b/public/icons/logout.svg new file mode 100644 index 0000000..dc10883 --- /dev/null +++ b/public/icons/logout.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/src/app/favicon.ico b/src/app/favicon.ico index 4de7d12..5fb9cfc 100644 Binary files a/src/app/favicon.ico and b/src/app/favicon.ico differ diff --git a/src/app/layout.tsx b/src/app/layout.tsx index e5928a1..a0c4f9f 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,8 +1,15 @@ import type { Metadata } from "next"; +import "&/fonts.css"; import "@/styles/globals.css"; import { NextIntlClientProvider } from "next-intl"; import { getLocale, getMessages } from "next-intl/server"; import NextTopLoader from "nextjs-toploader"; +import { ClientAppProvider } from "@/providers/ClientAppProvider"; +import UserInitializer from "@/utils/UserInitializer"; +import Modal from "@/components/UI/Modal"; +import ToastProvider from "@/utils/ToastProvider"; +import { Sidebar } from "@/components/SideBar"; +import { AppShell } from "@/providers/AppShell"; export const metadata: Metadata = { title: { @@ -27,11 +34,7 @@ export const viewport = { maximumScale: 1, }; -export default async function RootLayout({ - children, -}: Readonly<{ - children: React.ReactNode; -}>) { +export default async function RootLayout({ children }: { children: React.ReactNode }) { const locale = await getLocale(); const messages = await getMessages({ locale }); return ( @@ -39,7 +42,15 @@ export default async function RootLayout({