# Segmented Control
Capture input for a limited set of options.
```svelte
Label
Item 1
Item 2
Item 3
```
## Icons
```svelte
```
## Orientation
```svelte
Item 1
Item 2
Item 3
```
## Read Only
```svelte
Item 1
Item 2
Item 3
```
## Disabled
```svelte
Item 1
Item 2
Item 3
```
## Disabled Item
```svelte
Item 1
Item 2
Item 3
```
## Direction
```svelte
Label
Item 1
Item 2
Item 3
```
## API Reference
### SegmentedControlRoot
| Property | Type | Description |
| --- | --- | --- |
| `ids` | Partial<{ root: string; label: string; indicator: string; item: (value: string) => string; itemLabel: (value: string) => string; itemControl: (value: string) => string; itemHiddenInput: (value: string) => string; }> | undefined | The ids of the elements in the radio. Useful for composition. |
| `value` | string | null | undefined | The controlled value of the radio group |
| `defaultValue` | string | null | undefined | The initial value of the checked radio when rendered. Use when you don't need to control the value of the radio group. |
| `name` | string | undefined | The name of the input fields in the radio (Useful for form submission). |
| `form` | string | undefined | The associate form of the underlying input. |
| `disabled` | boolean | undefined | If `true`, the radio group will be disabled |
| `readOnly` | boolean | undefined | Whether the checkbox is read-only |
| `onValueChange` | ((details: ValueChangeDetails) => void) | undefined | Function called once a radio is checked |
| `orientation` | "horizontal" | "vertical" | undefined | Orientation of the radio group |
| `dir` | "ltr" | "rtl" | undefined | The document's text/writing direction. Default: "ltr" |
| `getRootNode` | (() => ShadowRoot | Node | Document) | undefined | A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron. |
| `element` | Snippet<[HTMLAttributes<"div">]> | undefined | Render the element yourself |
### SegmentedControlRootProvider
| Property | Type | Description |
| --- | --- | --- |
| `value`* | () => RadioGroupApi | |
| `element` | Snippet<[HTMLAttributes<"div">]> | undefined | Render the element yourself |
### SegmentedControlRootContext
| Property | Type | Description |
| --- | --- | --- |
| `children`* | Snippet<[() => RadioGroupApi]> | |
### SegmentedControlLabel
| Property | Type | Description |
| --- | --- | --- |
| `element` | Snippet<[HTMLAttributes<"span">]> | undefined | Render the element yourself |
### SegmentedControlControl
| Property | Type | Description |
| --- | --- | --- |
| `element` | Snippet<[HTMLAttributes<"div">]> | undefined | Render the element yourself |
### SegmentedControlIndicator
| Property | Type | Description |
| --- | --- | --- |
| `element` | Snippet<[HTMLAttributes<"div">]> | undefined | Render the element yourself |
### SegmentedControlItem
| Property | Type | Description |
| --- | --- | --- |
| `value`* | string | |
| `disabled` | boolean | undefined | |
| `invalid` | boolean | undefined | |
| `element` | Snippet<[HTMLAttributes<"label">]> | undefined | Render the element yourself |
### SegmentedControlItemText
| Property | Type | Description |
| --- | --- | --- |
| `element` | Snippet<[HTMLAttributes<"span">]> | undefined | Render the element yourself |
### SegmentedControlItemHiddenInput
| Property | Type | Description |
| --- | --- | --- |
| `element` | Snippet<[HTMLAttributes<"input">]> | undefined | Render the element yourself |