import type { ComponentProps } from 'react'; import React from 'react'; import type { Meta, StoryObj } from '@storybook/react-vite'; import { List } from './List'; const meta: Meta = { title: 'UI kit/List', component: List, tags: ['autodocs'], }; export default meta; type Story = StoryObj; const defaultAction: ComponentProps['action'] = { href: '#', onClick: event => { event.preventDefault(); alert('Action clicked'); }, value: 'Action', }; export const Default: Story = { args: { columns: false, dividers: true, ellipsis: true, icon: { icon: 'shp-checkmark', variant: 'secondary' }, }, render: args => ( ), }; export const PlainList: Story = { args: { verticalAlignment: 'center', }, render: args => ( This is my lorem ipsum dolor sit ament 1 This is my lorem ipsum dolor sit ament, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua 2 This is my lorem ipsum dolor sit ament, consectetur adipiscing elit 3 This is my lorem ipsum dolor sit ament 4 This is my lorem ipsum dolor sit ament 5 This is my lorem ipsum dolor sit ament 6 ), }; export const PlainListDense: Story = { args: { dense: true, }, render: args => ( This is my lorem ipsum dolor sit ament 1 This is my lorem ipsum dolor sit ament, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua 2 This is my lorem ipsum dolor sit ament, consectetur adipiscing elit 3 This is my lorem ipsum dolor sit ament 4 This is my lorem ipsum dolor sit ament 5 This is my lorem ipsum dolor sit ament 6 ), }; export const PlainValueList: Story = { args: { verticalAlignment: 'center', }, render: args => ( ), }; export const CheckList: Story = { args: { dividers: true, icon: { icon: 'shp-checkmark' }, }, render: args => ( ), }; export const Advanced: Story = { args: { dividers: undefined, icon: { icon: 'shp-checkmark', variant: 'secondary' }, }, render: args => ( Overriden by the item: icon placeholder padding, link is defined as children, ellipsis is disabled { event.preventDefault(); alert('Action clicked'); }, value: 'Action', }} /> ), }; export const AlignTop: Story = { args: { verticalAlignment: 'top', icon: { icon: 'shp-heart', variant: 'primary' }, }, render: args => ( This is my lorem ipsum dolor sit ament 1 This is my lorem ipsum dolor sit ament, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua 2 This is my lorem ipsum dolor sit ament, consectetur adipiscing elit 3 This is my lorem ipsum dolor sit ament 4 This is my lorem ipsum dolor sit ament 5 This is my lorem ipsum dolor sit ament 6 ), }; export const AlignCenter: Story = { args: { verticalAlignment: 'center', icon: { icon: 'shp-heart', variant: 'primary' }, }, render: args => ( This is my lorem ipsum dolor sit ament 1 This is my lorem ipsum dolor sit ament, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua 2 This is my lorem ipsum dolor sit ament, consectetur adipiscing elit 3 This is my lorem ipsum dolor sit ament 4 This is my lorem ipsum dolor sit ament 5 This is my lorem ipsum dolor sit ament 6 ), }; export const AlignBottom: Story = { args: { verticalAlignment: 'bottom', icon: { icon: 'shp-heart', variant: 'primary' }, }, render: args => ( This is my lorem ipsum dolor sit ament 1 This is my lorem ipsum dolor sit ament, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua 2 This is my lorem ipsum dolor sit ament, consectetur adipiscing elit 3 This is my lorem ipsum dolor sit ament 4 This is my lorem ipsum dolor sit ament 5 This is my lorem ipsum dolor sit ament 6 ), }; export const ListWithBasicItem: Story = { args: {}, render: args => ( This is my lorem ipsum dolor sit ament 1 This is my lorem ipsum dolor sit ament 2 This is my lorem ipsum dolor sit ament 3 This is my lorem ipsum dolor sit ament 4 This is my lorem ipsum dolor sit ament 5 This is my lorem ipsum dolor sit ament 6 ), }; ListWithBasicItem.storyName = 'List with basic items';