## Repeat Picker (S—124)

A recurrence picker: frequency, interval, weekday toggles and an end rule, summarised in a plain sentence.

- URL: https://sundaeui.dev/components/repeat-picker
- Category: Forms & inputs · Art direction: Refined
- Access: Free (no account needed)
- Stack: React 18+, TypeScript, plain CSS; dependencies: none
- Install: `npx shadcn@latest add https://sundaeui.dev/r/repeat-picker.json`
- Tags: rrule, recurrence, form, schedule, repeat, calendar

Choose daily, weekly or monthly and an interval with a stepper; weekly reveals weekday toggles. The end rule is never, after N times or on a date.
A sentence at the top always says what you have built, like “Every 2 weeks on Mon and Thu, 10 times”.

### Usage

```tsx
import { RepeatPicker } from '@/components/sundae/repeat-picker'

<RepeatPicker />
```

### Props

- `value / defaultValue` (`Recurrence`): { freq, interval, days, end }.
- `onValueChange` (`(r: Recurrence) => void`): Called on change.
- `fill` (`'dark' | 'light'`, default `'dark'`): Surface: dark or light.

### When to use

- Recurring events, reminders, reports, payments.

### When not to use

- Complex rules (the 2nd Tuesday, except holidays): use a full RRULE editor.

### Accessibility

- Frequency is a radiogroup, weekdays are toggle buttons with full day names, and the summary is a polite live region.
- Reduced motion removes the movement and keeps every state change.
