import { ClassValue, HTMLComponentProps, StyledComponentProps, ThemeColor } from "../../types/shared.js";
import { RadioSlots } from "./radio-variants.js";
import { ReactNode } from "react";
import { RadioGroupIndicatorProps, RadioGroupItemProps, RadioGroupProps } from "@radix-ui/react-radio-group";
//#region src/components/radio/types.d.ts
/**
* Class names for different slots in the radio component.
* Allows customizing styles for specific parts of the radio button and group.
*/
type RadioClassNames = Partial>;
/**
* Props for the individual radio button component.
* Extends the base radio group item with additional styling and label support.
*
* @example
* ```tsx
*
* ```
*/
interface RadioProps extends RadioGroupItemProps$1 {
/**
* Class names for customizing specific parts of the radio button
* (control, indicator, label, and root container).
*/
classNames?: Pick;
/**
* Label text or element displayed next to the radio button.
*/
label?: ReactNode;
}
/**
* Props for the radio group component containing multiple radio options.
* Manages the group selection state and renders multiple radio items.
*
* @example
* ```tsx
*
* ```
*/
interface RadioGroupProps$1 extends StyledComponentProps {
/**
* Class names for customizing different parts of the radio group and its items.
*/
classNames?: RadioClassNames;
/**
* Theme color applied to all radio buttons in the group.
* Affects the radio control and indicator colors.
*/
color?: ThemeColor;
/**
* Array of radio items to render in the group.
* Each item configuration is passed to individual Radio components.
*/
items: Omit[];
}
/**
* Props for the radio group item component.
* Represents a single selectable radio button within a group.
*/
interface RadioGroupItemProps$1 extends StyledComponentProps {
/**
* Theme color for this specific radio item.
* Overrides the group-level color if specified.
*/
color?: ThemeColor;
}
/**
* Props for the radio indicator component.
* The visual indicator element shown inside the radio control when selected.
*/
interface RadioIndicatorProps extends StyledComponentProps {
/**
* Theme color for the radio indicator element.
* Determines the fill color of the indicator dot.
*/
color?: ThemeColor;
}
/**
* Props for the radio root container component.
* Provides a styled div wrapper for radio buttons with custom HTML attributes.
*/
interface RadioRootProps extends HTMLComponentProps<'div'> {}
//#endregion
export { RadioClassNames, RadioGroupItemProps$1 as RadioGroupItemProps, RadioGroupProps$1 as RadioGroupProps, RadioIndicatorProps, RadioProps, RadioRootProps };