Initial commit for new panel

This commit is contained in:
AmirReza Jamali
2025-09-09 11:20:26 +03:30
commit 1d4ccb3575
343 changed files with 20031 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
import { cva, VariantProps } from "class-variance-authority";
import type { HTMLAttributes } from "react";
const buttonVariants = cva(
"inline-flex items-center justify-center gap-2.5 text-center font-medium hover:bg-opacity-90 font-medium transition focus:outline-none",
{
variants: {
variant: {
primary: "bg-primary text-white",
green: "bg-green text-white",
dark: "bg-dark text-white dark:bg-white/10",
outlinePrimary:
"border border-primary hover:bg-primary/10 text-primary",
outlineGreen: "border border-green hover:bg-green/10 text-green",
outlineDark:
"border border-dark hover:bg-dark/10 text-dark dark:hover:bg-white/10 dark:border-white/25 dark:text-white",
},
shape: {
default: "",
rounded: "rounded-[5px]",
full: "rounded-full",
},
size: {
default: "py-3.5 px-10 py-3.5 lg:px-8 xl:px-10",
small: "py-[11px] px-6",
},
},
defaultVariants: {
variant: "primary",
shape: "default",
size: "default",
},
},
);
type ButtonProps = HTMLAttributes<HTMLButtonElement> &
VariantProps<typeof buttonVariants> & {
label: string;
icon?: React.ReactNode;
};
export function Button({
label,
icon,
variant,
shape,
size,
className,
...props
}: ButtonProps) {
return (
<button
className={buttonVariants({ variant, shape, size, className })}
{...props}
>
{icon && <span>{icon}</span>}
{label}
</button>
);
}