UNPKG

@react-md/menu

Version:

Create menus that auto-position themselves within the viewport and adhere to the accessibility guidelines

69 lines (68 loc) 2.39 kB
import type { ReactNode } from "react"; import type { ListElement, ListProps } from "@react-md/list"; import type { LabelRequiredForA11y } from "@react-md/utils"; /** @remarks \@since 5.0.0 */ export declare type MenuItemGroupProps = LabelRequiredForA11y<Omit<ListProps, "role">> & { children: ReactNode; }; /** * If a menu or menubar contains more than one group of menuitemradio elements, * or if the menu contains one group and other, unrelated menu items, authors * SHOULD nest each set of related menuitemradio elements in an element using * the group role, and authors SHOULD delimit the group from other menu items * with an element using the separator role. * * @see {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemradio} * * @example * Simple Example * ```tsx * import { ReactElement, useState } from "react"; * import { DropdownMenu, MenuItemGroup, MenuItemSeparator } from "@react-md/menu"; * import { MenuItemRadio, MenuItemSwitch } from "@react-md/form"; * * function Example(): ReactElement { * const [value, setValue] = useState("value1"); * const [checked, setChecked] = useState(false); * * return ( * <DropdownMenu id="dropdown-menu-id" buttonChildren="Button"> * <MenuItemSwitch * id="switch-id" * checked={checked} * onCheckedChange={nextChecked => setChecked(nextChecked)} * > * Light mode * </MenuItemSwitch> * <MenuItemSeparator /> * <MenuItemGroup aria-label="My Group Label"> * <MenuItemRadio * id="radio-1" * checked={value === "value1"} * onCheckedChange={() => setValue("value1")} * > * Radio 1 * </MenuItemRadio> * <MenuItemRadio * id="radio-2" * checked={value === "value2"} * onCheckedChange={() => setValue("value2")} * > * Radio 2 * </MenuItemRadio> * <MenuItemRadio * id="radio-3" * checked={value === "value3"} * onCheckedChange={() => setValue("value3")} * > * Radio 3 * </MenuItemRadio> * </MenuItemGroup> * </DropdownMenu> * ); * } * ``` * * @remarks \@since 5.0.0 */ export declare const MenuItemGroup: import("react").ForwardRefExoticComponent<MenuItemGroupProps & import("react").RefAttributes<ListElement>>;