Skip to content

Dropdown Menu

Menu suspenso de ações ativado por um elemento gatilho.

Uso

vue
<script setup lang="ts">
import { Menu, Button } from '@halfbyte/maka'

const itens = [
  { value: 'editar', label: 'Editar' },
  { value: 'duplicar', label: 'Duplicar' },
  { value: 'excluir', label: 'Excluir' },
]

function onSelect(value: string) {
  console.log(value)
}
</script>

<template>
  <Menu :items="itens" @select="onSelect">
    <template #trigger>
      <Button variant="outline">Ações</Button>
    </template>
  </Menu>
</template>

Com grupos

vue
<script setup lang="ts">
import { Menu, Button } from '@halfbyte/maka'

const grupos = [
  {
    label: 'Conta',
    items: [
      { value: 'perfil', label: 'Perfil' },
      { value: 'config', label: 'Configurações' },
    ],
  },
  {
    items: [
      { value: 'sair', label: 'Sair' },
    ],
  },
]
</script>

<template>
  <Menu :groups="grupos" @select="onSelect">
    <template #trigger>
      <Button>Menu</Button>
    </template>
  </Menu>
</template>

Props

PropTipoPadrão
itemsMenuItem[]
groupsMenuGroup[]
placement"bottom-start" | "bottom-end" | "top-start" | "top-end""bottom-start"
disabledbooleanfalse
CampoTipoDescrição
valuestringIdentificador único do item
labelstringTexto exibido
disabledbooleanDesabilita o item (opcional)
CampoTipoDescrição
labelstringRótulo do grupo (opcional)
itemsMenuItem[]Lista de itens pertencentes ao grupo

Slots

SlotDescrição
triggerElemento que abre o menu
icon-{value}Ícone personalizado para um item
suffix-{value}Conteúdo à direita de um item

Events

EventoPayloadDescrição
selectstringEmitido ao clicar em um item