Menu suspenso
Um menu popover composable construído no React Aria - onde o Select escolhe um valor no gatilho, o Dropdown é um painel de forma livre de linhas de ação agrupadas com a superfície do BoardUI (rádio 16, sombra dropdown) e a escala de 150ms + borrão aparecem animação. A mesma receita atrás da equipe da barra lateral do painel e menus de contas e o menu de adição do compositor de chat de IA.
Instalação
Você pode adicionar este componente suspenso usando o nosso CLI ou manualmente:
Modo escuro pronto - este componente segue tokens semânticos BoardUI automaticamente. Configurar a mudança de tema.
O CLI copia a fonte do componente (com suas dependências internas) em seu projeto e instala quaisquer pacotes npm necessários.
npx boardui@latest add dropdownUsando um pacote de UI compartilhado ou aliases de importação personalizados? Configure seus caminhos de instalação antes de executar o CLI. Exemplos de copy-paste usam as importações padrão.
Selector de modelos
O menu modelo do compositor de chat de IA: linhas funcionam como um grupo de rádio - selecionado mantém a linha atual realçada e um glifo de rádio fica no fim da linha via justify-between.
{/* Radio-group rows: selected state on the row + a radio glyph at the end */}const [model, setModel] = useState("Fable 5");
<Dropdown isOpen={isOpen} onOpenChange={setIsOpen}> <DropdownTrigger className="…pill trigger with the current model + chevron…"> {model} <ChevronDownSmall className={cx("size-4", isOpen && "rotate-180")} /> </DropdownTrigger>
<DropdownPopover aria-label="Models" placement="bottom start"> <DropdownGroup label="Models"> <div role="radiogroup" aria-label="Model" className="flex w-full flex-col gap-1"> {MODELS.map((name) => ( <DropdownItem key={name} selected={name === model} onSelect={() => { setModel(name); setIsOpen(false); }} className="justify-between gap-2.5" > <span className="truncate text-body-medium text-text-primary">{name}</span> <RadioDot selected={name === model} /> </DropdownItem> ))} </div> </DropdownGroup> </DropdownPopover></Dropdown>