import React from 'react';
import styled from 'styled-components';
import { Button, AnchorButton } from './index';
import { Spacer } from '@lendi/ui/Layout';
import Add from '@lendi-ui/icon/Add';
import ArrowForward from '@lendi-ui/icon/ArrowForward';
import ArrowBack from '@lendi-ui/icon/ArrowBack';
import Close from '@lendi-ui/icon/Close';
import { Spacing } from '../../tokens';
export const Interactive = (args) => (
);
export const ColouredDiv = styled.div`
background-color: ${({ theme }) => theme.color.fill.contrast};
padding: ${Spacing.sm};
`;
const actionButtonArgs = {
onClick: (e) => console.log('click', e),
variant: 'primary',
};
Interactive.args = {
...actionButtonArgs,
};
export const Variants = (args) => (
);
Variants.args = {
...actionButtonArgs,
};
export const States = (args) => (
<>
>
);
States.args = {
...actionButtonArgs,
};
States.parameters = {
pseudo: {
hover: ['#hover', '#hover2', '#hover3', '#hover4', '#hover5', '#hover6'],
active: ['#active', '#active2', '#active3', '#active4', '#active5', '#active6'],
focusVisible: [
'#focus-visible',
'#focus-visible2',
'#focus-visible3',
'#focus-visible4',
'#focus-visible5',
'#focus-visible6',
],
},
attributes: {
disabled: ['#disabled', '#disabled2', '#disabled3', '#disabled4', '#disabled5', '#disabled6'],
},
};
export const Inverse = (args) => {
return (
);
};
Inverse.args = {
...actionButtonArgs,
};
export const ButtonTypes = (args) => (
);
ButtonTypes.args = {
...actionButtonArgs,
};
ButtonTypes.parameters = { docs: { disable: true } };
export const Icons = (args) => (
);
Icons.args = {
...actionButtonArgs,
icon: { component: Add, position: 'end' },
};
export const IconPosition = (args) => (
Previous page
Next page
);
IconPosition.args = {
...actionButtonArgs,
};
export const IconOnly = () => (
);
IconOnly.args = {
...actionButtonArgs,
};
export const ButtonSizes = (args) => (
);
ButtonSizes.args = { ...actionButtonArgs };
export const ButtonWidth = (args) => (
);
ButtonWidth.args = { ...actionButtonArgs };
export const TextOverflow = (args) => (
);
TextOverflow.args = { ...actionButtonArgs, maxWidth: '200px' };
TextOverflow.parameters = { docs: { disable: true } };
const ThemedBackgroundDiv = styled.div`
${({ theme }) => `background-color: ${theme.color.fill.contrast}`};
padding: 1rem;
padding-left: 0;
color: white;
`;
const Matrix = (args) => {
const sizes = ['xs', 'sm', 'md', 'lg'];
const variants = ['primary', 'secondary', 'text'] as const;
return (
<>
{sizes.map((size, i) =>
variants.map((variant, i) => (
{variant} - {size}
))
)}
{sizes.map((size, i) =>
variants.map((variant, i) => (
{variant} inverse - {size}
))
)}
>
);
};
export const MatrixStory = (args) => ;
MatrixStory.parameters = { docs: { disable: true } };
export const AnchorButtonDefault = () => (
Anchor link looks like a Button
Anchor link with icon
);
AnchorButtonDefault.parameters = {
layout: 'centered',
controls: { exclude: ['type', 'onPress', 'onClick', 'isDisabled', 'isLoading'] },
};
export const AnchorButtonOpenNewTab = () => (
Anchor link (opens in new tab)
);