import { BaseAnchorAnimationOptions, BaseAnchorPanelCardProps, BaseAnchorPlacement } from '../../base-anchor/src/types'; export type ContextMenuTrigger = 'contextmenu' | 'click' | 'both' | 'manual'; export type ContextMenuAnchorMode = 'pointer' | 'reference'; export type ContextMenuPanelVariant = 'solid' | 'dashed' | 'plain'; export type ContextMenuPanelBackground = 'pure' | 'mask' | 'blur' | 'glass' | 'refraction' | 'acrylic' | 'mica' | 'flat' | 'plain'; export type ContextMenuPanelShadow = 'none' | 'soft' | 'medium'; export interface ContextMenuPoint { x: number; y: number; } export type ContextMenuOpenTarget = ContextMenuPoint | MouseEvent | PointerEvent; export interface ContextMenuProps { modelValue?: boolean; x?: number; y?: number; width?: number; minWidth?: number; maxWidth?: number; maxHeight?: number; unlimitedHeight?: boolean; disabled?: boolean; eager?: boolean; trigger?: ContextMenuTrigger; anchorMode?: ContextMenuAnchorMode; preventDefault?: boolean; placement?: BaseAnchorPlacement; offset?: number; closeOnEsc?: boolean; closeOnClickOutside?: boolean; closeOnTriggerPointerDown?: boolean; closeOnAnyPointerDown?: boolean; closeOnSelect?: boolean; /** * Briefly clears then confirms a closing item before `select` and close. * Reduced-motion users keep the immediate path. */ activationFeedback?: boolean; showArrow?: boolean; arrowSize?: number; animation?: BaseAnchorAnimationOptions; keepAliveContent?: boolean; panelVariant?: ContextMenuPanelVariant; panelBackground?: ContextMenuPanelBackground; panelShadow?: ContextMenuPanelShadow; panelRadius?: number; panelPadding?: number; panelCard?: BaseAnchorPanelCardProps; } export interface ContextMenuContext { close: () => void; closeOnSelect: boolean; activationFeedback: boolean; } export interface ContextMenuPanelProps { width?: number | string; minWidth?: number | string; maxWidth?: number | string; maxHeight?: number | string; closeOnSelect?: boolean; activationFeedback?: boolean; close?: () => void; dense?: boolean; outsideGuard?: boolean; role?: 'menu' | 'listbox' | 'none'; ariaLabel?: string; } export interface ContextMenuItemProps { disabled?: boolean; danger?: boolean; color?: string; shortcut?: string; submenu?: boolean; closeOnSelect?: boolean; /** Per-item override of the panel-level activation feedback. */ activationFeedback?: boolean; } export interface ContextMenuSubmenuProps { disabled?: boolean; placement?: BaseAnchorPlacement; offset?: number; width?: number; minWidth?: number; maxHeight?: number; unlimitedHeight?: boolean; animation?: BaseAnchorAnimationOptions; panelCard?: BaseAnchorPanelCardProps; panelVariant?: ContextMenuPanelVariant; panelBackground?: ContextMenuPanelBackground; panelShadow?: ContextMenuPanelShadow; panelRadius?: number; panelPadding?: number; } export interface ContextMenuDividerProps { dashed?: boolean; inset?: boolean; } export declare const TX_CONTEXT_MENU_INJECTION_KEY = "txContextMenu";