///
import type { BoxElementProps, BoxStyleProps } from "@twilio-paste/box";
import type { MenuPrimitiveItemCheckboxProps, MenuPrimitiveItemProps, MenuPrimitiveItemRadioProps, MenuPrimitiveProps, MenuPrimitiveSeparatorProps } from "@twilio-paste/menu-primitive";
import type { HTMLPasteProps, ValueOf } from "@twilio-paste/types";
import type { MenuItemVariants } from "./constants";
export type MenuProps = MenuPrimitiveProps & {
"aria-label": string;
element?: BoxElementProps["element"];
};
export type MenuItemVariant = ValueOf;
export type MenuItemVariantStyles = {
[key in MenuItemVariant]?: BoxStyleProps;
};
export interface MenuItemProps extends MenuPrimitiveItemProps {
/**
* Pass href prop to render an anchor element.
*
* @type {string}
* @memberof MenuItemProps
*/
href?: string;
/**
* Overrides the default element name to apply unique styles with the Customization Provider
*
* @default 'MENU_ITEM'
* @type {BoxElementProps['element']}
* @memberof MenuItemProps
*/
element?: BoxElementProps["element"];
/**
*
* @type {MenuItemVariant}
* @memberof MenuItemProps
*/
variant?: MenuItemVariant;
/**
*
* @type {any}
* @memberof MenuItemProps
*/
as?: any;
}
export interface MenuItemCheckboxProps extends MenuPrimitiveItemCheckboxProps {
/**
* Pass href prop to render an anchor element.
*
* @type {string}
* @memberof MenuItemCheckboxProps
*/
href?: string;
/**
* Overrides the default element name to apply unique styles with the Customization Provider
*
* @default "MENU_ITEM_CHECKBOX"
* @type {BoxElementProps['element']}
* @memberof MenuItemCheckboxProps
*/
element?: BoxElementProps["element"];
/**
*
* @type {MenuItemVariant}
* @memberof MenuItemCheckboxProps
*/
variant?: MenuItemVariant;
/**
*
* @type {any}
* @memberof MenuItemCheckboxProps
*/
as?: any;
}
export interface MenuItemRadioProps extends MenuPrimitiveItemRadioProps {
/**
* Pass href prop to render an anchor element.
*
* @type {string}
* @memberof MenuItemRadioProps
*/
href?: string;
/**
* Overrides the default element name to apply unique styles with the Customization Provider
*
* @default "MENU_ITEM_CHECKBOX"
* @type {BoxElementProps['element']}
* @memberof MenuItemRadioProps
*/
element?: BoxElementProps["element"];
/**
*
* @type {MenuItemVariant}
* @memberof MenuItemRadioProps
*/
variant?: MenuItemVariant;
/**
*
* @type {any}
* @memberof MenuItemRadioProps
*/
as?: any;
}
export interface MenuGroupProps extends HTMLPasteProps<"div"> {
/**
* Accessible name of the MenuGroup.
*
* @type {string}
* @memberof MenuGroupProps
*/
label: string;
/**
* Pass a decorative Paste icon to display with the group label.
*
* @type {string}
* @memberof MenuGroupProps
*/
icon?: React.ReactNode;
children: React.ReactNode;
/**
* Overrides the default element name to apply unique styles with the Customization Provider
*
* @default "MENU_GROUP"
* @type {BoxElementProps['element']}
* @memberof MenuGroupProps
*/
element?: BoxElementProps["element"];
}
export type MenuSeparatorProps = MenuPrimitiveSeparatorProps & {
element?: BoxElementProps["element"];
};
//# sourceMappingURL=types.d.ts.map