@patreon/studio
Version:
Patreon Studio Design System
94 lines (93 loc) • 3.29 kB
TypeScript
import type { BaseProps } from '../../types/component';
/** @deprecated custom sizes are no longer supported */
export declare type Size = 'sm' | 'md' | 'lg';
export declare type LabelPosition = 'right' | 'left';
export declare type InputType = 'checkbox';
declare type BaseWithAria = BaseProps & React.AriaAttributes;
export interface CheckboxProps extends BaseWithAria {
/**
* Indicates to the browser that the checkbox should receive focus as soon as
* it mounts. See
* [docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefautofocus)
*/
autoFocus?: boolean;
/**
* A boolean attribute indicate whether the checkbox is checked. See
* [docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefchecked)
*/
checked?: boolean;
/**
* String descriptor for testing.
*/
'data-tag'?: string;
/**
* Indicates the user should not be able to interact with the checkbox. See
* [docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefdisabled)
*/
disabled?: boolean;
/**
* Hides the label from view and sets `aria-label` on the checkbox for
* accessibility. A label should always be provided.
*/
hideLabel?: boolean;
/**
* HTML id property.
*/
id?: string;
/**
* A boolean attribute in addition to checked/unchecked which indicates that it is impossible
* to say whether the item is toggled on or off.
* [docs(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#Indeterminate_state_checkboxes)]
*/
indeterminate?: boolean;
/**
* Sets the label for the checkbox; required. To hide the label, see
* `hideLabel` prop.
*/
label: string | JSX.Element;
/**
* Specifies the position of the label relative to the checkbox.
*/
labelPosition?: LabelPosition;
/**
* A string specifying a name for the checkbox control. This name is submitted
* along with the control's value when the form data is submitted if the checkbox
* is checked.
*/
name?: string;
/**
* Called when the checkbox loses focus.
*/
onBlur?: () => void;
/**
* Called when the checkbox is clicked
*/
onChange: (e: Pick<React.ChangeEvent<HTMLInputElement>, 'target'>) => void;
/**
* Called when the checkbox receives focus.
*/
onFocus?: () => void;
/**
* Specifies the role of the checkbox for screen readers. See
* [docs](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques)
*/
role?: string;
/**
* Changes the text and padding sizes of the checkbox. `Sm`, `Md`, or `Lg`
* @default 'md'
* @deprecated custom sizes are no longer supported
*/
size?: Size;
/**
* Specifies the type of data being used in the checkbox. See
* [docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox)
*/
type?: InputType;
/**
* A string specifying the value for the checkbox control. This is submitted
* along with the control's name when the form data is submitted if the checkbox
* is checked.
*/
value?: string;
}
export {};