@base-ui/react
Version:
Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.
76 lines • 2.28 kB
text/typescript
import * as React from 'react';
import type { BaseUIComponentProps, NonNativeButtonProps } from "../../internals/types.mjs";
import type { FieldRootState } from "../../field/root/FieldRoot.mjs";
/**
* Represents the radio button itself.
* Renders a `<span>` element and a hidden `<input>` beside.
*
* Documentation: [Base UI Radio](https://base-ui.com/react/components/radio)
*/
export declare const RadioRoot: {
<Value>(props: RadioRoot.Props<Value>): React.JSX.Element;
};
export interface RadioRootState extends FieldRootState {
/**
* Whether the radio button is currently selected.
*/
checked: boolean;
/**
* Whether the component should ignore user interaction.
*/
disabled: boolean;
/**
* Whether the user should be unable to select the radio button.
*/
readOnly: boolean;
/**
* Whether the user must choose a value before submitting a form.
*/
required: boolean;
/**
* Whether the radio button has been touched (when wrapped in Field.Root).
*/
touched: boolean;
/**
* Whether the radio button's value has changed from its initial value (when wrapped in Field.Root).
*/
dirty: boolean;
/**
* Whether the radio button is in a valid state (when wrapped in Field.Root).
*/
valid: boolean | null;
/**
* Whether the radio button has a value (when wrapped in Field.Root).
*/
filled: boolean;
/**
* Whether the radio button is focused (when wrapped in Field.Root).
*/
focused: boolean;
}
export interface RadioRootProps<Value = any> extends NonNativeButtonProps, Omit<BaseUIComponentProps<'span', RadioRootState>, 'value'> {
/**
* The unique identifying value of the radio in a group.
*/
value: Value;
/**
* Whether the component should ignore user interaction.
*/
disabled?: boolean | undefined;
/**
* Whether the user must choose a value before submitting a form.
*/
required?: boolean | undefined;
/**
* Whether the user should be unable to select the radio button.
*/
readOnly?: boolean | undefined;
/**
* A ref to access the hidden input element.
*/
inputRef?: React.Ref<HTMLInputElement> | undefined;
}
export declare namespace RadioRoot {
type State = RadioRootState;
type Props<TValue = any> = RadioRootProps<TValue>;
}