# Radio Group Component API A set of radio buttons for single selection from multiple options. --- ## Installation ```toml # Cargo.toml [dependencies] shadcn-ui-leptos-radio-group = "0.7" ``` ```rust use shadcn_ui_leptos_radio_group::RadioGroup; ``` --- ## Import ```rust use shadcn_ui_leptos_radio_group::{ RadioGroup, RadioGroupItem }; ``` --- ## Component API ### RadioGroup Root container managing radio state. | Prop | Type | Default | Description | |------|------|---------|-------------| | `value` | `Signal` | **Required** | Selected value | | `on_change` | `Option>` | `None` | Change handler | | `disabled` | `Signal` | `false` | Disable group | | `name` | `MaybeProp` | `None` | Form field name | ### RadioGroupItem Individual radio option. | Prop | Type | Default | Description | |------|------|---------|-------------| | `value` | `String` | **Required** | Option value | | `disabled` | `Signal` | `false` | Disable option | | `id` | `MaybeProp` | `None` | Unique identifier | --- ## Usage Examples ### Basic Radio Group ```rust use leptos::prelude::*; use shadcn_ui_leptos_radio_group::*; #[component] pub fn MyComponent() -> impl IntoView { let (selected, set_selected) = signal("default".to_string()); view! {
} } ``` --- ## CSS Classes ```css .radio-group-item { aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 } .radio-group-item[data-state=checked] { border-primary text-primary } ``` --- ## Accessibility ### Keyboard Navigation | Key | Action | |-----|--------| | **Arrow Keys** | Navigate options | | **Space** | Select option | --- ## TypeScript API ```typescript interface RadioGroupProps { value: string; onChange?: (value: string) => void; disabled?: boolean; name?: string; children?: React.ReactNode; } interface RadioGroupItemProps { value: string; disabled?: boolean; id?: string; } export const RadioGroup: React.FC; export const RadioGroupItem: React.FC; ``` --- *Source: [packages/leptos/radio-group/src/default.rs](https://github.com/yourusername/leptos-shadcn-ui/blob/main/packages/leptos/radio-group/src/default.rs)*