This commit is contained in:
gpt-engineer-app[bot]
2026-01-06 15:17:10 +00:00
parent c855594680
commit 596c77a6da
8 changed files with 95 additions and 23 deletions
+76
View File
@@ -0,0 +1,76 @@
import { cn } from "@/lib/utils";
interface GatehouseLogoProps {
size?: "sm" | "md" | "lg";
variant?: "default" | "light";
className?: string;
}
/**
* Gatehouse Logo - Abstract gate/doorway mark
* Represents controlled entry and policy enforcement
* Two vertical pillars forming a gateway with negative space
*/
export function GatehouseLogo({
size = "md",
variant = "default",
className
}: GatehouseLogoProps) {
const sizeClasses = {
sm: "w-8 h-8",
md: "w-9 h-9",
lg: "w-12 h-12",
};
const bgClasses = {
default: "bg-primary",
light: "bg-sidebar-primary",
};
const iconColor = variant === "light"
? "text-sidebar-primary-foreground"
: "text-primary-foreground";
return (
<div
className={cn(
"rounded-lg flex items-center justify-center flex-shrink-0",
sizeClasses[size],
bgClasses[variant],
className
)}
>
<svg
viewBox="0 0 24 24"
fill="none"
className={cn(
iconColor,
size === "sm" ? "w-4 h-4" : size === "md" ? "w-5 h-5" : "w-6 h-6"
)}
>
{/* Abstract gate - two pillars with archway */}
<path
d="M4 4h3v16H4V4z"
fill="currentColor"
/>
<path
d="M17 4h3v16h-3V4z"
fill="currentColor"
/>
<path
d="M7 4h10v3H7V4z"
fill="currentColor"
opacity="0.7"
/>
{/* Keyhole/entry indicator */}
<circle
cx="12"
cy="14"
r="2"
fill="currentColor"
opacity="0.5"
/>
</svg>
</div>
);
}
+5 -7
View File
@@ -1,5 +1,5 @@
import { Shield } from "lucide-react";
import { Outlet, Link } from "react-router-dom";
import { GatehouseLogo } from "@/components/branding/GatehouseLogo";
export default function PublicLayout() {
return (
@@ -10,11 +10,9 @@ export default function PublicLayout() {
{/* Header */}
<header className="relative z-10 w-full py-6 px-4">
<div className="max-w-md mx-auto">
<Link to="/" className="flex items-center gap-2 justify-center">
<div className="w-9 h-9 rounded-lg bg-primary flex items-center justify-center">
<Shield className="w-5 h-5 text-primary-foreground" />
</div>
<span className="text-xl font-semibold text-foreground tracking-tight">Authy2</span>
<Link to="/" className="flex items-center gap-2.5 justify-center">
<GatehouseLogo size="md" />
<span className="text-xl font-semibold text-foreground tracking-tight">Gatehouse</span>
</Link>
</div>
</header>
@@ -30,7 +28,7 @@ export default function PublicLayout() {
<footer className="relative z-10 py-6 px-4">
<div className="max-w-md mx-auto text-center">
<p className="text-sm text-muted-foreground">
© {new Date().getFullYear()} Authy2. Secure identity management.
© {new Date().getFullYear()} Gatehouse. Identity & Access.
</p>
</div>
</footer>
+3 -4
View File
@@ -10,6 +10,7 @@ import {
FileText,
Key,
} from "lucide-react";
import { GatehouseLogo } from "@/components/branding/GatehouseLogo";
import { NavLink } from "@/components/NavLink";
import {
Sidebar,
@@ -64,12 +65,10 @@ export function AppSidebar() {
{/* Logo */}
<SidebarHeader className="p-4 border-b border-sidebar-border">
<div className="flex items-center gap-3">
<div className="w-8 h-8 rounded-lg bg-sidebar-primary flex items-center justify-center flex-shrink-0">
<Shield className="w-4 h-4 text-sidebar-primary-foreground" />
</div>
<GatehouseLogo size="sm" variant="light" />
{!collapsed && (
<span className="text-lg font-semibold text-sidebar-foreground tracking-tight">
Authy2
Gatehouse
</span>
)}
</div>
+2 -1
View File
@@ -2,7 +2,8 @@
@tailwind components;
@tailwind utilities;
/* Authy2 Design System - Enterprise Authentication Platform
/* Gatehouse Design System - Enterprise Identity & Access Platform
Authoritative, infrastructure-grade aesthetic with slate/charcoal/muted blue palette
Colors are HSL for theming flexibility
*/
+1 -1
View File
@@ -131,7 +131,7 @@ export default function RegisterPage() {
Create your account
</h1>
<p className="text-muted-foreground mt-2">
Get started with Authy2 in seconds
Get started with Gatehouse in seconds
</p>
</div>
+2 -2
View File
@@ -61,7 +61,7 @@ export default function OIDCClientsPage() {
<div>
<h1 className="page-title">OIDC Clients</h1>
<p className="page-description">
Manage applications that authenticate via Authy2
Manage applications that authenticate via Gatehouse
</p>
</div>
<Dialog open={isCreateOpen} onOpenChange={setIsCreateOpen}>
@@ -75,7 +75,7 @@ export default function OIDCClientsPage() {
<DialogHeader>
<DialogTitle>Create OIDC Client</DialogTitle>
<DialogDescription>
Register a new application to authenticate via Authy2
Register a new application to authenticate via Gatehouse
</DialogDescription>
</DialogHeader>
<div className="space-y-4 py-4">
+1 -1
View File
@@ -74,7 +74,7 @@ export default function LinkedAccountsPage() {
<Alert className="mb-6">
<AlertCircle className="w-4 h-4" />
<AlertDescription>
Linked accounts can only be used to sign in to an existing Authy2 account.
Linked accounts can only be used to sign in to an existing Gatehouse account.
They cannot be used to create new accounts.
</AlertDescription>
</Alert>