import { ComponentPropsWithRef, ReactNode, useId } from 'react'; import { sizeLookup, sizeMdLookup, sizeLgLookup, fontSizeLookup, fontSizeMdLookup, fontSizeLgLookup, fontWeightLookup, fontWeightMdLookup, fontWeightLgLookup, } from '../theme'; import { getClassName, memo } from '../utils'; import { cn } from '../libs'; import { Responsive } from '../types/ui'; export type CheckboxSize = keyof typeof sizeLookup; export type LabelFontSize = keyof typeof fontSizeLookup; export type LabelFontWeight = keyof typeof fontWeightLookup; export interface CheckboxProps extends Omit, 'size'> { label?: ReactNode; labelClass?: string; checkClass?: string; size?: CheckboxSize | Responsive; labelFontSize?: LabelFontSize | Responsive; labelFontWeight?: LabelFontWeight | Responsive; } const Component = ({ label, disabled = false, className = '', labelClass, checkClass, onChange, size = { base: 4, md: 5 } as any, // Default value type casting labelFontSize = { base: 'xs', md: 'sm', lg: 'base' } as any, labelFontWeight, ...rest }: CheckboxProps) => { const id = useId(); const s = size as any; const lfs = labelFontSize as any; const lfw = labelFontWeight as any; return (
); }; export const Checkbox = memo(Component);