turash/bugulma/frontend/components/ui/Label.tsx
2025-12-15 10:06:41 +01:00

35 lines
803 B
TypeScript

import React from 'react';
import { clsx } from 'clsx';
export interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
children: React.ReactNode;
required?: boolean;
error?: boolean;
}
/**
* Standalone label component
*/
export const Label = React.forwardRef<HTMLLabelElement, LabelProps>(
({ children, required, error, className, ...props }, ref) => {
return (
<label
ref={ref}
className={clsx(
'text-sm font-medium',
{
'text-foreground': !error,
'text-destructive': error,
"after:content-['*'] after:ml-1 after:text-destructive": required,
},
className
)}
{...props}
>
{children}
</label>
);
}
);
Label.displayName = 'Label';