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

# VariantButton

> Renderiza opções de variação de produto como botões clicáveis com estado de indisponível.

Exibe as opções de uma variação de SKU (ex.: tamanhos, cores) como botões. Opções indisponíveis recebem estilo de riscado automaticamente. Usado internamente pelo `SelectSku` quando `variationsStyle="buttons"`.

## Uso

```vue theme={"system"}
<VariantButton
  :options="[
    { id: 1, value: 'P', available: true },
    { id: 2, value: 'M', available: true },
    { id: 3, value: 'G', available: false }
  ]"
  :value="selectedOptionId"
  :error="hasError"
  @change="selectedOptionId = $event"
/>
```

## Propriedades

| Propriedade |    Tipo   | Obrigatória | Valor padrão | Descrição                                                                              |
| :---------- | :-------: | :---------: | :----------: | :------------------------------------------------------------------------------------- |
| `options`   |  `Array`  |      ❌      |     `[]`     | Lista de opções da variação. Cada item deve ter `id`, `value` e `available` (Boolean). |
| `value`     |  `Number` |      ❌      |      `0`     | ID da opção atualmente selecionada.                                                    |
| `error`     | `Boolean` |      ❌      |    `false`   | Quando `true`, aplica borda de erro aos botões para indicar seleção obrigatória.       |
| `disabled`  | `Boolean` |      ❌      |    `false`   | Desabilita todos os botões de variação.                                                |

## Eventos

| Evento   | Payload  | Descrição                                          |
| :------- | :------- | :------------------------------------------------- |
| `change` | `Number` | Emitido com o `id` da opção selecionada ao clicar. |
