import { layerIntents, layerVariants } from '@fuel-ui/css';
import { Box } from '../Box';
import { Heading } from '../Heading';
import { Icon } from '../Icon';
import { Button } from './Button';
import type { ButtonProps } from './defs';
export default {
title: 'UI/Button',
component: Button,
argTypes: {
size: {
defaultValue: 'md',
control: 'select',
},
intent: {
options: layerIntents,
defaultValue: 'primary',
control: 'select',
},
variant: {
defaultValue: 'solid',
control: 'select',
},
leftIcon: {
options: Icon.iconList,
control: 'select',
},
rightIcon: {
options: Icon.iconList,
control: 'select',
},
},
};
export const Sizes = (args: ButtonProps) => {
return (
);
};
export const Variants = (args: ButtonProps) => (
);
export const intents = (args: ButtonProps) => (
{layerIntents.map((intent) => (
))}
);
export const AllCombinations = (args: ButtonProps) => (
<>
Active
{layerIntents.map((intent) => (
{layerVariants.map((variant) => (
))}
))}
Disabled
{layerIntents.map((intent) => (
{layerVariants.map((variant) => (
))}
))}
>
);
export const WithIcon = (args: ButtonProps) => (
);
export const Loading = (args: ButtonProps) => (
);
export const CustomLoadingMessage = (args: ButtonProps) => (
);
export const Disabled = (args: ButtonProps) => (
);
/**
* Styles
*/
const styles = {
wrapper: {
display: 'flex',
alignItems: 'center',
gap: '$4',
},
gridList: {
display: 'grid',
gap: '$4',
gridTemplateColumns: 'repeat(6, 1fr)',
},
};