import { cva, type VariantProps } from "class-variance-authority" import * as React from "react" import { cn } from "../../../lib/utils" import { Separator } from "../../layout/separator" function Stat({ className, ...props }: React.ComponentProps<"div">) { return (
) } function StatLabel({ className, ...props }: React.ComponentProps<"div">) { return (
) } const statIndicatorVariants = cva( "flex shrink-0 items-center justify-center [&_svg]:pointer-events-none", { variants: { variant: { default: "text-muted-foreground [&_svg:not([class*='size-'])]:size-5", icon: "size-8 rounded-md border [&_svg:not([class*='size-'])]:size-3.5", badge: "h-6 min-w-6 rounded-sm border px-1.5 font-medium text-xs [&_svg:not([class*='size-'])]:size-3", action: "size-8 cursor-pointer rounded-md transition-colors hover:bg-muted/50 [&_svg:not([class*='size-'])]:size-4", }, color: { default: "bg-muted text-muted-foreground", success: "border-success-border bg-success-background text-success", info: "border-info-border bg-info-background text-info", warning: "border-warning-border bg-warning-background text-warning", error: "border-destructive/20 bg-destructive/10 text-destructive", }, }, defaultVariants: { variant: "default", color: "default", }, }, ) interface StatIndicatorProps extends Omit, "color">, VariantProps {} function StatIndicator({ className, variant = "default", color = "default", ...props }: StatIndicatorProps) { return (
) } function StatValue({ className, ...props }: React.ComponentProps<"div">) { return (
) } function StatTrend({ className, trend, ...props }: React.ComponentProps<"div"> & { trend?: "up" | "down" | "neutral" }) { return (
) } function StatSeparator({ ...props }: React.ComponentProps) { return } function StatDescription({ className, ...props }: React.ComponentProps<"div">) { return (
) } export { Stat, StatDescription, StatIndicator, StatLabel, StatSeparator, StatTrend, StatValue, statIndicatorVariants, } export type { StatIndicatorProps }