@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.
56 lines • 1.7 kB
TypeScript
import * as React from 'react';
import type { BaseUIComponentProps, NonNativeButtonProps } from "../../utils/types.js";
import type { FieldRoot } from "../../field/root/FieldRoot.js";
/**
* 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 FieldRoot.State {
/**
* 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;
}
export interface RadioRootProps<Value = any> extends NonNativeButtonProps, Omit<BaseUIComponentProps<'span', RadioRoot.State>, '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>;
}