import { action } from 'storybook/actions';
import React from 'react';
import { Form, FormGroup, FormSection, Icon, Stack } from '../../src/lib';
import {
Button,
Props as ButtonProps,
} from '../../src/lib/components/buttonv2/Buttonv2.component';
import { Input } from '../../src/lib/next';
import { iconArgType } from '../controls';
export default {
title: 'Components/Button',
component: Button,
args: {
label: 'Button',
onClick: action('Button clicked'),
},
render: ({ icon, ...args }: { icon?: string } & ButtonProps) => {
return } />;
},
argTypes: {
onClick: {
description: 'Function called on click',
},
variant: {
description: 'Button variant',
},
icon: iconArgType,
},
};
export const Playground = {
args: {
label: 'Playground',
},
};
export const DefaultButtons = {
render: ({ icon, ...args }) => {
return (
}
{...args}
/>
}
{...args}
/>
}
{...args}
/>
}
{...args}
/>
);
},
};
export const Primary = {
args: {
variant: 'primary',
label: 'Primary',
},
};
export const Secondary = {
args: {
variant: 'secondary',
label: 'Secondary',
},
};
export const Outline = {
args: {
variant: 'outline',
label: 'Outline',
},
};
export const Danger = {
args: {
variant: 'danger',
label: 'Danger',
},
};
export const SimpleForm = {
render: ({ args }) => {
return (
);
},
};
export const ButtonSizes = {
render: ({ icon, ...args }) => {
return (
}
{...args}
/>
}
{...args}
/>
);
},
};
export const ButtonsWithIcon = {
...DefaultButtons,
args: {
icon: 'Save',
},
};
export const ButtonDisabled = {
...ButtonsWithIcon,
args: {
disabled: true,
tooltip: {
overlayStyle: {
width: '120px',
},
overlay: 'The button is disabled',
placement: 'top' as const,
},
},
};
export const ButtonLoading = {
...ButtonsWithIcon,
args: {
isLoading: true,
},
};
export const IconButtonWithTooltip = {
render: (args: ButtonProps) => {
return (
);
},
args: {
variant: 'primary',
icon: ,
tooltip: {
overlayStyle: {
width: '80px',
},
overlay: 'Entity deletion',
placement: 'top' as const,
},
},
};
export const GhostButtons = {
render: () => {
return (
}
tooltip={{
overlay: 'Refresh the metrics',
placement: 'top',
}}
/>
}
tooltip={{
overlay: 'Export the data in predefined format',
}}
/>
}
tooltip={{
overlayStyle: {
},
overlay: 'Metric over a period',
placement: 'top',
}}
/>
);
},
};
export const LinkButton = {
render: ({ icon, ...args }) => {
return (
}
{...args}
variant="primary"
onClick={() => window.open('/')}
/>
}
variant="primary"
onClick={() =>
window.open('https://en.wikipedia.org/wiki/Button_(computing)')
}
/>
);
},
argTypes: {
icon: {
description:
'Use the icon External-link to indicate that the button will redirect outside the UI',
control: 'radio',
options: ['External-link', 'No icon'],
},
},
};