import * as React from "react";
import { Story, Meta } from "@storybook/react";
import {
PrimaryButton,
SecondaryButton,
StandardButton,
SuccessButton,
DangerButton
} from "../../";
import { action } from "@storybook/addon-actions";
import { SystemIcons } from "../../icons/dist/system-icons-enum";
import { ButtonProps } from "../components/ButtonBase";
import {
systemIconLabels,
systemIcons
} from "../../storybookHelpers/controlConstants";
export default {
title: "Actions/Button",
component: StandardButton,
subComponents: {
PrimaryButton,
SecondaryButton,
SuccessButton,
DangerButton
},
decorators: [Story =>
{Story()}
],
argTypes: {
children: {
control: {
type: "text"
}
},
iconStart: {
options: systemIcons,
mapping: systemIconLabels
},
iconEnd: {
options: systemIcons,
mapping: systemIconLabels
}
},
args: {
children: "Button"
}
} as Meta;
const Template: Story = args => (
{args.children}
);
export const Standard = Template.bind({});
export const _PrimaryButton = args => (
{args.children}
);
export const _SecondaryButton = args => (
{args.children}
);
export const _SuccessButton = args => (
{args.children}
);
export const _DangerButton = args => (
{args.children}
);
export const WithIconBeforeButtonText = args => (
Icon button
);
export const WithIcon = Template.bind({});
WithIcon.args = {
iconStart: SystemIcons.Close
};
export const IconOnly = Template.bind({});
IconOnly.args = {
iconStart: SystemIcons.Close,
ariaLabel: "Close",
children: ""
};
export const WithOnFocusAndOnBlur = Template.bind({});
WithOnFocusAndOnBlur.args = {
onFocus: action("Button focused"),
onBlur: action("Button blurred")
};
export const UsedAsALink = Template.bind({});
UsedAsALink.args = {
url: "www.d2iq.com"
};