/**
* @usevyre/react — DropdownMenu
*
* AI CONTEXT:
* ┌─────────────────────────────────────────────────────────┐
* │ Components: │
* │ DropdownMenu — root wrapper + portal │
* │ DropdownItem — action item │
* │ DropdownCheckboxItem — toggle item with checkmark │
* │ DropdownRadioGroup — exclusive radio group │
* │ DropdownRadioItem — radio option inside group │
* │ DropdownSub — nested submenu │
* │ DropdownSubItem — submenu trigger item │
* │ DropdownLabel — non-interactive section label │
* │ DropdownSeparator — visual divider │
* │ │
* │ Import: │
* │ import { DropdownMenu, DropdownItem, │
* │ DropdownCheckboxItem, DropdownRadioGroup, │
* │ DropdownRadioItem, DropdownSub, DropdownSubItem, │
* │ DropdownLabel, DropdownSeparator } from "@usevyre/react"│
* │ │
* │ DropdownMenu props: │
* │ trigger = ReactElement (the anchor element) │
* │ placement = "bottom-start"(default)|"bottom-end" │
* │ |"top-start"|"top-end" │
* │ │
* │ DropdownItem props: │
* │ onSelect = () => void │
* │ disabled = boolean │
* │ variant = "default"(default)|"danger" │
* │ icon = ReactNode │
* │ shortcut = string (e.g. "⌘K") │
* │ │
* │ DropdownCheckboxItem props: │
* │ checked = boolean │
* │ onCheckedChange = (checked: boolean) => void │
* │ disabled = boolean │
* │ │
* │ DropdownRadioGroup props: │
* │ value = string │
* │ onValueChange = (value: string) => void │
* │ │
* │ DropdownRadioItem props: │
* │ value = string │
* │ disabled = boolean │
* │ │
* │ DropdownSub props: │
* │ trigger = ReactNode (the submenu trigger label) │
* │ placement = "right"(default)|"left" │
* └─────────────────────────────────────────────────────────┘
*
* @example
* Actions}>
* My Account
*
* } shortcut="⌘E" onSelect={handleEdit}>Edit
*
* Email
* Copy link
*
*
* } onSelect={handleDelete}>Delete
*
*/
import React from "react";
export type DropdownPlacement = "bottom-start" | "bottom-end" | "top-start" | "top-end";
export interface DropdownMenuProps {
trigger: React.ReactElement;
children: React.ReactNode;
placement?: DropdownPlacement;
className?: string;
}
export interface DropdownItemProps {
children: React.ReactNode;
onSelect?: () => void;
disabled?: boolean;
variant?: "default" | "danger";
icon?: React.ReactNode;
shortcut?: string;
className?: string;
}
export interface DropdownCheckboxItemProps {
children: React.ReactNode;
checked: boolean;
onCheckedChange: (checked: boolean) => void;
disabled?: boolean;
shortcut?: string;
className?: string;
}
export interface DropdownRadioGroupProps {
value: string;
onValueChange: (value: string) => void;
children: React.ReactNode;
}
export interface DropdownRadioItemProps {
children: React.ReactNode;
value: string;
disabled?: boolean;
className?: string;
}
export interface DropdownSubProps {
trigger: React.ReactNode;
children: React.ReactNode;
icon?: React.ReactNode;
placement?: "right" | "left";
disabled?: boolean;
className?: string;
}
export declare const DropdownMenu: React.FC;
export declare const DropdownLabel: React.FC<{
children: React.ReactNode;
className?: string;
}>;
export declare const DropdownItem: React.FC;
export declare const DropdownCheckboxItem: React.FC;
export declare const DropdownRadioGroup: React.FC;
export declare const DropdownRadioItem: React.FC;
export declare const DropdownSub: React.FC;
export declare const DropdownSeparator: React.FC<{
className?: string;
}>;