diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000..b01e597 Binary files /dev/null and b/public/logo.png differ diff --git a/src/app/(full-page)/forgot-password/page.tsx b/src/app/(full-page)/forgot-password/page.tsx index 1cf396d..89668c1 100644 --- a/src/app/(full-page)/forgot-password/page.tsx +++ b/src/app/(full-page)/forgot-password/page.tsx @@ -31,7 +31,7 @@ function ForgotPasswordContent() {
-

VisionRoad

+

RoadMonitor

{displayInfo.title}

{displayInfo.description}

@@ -60,7 +60,11 @@ function ForgotPasswordContent() { className="w-full" disabled={isLoading || !canSubmit} > - {isLoading ? : } + {isLoading ? ( + + ) : ( + + )} {displayInfo.buttonLabel} diff --git a/src/app/(full-page)/login/page.tsx b/src/app/(full-page)/login/page.tsx index adcc559..affb58f 100644 --- a/src/app/(full-page)/login/page.tsx +++ b/src/app/(full-page)/login/page.tsx @@ -23,7 +23,7 @@ export default function LoginPage() {

- VisionRoad + RoadMonitor

Sign in

diff --git a/src/app/(full-page)/reset-password/page.tsx b/src/app/(full-page)/reset-password/page.tsx index 8104d28..60ef73f 100644 --- a/src/app/(full-page)/reset-password/page.tsx +++ b/src/app/(full-page)/reset-password/page.tsx @@ -27,7 +27,7 @@ function ResetPasswordContent() {

-

VisionRoad

+

RoadMonitor

{displayInfo.title}

{displayInfo.description}

@@ -69,7 +69,9 @@ function ResetPasswordContent() { className="w-full" disabled={isLoading || !canSubmit} > - {isLoading ? : null} + {isLoading ? ( + + ) : null} {displayInfo.buttonLabel} diff --git a/src/app/(modules)/upload/components/UploadCardGrid.tsx b/src/app/(modules)/upload/components/UploadCardGrid.tsx index 6423f9f..4a25d07 100644 --- a/src/app/(modules)/upload/components/UploadCardGrid.tsx +++ b/src/app/(modules)/upload/components/UploadCardGrid.tsx @@ -38,7 +38,7 @@ export function UploadCardGrid({ onViewVideo, onViewDetails, }: UploadCardGridProps) { - const skeletonItems = Array.from({ length: Math.min(limit, 20) }); + const skeletonItems = Array.from({ length: 6 }); if (!isLoading && uploads.length === 0) { return ( diff --git a/src/app/layout.tsx b/src/app/layout.tsx index edf5867..2596f1f 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -19,8 +19,8 @@ const geistMono = Geist_Mono({ export const metadata: Metadata = { title: { - default: 'VisionRoad', - template: '%s | VisionRoad', + default: 'RoadMonitor', + template: '%s | RoadMonitor', }, description: 'Road infrastructure monitoring and pothole detection platform', }; diff --git a/src/components/LogoWrapper.tsx b/src/components/LogoWrapper.tsx new file mode 100644 index 0000000..2466db2 --- /dev/null +++ b/src/components/LogoWrapper.tsx @@ -0,0 +1,57 @@ +import Image from 'next/image'; + +import { cn } from '@/lib/utils'; + +const sizeClasses = { + sm: 'size-8 rounded-md border-2 p-0.5', + md: 'size-12 rounded-md border-2 p-1.5', + lg: 'size-28 rounded-lg border-[5px] p-3', +} as const; + +const variantClasses = { + default: 'border-white bg-primary shadow-md', + solid: 'border-white bg-primary', + glass: 'border-primary-foreground bg-primary/85 shadow-md', + sidebar: 'border-0 bg-primary', +} as const; + +type LogoWrapperProps = { + alt?: string; + className?: string; + imageClassName?: string; + priority?: boolean; + size?: keyof typeof sizeClasses; + variant?: keyof typeof variantClasses; +}; + +export function LogoWrapper({ + alt = 'RoadMonitor logo', + className, + imageClassName, + priority = false, + size = 'md', + variant = 'default', +}: LogoWrapperProps) { + return ( + + {alt} + + ); +} diff --git a/src/components/app-sidebar.tsx b/src/components/app-sidebar.tsx index a3567fc..11b2513 100644 --- a/src/components/app-sidebar.tsx +++ b/src/components/app-sidebar.tsx @@ -1,6 +1,7 @@ 'use client'; import * as React from 'react'; -import { ChevronRight, Package } from 'lucide-react'; +import { ChevronRight } from 'lucide-react'; +import { LogoWrapper } from '@/components/LogoWrapper'; import { NavUser } from '@/components/nav-user'; import { filterMenuItems, @@ -49,12 +50,10 @@ export function AppSidebar({ ...props }: React.ComponentProps) {
-
- -
+
- Vision Road - Analytics Platform + RoadMonitor + Road Intelligence
@@ -148,3 +147,4 @@ function SidebarNavItem({ ); } + diff --git a/src/components/auth/AuthBackground.tsx b/src/components/auth/AuthBackground.tsx index 895cbf9..1a5738f 100644 --- a/src/components/auth/AuthBackground.tsx +++ b/src/components/auth/AuthBackground.tsx @@ -1,3 +1,4 @@ +import { LogoWrapper } from '@/components/LogoWrapper'; import { cn } from '@/lib/utils'; const BOKEH_ORBS = [ @@ -80,6 +81,30 @@ export function AuthBackground({ className }: AuthBackgroundProps) { )} /> ))} + +
+
+ + + + Road + + + Monitor + + +
+

+ Map, monitor, and repair road issues with data-driven surface + intelligence. +

+
); } +