# 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 |