# Rating Group
URL: https://ark-ui.com/docs/components/rating-group
Source: https://raw.githubusercontent.com/chakra-ui/ark/refs/heads/main/website/src/content/pages/components/rating-group.mdx
Allows users to rate items using a set of icons.
---
## Anatomy
To set up the rating correctly, you'll need to understand its anatomy and how we name its parts.
> Each part includes a `data-part` attribute to help identify them in the DOM.
## Examples
Learn how to use the `RatingGroup` component in your project. Let's take a look at the most basic example:
**Example: basic**
#### React
```tsx
import { RatingGroup } from '@ark-ui/react/rating-group'
import { StarIcon } from 'lucide-react'
export const Basic = () => (
Label
{({ items }) =>
items.map((item) => (
{({ highlighted }) => (highlighted ? : )}
))
}
)
```
#### Solid
```tsx
import { RatingGroup } from '@ark-ui/solid/rating-group'
import { StarIcon } from 'lucide-solid'
import { Index, Show } from 'solid-js'
export const Basic = () => (
Label
{(context) => (
{(index) => (
{(context) => (
}>
)}
)}
)}
)
```
#### Vue
```vue
Label
```
#### Svelte
```svelte
Label
{#snippet render(ratingGroup)}
{#each ratingGroup().items as item}
{#snippet render(itemState)}
{#if itemState().highlighted}
{:else}
{/if}
{/snippet}
{/each}
{/snippet}
```
### Using half ratings
Allow `0.5` value steps by setting the `allowHalf` prop to `true`. Ensure to render the correct icon if the `isHalf`
value is set in the Rating components render callback.
**Example: half-ratings**
#### React
```tsx
import { RatingGroup } from '@ark-ui/react/rating-group'
import { StarHalfIcon, StarIcon } from 'lucide-react'
export const HalfRatings = () => (
Label
{({ items }) =>
items.map((item) => (
{({ half, highlighted }) => {
if (half) return
if (highlighted) return
return
}}
))
}
)
```
#### Solid
```tsx
import { RatingGroup } from '@ark-ui/solid/rating-group'
import { StarHalfIcon, StarIcon } from 'lucide-solid'
import { Index } from 'solid-js'
export const HalfRatings = () => (
Label
{(context) => (
{(index) => (
{(context) =>
context().half ? (
) : context().highlighted ? (
) : (
)
}
)}
)}
)
```
#### Vue
```vue
Label
```
#### Svelte
```svelte
Label
{#snippet render(ratingGroup)}
{#each ratingGroup().items as item (item)}
{#snippet render(itemState)}
{#if itemState().half}
{:else if itemState().highlighted}
{:else}
{/if}
{/snippet}
{/each}
{/snippet}
```
### Using a default value
**Example: initial-value**
#### React
```tsx
import { RatingGroup } from '@ark-ui/react/rating-group'
import { StarIcon } from 'lucide-react'
export const InitialValue = () => (
Label
{({ items }) =>
items.map((item) => (
{({ highlighted }) => (highlighted ? : )}
))
}
)
```
#### Solid
```tsx
import { RatingGroup } from '@ark-ui/solid/rating-group'
import { StarIcon } from 'lucide-solid'
import { Index, Show } from 'solid-js'
export const InitialValue = () => (
Label
{(context) => (
{(index) => (
{(context) => (
}>
)}
)}
)}
)
```
#### Vue
```vue
Label
```
#### Svelte
```svelte
Label
{#snippet render(ratingGroup)}
{#each ratingGroup().items as item (item)}
{#snippet render(itemState)}
{#if itemState().highlighted}
{:else}
{/if}
{/snippet}
{/each}
{/snippet}
```
### Controlled
When using the `RatingGroup` component, you can use the `value` and `onValueChange` props to control the state.
**Example: controlled**
#### React
```tsx
import { RatingGroup } from '@ark-ui/react/rating-group'
import { StarIcon } from 'lucide-react'
import { useState } from 'react'
export const Controlled = () => {
const [value, setValue] = useState(0)
return (
setValue(details.value)} allowHalf>
Label
{({ items }) =>
items.map((item) => (
{({ highlighted }) => (highlighted ? : )}
))
}
)
}
```
#### Solid
```tsx
import { RatingGroup } from '@ark-ui/solid/rating-group'
import { StarIcon } from 'lucide-solid'
import { Index, Show, createSignal } from 'solid-js'
export const Controlled = () => {
const [value, setValue] = createSignal(0)
return (
setValue(details.value)}>
Label
{(context) => (
{(index) => (
{(context) => (
}>
)}
)}
)}
)
}
```
#### Vue
```vue
Label {{ value }}
```
#### Svelte
```svelte
Label
{#snippet render(ratingGroup)}
{#each ratingGroup().items as item}
{#snippet render(itemState)}
{#if itemState().highlighted}
{:else}
{/if}
{/snippet}
{/each}
{/snippet}
```
### Disabling the rating group
To make the rating group disabled, set the `disabled` prop to `true`.
**Example: disabled**
#### React
```tsx
import { RatingGroup } from '@ark-ui/react/rating-group'
import { StarIcon } from 'lucide-react'
export const Disabled = () => (
Label
{({ items }) =>
items.map((item) => (
{({ highlighted }) => (highlighted ? : )}
))
}
)
```
#### Solid
```tsx
import { RatingGroup } from '@ark-ui/solid/rating-group'
import { StarIcon } from 'lucide-solid'
import { Index, Show } from 'solid-js'
export const Disabled = () => (
Label
{(context) => (
{(index) => (
{(context) => (
}>
)}
)}
)}
)
```
#### Vue
```vue
Label
```
#### Svelte
```svelte
Label
{#snippet render(ratingGroup)}
{#each ratingGroup().items as item}
{#snippet render(itemState)}
{#if itemState().highlighted}
{:else}
{/if}
{/snippet}
{/each}
{/snippet}
```
### Readonly rating group
To make the rating group readonly, set the `readOnly` prop to `true`.
**Example: read-only**
#### React
```tsx
import { RatingGroup } from '@ark-ui/react/rating-group'
import { StarIcon } from 'lucide-react'
export const ReadOnly = () => (
Label
{({ items }) =>
items.map((item) => (
{({ highlighted }) => (highlighted ? : )}
))
}
)
```
#### Solid
```tsx
import { RatingGroup } from '@ark-ui/solid/rating-group'
import { StarIcon } from 'lucide-solid'
import { Index, Show } from 'solid-js'
export const ReadOnly = () => (
Label
{(context) => (
{(index) => (
{(context) => (
}>
)}
)}
)}
)
```
#### Vue
```vue
Label
```
#### Svelte
```svelte
Label
{#snippet render(ratingGroup)}
{#each ratingGroup().items as item}
{#snippet render(itemState)}
{#if itemState().highlighted}
{:else}
{/if}
{/snippet}
{/each}
{/snippet}
```
### Usage within forms
To use the rating group within forms, pass the prop `name`. It will render a hidden input and ensure the value changes
get propagated to the form correctly.
**Example: form-usage**
#### React
```tsx
import { RatingGroup } from '@ark-ui/react/rating-group'
import { StarIcon } from 'lucide-react'
export const FormUsage = () => (
Label
{({ items }) =>
items.map((item) => (
{({ highlighted }) => (highlighted ? : )}
))
}
)
```
#### Solid
```tsx
import { RatingGroup } from '@ark-ui/solid/rating-group'
import { StarIcon } from 'lucide-solid'
import { Index, Show } from 'solid-js'
export const FormUsage = () => (
Label
{(context) => (
{(index) => (
{(context) => (
}>
)}
)}
)}
)
```
#### Vue
```vue
Label
```
#### Svelte
```svelte
Label
{#snippet render(ratingGroup)}
{#each ratingGroup().items as item (item)}
{#snippet render(itemState)}
{#if itemState().highlighted}
{:else}
{/if}
{/snippet}
{/each}
{/snippet}
```
### Using the Field Component
The `Field` component helps manage form-related state and accessibility attributes of a rating group. It includes
handling ARIA labels, helper text, and error text to ensure proper accessibility.
**Example: with-field**
#### React
```tsx
import { Field } from '@ark-ui/react/field'
import { RatingGroup } from '@ark-ui/react/rating-group'
import { StarIcon } from 'lucide-react'
export const WithField = (props: Field.RootProps) => {
return (
Label
{({ items }) =>
items.map((item) => (
{({ highlighted }) => (highlighted ? : )}
))
}
Additional InfoError Info
)
}
```
#### Solid
```tsx
import { Field } from '@ark-ui/solid/field'
import { RatingGroup } from '@ark-ui/solid/rating-group'
import { StarIcon } from 'lucide-solid'
import { Index, Show } from 'solid-js'
export const WithField = (props: Field.RootProps) => {
return (
Label
{(context) => (
{(index) => (
{(context) => (
}>
)}
)}
)}
Additional InfoError Info
)
}
```
#### Vue
```vue
LabelAdditional InfoError Info
```
#### Svelte
```svelte
Label
{#snippet render(ratingGroup)}
{#each ratingGroup().items as item}
{#snippet render(itemState)}
{#if itemState().highlighted}
{:else}
{/if}
{/snippet}
{/each}
{/snippet}
Additional InfoError Info
```
### Using the Root Provider
The `RootProvider` component provides a context for the rating-group. It accepts the value of the `useRating-group`
hook. You can leverage it to access the component state and methods from outside the rating-group.
**Example: root-provider**
#### React
```tsx
import { RatingGroup, useRatingGroup } from '@ark-ui/react/rating-group'
import { StarIcon } from 'lucide-react'
export const RootProvider = () => {
const ratingGroup = useRatingGroup({ count: 5, defaultValue: 3 })
return (
<>
Label
{({ items }) =>
items.map((item) => (
{({ highlighted }) => (highlighted ? : )}
))
}
>
)
}
```
#### Solid
```tsx
import { RatingGroup, useRatingGroup } from '@ark-ui/solid/rating-group'
import { StarIcon } from 'lucide-solid'
import { Index, Show } from 'solid-js'
export const RootProvider = () => {
const ratingGroup = useRatingGroup({ count: 5, value: 3 })
return (
<>
Label
{(context) => (
{(index) => (
{(context) => (
}>
)}
)}
)}
>
)
}
```
#### Vue
```vue
Label
```
#### Svelte
```svelte
Label
{#snippet render(ratingGroup)}
{#each ratingGroup().items as item}
{#snippet render(itemState)}
{#if itemState().highlighted}
{:else}
{/if}
{/snippet}
{/each}
{/snippet}
```
> If you're using the `RootProvider` component, you don't need to use the `Root` component.
## API Reference
### Props
**Component API Reference**
#### React
**Root Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `allowHalf` | `boolean` | No | Whether to allow half stars. |
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
| `autoFocus` | `boolean` | No | Whether to autofocus the rating. |
| `count` | `number` | No | The total number of ratings. |
| `defaultValue` | `number` | No | The initial value of the rating when rendered.
Use when you don't need to control the value of the rating. |
| `disabled` | `boolean` | No | Whether the rating is disabled. |
| `form` | `string` | No | The associate form of the underlying input element. |
| `id` | `string` | No | The unique identifier of the machine. |
| `ids` | `Partial<{
root: string
label: string
hiddenInput: string
control: string
item: (id: string) => string
}>` | No | The ids of the elements in the rating. Useful for composition. |
| `name` | `string` | No | The name attribute of the rating element (used in forms). |
| `onHoverChange` | `(details: HoverChangeDetails) => void` | No | Function to be called when the rating value is hovered. |
| `onValueChange` | `(details: ValueChangeDetails) => void` | No | Function to be called when the rating value changes. |
| `readOnly` | `boolean` | No | Whether the rating is readonly. |
| `required` | `boolean` | No | Whether the rating is required. |
| `translations` | `IntlTranslations` | No | Specifies the localized strings that identifies the accessibility elements and their states |
| `value` | `number` | No | The controlled value of the rating |
**Control Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Control Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | control |
| `[data-readonly]` | Present when read-only |
| `[data-disabled]` | Present when disabled |
**HiddenInput Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Item Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `index` | `number` | Yes | |
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Item Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | item |
| `[data-disabled]` | Present when disabled |
| `[data-readonly]` | Present when read-only |
| `[data-checked]` | Present when checked |
| `[data-highlighted]` | Present when highlighted |
| `[data-half]` | |
**Label Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Label Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | label |
| `[data-disabled]` | Present when disabled |
**RootProvider Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `value` | `UseRatingGroupReturn` | Yes | |
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
#### Solid
**Root Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `allowHalf` | `boolean` | No | Whether to allow half stars. |
| `asChild` | `(props: ParentProps<'div'>) => Element` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
| `autoFocus` | `boolean` | No | Whether to autofocus the rating. |
| `count` | `number` | No | The total number of ratings. |
| `defaultValue` | `number` | No | The initial value of the rating when rendered.
Use when you don't need to control the value of the rating. |
| `disabled` | `boolean` | No | Whether the rating is disabled. |
| `form` | `string` | No | The associate form of the underlying input element. |
| `ids` | `Partial<{
root: string
label: string
hiddenInput: string
control: string
item: (id: string) => string
}>` | No | The ids of the elements in the rating. Useful for composition. |
| `name` | `string` | No | The name attribute of the rating element (used in forms). |
| `onHoverChange` | `(details: HoverChangeDetails) => void` | No | Function to be called when the rating value is hovered. |
| `onValueChange` | `(details: ValueChangeDetails) => void` | No | Function to be called when the rating value changes. |
| `readOnly` | `boolean` | No | Whether the rating is readonly. |
| `required` | `boolean` | No | Whether the rating is required. |
| `translations` | `IntlTranslations` | No | Specifies the localized strings that identifies the accessibility elements and their states |
| `value` | `number` | No | The controlled value of the rating |
**Control Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `(props: ParentProps<'div'>) => Element` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Control Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | control |
| `[data-readonly]` | Present when read-only |
| `[data-disabled]` | Present when disabled |
**HiddenInput Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `(props: ParentProps<'input'>) => Element` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Item Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `index` | `number` | Yes | |
| `asChild` | `(props: ParentProps<'span'>) => Element` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Item Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | item |
| `[data-disabled]` | Present when disabled |
| `[data-readonly]` | Present when read-only |
| `[data-checked]` | Present when checked |
| `[data-highlighted]` | Present when highlighted |
| `[data-half]` | |
**Label Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `(props: ParentProps<'label'>) => Element` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Label Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | label |
| `[data-disabled]` | Present when disabled |
**RootProvider Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `value` | `UseRatingGroupReturn` | Yes | |
| `asChild` | `(props: ParentProps<'div'>) => Element` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
#### Vue
**Root Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `allowHalf` | `boolean` | No | Whether to allow half stars. |
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
| `autoFocus` | `boolean` | No | Whether to autofocus the rating. |
| `count` | `number` | No | The total number of ratings. |
| `defaultValue` | `number` | No | The initial value of the rating when rendered.
Use when you don't need to control the value of the rating. |
| `disabled` | `boolean` | No | Whether the rating is disabled. |
| `form` | `string` | No | The associate form of the underlying input element. |
| `id` | `string` | No | The unique identifier of the machine. |
| `ids` | `Partial<{
root: string
label: string
hiddenInput: string
control: string
item(id: string): string
}>` | No | The ids of the elements in the rating. Useful for composition. |
| `modelValue` | `number` | No | The v-model value of the rating group |
| `name` | `string` | No | The name attribute of the rating element (used in forms). |
| `readOnly` | `boolean` | No | Whether the rating is readonly. |
| `required` | `boolean` | No | Whether the rating is required. |
| `translations` | `IntlTranslations` | No | Specifies the localized strings that identifies the accessibility elements and their states |
**Control Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Control Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | control |
| `[data-readonly]` | Present when read-only |
| `[data-disabled]` | Present when disabled |
**HiddenInput Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Item Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `index` | `number` | Yes | |
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Item Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | item |
| `[data-disabled]` | Present when disabled |
| `[data-readonly]` | Present when read-only |
| `[data-checked]` | Present when checked |
| `[data-highlighted]` | Present when highlighted |
| `[data-half]` | |
**Label Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
**Label Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | label |
| `[data-disabled]` | Present when disabled |
**RootProvider Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `value` | `RatingGroupApi` | Yes | |
| `asChild` | `boolean` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
#### Svelte
**Root Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `allowHalf` | `boolean` | No | Whether to allow half stars. |
| `asChild` | `Snippet<[PropsFn<'div'>]>` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
| `autoFocus` | `boolean` | No | Whether to autofocus the rating. |
| `count` | `number` | No | The total number of ratings. |
| `defaultValue` | `number` | No | The initial value of the rating when rendered.
Use when you don't need to control the value of the rating. |
| `disabled` | `boolean` | No | Whether the rating is disabled. |
| `form` | `string` | No | The associate form of the underlying input element. |
| `id` | `string` | No | The unique identifier of the machine. |
| `ids` | `Partial<{
root: string
label: string
hiddenInput: string
control: string
item: (id: string) => string
}>` | No | The ids of the elements in the rating. Useful for composition. |
| `name` | `string` | No | The name attribute of the rating element (used in forms). |
| `onHoverChange` | `(details: HoverChangeDetails) => void` | No | Function to be called when the rating value is hovered. |
| `onValueChange` | `(details: ValueChangeDetails) => void` | No | Function to be called when the rating value changes. |
| `readOnly` | `boolean` | No | Whether the rating is readonly. |
| `ref` | `Element` | No | |
| `required` | `boolean` | No | Whether the rating is required. |
| `translations` | `IntlTranslations` | No | Specifies the localized strings that identifies the accessibility elements and their states |
| `value` | `number` | No | The controlled value of the rating |
**Context Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `render` | `Snippet<[UseRatingGroupContext]>` | Yes | |
**Control Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `Snippet<[PropsFn<'div'>]>` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
| `ref` | `Element` | No | |
**Control Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | control |
| `[data-readonly]` | Present when read-only |
| `[data-disabled]` | Present when disabled |
**HiddenInput Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `Snippet<[PropsFn<'input'>]>` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
| `ref` | `Element` | No | |
**ItemContext Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `render` | `Snippet<[UseRatingGroupItemContext]>` | Yes | |
**Item Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `index` | `number` | Yes | |
| `asChild` | `Snippet<[PropsFn<'span'>]>` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
| `ref` | `Element` | No | |
**Item Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | item |
| `[data-disabled]` | Present when disabled |
| `[data-readonly]` | Present when read-only |
| `[data-checked]` | Present when checked |
| `[data-highlighted]` | Present when highlighted |
| `[data-half]` | |
**Label Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `asChild` | `Snippet<[PropsFn<'label'>]>` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
| `ref` | `Element` | No | |
**Label Data Attributes:**
| Attribute | Value |
|-----------|-------|
| `[data-scope]` | rating-group |
| `[data-part]` | label |
| `[data-disabled]` | Present when disabled |
**RootProvider Props:**
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `value` | `UseRatingGroupReturn` | Yes | |
| `asChild` | `Snippet<[PropsFn<'div'>]>` | No | Use the provided child element as the default rendered element, combining their props and behavior. |
| `ref` | `Element` | No | |
### Context
These are the properties available when using `UratingUgroup.Context`, `useUratingUgroupContext` hook or `useUratingUgroup` hook.
**API:**
| Property | Type | Description |
|----------|------|-------------|
| `setValue` | `(value: number) => void` | Sets the value of the rating group |
| `clearValue` | `VoidFunction` | Clears the value of the rating group |
| `hovering` | `boolean` | Whether the rating group is being hovered |
| `value` | `number` | The current value of the rating group |
| `hoveredValue` | `number` | The value of the currently hovered rating |
| `count` | `number` | The total number of ratings |
| `items` | `number[]` | The array of rating values. Returns an array of numbers from 1 to the max value. |
| `getItemState` | `(props: ItemProps) => ItemState` | Returns the state of a rating item |
## Accessibility
### Keyboard Support