"use client" import * as React from "react" import type { Selection } from "react-aria-components" import { Example, ExampleWrapper, } from "@/registry/bases/aria/components/example" import { Avatar, AvatarFallback, AvatarImage, } from "@/registry/bases/aria/ui/avatar" import { Button } from "@/registry/bases/aria/ui/button" import { Dialog, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "@/registry/bases/aria/ui/dialog" import { DropdownMenu, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from "@/registry/bases/aria/ui/dropdown-menu" import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder" export default function DropdownMenuExample() { return ( ) } function DropdownMenuBasic() { return ( My Account Profile Billing Settings GitHub Support API ) } function DropdownMenuSides() { return (
{( [ { label: "start", placement: "start top" }, { label: "left", placement: "left top" }, { label: "top", placement: "top start" }, { label: "bottom", placement: "bottom start" }, { label: "right", placement: "right top" }, { label: "end", placement: "end top" }, ] as const ).map(({ label, placement }) => ( Profile Billing Settings ))}
) } function DropdownMenuWithIcons() { return ( Profile Billing Settings Log out ) } function DropdownMenuWithShortcuts() { return ( My Account Profile ⇧⌘P Billing ⌘B Settings ⌘S Keyboard shortcuts ⌘K Log out ⇧⌘Q ) } function DropdownMenuWithSubmenu() { return ( Team Invite users Email Message More... New Team ⌘+T ) } function DropdownMenuWithCheckboxes() { const [selectedKeys, setSelectedKeys] = React.useState( new Set(["status-bar"]) ) return ( Appearance Status Bar Activity Bar Panel ) } function DropdownMenuWithRadio() { const [position, setPosition] = React.useState("bottom") return ( setPosition( keys === "all" ? "bottom" : (keys.values().next().value as string) ) } > Panel Position Top Bottom Right ) } function DropdownMenuWithCheckboxesIcons() { const [selectedKeys, setSelectedKeys] = React.useState( new Set(["email", "push"]) ) return ( Notification Preferences Email notifications SMS notifications Push notifications ) } function DropdownMenuWithRadioIcons() { const [paymentMethod, setPaymentMethod] = React.useState("card") return ( setPaymentMethod( keys === "all" ? "card" : (keys.values().next().value as string) ) } > Select Payment Method Credit Card PayPal Bank Transfer ) } function DropdownMenuWithDestructive() { return ( Edit Share Archive Delete ) } function DropdownMenuWithAvatar() { const menuContent = ( <> Account Billing Notifications Sign Out ) return (
{menuContent} {menuContent}
) } function DropdownMenuInDialog() { return ( Dropdown Menu Example Click the button below to see the dropdown menu. Copy Cut Paste More Options Save Page... Create Shortcut... Name Window... Developer Tools Delete ) } function DropdownMenuWithInset() { const [selectedKeys, setSelectedKeys] = React.useState( new Set(["bookmarks"]) ) const [theme, setTheme] = React.useState("system") return ( Actions Copy Cut Paste Appearance Bookmarks Full URLs setTheme( keys === "all" ? "system" : (keys.values().next().value as string) ) } > Theme Light Dark System More Options Save Page... Create Shortcut... ) } function DropdownMenuComplex() { const [selectedKeys, setSelectedKeys] = React.useState( new Set(["sidebar"]) ) return ( My Account Profile ⇧⌘P Billing ⌘B Settings ⌘S View Sidebar Status Bar Invite Users Email Message More... Support Sign Out ⇧⌘Q ) }