import React from "react"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Skeleton } from "@/components/ui/skeleton"; export function DetailLoadingView({ title }: { title: string }) { return ( <> {/* Title Skeleton */}
{[...Array(2)].map((_, i) => ( ))}
{" "} {/* Properties Title Skeleton */} {[...Array(5)].map((_, i) => (
))}
); } export function DetailErrorView({ title, id, error, }: { title: string; id: string; error: Error; }) { return ( <>

{title}

Error loading details for ID {id}: {error.message}

); } export function DetailNotFoundView({ title, id, }: { title: string; id: string; }) { return ( <>

{title}

No details found for ID: {id}.

); } export interface PropertyItemProps { label: string; value: React.ReactNode; className?: string; hasBorder?: boolean; } export function PropertyItem({ label, value, className = "", hasBorder = false, }: PropertyItemProps) { return (
  • {label}:{" "} {typeof value === "string" || typeof value === "number" ? ( {value} ) : ( value )}
  • ); } export interface PropertiesCardProps { children: React.ReactNode; } export function PropertiesCard({ children }: PropertiesCardProps) { return ( Properties
      {children}
    ); } export interface DetailLayoutProps { title: string; mainContent: React.ReactNode; sidebar: React.ReactNode; } export function DetailLayout({ title, mainContent, sidebar, }: DetailLayoutProps) { return ( <>

    {title}

    {mainContent}
    {sidebar}
    ); }