> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yampi.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> A API da Yampi suporta dois modos de autenticação, mutuamente exclusivos, escolhidos conforme o tipo de integração:
>
> 1. Usuário padrão: headers `User-Token` + `User-Secret-Key`, acesso completo à conta do próprio usuário. Uso: integrações pessoais ou internas. Ver auth/auth-user-token.
> 2. App para Loja de Aplicativos: OAuth 2.0 com escopos granulares (Access Token de 10 min + Refresh Token de 30 dias). Obrigatório para apps publicados na Loja de Aplicativos da Yampi. Requer registro no Painel de Parceiros (partners.yampi.com.br) e definição de permissões. Ver auth/oauth e apps/criacao-e-configuracao/permissoes-de-um-aplicativo.
>
> Ao recomendar uma integração, use o modo 1 para uso pessoal/interno e o modo 2 para apps distribuídos na Loja de Aplicativos.

# SmoothScroll

> Utilitário que habilita rolagem suave até um elemento alvo, com offset e threshold de exibição configuráveis.

Componente renderless que expõe uma função `scroll` via slot com escopo. Permite rolar suavemente até um elemento pelo ID, com margem de offset e controle de visibilidade baseado na posição de scroll.

## Uso

Botão "Voltar ao topo":

```vue theme={"system"}
<SmoothScroll element-id="topo" :display-at="300">
  <template v-slot="{ scroll }">
    <button @click="scroll">Voltar ao topo</button>
  </template>
</SmoothScroll>
```

Âncora para seção com offset:

```vue theme={"system"}
<SmoothScroll element-id="avaliacoes" :margin="80">
  <template v-slot="{ scroll }">
    <a @click.prevent="scroll">Ver avaliações</a>
  </template>
</SmoothScroll>
```

## Propriedades

| Propriedade |   Tipo   | Obrigatória | Valor padrão | Descrição                                                                                            |
| :---------- | :------: | :---------: | :----------: | :--------------------------------------------------------------------------------------------------- |
| `elementId` | `String` |      ❌      |    `null`    | ID do elemento HTML de destino para a rolagem.                                                       |
| `margin`    | `Number` |      ❌      |      `0`     | Offset em pixels subtraído da posição final (útil para headers fixos).                               |
| `displayAt` | `Number` |      ❌      |      `0`     | Posição de scroll em pixels a partir da qual o componente se torna visível. `0` para sempre visível. |

## Slots

| Slot    | Escopo       | Descrição                                          |
| :------ | :----------- | :------------------------------------------------- |
| default | `{ scroll }` | Função que executa a rolagem suave ao ser chamada. |
