import React, { type FunctionComponent } from 'react' import { type Meta, type StoryObj } from '@storybook/react' import isChromatic from 'chromatic' import { Button } from '~components/Button' import { Icon } from '~components/Icon' import { Text } from '~components/Text' import { Menu, MenuHeader, MenuItem, MenuPopover, MenuSection, MenuTrigger } from '../index' import * as testStories from './Menu.spec.stories' const meta = { title: 'Components/Menu', component: MenuTrigger, args: { defaultOpen: isChromatic(), children: <>, }, subcomponents: { Menu, MenuItem, MenuPopover, MenuSection, MenuHeader } as Record< string, FunctionComponent >, } satisfies Meta export default meta type Story = StoryObj export const Playground: Story = { render: ({ defaultOpen: _, ...args }) => ( }>Save }>Edit }>Move up }>Move down }>Delete ), } export const Basic: Story = { ...testStories.Basic, play: undefined } export const DisabledItems: Story = { ...testStories.DisabledItems, play: undefined, } export const WithSections: Story = { ...testStories.WithSections, play: undefined, } export const Controlled: Story = { ...testStories.Controlled, play: undefined, } export const RichContent: Story = { render: ({ defaultOpen: _, ...args }) => (
Save
Saves all data
Edit
Adjust the name and description
Delete Completely remove, cannot be undone
), } export const Sections: Story = { render: ({ defaultOpen: _, ...args }) => ( Adjust }>Save }>Edit Order }>Move up }>Move down }>Delete ), } export const ButtonMenuPattern: Story = { name: 'Button + Menu Pattern', render: ({ defaultOpen: _, ...args }) => (
Survey 1 Survey 2 Survey 3 Survey 4
), }