From c3dcb9c827df6d80ad1b0b1a7c6155561527b39d Mon Sep 17 00:00:00 2001
From: l3wdfut4pwr <l3wdfut4pwr@gmail.com>
Date: Tue, 30 Dec 2025 13:46:39 +0200
Subject: init

---
 src/components/ui/button.tsx | 57 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 src/components/ui/button.tsx

(limited to 'src/components/ui/button.tsx')

diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
new file mode 100644
index 0000000..65c1e84
--- /dev/null
+++ b/src/components/ui/button.tsx
@@ -0,0 +1,57 @@
+import * as React from 'react';
+import { Slot } from '@radix-ui/react-slot';
+import { cva, type VariantProps } from 'class-variance-authority';
+
+import { cn } from '@/lib/utils';
+
+const buttonVariants = cva(
+    'inline-flex items-center justify-center gap-2 whitespace-nowrap transition-colors duration-200 ease-out',
+    {
+        variants: {
+            variant: {
+                default: 'bg-violet rounded-4xl hover:bg-light-violet',
+                outline: '',
+                ghost: '',
+                link: 'hover:text-light-violet',
+                icon: 'bg-violet hover:bg-light-violet rounded-[10px] cursor-pointer',
+                menu: 'w-[350px] hover:bg-light-violet active:bg-violet active:border-violet rounded-4xl border-2 border-light-violet justify-start',
+            },
+            size: {
+                sm: 'py-1.75 px-3.75',
+                default: 'py-2.5 px-7.5',
+                lg: 'py-2.5 px-7.5 w-full',
+                icon: 'size-12.5 p-3.75',
+                text: '',
+            },
+        },
+        defaultVariants: {
+            variant: 'default',
+            size: 'default',
+        },
+    },
+);
+
+function Button({
+    className,
+    variant = 'default',
+    size = 'default',
+    asChild = false,
+    ...props
+}: React.ComponentProps<'button'> &
+    VariantProps<typeof buttonVariants> & {
+        asChild?: boolean;
+    }) {
+    const Comp = asChild ? Slot : 'button';
+
+    return (
+        <Comp
+            data-slot="button"
+            data-variant={variant}
+            data-size={size}
+            className={cn(buttonVariants({ variant, size, className }))}
+            {...props}
+        />
+    );
+}
+
+export { Button, buttonVariants };
-- 
cgit v1.3-3-g829e

