A simple SEO inspecter Tool, to get social media card previews
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 47 lines 1.8 kB view raw
1import * as React from "react"; 2import { Slot } from "@radix-ui/react-slot"; 3import { cva, type VariantProps } from "class-variance-authority"; 4 5import { cn } from "@/lib/utils"; 6 7const buttonVariants = cva( 8 "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", 9 { 10 variants: { 11 variant: { 12 default: "bg-primary text-primary-foreground hover:bg-primary/90", 13 destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", 14 outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground", 15 secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80", 16 ghost: "hover:bg-accent hover:text-accent-foreground", 17 link: "text-primary underline-offset-4 hover:underline", 18 }, 19 size: { 20 default: "h-10 px-4 py-2", 21 sm: "h-9 rounded-md px-3", 22 lg: "h-11 rounded-md px-8", 23 icon: "h-10 w-10", 24 }, 25 }, 26 defaultVariants: { 27 variant: "default", 28 size: "default", 29 }, 30 }, 31); 32 33export interface ButtonProps 34 extends React.ButtonHTMLAttributes<HTMLButtonElement>, 35 VariantProps<typeof buttonVariants> { 36 asChild?: boolean; 37} 38 39const Button = React.forwardRef<HTMLButtonElement, ButtonProps>( 40 ({ className, variant, size, asChild = false, ...props }, ref) => { 41 const Comp = asChild ? Slot : "button"; 42 return <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />; 43 }, 44); 45Button.displayName = "Button"; 46 47export { Button, buttonVariants };