feat(component): add storybook (#5079)

This commit is contained in:
Cats Juice
2023-12-04 08:32:19 +00:00
parent 9c50dbc362
commit d911d21d1c
30 changed files with 1640 additions and 50 deletions

View File

@@ -0,0 +1,46 @@
import { InformationIcon } from '@blocksuite/icons';
import type { Meta, StoryFn } from '@storybook/react';
import { Button, type ButtonProps } from './button';
export default {
title: 'UI/Button',
component: Button,
argTypes: {
onClick: () => console.log('Click button'),
},
} satisfies Meta<ButtonProps>;
const Template: StoryFn<ButtonProps> = args => <Button {...args} />;
export const Default: StoryFn<ButtonProps> = Template.bind(undefined);
Default.args = {
type: 'default',
children: 'This is a default button',
icon: <InformationIcon />,
};
export const Primary: StoryFn<ButtonProps> = Template.bind(undefined);
Primary.args = {
type: 'primary',
children: 'Content',
icon: <InformationIcon />,
};
export const Disabled: StoryFn<ButtonProps> = Template.bind(undefined);
Disabled.args = {
disabled: true,
children: 'This is a disabled button',
};
export const LargeSizeButton: StoryFn<ButtonProps> = Template.bind(undefined);
LargeSizeButton.args = {
size: 'large',
children: 'This is a large button',
};
export const ExtraLargeSizeButton: StoryFn<ButtonProps> =
Template.bind(undefined);
ExtraLargeSizeButton.args = {
size: 'extraLarge',
children: 'This is a extra large button',
};

View File

@@ -0,0 +1,48 @@
import { InformationIcon } from '@blocksuite/icons';
import type { Meta, StoryFn } from '@storybook/react';
import { IconButton, type IconButtonProps } from './icon-button';
export default {
title: 'UI/IconButton',
component: IconButton,
argTypes: {
onClick: () => console.log('Click button'),
},
} satisfies Meta<IconButtonProps>;
const Template: StoryFn<IconButtonProps> = args => <IconButton {...args} />;
export const Plain: StoryFn<IconButtonProps> = Template.bind(undefined);
Plain.args = {
children: <InformationIcon />,
};
export const Primary: StoryFn<IconButtonProps> = Template.bind(undefined);
Primary.args = {
type: 'primary',
icon: <InformationIcon />,
};
export const Disabled: StoryFn<IconButtonProps> = Template.bind(undefined);
Disabled.args = {
disabled: true,
icon: <InformationIcon />,
};
export const ExtraSmallSizeButton: StoryFn<IconButtonProps> =
Template.bind(undefined);
ExtraSmallSizeButton.args = {
size: 'extraSmall',
icon: <InformationIcon />,
};
export const SmallSizeButton: StoryFn<IconButtonProps> =
Template.bind(undefined);
SmallSizeButton.args = {
size: 'small',
icon: <InformationIcon />,
};
export const LargeSizeButton: StoryFn<IconButtonProps> =
Template.bind(undefined);
LargeSizeButton.args = {
size: 'large',
icon: <InformationIcon />,
};