> ## 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.

# LoaderButton

> Botão que exibe um spinner de carregamento enquanto uma ação está sendo processada.

Substitui o conteúdo do botão por um spinner animado enquanto `sending` é `true`. Impede cliques duplicados durante o processamento e suporta estado desabilitado independente.

## Uso

```vue theme={"system"}
<LoaderButton
  :sending="isLoading"
  :disabled="!isValid"
  title="Finalizar pedido"
  @click="submitOrder"
/>
```

Com slot customizado:

```vue theme={"system"}
<LoaderButton :sending="isLoading" @click="submit">
  <span>Salvar alterações</span>
</LoaderButton>
```

## Propriedades

| Propriedade      |    Tipo   | Obrigatória | Valor padrão | Descrição                                                           |
| :--------------- | :-------: | :---------: | :----------: | :------------------------------------------------------------------ |
| `sending`        | `Boolean` |      ✅      |       —      | Quando `true`, exibe o spinner e bloqueia novos cliques.            |
| `disabled`       | `Boolean` |      ❌      |    `false`   | Desabilita o botão independentemente do estado de `sending`.        |
| `title`          |  `String` |      ❌      |     `''`     | Texto do botão. Usado como fallback quando o slot não é preenchido. |
| `listenPosition` | `Boolean` |      ❌      |    `false`   | Ativa rastreamento de posição do botão na viewport.                 |

## Eventos

| Evento  | Payload      | Descrição                                                                           |
| :------ | :----------- | :---------------------------------------------------------------------------------- |
| `click` | `MouseEvent` | Disparado ao clicar no botão (não dispara quando `sending` ou `disabled` é `true`). |

## Slots

| Slot    | Descrição                                                         |
| :------ | :---------------------------------------------------------------- |
| default | Conteúdo do botão. Quando não preenchido, usa o valor de `title`. |
