/// import type { ComponentProps } from '@fluentui/react-utilities'; import type { ComponentState } from '@fluentui/react-utilities'; import type { ForwardRefComponent } from '@fluentui/react-utilities'; import { Label } from '@fluentui/react-label'; import * as React_2 from 'react'; import type { Slot } from '@fluentui/react-utilities'; import type { SlotClassNames } from '@fluentui/react-utilities'; /** * Radio component is a wrapper for a radio button with a label. */ export declare const Radio: ForwardRefComponent; export declare const radioClassNames: SlotClassNames; /** * A RadioGroup component presents a set of options where only one option can be selected. */ export declare const RadioGroup: ForwardRefComponent; export declare const radioGroupClassNames: SlotClassNames; export declare type RadioGroupContextValue = Pick; export declare type RadioGroupContextValues = { radioGroup: RadioGroupContextValue; }; /** * Data for the onChange event for RadioGroup. */ export declare type RadioGroupOnChangeData = { /** * The value of the newly selected Radio item. */ value: string; }; export declare type RadioGroupProps = Omit>, 'onChange'> & { /** * The name of this radio group. This name is applied to all Radio items inside this group. * * If no name is provided, one will be generated so that all of the Radio items have the same name. */ name?: string; /** * The selected Radio item in this group. * * This should be the `value` prop of one of the Radio items inside this group. */ value?: string; /** * The default selected Radio item in this group. * * This should be the `value` prop of one of the Radio items inside this group. */ defaultValue?: string; /** * Callback when the selected Radio item changes. */ onChange?: (ev: React_2.FormEvent, data: RadioGroupOnChangeData) => void; /** * How the radio items are laid out in the group. * * @default vertical */ layout?: 'vertical' | 'horizontal' | 'horizontal-stacked'; /** * Disable all Radio items in this group. */ disabled?: boolean; /** * Require a selection in this group. Adds the `required` prop to all child Radio items. */ required?: boolean; }; export declare const RadioGroupProvider: React_2.Provider; export declare type RadioGroupSlots = { /** * The radio group root. */ root: NonNullable>; }; /** * State used in rendering RadioGroup */ export declare type RadioGroupState = ComponentState & Required> & Pick; /** * Data for the onChange event for Radio. */ export declare type RadioOnChangeData = { /** * The value prop of this Radio item. */ value: string; }; /** * Radio Props */ export declare type RadioProps = Omit, 'input'>, 'onChange' | 'size'> & { /** * The value of the RadioGroup when this Radio item is selected. */ value?: string; /** * The position of the label relative to the radio indicator. * * This defaults to `after` unless the Radio is inside a RadioGroup with `layout="horizontalStacked"`, * in which case it defaults to `below`. * * @defaultvalue after */ labelPosition?: 'after' | 'below'; /** * Disable this Radio item. */ disabled?: boolean; /** * Callback when this Radio is selected in its group. * * **Note:** `onChange` is NOT called when this Radio is deselected. * Use RadioGroup's `onChange` event to determine when the selection in the group changes. */ onChange?: (ev: React_2.ChangeEvent, data: RadioOnChangeData) => void; }; export declare type RadioSlots = { /** * The root element of the Radio. * * The root slot receives the `className` and `style` specified directly on the ``. * All other native props will be applied to the primary slot: `input` */ root: NonNullable>; /** * The Radio's label. */ label: Slot; /** * Hidden input that handles the radio's functionality. * * This is the PRIMARY slot: all native properties specified directly on `` will be applied to this slot, * except `className` and `style`, which remain on the root slot. */ input: NonNullable>; /** * A circle outline, with a filled circle icon inside when the Radio is checked. */ indicator: NonNullable>; }; /** * State used in rendering Radio */ export declare type RadioState = ComponentState & Required>; /** * Render the final JSX of Radio */ export declare const renderRadio_unstable: (state: RadioState) => JSX.Element; /** * Render the final JSX of RadioGroup */ export declare const renderRadioGroup_unstable: (state: RadioGroupState, contextValues: RadioGroupContextValues) => JSX.Element; /** * Create the state required to render Radio. * * The returned state can be modified with hooks such as useRadioStyles_unstable, * before being passed to renderRadio_unstable. * * @param props - props from this instance of Radio * @param ref - reference to `` element of Radio */ export declare const useRadio_unstable: (props: RadioProps, ref: React_2.Ref) => RadioState; /** * Create the state required to render RadioGroup. * * The returned state can be modified with hooks such as useRadioGroupStyles_unstable, * before being passed to renderRadioGroup_unstable. * * @param props - props from this instance of RadioGroup * @param ref - reference to root HTMLElement of RadioGroup */ export declare const useRadioGroup_unstable: (props: RadioGroupProps, ref: React_2.Ref) => RadioGroupState; /** * @deprecated Use useRadioGroupContextValue_unstable instead. * RadioGroupContext is no longer a selector context, and no longer benefits from having a selector. */ export declare const useRadioGroupContext_unstable: (selector: (ctx: RadioGroupContextValue) => T) => T; /** * Get the value of the RadioGroupContext. */ export declare const useRadioGroupContextValue_unstable: () => RadioGroupContextValue; export declare const useRadioGroupContextValues: (state: RadioGroupState) => RadioGroupContextValues; /** * Apply styling to the RadioGroup slots based on the state */ export declare const useRadioGroupStyles_unstable: (state: RadioGroupState) => RadioGroupState; /** * Apply styling to the Radio slots based on the state */ export declare const useRadioStyles_unstable: (state: RadioState) => RadioState; export { }