# Countdown

Contagem regressiva em que cada dígito gira pelo caminho curto e vira o aviso de ao vivo quando chega a zero.

- Nome no registry: `countdown`
- Tipo: componente
- Dependências npm: motion
- Demo: https://ui.visantlabs.com/c/countdown
- Categorias: conteudo, contagem, lancamento, prazo, timer, evento

## Quando usar

- Use quando: Contagem até lançamento, evento ou prazo que vira aviso de ao vivo quando chega a zero
- Evite quando: Número que só apura: count-up; horário de loja aberta, store-status

## Instalar

```bash
npx shadcn@latest add @visant/countdown
```

## Usar

```tsx
<Countdown
  label="A coleção nova abre em"
/>
```

## API

### Countdown

- `target: string | number | Date` — O instante alvo. Ver a nota 1 sobre string sem offset.
- `className?: string`
- `clock?: () => number = "() => Date.now()"` — Relógio em epoch ms. Passe um sincronizado com o servidor quando o do aparelho não for confiável.
- `completeLabel?: any = "Ao vivo"` — O que aparece quando o alvo passa. Os dígitos viram ele.
- `label?: string = "Tempo restante"` — Nome falado, como "A live começa em".
- `onComplete?: () => void` — Dispara uma vez, no instante em que chega a zero com a peça montada.
- `timeZone?: string` — Fuso IANA pra string sem offset, como "America/Sao_Paulo".
- `units?: CountdownUnit[] = ["days", "hours", "minutes", "seconds"]` — Unidades na tela, da maior pra menor. A maior absorve o resto.
- `variant?: "large" | "compact" = "large"` — Dígitos grandes com rótulo, ou uma linha compacta pra faixa e tabela.
