Skip to content

Menubar

Barra de menus horizontal estilo aplicação desktop, com múltiplos dropdowns independentes.

Uso

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

const menus = [
  {
    value: 'arquivo',
    label: 'Arquivo',
    items: [
      { value: 'novo',   label: 'Novo' },
      { value: 'abrir',  label: 'Abrir…' },
      { value: 'salvar', label: 'Salvar' },
    ],
  },
  {
    value: 'editar',
    label: 'Editar',
    groups: [
      {
        items: [
          { value: 'desfazer',  label: 'Desfazer' },
          { value: 'refazer',   label: 'Refazer' },
        ],
      },
      {
        items: [
          { value: 'copiar',    label: 'Copiar' },
          { value: 'colar',     label: 'Colar' },
        ],
      },
    ],
  },
]

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

<template>
  <Menubar :menus="menus" @select="onSelect" />
</template>

Props

PropTipoPadrão
menusMenubarMenu[]obrigatório
CampoTipoDescrição
valuestringIdentificador único do menu
labelstringRótulo exibido na barra
itemsMenubarItem[]Lista plana de itens (exclusivo com groups)
groupsMenubarGroup[]Grupos de itens com separadores
CampoTipoDescrição
valuestringIdentificador único do item
labelstringTexto exibido
disabledbooleanDesabilita o item (opcional)

Events

EventoPayloadDescrição
select(menu: string, value: string)Emitido ao clicar em um item