Files
frigate/web/src/components/config-form/theme/utils/fieldSizing.ts
T

38 lines
828 B
TypeScript
Raw Normal View History

2026-02-27 09:55:36 -06:00
import { cn } from "@/lib/utils";
const FIELD_SIZE_CLASS_MAP = {
xs: "max-w-xs",
sm: "max-w-sm",
md: "max-w-md",
lg: "max-w-2xl",
full: "max-w-full",
} as const;
export type FieldSizeOption = keyof typeof FIELD_SIZE_CLASS_MAP;
type FieldSizingOptions = {
size?: FieldSizeOption;
maxWidthClassName?: string;
className?: string;
};
export function getSizedFieldClassName(
options: unknown,
defaultSize: FieldSizeOption = "lg",
) {
const sizingOptions =
typeof options === "object" && options !== null
? (options as FieldSizingOptions)
: undefined;
const sizeClass =
FIELD_SIZE_CLASS_MAP[sizingOptions?.size ?? defaultSize] ??
FIELD_SIZE_CLASS_MAP[defaultSize];
return cn(
"w-full",
sizingOptions?.maxWidthClassName ?? sizeClass,
sizingOptions?.className,
);
}