import React from 'react'; import type { Meta, StoryObj } from '@storybook/react-vite'; import { Icon } from '../Icon/Icon'; import { Loader } from '../Loader/Loader'; import { Menu } from '../Menu/Menu'; import { Text } from '../Typography/Text/Text'; import { ContextMenu } from './ContextMenu'; const meta: Meta = { title: 'UI kit/ContextMenu', component: ContextMenu, tags: ['autodocs'], args: { variant: 'secondary', ghost: true, icon: 'shp-more', }, }; export default meta; type Story = StoryObj; export const Default: Story = { args: { placement: 'bottom start', }, render: args => ( alert('Edit clicked')}> Edit alert('Duplicate clicked')}> Duplicate alert('Delete clicked')}> Delete ), }; export const DefaultOpen: Story = { args: { placement: 'bottom start', defaultOpen: true, }, render: args => ( alert('Edit clicked')}> Edit alert('Duplicate clicked')}> Duplicate alert('Delete clicked')}> Delete ), }; export const Disabled: Story = { args: { placement: 'bottom start', disabled: true, }, render: args => ( alert('Edit clicked')}> Edit alert('Duplicate clicked')}> Duplicate alert('Delete clicked')}> Delete ), }; export const WithDisabledItem: Story = { render: args => ( alert('Edit clicked')}> Edit Duplicate alert('Delete clicked')}> Delete ), }; export const WithIcons: Story = { render: args => ( alert('Edit clicked')}> Edit alert('Duplicate clicked')}> Duplicate alert('Delete clicked')}> Delete ), }; export const Loading: Story = { args: { isLoading: true, }, render: args => ( alert('Edit clicked')}> Edit alert('Duplicate clicked')}> Duplicate alert('Delete clicked')}> Delete ), }; export const WithNestedSubmenu: Story = { render: args => ( alert('Edit clicked')}> Edit ( Share… )} > alert('Share via Email')}> Email ( More options… )} > alert('Share via Link')}> Copy link alert('Share via QR')}> QR code alert('Delete clicked')}> Delete ), };