import { Loader2 } from "lucide-react";

import { cn } from "@/lib/utils";

const sizeMap = {
  sm: "size-4",
  default: "size-6",
  lg: "size-8",
  xl: "size-10",
} as const;

/** Small spinning loader. Sized via the `size` prop. */
export function Spinner({
  size = "default",
  className,
  ...props
}: React.ComponentProps<typeof Loader2> & {
  size?: keyof typeof sizeMap;
}) {
  return (
    <Loader2
      role="status"
      aria-label="Loading"
      className={cn("animate-spin text-brand-blue", sizeMap[size], className)}
      {...props}
    />
  );
}
