# Pull to Refresh

Painel que estica quando você puxa pra baixo, conta os pontos até a marca e gira enquanto atualiza.

- Nome no registry: `pull-to-refresh`
- Tipo: componente
- Dependências npm: motion, react
- Demo: https://ui.visantlabs.com/c/pull-to-refresh
- Categorias: feedback, atualizar, arrasto, widget, carregando

## Quando usar

- Use quando: Atualizar feed ou widget no celular puxando pra baixo, com a marca girando enquanto carrega
- Evite quando: Desktop ou conteúdo que atualiza sozinho: botão de atualizar; carga inicial, skeleton-rail

## Instalar

```bash
npx shadcn@latest add @visant/pull-to-refresh
```

## Usar

```tsx
<PullToRefresh
  label="Caixa de hoje"
/>
```

## API

### PullToRefresh

- `disabled?: boolean = false`
- `dots?: number = 8` — Pontos no anel.
- `handle?: boolean = true` — Alça no topo do painel, o sinal de "isto puxa". Default `true`.
- `label?: string = "Painel"` — Nome do painel pra leitor de tela.
- `labels?: false | { pull?: string; release?: string; refreshing?: string; }` — As frases ao lado do anel. `false` some com elas e deixa só o anel.
- `max?: number = 120` — Teto do esticão, em px.
- `nudge?: number | boolean = false` — Puxadinha sozinha a cada `nudge` ms (`true` = 4000) enquanto ninguém mexeu no painel. Para no primeiro toque, tecla ou foco. Desligada sob movimento reduzido.
- `onRefresh?: () => void | Promise<unknown>` — Busca o dado novo. Enquanto a promessa não resolve, o anel gira.
- `threshold?: number = 56` — Quanto puxar (px de painel esticado) até valer.
