@styleless-ui/react
Version:
Completely unstyled, headless and accessible React UI components.
49 lines (48 loc) • 1.45 kB
TypeScript
import * as React from "react";
import type { Classes, MergeElementProps } from "../typings";
interface OwnProps {
/**
* The content of the group.
*/
children?: React.ReactNode;
/**
* Map of sub-components and their correlated classNames.
*/
classes?: Classes<"root" | "label" | "group">;
/**
* The label of the group.
*/
label: string | {
/**
* The label to use as `aria-label` property.
*/
screenReaderLabel: string;
} | {
/**
* Identifies the element (or elements) that labels the group.
*
* @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby MDN Web Docs} for more information.
*/
labelledBy: string;
};
/**
* The orientation of the group.
* @default "vertical"
*/
orientation?: "horizontal" | "vertical";
/**
* The value of the selected radio.
*/
value?: string;
/**
* The default value. Use when the component is not controlled.
*/
defaultValue?: string;
/**
* The Callback is fired when the state changes.
*/
onChange?: (selectedValue: string) => void;
}
export type Props = Omit<MergeElementProps<"div", OwnProps>, "className" | "defaultChecked">;
declare const RadioGroup: (props: Props, ref: React.Ref<HTMLDivElement>) => JSX.Element;
export default RadioGroup;