@etavolt-etatune/button@0.1.5
latest
Works with
•JSR Score0%•It is unknown whether this package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers




Publisheda year ago (0.1.5)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import React from "npm:react@^18.3.1" import { Slot } from "npm:@radix-ui/react-slot@^1.1.0" import { cva, type VariantProps } from "npm:class-variance-authority@^0.7.0" import { cn } from "./lib/utils.ts" const buttonVariants = cva( "inline-flex items-center justify-center 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", { variants: { variant: { // green button default: "bg-[#28a745] text-white hover:bg-[#218838] w-[138px] h-[36px] px-[16px] py-[10px] gap-[6px] border-[1px] rounded-tl-[8px] shadow-[0px_1px_2px_0px_#1018280A]", // white button secondary: "bg-[#FFFFFF] text-[#374151] hover:bg-[#E5E7EB] w-[138px] h-[36px] px-[16px] py-[10px] gap-[6px] border-[1px] rounded-tl-[8px] border-[1px] border-[#E5E7EB] shadow-[0px_1px_2px_0px_#1018280A]", destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground", ghost: "hover:bg-accent hover:text-accent-foreground", link: "text-primary underline-offset-4 hover:underline", }, size: { default: "h-10 px-4 py-2", sm: "h-9 rounded-md px-3", lg: "h-11 rounded-md px-8", icon: "h-10 w-10", }, }, defaultVariants: { variant: "default", size: "default", }, } ) export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> { asChild?: boolean } const Button = React.forwardRef<HTMLButtonElement, ButtonProps>( ({ className, variant, size, asChild = false, ...props }, ref) => { const Comp = asChild ? Slot : "button" return ( <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} /> ) } ) Button.displayName = "Button" export { Button, buttonVariants }