Replaced Scale with JusticeIcon
X-Lovable-Edit-ID: edt-206c14ef-7b22-4780-a3e1-ac1b32f37e5e Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 169 KiB |
@@ -8,7 +8,6 @@ import {
|
||||
Receipt,
|
||||
ShieldCheck,
|
||||
LogOut,
|
||||
Scale,
|
||||
LayoutDashboard,
|
||||
Calendar as CalendarIcon,
|
||||
CheckSquare,
|
||||
@@ -30,6 +29,7 @@ import { HeaderTimer } from "@/components/timer/header-timer";
|
||||
import { QuickAddTime, QuickAddExpense } from "@/components/quick-add/quick-add";
|
||||
import { DateCalculator } from "@/components/date-calculator";
|
||||
import { NotificationBell } from "@/components/notifications/notification-bell";
|
||||
import { JusticeIcon } from "@/components/justice-icon";
|
||||
|
||||
interface NavItem {
|
||||
to: string;
|
||||
@@ -77,8 +77,8 @@ export function AppShell({ children }: { children: ReactNode }) {
|
||||
{/* Sidebar */}
|
||||
<aside className="hidden md:flex w-64 flex-col bg-sidebar text-sidebar-foreground border-r border-sidebar-border">
|
||||
<div className="px-6 py-5 border-b border-sidebar-border flex items-center gap-2.5">
|
||||
<div className="h-9 w-9 rounded-md bg-sidebar-primary flex items-center justify-center">
|
||||
<Scale className="h-5 w-5 text-sidebar-primary-foreground" />
|
||||
<div className="h-9 w-9 rounded-md bg-sidebar-primary flex items-center justify-center p-1">
|
||||
<JusticeIcon className="h-full w-full" invert />
|
||||
</div>
|
||||
<div className="leading-tight">
|
||||
<div className="font-serif text-lg">Stage Law Firm, PLLC</div>
|
||||
@@ -128,7 +128,7 @@ export function AppShell({ children }: { children: ReactNode }) {
|
||||
{/* Mobile top bar */}
|
||||
<div className="md:hidden fixed top-0 inset-x-0 h-14 bg-sidebar text-sidebar-foreground border-b border-sidebar-border flex items-center justify-between px-4 z-30">
|
||||
<Link to="/" className="flex items-center gap-2">
|
||||
<Scale className="h-5 w-5" />
|
||||
<JusticeIcon className="h-5 w-5" invert />
|
||||
<span className="font-serif text-lg">Counsel</span>
|
||||
</Link>
|
||||
<Button variant="ghost" size="sm" onClick={handleSignOut} className="text-sidebar-foreground">
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
import justiceImg from "@/assets/justice-icon.png";
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
interface JusticeIconProps {
|
||||
className?: string;
|
||||
/** When true, inverts the image to render white (for dark backgrounds). */
|
||||
invert?: boolean;
|
||||
alt?: string;
|
||||
}
|
||||
|
||||
export function JusticeIcon({ className, invert = false, alt = "Lady Justice" }: JusticeIconProps) {
|
||||
return (
|
||||
<img
|
||||
src={justiceImg}
|
||||
alt={alt}
|
||||
className={cn("object-contain", invert && "invert", className)}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -952,12 +952,3 @@ const rootRouteChildren: RootRouteChildren = {
|
||||
export const routeTree = rootRouteImport
|
||||
._addFileChildren(rootRouteChildren)
|
||||
._addFileTypes<FileRouteTypes>()
|
||||
|
||||
import type { getRouter } from './router.tsx'
|
||||
import type { createStart } from '@tanstack/react-start'
|
||||
declare module '@tanstack/react-start' {
|
||||
interface Register {
|
||||
ssr: true
|
||||
router: Awaited<ReturnType<typeof getRouter>>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,9 @@ import { Button } from "@/components/ui/button";
|
||||
import { Input } from "@/components/ui/input";
|
||||
import { Label } from "@/components/ui/label";
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
||||
import { Scale, Loader2, ShieldCheck } from "lucide-react";
|
||||
import { Loader2, ShieldCheck } from "lucide-react";
|
||||
import { toast } from "sonner";
|
||||
import { JusticeIcon } from "@/components/justice-icon";
|
||||
|
||||
export const Route = createFileRoute("/login")({
|
||||
component: LoginPage,
|
||||
@@ -40,8 +41,8 @@ function LoginPage() {
|
||||
{/* Brand panel */}
|
||||
<div className="hidden lg:flex flex-col justify-between p-12 bg-sidebar text-sidebar-foreground">
|
||||
<div className="flex items-center gap-3">
|
||||
<div className="h-10 w-10 rounded-md bg-sidebar-primary flex items-center justify-center">
|
||||
<Scale className="h-5 w-5 text-sidebar-primary-foreground" />
|
||||
<div className="h-10 w-10 rounded-md bg-sidebar-primary flex items-center justify-center p-1">
|
||||
<JusticeIcon className="h-full w-full" invert />
|
||||
</div>
|
||||
<div>
|
||||
<div className="font-serif text-xl">Stage Law Firm, PLLC</div>
|
||||
@@ -70,7 +71,7 @@ function LoginPage() {
|
||||
<Card className="w-full max-w-md border-border/60 shadow-sm">
|
||||
<CardHeader className="space-y-2">
|
||||
<div className="lg:hidden flex items-center gap-2 mb-2">
|
||||
<Scale className="h-5 w-5 text-primary" />
|
||||
<JusticeIcon className="h-5 w-5" />
|
||||
<span className="font-serif text-lg">Stage Law Firm, PLLC</span>
|
||||
</div>
|
||||
<CardTitle className="font-serif text-2xl">Sign in</CardTitle>
|
||||
|
||||
@@ -6,7 +6,7 @@ import { Badge } from "@/components/ui/badge";
|
||||
import { CheckCircle2, CreditCard, XCircle } from "lucide-react";
|
||||
import { formatCurrency } from "@/lib/format";
|
||||
import { getPublicPaymentRequest } from "@/lib/payments.functions";
|
||||
import { Scale } from "lucide-react";
|
||||
import { JusticeIcon } from "@/components/justice-icon";
|
||||
|
||||
export const Route = createFileRoute("/pay/$id")({
|
||||
validateSearch: (s: Record<string, unknown>) => ({
|
||||
@@ -28,7 +28,7 @@ function Shell({ children }: { children: React.ReactNode }) {
|
||||
<div className="min-h-screen bg-muted/30 flex items-center justify-center p-6">
|
||||
<div className="w-full max-w-lg">
|
||||
<div className="flex items-center justify-center gap-2 mb-6">
|
||||
<Scale className="h-6 w-6 text-primary" />
|
||||
<JusticeIcon className="h-6 w-6" />
|
||||
<span className="font-serif text-xl">Stage Law Firm, PLLC</span>
|
||||
</div>
|
||||
<Card className="border-border/60">
|
||||
|
||||
@@ -6,8 +6,9 @@ import { Button } from "@/components/ui/button";
|
||||
import { Input } from "@/components/ui/input";
|
||||
import { Label } from "@/components/ui/label";
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
||||
import { Loader2, Scale } from "lucide-react";
|
||||
import { Loader2 } from "lucide-react";
|
||||
import { toast } from "sonner";
|
||||
import { JusticeIcon } from "@/components/justice-icon";
|
||||
|
||||
export const Route = createFileRoute("/setup")({
|
||||
component: SetupPage,
|
||||
@@ -92,7 +93,7 @@ function SetupPage() {
|
||||
<Card className="w-full max-w-md">
|
||||
<CardHeader>
|
||||
<div className="flex items-center gap-2 mb-2">
|
||||
<Scale className="h-5 w-5 text-primary" />
|
||||
<JusticeIcon className="h-5 w-5" />
|
||||
<span className="font-serif text-lg">Counsel</span>
|
||||
</div>
|
||||
<CardTitle className="font-serif text-2xl">Create founding admin</CardTitle>
|
||||
|
||||
Reference in New Issue
Block a user