deno.land / x / netzo@0.5.16 / components / button.tsx

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// @deno-types="npm:@types/react@18.2.60"import * as React from "react";
import { IS_BROWSER } from "$fresh/runtime.ts";import { Slot } from "../deps/@radix-ui/react-slot.ts";import { cva, type VariantProps } from "../deps/class-variance-authority.ts";import { cn } from "./utils.ts";
const buttonVariants = cva( "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", { variants: { variant: { default: "bg-primary text-primary-foreground shadow hover:bg-opacity-90", destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-opacity-90", outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary-80", ghost: "bg-inherit hover:bg-accent hover:text-accent-foreground", link: "text-primary underline-offset-4 hover:underline", }, size: { default: "h-9 px-4 py-2", sm: "h-8 rounded-md px-3 text-xs", lg: "h-10 rounded-md px-8", xl: "h-12 rounded-md px-10 text-xl font-semibold", icon: "h-9 w-9", }, }, 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} disabled={IS_BROWSER ? !!props.disabled : true} /> ); },);Button.displayName = "Button";
export { Button, buttonVariants };
netzo

Version Info

Tagged at
3 weeks ago