import { Meta } from '@storybook/react-webpack5';
import { ListItem, type ListItemProps } from '../../ListItem';
import { VariantStory } from './helpers';
import { withSizedContainer } from '../helpers';

export default {
  component: ListItem,
  title: 'Content/ListItem/Tests/variants/cq: medium',
  tags: ['!autodocs', '!manifest'],
  parameters: {
    controls: { disable: true },
    actions: { disable: true },
    knobs: { disable: true },
  },
  decorators: [withSizedContainer('medium')],
} satisfies Meta<ListItemProps>;

export const Button = {
  ...VariantStory,
  args: { controlType: 'button' },
};
export const ButtonAsLink = { ...VariantStory, args: { controlType: 'buttonAsLink' } };
export const ButtonPartiallyInteractive = {
  ...VariantStory,
  args: { controlType: 'partialButton' },
};
export const ButtonAsLinkPartiallyInteractive = {
  ...VariantStory,
  args: { controlType: 'partialButtonAsLink' },
};
export const IconButton = { ...VariantStory, args: { controlType: 'iconButton' } };
export const IconButtonAsLink = { ...VariantStory, args: { controlType: 'iconButtonAsLink' } };
export const IconButtonWithLabel = {
  ...VariantStory,
  args: { controlType: 'iconButtonWithLabel' },
};
export const IconButtonAsLinkWithLabel = {
  ...VariantStory,
  args: { controlType: 'iconButtonAsLinkWithLabel' },
};
export const IconButtonPartiallyInteractive = {
  ...VariantStory,
  args: { controlType: 'partialIconButton' },
};
export const IconButtonAsLinkPartiallyInteractive = {
  ...VariantStory,
  args: { controlType: 'partialIconButtonAsLink' },
};
export const Navigation = { ...VariantStory, args: { controlType: 'navigation' } };
export const NavigationAsButton = { ...VariantStory, args: { controlType: 'navigationAsButton' } };
export const Checkbox = { ...VariantStory, args: { controlType: 'checkbox' } };
export const Radio = { ...VariantStory, args: { controlType: 'radio' } };
export const Switch = { ...VariantStory, args: { controlType: 'switch' } };
export const NonInteractive = { ...VariantStory, args: { controlType: 'non-interactive' } };
