import type { AvButtonProps } from '../../../interaction/buttons/AvButton/AvButton.vue.js'; import type { AvInteractiveProps } from '../../../../types/interfaces.types.js'; /** * AvDropdownItem interface representing a single menu item. */ export interface AvDropdownItem extends AvInteractiveProps { /** * Unique identifier for the item. */ name: string; /** * Display text for the item. */ label: string; /** * Optional icon (MDI icon name). */ icon?: string; /** * If true, only the icon is displayed, without the label. */ iconOnly?: boolean; /** * Optional URL to navigate to when the item is clicked. */ href?: AvButtonProps['href']; /** * Optional route to navigate to when the item is clicked. */ to?: AvButtonProps['to']; /** * If true, a separator line will be displayed before this menu item. */ separatorBefore?: boolean; } /** * AvDropdown props interface. */ export interface AvDropdownProps { /** * Array of menu items to display. Each item must have `name` and `label`, with optional `icon`. */ items: AvDropdownItem[]; /** * Accessibility label for the trigger button. */ triggerAriaLabel: string; /** * Applies the active state style to the trigger button. * @default false */ triggerActive?: boolean; /** * Icon for the trigger button. * @default MDI_ICONS.DOTS_VERTICAL */ triggerIcon?: string; /** * Text label for the trigger button. If not provided, only the icon is shown. */ triggerLabel?: string; /** * Variant of the trigger button. * @default 'OUTLINED' */ triggerVariant?: AvButtonProps['variant']; /** * Display the trigger button in selected size (small 'SM', medium 'MD', large 'LG'). * @default true */ triggerSize?: AvButtonProps['size']; /** * If true, the trigger button will not apply sentence case to its label. */ triggerNoSentenceCase?: AvButtonProps['noSentenceCase']; /** * Width of the dropdown menu. * @default '15rem' */ width?: string; /** * Internal padding of the dropdown menu. * @default 'var(--spacing-xs)' */ padding?: string; /** * Display menu item buttons in selected size (small 'SM', medium 'MD', large 'LG'). * @default true */ itemSize?: AvButtonProps['size']; /** * Theme of menu item buttons. * @default 'SECONDARY' */ itemTheme?: AvButtonProps['theme']; /** * Scale factor for menu item icons. * @default 1.3 */ itemIconScale?: number; } declare const _default: import("vue").DefineComponent any; }, string, import("vue").PublicProps, Readonly & Readonly<{ onItemSelected?: ((itemName: string) => any) | undefined; }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; export default _default;