import type { InputHTMLAttributes, ReactNode } from 'react'; import type { InputCustomProps } from '../common-type'; export type CheckboxSize = 'sm' | 'md' | 'lg'; export type CheckboxVariant = 'default' | 'card'; export interface CheckboxProps extends Omit, 'type' | 'size'>, Omit { /** Force type to checkbox only */ type?: 'checkbox'; /** * Indeterminate (partially checked) state. * Useful for "Select All" parent checkboxes. */ indeterminate?: boolean; /** * Size scale of the checkbox. * Defaults to `"md"`. */ size?: CheckboxSize; /** * Container style variant. * - `default` — standard inline checkbox * - `card` — enclosed interactive card container * Defaults to `"default"`. */ variant?: CheckboxVariant; /** * Optional subtext description displayed beneath label. */ description?: ReactNode; /** * Optional helper message displayed below checkbox. */ helperText?: ReactNode; /** Extra class for outer wrapper */ wrapperClass?: string; /** Input container class */ containerClass?: string; /** Label class */ labelClass?: string; /** Error message */ error?: string | ReactNode; }