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

# CustomSelect

> Select estilizado com suporte a ícone de prefixo e estado de erro.

Wrapper para `<select>` nativo com estilo customizado, suporte a ícone de prefixo e indicação visual de erro.

## Uso

```vue theme={"system"}
<CustomSelect v-model="selectedOption" :error="hasError">
  <option value="">Selecione</option>
  <option value="1">Opção 1</option>
  <option value="2">Opção 2</option>
</CustomSelect>
```

Com ícone:

```vue theme={"system"}
<CustomSelect :icon-url="iconUrl" v-model="selected">
  <option value="br">Brasil</option>
</CustomSelect>
```

## Propriedades

| Propriedade |        Tipo        | Obrigatória | Valor padrão | Descrição                                              |
| :---------- | :----------------: | :---------: | :----------: | :----------------------------------------------------- |
| `value`     | `String \| Number` |      ❌      |     `''`     | Valor selecionado atualmente (use com `v-model`).      |
| `iconUrl`   |      `String`      |      ❌      |    `null`    | URL de um ícone exibido como prefixo dentro do select. |
| `error`     |      `Boolean`     |      ❌      |    `false`   | Quando `true`, aplica estilo de erro ao componente.    |

## Eventos

| Evento   | Payload          | Descrição                                      |
| :------- | :--------------- | :--------------------------------------------- |
| `change` | `String\|Number` | Emitido com o novo valor ao alterar a seleção. |

## Slots

| Slot    | Descrição                                      |
| :------ | :--------------------------------------------- |
| default | Elementos `<option>` e `<optgroup>` do select. |
