// SPDX-License-Identifier: AGPL-3.0-only // Copyright 2026-present the Unsloth AI Inc. team. All rights reserved. See /studio/LICENSE.AGPL-3.0 import { cn } from "@/lib/utils"; import type { ReactNode } from "react"; interface SectionCardProps { icon: ReactNode; title: string; description: string; accent?: "emerald" | "indigo" | "orange" | "blue"; featured?: boolean; className?: string; badge?: string; headerAction?: ReactNode; children: ReactNode; } const accentStyles = { // Brand accent variant; follows the active palette via --control-accent. emerald: { border: "ring-control-accent/20", iconBox: "ring-control-accent/25 bg-control-accent/10 text-control-accent", }, indigo: { border: "ring-indigo-500/20", iconBox: "ring-indigo-200 bg-indigo-50 text-indigo-600 dark:ring-indigo-800 dark:bg-indigo-950 dark:text-indigo-400", }, orange: { border: "ring-orange-500/20", iconBox: "ring-orange-200 bg-orange-50 text-orange-600 dark:ring-orange-800 dark:bg-orange-950 dark:text-orange-400", }, blue: { border: "ring-blue-500/20", iconBox: "ring-blue-200 bg-blue-50 text-blue-600 dark:ring-blue-800 dark:bg-blue-950 dark:text-blue-400", }, }; export function SectionCard({ icon, title, description, accent = "emerald", featured, className, badge, headerAction, children, }: SectionCardProps) { const styles = accentStyles[accent]; return (
{featured && (
)} {/* Header */}
{icon}

{title}

{badge && ( {badge} )}

{description}

{headerAction &&
{headerAction}
}
{/* Content */} {children}
); }