import { CSSProperties, ReactNode, Ref } from 'react'; import { FormValidator } from '../../services/formValidation/index.js'; import { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types.js'; export type CheckboxSlots = 'icon' | 'checkmark' | 'label'; export interface CheckboxProps extends Omit { label?: string; selected?: boolean; /** * Partly checked, as a select-all box over a partial selection: shows a dash and is announced * as mixed, whatever `selected` says. A click still reports `!selected`. */ indeterminate?: boolean; onToggle?: (isToggled: boolean, event?: React.MouseEvent | React.KeyboardEvent) => void; /** Applied to the root wrapper element */ className?: string; style?: CSSProperties; disabled?: boolean; lineHeight?: string; title?: string; tabIndex?: number; cursorDefault?: boolean; width?: string; height?: string; formValidator?: FormValidator | null; children?: ReactNode; background?: string | null; isLoading?: boolean; /** Ref to the root element. */ ref?: Ref; classNames?: SlotClassNames; styles?: SlotStyles; }