# Sim Slider

A dobra que deixa o visitante fazer a conta: controle acessível, projeção derivada do próprio valor, curva sem transição (pra não discordar do número) e premissa obrigatória por escrito.

- Nome no registry: `sim-slider`
- Tipo: componente
- Dependências npm: react
- Demo: https://ui.visantlabs.com/c/sim-slider
- Categorias: controles, simulador, calculadora, slider, projecao, roi, curva, premissa

## Quando usar

- Use quando: Simulador de ROI ou economia numa landing: o visitante move o valor e vê a projeção com premissa
- Evite quando: Escolher valor sem projeção: elastic-slider; recomendar produto por medida, measure-picker

## Instalar

```bash
npx shadcn@latest add @visant/sim-slider
```

## Usar

```tsx
<SimSlider />
```

## API

### SimSlider

- `assumption: string` — A premissa, por escrito. Sem ela o simulador não é ferramenta, é promessa.
- `label: string`
- `max: number`
- `min: number`
- `outputs: SimOutput[]`
- `ceilingLabel?: string` — O que o topo da caixa significa. É a régua da curva — sem ela a linha é um traço num retângulo. Ausente, o tracejado ainda desenha, mudo.
- `curve?: (v: number) => number[]` — A série da curva para um dado valor, entre 0 e 1 cada ponto. Ausente, a curva não desenha — e isso é o certo quando não há projeção temporal real.
- `defaultValue?: number`
- `format?: (v: number) => string = "(v) => String(v)"` — Formata a leitura do próprio controle (o que a pessoa está movendo).
- `onValueChange?: (v: number) => void`
- `step?: number = 1`
