UNPKG

@buddhacognitivelab/theme-glassmorphic

Version:

Enhanced glassmorphic theme package with dual-mode support, advanced glass effects, interactive UI components, and gesture-based interactions

62 lines (61 loc) 1.8 kB
/** * @fileoverview Menu component with glassmorphic styling */ import React from 'react'; export interface MenuItem { /** Unique identifier */ id: string; /** Menu item label */ label: string; /** Optional icon */ icon?: React.ReactNode; /** Whether item is disabled */ disabled?: boolean; /** Whether item is a divider */ divider?: boolean; /** Submenu items */ children?: MenuItem[]; /** Click handler */ onClick?: () => void; /** Custom className */ className?: string; /** Badge content */ badge?: string | number; /** Keyboard shortcut */ shortcut?: string; } export interface MenuProps { /** Menu items */ items: MenuItem[]; /** Trigger element */ trigger: React.ReactNode; /** Menu placement */ placement?: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end'; /** Glass effect intensity */ glassIntensity?: 'light' | 'medium' | 'heavy'; /** Whether menu is disabled */ disabled?: boolean; /** Trigger mode */ triggerMode?: 'click' | 'hover' | 'contextmenu'; /** Whether menu is open (controlled) */ open?: boolean; /** Open change handler */ onOpenChange?: (open: boolean) => void; /** Item select handler */ onSelect?: (item: MenuItem) => void; /** Whether to close on item select */ closeOnSelect?: boolean; /** Menu width */ width?: string | number; /** Maximum height */ maxHeight?: string | number; /** Custom className */ className?: string; /** Offset from trigger */ offset?: number; /** Whether to show arrow */ showArrow?: boolean; /** Z-index */ zIndex?: number; } export declare const Menu: React.FC<MenuProps>;