import { LoaderCircleIcon, LoaderIcon, LoaderPinwheelIcon, type LucideProps, } from "lucide-react"; import { cn } from "@/lib/utils"; type SpinnerVariantProps = Omit; const Default = ({ className, ...props }: SpinnerVariantProps) => ( ); const Circle = ({ className, ...props }: SpinnerVariantProps) => ( ); const Pinwheel = ({ className, ...props }: SpinnerVariantProps) => ( ); const CircleFilled = ({ className, size = 24, ...props }: SpinnerVariantProps) => (
); const Ellipsis = ({ size = 24, ...props }: SpinnerVariantProps) => { return ( Loading... ); }; const Ring = ({ size = 24, ...props }: SpinnerVariantProps) => ( Loading... ); const Bars = ({ size = 24, ...props }: SpinnerVariantProps) => ( Loading... ); const Infinite = ({ size = 24, ...props }: SpinnerVariantProps) => ( Loading... ); export type SpinnerProps = LucideProps & { variant?: | "default" | "circle" | "pinwheel" | "circle-filled" | "ellipsis" | "ring" | "bars" | "infinite"; }; export const Spinner = ({ variant, ...props }: SpinnerProps) => { switch (variant) { case "circle": return ; case "pinwheel": return ; case "circle-filled": return ; case "ellipsis": return ; case "ring": return ; case "bars": return ; case "infinite": return ; default: return ; } };