Files
HRM-System/resources/js/components/ui/label.tsx
2026-04-13 08:16:56 +08:00

32 lines
772 B
TypeScript
Executable File

import * as React from "react"
import * as LabelPrimitive from "@radix-ui/react-label"
import { cn } from "@/lib/utils"
interface LabelProps extends React.ComponentProps<typeof LabelPrimitive.Root> {
required?: boolean;
}
function Label({
className,
required,
children,
...props
}: LabelProps) {
return (
<LabelPrimitive.Root
data-slot="label"
className={cn(
"text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
className
)}
{...props}
>
{children}
{required && <span className="text-red-500 ml-1">*</span>}
</LabelPrimitive.Root>
)
}
export { Label }