Skip to content

Root ​

Componente principal do projeto.

Responsável por carregar o menu superior, o menu de navegação lateral, componentes para as composables de Toasts e os estilos para os demais componentes.

Props ​

PropTipoPadrãoDescrição
dataTestidstringAplica atributo data-testid para testes sobre o componente.
appBarAppBarConfigConjunto de propriedades para aplicar à barra superior.
navigationMenuNavigationMenuConfigConjunto de propriedades para aplicar ao menu lateral de navegação.

AppBarConfig ​

PropTipoPadrãoDescrição
dataTestidstringAplica atributo data-testid para testes sobre o componente.
titlestringTítulo para o cabeçalho, seja da página atual ou da aplicação como um todo.
helpRouteLocationRaw | stringRota para direcionar o usuário em necessidade de "ajuda", podendo essa ser uma rota externa (exemplo: "https://google.com") ou local (exemplo: "/help"). A opção será ocultada sempre que essa prop for omitida.
userAppBarUserConfigConjunto de propriedades para configurar o menu do usuário. A opção será ocultada sempre que essa prop for omitida.
notificationsAppBarNotificationConfig[]Lista de notificações para apresentar no menu superior. A opção será ocultada sempre que essa prop for omitida (uma lista vazia ainda exibe o botão, com uma mensagem indicando a ausência de notificações).
notificationsOpenbooleanfalseReflete e permite controlar externamente se o menu de notificações está aberto.

AppBarUserConfig ​

PropTipoPadrãoDescrição
titlestringTítulo para o menu do usuário. Geralmente o nome completo do mesmo.
subtitlestringSubtítulo para o menu do usuário, como e-mail ou username.
imgstringURL da imagem para identificar o usuário. Será apresentada uma imagem genérica em caso de omissão desta prop.
optionsParentOptionOrOption[]Lista de ações (ParentOption e/ou Option) para apresentar com o menu do usuário.

AppBarNotificationConfig ​

PropTipoPadrãoDescrição
titlestringTexto principal descrevendo a notificação.
subtitlestringTexto complementar com detalhes adicionais.
readbooleanIndica se a notificação já foi lida. Notificações não lidas são destacadas com um indicador.
dateDateData em que a notificação foi gerada.
ParentOption ​
PropTipoPadrãoDescrição
descriptionstringTítulo do agrupador de opções (Option).
itemsOption[]Lista de opções (Option) que serão agrupadas neste tópico.
Option ​
PropTipoPadrãoDescrição
descriptionstringTítulo/descrição da ação.
routeRouteLocationRaw | stringRota para direcionar o usuário ao acionar a ação, podendo essa ser uma rota externa (exemplo: "https://google.com") ou local (exemplo: "/help").
action() => voidFunção que será executada quando o usuário clicar na ação.
PropTipoPadrãoDescrição
dataTestidstringAplica atributo data-testid para testes sobre o componente.
itemsNavigationMenuItemConfig[]Lista de itens (NavigationMenuItemConfig e/ou NavigationMenuParentItemConfig) para apresentar no menu de navegação.
PropTipoPadrãoDescrição
descriptionstringTítulo do agrupador de itens (NavigationMenuItemConfig).
itemsNavigationMenuItemConfig[]Lista de itens que serão agrupados neste tópico.
PropTipoPadrãoDescrição
descriptionstringTítulo/descrição do item.
routeRouteLocationRaw | stringRota para direcionar o usuário ao clicar no item, podendo essa ser uma rota externa (exemplo: "https://google.com") ou local (exemplo: "/").
action() => voidFunção que será executada quando o usuário clicar no item.

Eventos ​

EventRetornoDescrição
update:notificationsOpenbooleanEmitido sempre que o menu de notificações é aberto ou fechado.

Slots ​

SlotDescrição
defaultConteúdo exibido dentro do componente.

Exemplo ​

vue
<template>
  <root :app-bar="appBar" v-model:notifications-open="notificationsOpen">
    <!-- ... -->
  </root>
</template>

<script lang="ts" setup>
import { ref } from "vue";
import { Root, type AppBarConfig } from "@nexdom/uimed-vue/components";

const notificationsOpen = ref(false);

const appBar: AppBarConfig = {
  title: "Menu superior",
  help: "https://google.com",
  dataTestid: "root-app-bar",
  user: {
    title: "Rafael Perini",
    subtitle: "UIMed-Vue Co-Creator",
    img: "/uimed-vue/avatar.jpg",
    options: [
      {
        description: "Bibliotecas",
        items: [
          {
            description: "Pkg-template",
            route: "https://nexdom-healthtech.github.io/pkg-template/",
          },
          {
            description: "Shared",
            route: "https://nexdom-healthtech.github.io/shared/",
          },
          {
            description: "UIMed-Vue",
            route: "https://nexdom-healthtech.github.io/uimed-vue/",
          },
        ],
      },
      {
        description: "GitHub NEXDOM",
        route: "https://github.com/nexdom-healthtech",
      },
      { description: "Sair", action: () => window.alert("Saindo...") },
    ],
  },
};
</script>

Lançado sob licença MIT