Import Tripoli Cloud frontend prototype

React/TypeScript/Vite/Tailwind prototype from the design session (login,
dashboard, photos, backups, settings views with mocked API layer).
Infra work (Rust services, Ansible, OpenTofu) follows in subsequent commits.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Adam Belkacemi 2026-09-16 21:21:43 +02:00
commit 5dbd3b96f6
73 changed files with 4789 additions and 0 deletions

View file

@ -0,0 +1,14 @@
import type { IconName } from '../../types';
import { ICON_REGISTRY } from './iconRegistry';
interface DataIconProps {
name: IconName;
size?: number;
className?: string;
}
/** Renders a lucide-react icon selected by the string key our API mocks return. */
export function DataIcon({ name, size = 16, className }: DataIconProps) {
const Icon = ICON_REGISTRY[name];
return <Icon size={size} className={className} strokeWidth={1.8} />;
}

View file

@ -0,0 +1,31 @@
import {
AlertTriangle,
CheckCircle2,
FilePen,
FolderPlus,
HardDrive,
Image,
Laptop,
Server,
Share2,
Smartphone,
Tablet,
Upload,
type LucideIcon,
} from 'lucide-react';
import type { IconName } from '../../types';
export const ICON_REGISTRY: Record<IconName, LucideIcon> = {
'hard-drive': HardDrive,
image: Image,
smartphone: Smartphone,
share: Share2,
'folder-plus': FolderPlus,
'file-pen': FilePen,
upload: Upload,
check: CheckCircle2,
alert: AlertTriangle,
laptop: Laptop,
tablet: Tablet,
server: Server,
};