import React from 'react';
import { StoryObj, Meta } from '@storybook/react';
import AUButtonComponent from '../src/components/AUButtonComponent';
import { ThemeWrapper } from './lib/helpers';
export default {
title: 'Delphinus/Button',
component: AUButtonComponent,
argTypes: {
type: {
control: {
type: 'radio',
},
options: [
'default',
'text',
'dimmed',
]
},
size: {
control: {
type: 'radio',
},
options: [
'small',
'default',
'large',
]
},
icon: {
control: {
type: 'select',
},
options: ['add', 'attachment', 'award', 'bike', 'bookmark', 'brand-linkedin', 'brand-mendeley', 'brand-orcid', 'brand-researchgate', 'brand-twitter', 'calendar', 'camera', 'car', 'class', 'close', 'collapse', 'confirm', 'confirm-circle', 'context-menu', 'copy', 'current-semester', 'dark-mode', 'delphinus', 'delete', 'design', 'download', 'edit', 'email', 'exam', 'expand', 'failed', 'failed-circle', 'file', 'filter', 'finish', 'heart', 'hide', 'infinity', 'info', 'info-circle', 'instructor', 'instructor-with-class', 'language', 'location', 'link-chain', 'link-internal', 'link-external', 'link-external-square', 'lms-course-common', 'lms-course-sections', 'lms-course-additional', 'lms-course-merge-with', 'lms-course-merged', 'mailbox', 'menu', 'news', 'next', 'note', 'notifications', 'passed-exemption', 'phone', 'phone-landline', 'previous', 'print', 'public-transport', 'receipt', 'refresh', 'reorder', 'replay', 'route', 'search', 'season-autumn', 'season-christmas', 'season-easter', 'season-halloween', 'season-spring', 'season-summer', 'season-winter', 'send', 'settings', 'source-system', 'student-place-accepted', 'student-place-not-offered', 'student-place-offered', 'student-place-rejected', 'student-place-standby', 'sign-in', 'sign-out', 'spock', 'sync', 'theme-chooser', 'tip', 'tools', 'tooltip', 'upload', 'user-profile', 'user-impersonation', 'view', 'viewport-default', 'viewport-medium', 'viewport-wide', 'walking', 'warning', 'warning-triangle'],
},
iconPosition: {
control: {
type: 'select',
},
options: [
'left',
'right',
],
if: {
arg: 'icon',
}
},
hideLabel: {
control: {
type: 'boolean',
},
if: {
arg: 'icon',
},
},
mode: {
table: {
disable: true,
}
},
},
decorators: [
(Story, context) => (
{Story()}
)
],
} as Meta;
type Story = StoryObj;
export const Default: Story = {
args: {
label: 'Button',
type: 'default',
size: 'default',
mode: 'none',
},
render: (args) => ,
};
export const With_Icon = {
args: {
label: 'Button',
type: 'default',
size: 'default',
mode: 'none',
icon: 'delphinus',
iconPosition: 'left',
hideLabel: false,
},
render: (args) => ,
};
export const Icon_Only = {
args: {
label: 'Button',
type: 'default',
size: 'default',
mode: 'none',
icon: 'delphinus',
iconPosition: 'left',
hideLabel: true,
},
render: (args) => ,
};
export const Irreversible_Action = {
args: {
label: 'Button',
type: 'default',
size: 'default',
mode: 'irreversible-action',
icon: 'delphinus',
},
render: (args) => ,
};
export const Confirmable_Action = {
args: {
label: 'Button',
type: 'default',
size: 'default',
mode: 'confirmable-action',
icon: 'delphinus',
},
render: (args) => ,
};
export const Processing = {
args: {
label: 'Button',
type: 'default',
size: 'default',
mode: 'processing',
},
render: (args) => ,
};