import { Menu, MenuAlignment, MenuSide, MenuItemVariant, MenuItemActionType, } from '../../../Menu' import { Button, ButtonType, ButtonSize } from '../../../Button' import { Settings, User, LogOut, Trash2 } from 'lucide-react' const MenuLightHouse = () => { const basicItems = [ { items: [ { label: 'Option 1', onClick: () => console.log('Option 1') }, { label: 'Option 2', onClick: () => console.log('Option 2') }, { label: 'Option 3', onClick: () => console.log('Option 3') }, ], }, ] const groupedItems = [ { label: 'Group 1', items: [ { label: 'Item 1', onClick: () => console.log('Item 1') }, { label: 'Item 2', onClick: () => console.log('Item 2') }, ], }, { label: 'Group 2', items: [ { label: 'Item 3', onClick: () => console.log('Item 3') }, { label: 'Item 4', onClick: () => console.log('Item 4') }, ], showSeparator: true, }, ] return ( <> {/* Basic Menu */} } items={basicItems} /> {/* With Grouped Items */} } items={groupedItems} /> {/* With Search */} } items={[ { items: [ { label: 'Apple', onClick: () => {} }, { label: 'Banana', onClick: () => {} }, { label: 'Cherry', onClick: () => {} }, { label: 'Date', onClick: () => {} }, { label: 'Elderberry', onClick: () => {} }, ], }, ]} enableSearch={true} searchPlaceholder="Search items..." /> {/* With SubMenu */} } items={[ { items: [ { label: 'Parent Item', subMenu: [ { label: 'Sub Item 1', onClick: () => {} }, { label: 'Sub Item 2', onClick: () => {} }, ], }, { label: 'Regular Item', onClick: () => {} }, ], }, ]} /> {/* With Slots */} } items={[ { items: [ { label: 'Settings', slot1: , onClick: () => {}, }, { label: 'Profile', slot1: , onClick: () => {}, }, { label: 'Logout', slot1: , onClick: () => {}, }, ], }, ]} /> {/* With SubLabel */} } items={[ { items: [ { label: 'Option 1', subLabel: 'Description for option 1', onClick: () => {}, }, { label: 'Option 2', subLabel: 'Description for option 2', onClick: () => {}, }, ], }, ]} /> {/* With Disabled Items */} } items={[ { items: [ { label: 'Enabled Item', onClick: () => {} }, { label: 'Disabled Item', disabled: true, onClick: () => {}, }, { label: 'Another Enabled', onClick: () => {} }, ], }, ]} /> {/* With Action Variant */} } items={[ { items: [ { label: 'Primary Action', variant: MenuItemVariant.ACTION, actionType: MenuItemActionType.PRIMARY, onClick: () => {}, }, { label: 'Danger Action', variant: MenuItemVariant.ACTION, actionType: MenuItemActionType.DANGER, onClick: () => {}, }, ], }, ]} /> {/* All Sides */} } items={basicItems} side={MenuSide.TOP} /> } items={basicItems} side={MenuSide.RIGHT} /> } items={basicItems} side={MenuSide.BOTTOM} /> } items={basicItems} side={MenuSide.LEFT} /> {/* All Alignments */} } items={basicItems} alignment={MenuAlignment.START} /> } items={basicItems} alignment={MenuAlignment.CENTER} /> } items={basicItems} alignment={MenuAlignment.END} /> {/* With Max Height */} } items={[ { items: Array.from({ length: 20 }, (_, i) => ({ label: `Item ${i + 1}`, onClick: () => {}, })), }, ]} maxHeight={200} /> {/* With Custom Width */} } items={basicItems} minWidth={300} maxWidth={400} /> {/* Controlled Open */} } items={basicItems} open={false} onOpenChange={(open) => { console.log('Menu open changed:', open) }} /> {/* As Modal */} } items={basicItems} asModal={true} /> {/* With Skeleton */} } items={basicItems} skeleton={{ show: true, count: 5, variant: 'pulse', }} /> {/* Complex Example */} } items={[ { label: 'Actions', items: [ { label: 'Settings', subLabel: 'Manage settings', slot1: , onClick: () => {}, }, { label: 'Profile', subLabel: 'View profile', slot1: , onClick: () => {}, }, ], }, { label: 'Danger Zone', items: [ { label: 'Delete', variant: MenuItemVariant.ACTION, actionType: MenuItemActionType.DANGER, slot1: , onClick: () => {}, }, ], showSeparator: true, }, ]} enableSearch={true} searchPlaceholder="Search menu items..." side={MenuSide.BOTTOM} alignment={MenuAlignment.START} maxHeight={300} minWidth={250} maxWidth={350} /> ) } export default MenuLightHouse