import clsx from "clsx"; import styles from "./Label.module.css"; type LabelProps = Pick< React.DetailedHTMLProps< React.LabelHTMLAttributes, HTMLLabelElement >, "children" | "htmlFor" > & { valueLimits?: { current: number; max: number; }; required?: boolean; className?: string; labelClassName?: string; spaced?: boolean; }; export function Label({ valueLimits, required, children, htmlFor, className, labelClassName, spaced = true, }: LabelProps) { return (
{valueLimits ? (
{valueLimits.current}/{valueLimits.max}
) : null}
); } function lengthWarning(valueLimits: NonNullable) { if (valueLimits.current > valueLimits.max) return styles.valueError; if (valueLimits.current / valueLimits.max >= 0.9) return styles.valueWarning; return; }