llzai's picture
Upload 1793 files
9853396 verified
import type { HTMLAttributes } from 'react';
import { cn } from '@/lib/utils';
type LoaderIconProps = {
size?: number;
};
const LoaderIcon = ({ size = 16 }: LoaderIconProps) => (
<svg height={size} strokeLinejoin='round' style={{ color: 'currentcolor' }} viewBox='0 0 16 16' width={size}>
<title>Loader</title>
<g clipPath='url(#clip0_2393_1490)'>
<path d='M8 0V4' stroke='currentColor' strokeWidth='1.5' />
<path d='M8 16V12' opacity='0.5' stroke='currentColor' strokeWidth='1.5' />
<path d='M3.29773 1.52783L5.64887 4.7639' opacity='0.9' stroke='currentColor' strokeWidth='1.5' />
<path d='M12.7023 1.52783L10.3511 4.7639' opacity='0.1' stroke='currentColor' strokeWidth='1.5' />
<path d='M12.7023 14.472L10.3511 11.236' opacity='0.4' stroke='currentColor' strokeWidth='1.5' />
<path d='M3.29773 14.472L5.64887 11.236' opacity='0.6' stroke='currentColor' strokeWidth='1.5' />
<path d='M15.6085 5.52783L11.8043 6.7639' opacity='0.2' stroke='currentColor' strokeWidth='1.5' />
<path d='M0.391602 10.472L4.19583 9.23598' opacity='0.7' stroke='currentColor' strokeWidth='1.5' />
<path d='M15.6085 10.4722L11.8043 9.2361' opacity='0.3' stroke='currentColor' strokeWidth='1.5' />
<path d='M0.391602 5.52783L4.19583 6.7639' opacity='0.8' stroke='currentColor' strokeWidth='1.5' />
</g>
<defs>
<clipPath id='clip0_2393_1490'>
<rect fill='white' height='16' width='16' />
</clipPath>
</defs>
</svg>
);
export type LoaderProps = HTMLAttributes<HTMLDivElement> & {
size?: number;
};
export const Loader = ({ className, size = 16, ...props }: LoaderProps) => (
<div className={cn('inline-flex animate-spin items-center justify-center', className)} {...props}>
<LoaderIcon size={size} />
</div>
);