test
This commit is contained in:
		
							
								
								
									
										57
									
								
								registry-template/components/ui/button.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								registry-template/components/ui/button.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -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 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 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", | ||||
|   { | ||||
|     variants: { | ||||
|       variant: { | ||||
|         default: | ||||
|           "bg-primary text-primary-foreground shadow hover:bg-primary/90", | ||||
|         destructive: | ||||
|           "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/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: "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", | ||||
|         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} | ||||
|       /> | ||||
|     ) | ||||
|   } | ||||
| ) | ||||
| Button.displayName = "Button" | ||||
|  | ||||
| export { Button, buttonVariants } | ||||
							
								
								
									
										76
									
								
								registry-template/components/ui/card.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								registry-template/components/ui/card.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,76 @@ | ||||
| import * as React from "react" | ||||
|  | ||||
| import { cn } from "@/lib/utils" | ||||
|  | ||||
| const Card = React.forwardRef< | ||||
|   HTMLDivElement, | ||||
|   React.HTMLAttributes<HTMLDivElement> | ||||
| >(({ className, ...props }, ref) => ( | ||||
|   <div | ||||
|     ref={ref} | ||||
|     className={cn( | ||||
|       "rounded-xl border bg-card text-card-foreground shadow", | ||||
|       className | ||||
|     )} | ||||
|     {...props} | ||||
|   /> | ||||
| )) | ||||
| Card.displayName = "Card" | ||||
|  | ||||
| const CardHeader = React.forwardRef< | ||||
|   HTMLDivElement, | ||||
|   React.HTMLAttributes<HTMLDivElement> | ||||
| >(({ className, ...props }, ref) => ( | ||||
|   <div | ||||
|     ref={ref} | ||||
|     className={cn("flex flex-col space-y-1.5 p-6", className)} | ||||
|     {...props} | ||||
|   /> | ||||
| )) | ||||
| CardHeader.displayName = "CardHeader" | ||||
|  | ||||
| const CardTitle = React.forwardRef< | ||||
|   HTMLDivElement, | ||||
|   React.HTMLAttributes<HTMLDivElement> | ||||
| >(({ className, ...props }, ref) => ( | ||||
|   <div | ||||
|     ref={ref} | ||||
|     className={cn("font-semibold leading-none tracking-tight", className)} | ||||
|     {...props} | ||||
|   /> | ||||
| )) | ||||
| CardTitle.displayName = "CardTitle" | ||||
|  | ||||
| const CardDescription = React.forwardRef< | ||||
|   HTMLDivElement, | ||||
|   React.HTMLAttributes<HTMLDivElement> | ||||
| >(({ className, ...props }, ref) => ( | ||||
|   <div | ||||
|     ref={ref} | ||||
|     className={cn("text-sm text-muted-foreground", className)} | ||||
|     {...props} | ||||
|   /> | ||||
| )) | ||||
| CardDescription.displayName = "CardDescription" | ||||
|  | ||||
| const CardContent = React.forwardRef< | ||||
|   HTMLDivElement, | ||||
|   React.HTMLAttributes<HTMLDivElement> | ||||
| >(({ className, ...props }, ref) => ( | ||||
|   <div ref={ref} className={cn("p-6 pt-0", className)} {...props} /> | ||||
| )) | ||||
| CardContent.displayName = "CardContent" | ||||
|  | ||||
| const CardFooter = React.forwardRef< | ||||
|   HTMLDivElement, | ||||
|   React.HTMLAttributes<HTMLDivElement> | ||||
| >(({ className, ...props }, ref) => ( | ||||
|   <div | ||||
|     ref={ref} | ||||
|     className={cn("flex items-center p-6 pt-0", className)} | ||||
|     {...props} | ||||
|   /> | ||||
| )) | ||||
| CardFooter.displayName = "CardFooter" | ||||
|  | ||||
| export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } | ||||
							
								
								
									
										22
									
								
								registry-template/components/ui/input.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								registry-template/components/ui/input.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| import * as React from "react" | ||||
|  | ||||
| import { cn } from "@/lib/utils" | ||||
|  | ||||
| const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<"input">>( | ||||
|   ({ className, type, ...props }, ref) => { | ||||
|     return ( | ||||
|       <input | ||||
|         type={type} | ||||
|         className={cn( | ||||
|           "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", | ||||
|           className | ||||
|         )} | ||||
|         ref={ref} | ||||
|         {...props} | ||||
|       /> | ||||
|     ) | ||||
|   } | ||||
| ) | ||||
| Input.displayName = "Input" | ||||
|  | ||||
| export { Input } | ||||
							
								
								
									
										26
									
								
								registry-template/components/ui/label.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								registry-template/components/ui/label.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| "use client" | ||||
|  | ||||
| import * as React from "react" | ||||
| import * as LabelPrimitive from "@radix-ui/react-label" | ||||
| import { cva, type VariantProps } from "class-variance-authority" | ||||
|  | ||||
| import { cn } from "@/lib/utils" | ||||
|  | ||||
| const labelVariants = cva( | ||||
|   "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" | ||||
| ) | ||||
|  | ||||
| const Label = React.forwardRef< | ||||
|   React.ElementRef<typeof LabelPrimitive.Root>, | ||||
|   React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & | ||||
|     VariantProps<typeof labelVariants> | ||||
| >(({ className, ...props }, ref) => ( | ||||
|   <LabelPrimitive.Root | ||||
|     ref={ref} | ||||
|     className={cn(labelVariants(), className)} | ||||
|     {...props} | ||||
|   /> | ||||
| )) | ||||
| Label.displayName = LabelPrimitive.Root.displayName | ||||
|  | ||||
| export { Label } | ||||
							
								
								
									
										22
									
								
								registry-template/components/ui/textarea.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								registry-template/components/ui/textarea.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| import * as React from "react" | ||||
|  | ||||
| import { cn } from "@/lib/utils" | ||||
|  | ||||
| const Textarea = React.forwardRef< | ||||
|   HTMLTextAreaElement, | ||||
|   React.ComponentProps<"textarea"> | ||||
| >(({ className, ...props }, ref) => { | ||||
|   return ( | ||||
|     <textarea | ||||
|       className={cn( | ||||
|         "flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", | ||||
|         className | ||||
|       )} | ||||
|       ref={ref} | ||||
|       {...props} | ||||
|     /> | ||||
|   ) | ||||
| }) | ||||
| Textarea.displayName = "Textarea" | ||||
|  | ||||
| export { Textarea } | ||||
		Reference in New Issue
	
	Block a user