@xqmsg/ui-core 0.23.2 → 0.23.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +40 -40
- package/dist/{78c9d6fd7766410f.svg → 89793640b494d7ea.svg} +9 -9
- package/dist/ui-core.cjs.development.js +2 -1
- package/dist/ui-core.cjs.development.js.map +1 -1
- package/dist/ui-core.cjs.production.min.js +1 -1
- package/dist/ui-core.cjs.production.min.js.map +1 -1
- package/dist/ui-core.esm.js +2 -1
- package/dist/ui-core.esm.js.map +1 -1
- package/package.json +118 -118
- package/src/components/banner/Banner.stories.tsx +100 -100
- package/src/components/banner/index.tsx +75 -73
- package/src/components/breadcrumbs/Breadcrumbs.stories.tsx +66 -66
- package/src/components/breadcrumbs/components/icon/index.tsx +38 -38
- package/src/components/breadcrumbs/components/label/index.tsx +20 -20
- package/src/components/breadcrumbs/index.tsx +48 -48
- package/src/components/button/Button.stories.tsx +140 -140
- package/src/components/button/google/GoogleButton.stories.tsx +23 -23
- package/src/components/button/google/index.tsx +29 -29
- package/src/components/button/index.tsx +51 -51
- package/src/components/button/microsoft/MicrosoftButton.stories.tsx +25 -25
- package/src/components/button/microsoft/index.tsx +29 -29
- package/src/components/button/spinner/SpinnerButton.stories.tsx +60 -60
- package/src/components/button/spinner/index.tsx +36 -36
- package/src/components/card/Card.stories.tsx +56 -56
- package/src/components/card/index.tsx +78 -78
- package/src/components/form/Form.stories.tsx +62 -62
- package/src/components/form/FormTypes.ts +20 -20
- package/src/components/form/hooks/useFormHandler.tsx +74 -74
- package/src/components/form/index.tsx +25 -25
- package/src/components/form/section/FormSection.stories.tsx +109 -109
- package/src/components/form/section/index.tsx +87 -87
- package/src/components/form/utils/formErrors.ts +34 -34
- package/src/components/icons/checkmark/checkmark.svg +3 -3
- package/src/components/icons/checkmark/index.tsx +13 -13
- package/src/components/icons/chevron/down/chevron-down.svg +3 -3
- package/src/components/icons/chevron/down/index.tsx +14 -14
- package/src/components/icons/chevron/right/chevron-right.svg +3 -3
- package/src/components/icons/chevron/right/index.tsx +13 -13
- package/src/components/icons/clock/clock.svg +3 -3
- package/src/components/icons/clock/index.tsx +13 -13
- package/src/components/icons/close/close.svg +3 -3
- package/src/components/icons/close/index.tsx +21 -21
- package/src/components/icons/dropdown/dropdown.svg +3 -3
- package/src/components/icons/dropdown/index.tsx +16 -16
- package/src/components/icons/error/error.svg +3 -3
- package/src/components/icons/error/index.tsx +13 -13
- package/src/components/icons/file/fill/file-fill.svg +4 -4
- package/src/components/icons/file/fill/index.tsx +13 -13
- package/src/components/icons/file/outline/file-outline.svg +3 -3
- package/src/components/icons/file/outline/index.tsx +13 -13
- package/src/components/icons/folder/add/fill/folder-add-fill.svg +3 -3
- package/src/components/icons/folder/add/fill/index.tsx +13 -13
- package/src/components/icons/folder/add/outline/folder-add-outline.svg +3 -3
- package/src/components/icons/folder/add/outline/index.tsx +15 -15
- package/src/components/icons/folder/fill/folder-fill-gradient.svg +33 -33
- package/src/components/icons/folder/fill/folder-fill.svg +4 -4
- package/src/components/icons/folder/fill/index.tsx +21 -21
- package/src/components/icons/folder/outline/folder-outline.svg +3 -3
- package/src/components/icons/folder/outline/index.tsx +13 -13
- package/src/components/icons/gear/GearIcon.tsx +36 -36
- package/src/components/icons/google/drive/index.tsx +13 -13
- package/src/components/icons/google/google.svg +13 -13
- package/src/components/icons/google/index.tsx +13 -13
- package/src/components/icons/group/group.svg +3 -3
- package/src/components/icons/group/index.tsx +13 -13
- package/src/components/icons/home/home.svg +3 -3
- package/src/components/icons/home/index.tsx +13 -13
- package/src/components/icons/image/image.svg +3 -3
- package/src/components/icons/image/index.tsx +13 -13
- package/src/components/icons/index.tsx +101 -101
- package/src/components/icons/link/index.tsx +13 -13
- package/src/components/icons/link/link.svg +4 -4
- package/src/components/icons/menu/index.tsx +13 -13
- package/src/components/icons/menu/menu.svg +3 -3
- package/src/components/icons/microsoft/index.tsx +13 -13
- package/src/components/icons/microsoft/microsoft.svg +9 -9
- package/src/components/icons/microsoft/onedrive/index.tsx +16 -16
- package/src/components/icons/neutral/index.tsx +14 -14
- package/src/components/icons/neutral/neutral.svg +3 -3
- package/src/components/icons/page/index.tsx +13 -13
- package/src/components/icons/page/page.svg +3 -3
- package/src/components/icons/positive/index.tsx +13 -13
- package/src/components/icons/positive/positive.svg +3 -3
- package/src/components/icons/question/index.tsx +13 -13
- package/src/components/icons/question/question.svg +3 -3
- package/src/components/icons/search/index.tsx +13 -13
- package/src/components/icons/search/search.svg +3 -3
- package/src/components/icons/services/index.tsx +13 -13
- package/src/components/icons/services/services.svg +3 -3
- package/src/components/icons/settings/index.tsx +14 -14
- package/src/components/icons/settings/settings.svg +6 -6
- package/src/components/icons/table/fill/index.tsx +13 -13
- package/src/components/icons/table/fill/table-fill.svg +3 -3
- package/src/components/icons/table/outline/index.tsx +13 -13
- package/src/components/icons/table/outline/table-outline.svg +3 -3
- package/src/components/icons/task/index.tsx +10 -10
- package/src/components/icons/task/task.svg +11 -11
- package/src/components/icons/trash/index.tsx +13 -13
- package/src/components/icons/trash/trash.svg +3 -3
- package/src/components/icons/vault/index.tsx +14 -14
- package/src/components/icons/video/index.tsx +13 -13
- package/src/components/icons/video/video.svg +3 -3
- package/src/components/icons/warning/index.tsx +13 -13
- package/src/components/icons/warning/warning.svg +3 -3
- package/src/components/icons/workspace/index.tsx +14 -14
- package/src/components/input/Input.stories.tsx +287 -287
- package/src/components/input/InputTypes.ts +77 -77
- package/src/components/input/StackedCheckbox/StackedCheckbox.tsx +44 -44
- package/src/components/input/StackedInput/StackedInput.tsx +60 -60
- package/src/components/input/StackedMultiSelect/index.tsx +349 -349
- package/src/components/input/StackedPilledInput/index.tsx +386 -386
- package/src/components/input/StackedRadio/StackedRadioGroup.tsx +38 -38
- package/src/components/input/StackedSelect/index.tsx +232 -232
- package/src/components/input/StackedSwitch/index.tsx +33 -33
- package/src/components/input/StackedTextarea/StackedTextarea.tsx +55 -55
- package/src/components/input/components/dropdown/index.tsx +111 -111
- package/src/components/input/components/label/index.tsx +35 -35
- package/src/components/input/components/token/Token.stories.tsx +25 -25
- package/src/components/input/components/token/index.tsx +45 -45
- package/src/components/input/index.tsx +298 -298
- package/src/components/layout/BorderedBox/index.tsx +30 -30
- package/src/components/layout/Layout.stories.tsx +40 -40
- package/src/components/layout/index.tsx +100 -100
- package/src/components/link/Link.stories.tsx +23 -23
- package/src/components/link/index.tsx +34 -34
- package/src/components/loading/LoadingIndicator.stories.tsx +45 -45
- package/src/components/loading/index.tsx +45 -45
- package/src/components/modal/Modal.stories.tsx +36 -36
- package/src/components/modal/components/action/index.tsx +37 -37
- package/src/components/modal/index.tsx +41 -41
- package/src/components/navigation/NavigationMenu.stories.tsx +85 -85
- package/src/components/navigation/components/header/index.tsx +27 -27
- package/src/components/navigation/components/items/index.tsx +76 -76
- package/src/components/navigation/index.tsx +87 -87
- package/src/components/select/index.tsx +140 -140
- package/src/components/table/Table.stories.tsx +63 -63
- package/src/components/table/TableTypes.ts +15 -15
- package/src/components/table/components/loading/index.tsx +45 -45
- package/src/components/table/components/text/index.tsx +23 -23
- package/src/components/table/empty/index.tsx +47 -47
- package/src/components/table/index.tsx +84 -84
- package/src/components/table/utils/generateTableColumns.ts +9 -9
- package/src/components/tabs/TabsWrapper.stories.tsx +85 -85
- package/src/components/tabs/index.tsx +39 -39
- package/src/components/text/Text.stories.tsx +59 -59
- package/src/components/text/index.tsx +16 -16
- package/src/components/toast/Toast.stories.tsx +52 -52
- package/src/components/toast/index.tsx +78 -78
- package/src/components/toolbar/Toolbar.stories.tsx +59 -59
- package/src/components/toolbar/components/actions/add/index.tsx +18 -18
- package/src/components/toolbar/components/actions/search/index.tsx +38 -38
- package/src/components/toolbar/components/actions/sort/index.tsx +49 -49
- package/src/components/toolbar/components/breadcrumbs/index.tsx +63 -63
- package/src/components/toolbar/components/breadcrumbs/item/index.tsx +72 -72
- package/src/components/toolbar/components/dropdown/index.tsx +107 -107
- package/src/components/toolbar/components/navigation/components/button/left/index.tsx +28 -28
- package/src/components/toolbar/components/navigation/components/button/left/left-arrow.svg +3 -3
- package/src/components/toolbar/components/navigation/components/button/right/index.tsx +27 -27
- package/src/components/toolbar/components/navigation/components/button/right/right-arrow.svg +3 -3
- package/src/components/toolbar/components/navigation/index.tsx +36 -36
- package/src/components/toolbar/index.tsx +55 -55
- package/src/hooks/useDeepEffect.tsx +22 -22
- package/src/hooks/useDidMountEffect.tsx +13 -13
- package/src/hooks/useOnOutsideClick.tsx +31 -31
- package/src/hooks/useToast.tsx +16 -16
- package/src/index.tsx +78 -78
- package/src/theme/components/alert.ts +60 -60
- package/src/theme/components/badge.ts +59 -59
- package/src/theme/components/button.ts +163 -163
- package/src/theme/components/checkbox.ts +28 -28
- package/src/theme/components/code.ts +16 -16
- package/src/theme/components/form-error.ts +31 -31
- package/src/theme/components/form-label.ts +17 -17
- package/src/theme/components/form.ts +29 -29
- package/src/theme/components/input.ts +65 -65
- package/src/theme/components/link.ts +118 -118
- package/src/theme/components/modal.ts +45 -45
- package/src/theme/components/select.ts +36 -36
- package/src/theme/components/switch.ts +89 -89
- package/src/theme/components/table.ts +42 -42
- package/src/theme/components/tabs.ts +255 -255
- package/src/theme/components/text.ts +93 -93
- package/src/theme/components/textarea.ts +42 -42
- package/src/theme/customXQChakraTheme.ts +54 -54
- package/src/theme/foundations/breakpoints.ts +18 -18
- package/src/theme/foundations/colors.ts +165 -165
- package/src/theme/foundations/shadows.ts +23 -23
- package/src/theme/foundations/typography.ts +62 -62
- package/src/theme/provider/index.tsx +21 -21
- package/src/theme/styles.ts +19 -19
- package/CHANGELOG.md +0 -468
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Google } from '../../icons/google';
|
|
3
|
-
import { Button, ButtonProps } from '..';
|
|
4
|
-
|
|
5
|
-
export interface GoogleButtonProps extends Partial<ButtonProps> {
|
|
6
|
-
onClick: () => void;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* A functional React component utilized to render the `GoogleButton` component
|
|
11
|
-
*/
|
|
12
|
-
export const GoogleButton: React.FC<GoogleButtonProps> = ({
|
|
13
|
-
onClick,
|
|
14
|
-
type,
|
|
15
|
-
}) => {
|
|
16
|
-
return (
|
|
17
|
-
<Button
|
|
18
|
-
onClick={onClick}
|
|
19
|
-
variant="secondary"
|
|
20
|
-
ariaLabel="google-login-button"
|
|
21
|
-
className="google-button"
|
|
22
|
-
leftIcon={<Google boxSize="18px" />}
|
|
23
|
-
text="Sign in with Google"
|
|
24
|
-
width="variable"
|
|
25
|
-
type={type}
|
|
26
|
-
color="#000"
|
|
27
|
-
/>
|
|
28
|
-
);
|
|
29
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Google } from '../../icons/google';
|
|
3
|
+
import { Button, ButtonProps } from '..';
|
|
4
|
+
|
|
5
|
+
export interface GoogleButtonProps extends Partial<ButtonProps> {
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A functional React component utilized to render the `GoogleButton` component
|
|
11
|
+
*/
|
|
12
|
+
export const GoogleButton: React.FC<GoogleButtonProps> = ({
|
|
13
|
+
onClick,
|
|
14
|
+
type,
|
|
15
|
+
}) => {
|
|
16
|
+
return (
|
|
17
|
+
<Button
|
|
18
|
+
onClick={onClick}
|
|
19
|
+
variant="secondary"
|
|
20
|
+
ariaLabel="google-login-button"
|
|
21
|
+
className="google-button"
|
|
22
|
+
leftIcon={<Google boxSize="18px" />}
|
|
23
|
+
text="Sign in with Google"
|
|
24
|
+
width="variable"
|
|
25
|
+
type={type}
|
|
26
|
+
color="#000"
|
|
27
|
+
/>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Button as ChakraButton } from '@chakra-ui/react';
|
|
3
|
-
import buttonTheme from '../../theme/components/button';
|
|
4
|
-
|
|
5
|
-
export interface ButtonProps {
|
|
6
|
-
text: string;
|
|
7
|
-
onClick?: () => void;
|
|
8
|
-
width: 'variable' | 'fixed';
|
|
9
|
-
variant?: keyof typeof buttonTheme.variants;
|
|
10
|
-
type?: 'button' | 'submit' | 'reset';
|
|
11
|
-
ariaLabel: string;
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
className?: string;
|
|
14
|
-
leftIcon?: JSX.Element;
|
|
15
|
-
rightIcon?: JSX.Element;
|
|
16
|
-
color?: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* A functional React component utilized to render the `Button` component
|
|
21
|
-
*/
|
|
22
|
-
export const Button: React.FC<ButtonProps> = ({
|
|
23
|
-
onClick,
|
|
24
|
-
text,
|
|
25
|
-
type = 'button',
|
|
26
|
-
ariaLabel,
|
|
27
|
-
variant = 'primary',
|
|
28
|
-
disabled,
|
|
29
|
-
className,
|
|
30
|
-
width,
|
|
31
|
-
rightIcon,
|
|
32
|
-
leftIcon,
|
|
33
|
-
color,
|
|
34
|
-
}) => {
|
|
35
|
-
return (
|
|
36
|
-
<ChakraButton
|
|
37
|
-
onClick={onClick}
|
|
38
|
-
type={type}
|
|
39
|
-
variant={variant}
|
|
40
|
-
disabled={disabled}
|
|
41
|
-
aria-label={ariaLabel}
|
|
42
|
-
className={className}
|
|
43
|
-
width={width === 'fixed' ? '100%' : 'fit-content'}
|
|
44
|
-
rightIcon={rightIcon}
|
|
45
|
-
leftIcon={leftIcon}
|
|
46
|
-
color={color}
|
|
47
|
-
>
|
|
48
|
-
{text}
|
|
49
|
-
</ChakraButton>
|
|
50
|
-
);
|
|
51
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Button as ChakraButton } from '@chakra-ui/react';
|
|
3
|
+
import buttonTheme from '../../theme/components/button';
|
|
4
|
+
|
|
5
|
+
export interface ButtonProps {
|
|
6
|
+
text: string;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
width: 'variable' | 'fixed';
|
|
9
|
+
variant?: keyof typeof buttonTheme.variants;
|
|
10
|
+
type?: 'button' | 'submit' | 'reset';
|
|
11
|
+
ariaLabel: string;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
className?: string;
|
|
14
|
+
leftIcon?: JSX.Element;
|
|
15
|
+
rightIcon?: JSX.Element;
|
|
16
|
+
color?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A functional React component utilized to render the `Button` component
|
|
21
|
+
*/
|
|
22
|
+
export const Button: React.FC<ButtonProps> = ({
|
|
23
|
+
onClick,
|
|
24
|
+
text,
|
|
25
|
+
type = 'button',
|
|
26
|
+
ariaLabel,
|
|
27
|
+
variant = 'primary',
|
|
28
|
+
disabled,
|
|
29
|
+
className,
|
|
30
|
+
width,
|
|
31
|
+
rightIcon,
|
|
32
|
+
leftIcon,
|
|
33
|
+
color,
|
|
34
|
+
}) => {
|
|
35
|
+
return (
|
|
36
|
+
<ChakraButton
|
|
37
|
+
onClick={onClick}
|
|
38
|
+
type={type}
|
|
39
|
+
variant={variant}
|
|
40
|
+
disabled={disabled}
|
|
41
|
+
aria-label={ariaLabel}
|
|
42
|
+
className={className}
|
|
43
|
+
width={width === 'fixed' ? '100%' : 'fit-content'}
|
|
44
|
+
rightIcon={rightIcon}
|
|
45
|
+
leftIcon={leftIcon}
|
|
46
|
+
color={color}
|
|
47
|
+
>
|
|
48
|
+
{text}
|
|
49
|
+
</ChakraButton>
|
|
50
|
+
);
|
|
51
|
+
};
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Meta, Story } from '@storybook/react';
|
|
3
|
-
import { MicrosoftButton, MicrosoftButtonProps } from '.';
|
|
4
|
-
|
|
5
|
-
const meta: Meta<MicrosoftButtonProps> = {
|
|
6
|
-
title: 'Microsoft Button example',
|
|
7
|
-
component: MicrosoftButton,
|
|
8
|
-
argTypes: {
|
|
9
|
-
onClick: {
|
|
10
|
-
description: 'The onClick callback for the google button',
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
parameters: {
|
|
14
|
-
controls: { expanded: true },
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
export default meta;
|
|
18
|
-
const Template: Story<MicrosoftButtonProps> = args => (
|
|
19
|
-
<MicrosoftButton {...args} />
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
export const Default = Template.bind({});
|
|
23
|
-
Default.args = {
|
|
24
|
-
onClick: () => alert('This is a google button click!'),
|
|
25
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Meta, Story } from '@storybook/react';
|
|
3
|
+
import { MicrosoftButton, MicrosoftButtonProps } from '.';
|
|
4
|
+
|
|
5
|
+
const meta: Meta<MicrosoftButtonProps> = {
|
|
6
|
+
title: 'Microsoft Button example',
|
|
7
|
+
component: MicrosoftButton,
|
|
8
|
+
argTypes: {
|
|
9
|
+
onClick: {
|
|
10
|
+
description: 'The onClick callback for the google button',
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
parameters: {
|
|
14
|
+
controls: { expanded: true },
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
export default meta;
|
|
18
|
+
const Template: Story<MicrosoftButtonProps> = args => (
|
|
19
|
+
<MicrosoftButton {...args} />
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
export const Default = Template.bind({});
|
|
23
|
+
Default.args = {
|
|
24
|
+
onClick: () => alert('This is a google button click!'),
|
|
25
|
+
};
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Microsoft } from '../../icons/microsoft';
|
|
3
|
-
import { Button, ButtonProps } from '..';
|
|
4
|
-
|
|
5
|
-
export interface MicrosoftButtonProps extends Partial<ButtonProps> {
|
|
6
|
-
onClick: () => void;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* A functional React component utilized to render the `MicrosoftButton` component
|
|
11
|
-
*/
|
|
12
|
-
export const MicrosoftButton: React.FC<MicrosoftButtonProps> = ({
|
|
13
|
-
onClick,
|
|
14
|
-
type,
|
|
15
|
-
}) => {
|
|
16
|
-
return (
|
|
17
|
-
<Button
|
|
18
|
-
onClick={onClick}
|
|
19
|
-
variant="secondary"
|
|
20
|
-
ariaLabel="microsoft-login-button"
|
|
21
|
-
className="microsoft-button"
|
|
22
|
-
leftIcon={<Microsoft boxSize="18px" />}
|
|
23
|
-
text="Sign in with Microsoft"
|
|
24
|
-
width="variable"
|
|
25
|
-
type={type}
|
|
26
|
-
color="#000"
|
|
27
|
-
/>
|
|
28
|
-
);
|
|
29
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Microsoft } from '../../icons/microsoft';
|
|
3
|
+
import { Button, ButtonProps } from '..';
|
|
4
|
+
|
|
5
|
+
export interface MicrosoftButtonProps extends Partial<ButtonProps> {
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A functional React component utilized to render the `MicrosoftButton` component
|
|
11
|
+
*/
|
|
12
|
+
export const MicrosoftButton: React.FC<MicrosoftButtonProps> = ({
|
|
13
|
+
onClick,
|
|
14
|
+
type,
|
|
15
|
+
}) => {
|
|
16
|
+
return (
|
|
17
|
+
<Button
|
|
18
|
+
onClick={onClick}
|
|
19
|
+
variant="secondary"
|
|
20
|
+
ariaLabel="microsoft-login-button"
|
|
21
|
+
className="microsoft-button"
|
|
22
|
+
leftIcon={<Microsoft boxSize="18px" />}
|
|
23
|
+
text="Sign in with Microsoft"
|
|
24
|
+
width="variable"
|
|
25
|
+
type={type}
|
|
26
|
+
color="#000"
|
|
27
|
+
/>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Meta, Story } from '@storybook/react';
|
|
3
|
-
import { SpinnerButton, SpinnerButtonProps } from '.';
|
|
4
|
-
import { useArgs } from '@storybook/addons';
|
|
5
|
-
|
|
6
|
-
const meta: Meta<SpinnerButtonProps> = {
|
|
7
|
-
title: 'Spinner Button example',
|
|
8
|
-
component: SpinnerButton,
|
|
9
|
-
argTypes: {
|
|
10
|
-
text: {
|
|
11
|
-
control: {
|
|
12
|
-
type: 'text',
|
|
13
|
-
},
|
|
14
|
-
description: 'The text within the button',
|
|
15
|
-
},
|
|
16
|
-
onClick: {
|
|
17
|
-
description: 'The callback for the onClick handler of the button',
|
|
18
|
-
},
|
|
19
|
-
type: {
|
|
20
|
-
control: 'select',
|
|
21
|
-
options: ['button', 'submit', 'reset'],
|
|
22
|
-
description: 'The type of the button',
|
|
23
|
-
},
|
|
24
|
-
disabled: {
|
|
25
|
-
control: 'boolean',
|
|
26
|
-
description: 'Disabled state of the button',
|
|
27
|
-
},
|
|
28
|
-
isLoading: {
|
|
29
|
-
control: 'boolean',
|
|
30
|
-
description: 'Loading state of the button',
|
|
31
|
-
},
|
|
32
|
-
size: {
|
|
33
|
-
control: 'select',
|
|
34
|
-
options: ['xs', 'sm', 'md', 'lg'],
|
|
35
|
-
description: 'The chakra based size prop for the button and spinner',
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
parameters: {
|
|
39
|
-
controls: { expanded: true },
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
export default meta;
|
|
43
|
-
const Template: Story<SpinnerButtonProps> = args => {
|
|
44
|
-
const [, updateArgs] = useArgs();
|
|
45
|
-
|
|
46
|
-
return (
|
|
47
|
-
<SpinnerButton
|
|
48
|
-
{...args}
|
|
49
|
-
onClick={() => updateArgs({ ...args, isLoading: !args.isLoading })}
|
|
50
|
-
/>
|
|
51
|
-
);
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const Default = Template.bind({});
|
|
55
|
-
Default.args = {
|
|
56
|
-
text: 'Spinner Button',
|
|
57
|
-
type: 'button',
|
|
58
|
-
disabled: false,
|
|
59
|
-
isLoading: false,
|
|
60
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Meta, Story } from '@storybook/react';
|
|
3
|
+
import { SpinnerButton, SpinnerButtonProps } from '.';
|
|
4
|
+
import { useArgs } from '@storybook/addons';
|
|
5
|
+
|
|
6
|
+
const meta: Meta<SpinnerButtonProps> = {
|
|
7
|
+
title: 'Spinner Button example',
|
|
8
|
+
component: SpinnerButton,
|
|
9
|
+
argTypes: {
|
|
10
|
+
text: {
|
|
11
|
+
control: {
|
|
12
|
+
type: 'text',
|
|
13
|
+
},
|
|
14
|
+
description: 'The text within the button',
|
|
15
|
+
},
|
|
16
|
+
onClick: {
|
|
17
|
+
description: 'The callback for the onClick handler of the button',
|
|
18
|
+
},
|
|
19
|
+
type: {
|
|
20
|
+
control: 'select',
|
|
21
|
+
options: ['button', 'submit', 'reset'],
|
|
22
|
+
description: 'The type of the button',
|
|
23
|
+
},
|
|
24
|
+
disabled: {
|
|
25
|
+
control: 'boolean',
|
|
26
|
+
description: 'Disabled state of the button',
|
|
27
|
+
},
|
|
28
|
+
isLoading: {
|
|
29
|
+
control: 'boolean',
|
|
30
|
+
description: 'Loading state of the button',
|
|
31
|
+
},
|
|
32
|
+
size: {
|
|
33
|
+
control: 'select',
|
|
34
|
+
options: ['xs', 'sm', 'md', 'lg'],
|
|
35
|
+
description: 'The chakra based size prop for the button and spinner',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
parameters: {
|
|
39
|
+
controls: { expanded: true },
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
export default meta;
|
|
43
|
+
const Template: Story<SpinnerButtonProps> = args => {
|
|
44
|
+
const [, updateArgs] = useArgs();
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<SpinnerButton
|
|
48
|
+
{...args}
|
|
49
|
+
onClick={() => updateArgs({ ...args, isLoading: !args.isLoading })}
|
|
50
|
+
/>
|
|
51
|
+
);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export const Default = Template.bind({});
|
|
55
|
+
Default.args = {
|
|
56
|
+
text: 'Spinner Button',
|
|
57
|
+
type: 'button',
|
|
58
|
+
disabled: false,
|
|
59
|
+
isLoading: false,
|
|
60
|
+
};
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Button, Spinner } from '@chakra-ui/react';
|
|
3
|
-
import { ButtonProps } from '..';
|
|
4
|
-
|
|
5
|
-
export interface SpinnerButtonProps extends ButtonProps {
|
|
6
|
-
isLoading: boolean;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* A functional React component utilized to render the `SpinnerButton` component
|
|
11
|
-
*/
|
|
12
|
-
export const SpinnerButton: React.FC<SpinnerButtonProps> = ({
|
|
13
|
-
isLoading,
|
|
14
|
-
text,
|
|
15
|
-
onClick,
|
|
16
|
-
type,
|
|
17
|
-
ariaLabel,
|
|
18
|
-
variant = 'primary',
|
|
19
|
-
disabled,
|
|
20
|
-
className,
|
|
21
|
-
}) => {
|
|
22
|
-
return (
|
|
23
|
-
<Button
|
|
24
|
-
spinner={<Spinner size={'xs'} />}
|
|
25
|
-
isLoading={isLoading}
|
|
26
|
-
onClick={onClick}
|
|
27
|
-
type={type}
|
|
28
|
-
variant={variant}
|
|
29
|
-
disabled={disabled}
|
|
30
|
-
aria-label={ariaLabel}
|
|
31
|
-
className={className}
|
|
32
|
-
>
|
|
33
|
-
{text}
|
|
34
|
-
</Button>
|
|
35
|
-
);
|
|
36
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Button, Spinner } from '@chakra-ui/react';
|
|
3
|
+
import { ButtonProps } from '..';
|
|
4
|
+
|
|
5
|
+
export interface SpinnerButtonProps extends ButtonProps {
|
|
6
|
+
isLoading: boolean;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A functional React component utilized to render the `SpinnerButton` component
|
|
11
|
+
*/
|
|
12
|
+
export const SpinnerButton: React.FC<SpinnerButtonProps> = ({
|
|
13
|
+
isLoading,
|
|
14
|
+
text,
|
|
15
|
+
onClick,
|
|
16
|
+
type,
|
|
17
|
+
ariaLabel,
|
|
18
|
+
variant = 'primary',
|
|
19
|
+
disabled,
|
|
20
|
+
className,
|
|
21
|
+
}) => {
|
|
22
|
+
return (
|
|
23
|
+
<Button
|
|
24
|
+
spinner={<Spinner size={'xs'} />}
|
|
25
|
+
isLoading={isLoading}
|
|
26
|
+
onClick={onClick}
|
|
27
|
+
type={type}
|
|
28
|
+
variant={variant}
|
|
29
|
+
disabled={disabled}
|
|
30
|
+
aria-label={ariaLabel}
|
|
31
|
+
className={className}
|
|
32
|
+
>
|
|
33
|
+
{text}
|
|
34
|
+
</Button>
|
|
35
|
+
);
|
|
36
|
+
};
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Meta, Story } from '@storybook/react';
|
|
3
|
-
import { Card, CardProps } from '.';
|
|
4
|
-
import { Flex, Text } from '@chakra-ui/react';
|
|
5
|
-
import { Button } from '../button';
|
|
6
|
-
import { Task } from '../icons/task';
|
|
7
|
-
|
|
8
|
-
const meta: Meta<CardProps> = {
|
|
9
|
-
title: 'Card example',
|
|
10
|
-
component: Card,
|
|
11
|
-
argTypes: {
|
|
12
|
-
title: {
|
|
13
|
-
control: {
|
|
14
|
-
type: 'text',
|
|
15
|
-
},
|
|
16
|
-
description: 'Title of the card',
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
parameters: {
|
|
20
|
-
controls: { expanded: true },
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
export default meta;
|
|
24
|
-
const Template: Story<CardProps> = args => (
|
|
25
|
-
<Flex flexDir="column" height="450px" justifyContent="space-between">
|
|
26
|
-
<Card
|
|
27
|
-
{...args}
|
|
28
|
-
title="Connect a Service"
|
|
29
|
-
leftIcon={<Task boxSize="18px" />}
|
|
30
|
-
>
|
|
31
|
-
<>
|
|
32
|
-
Description paragraph ipsum dolor sit ame tconsectetur. At pelle nte
|
|
33
|
-
sque
|
|
34
|
-
<Text as="b"> eget hendrt felis.</Text>
|
|
35
|
-
</>
|
|
36
|
-
<>
|
|
37
|
-
Description paragraph ipsum dolor sit ame tconsectetur. At pelle nte
|
|
38
|
-
sque eget hendrt felis.
|
|
39
|
-
</>
|
|
40
|
-
<Button
|
|
41
|
-
text="Acti asdf asdfads fon"
|
|
42
|
-
ariaLabel="Action"
|
|
43
|
-
width="fixed"
|
|
44
|
-
variant="secondary"
|
|
45
|
-
onClick={() => {
|
|
46
|
-
console.log('button on click');
|
|
47
|
-
}}
|
|
48
|
-
/>
|
|
49
|
-
</Card>
|
|
50
|
-
</Flex>
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
export const Default = Template.bind({});
|
|
54
|
-
Default.args = {
|
|
55
|
-
title: 'Card title',
|
|
56
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Meta, Story } from '@storybook/react';
|
|
3
|
+
import { Card, CardProps } from '.';
|
|
4
|
+
import { Flex, Text } from '@chakra-ui/react';
|
|
5
|
+
import { Button } from '../button';
|
|
6
|
+
import { Task } from '../icons/task';
|
|
7
|
+
|
|
8
|
+
const meta: Meta<CardProps> = {
|
|
9
|
+
title: 'Card example',
|
|
10
|
+
component: Card,
|
|
11
|
+
argTypes: {
|
|
12
|
+
title: {
|
|
13
|
+
control: {
|
|
14
|
+
type: 'text',
|
|
15
|
+
},
|
|
16
|
+
description: 'Title of the card',
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
parameters: {
|
|
20
|
+
controls: { expanded: true },
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
export default meta;
|
|
24
|
+
const Template: Story<CardProps> = args => (
|
|
25
|
+
<Flex flexDir="column" height="450px" justifyContent="space-between">
|
|
26
|
+
<Card
|
|
27
|
+
{...args}
|
|
28
|
+
title="Connect a Service"
|
|
29
|
+
leftIcon={<Task boxSize="18px" />}
|
|
30
|
+
>
|
|
31
|
+
<>
|
|
32
|
+
Description paragraph ipsum dolor sit ame tconsectetur. At pelle nte
|
|
33
|
+
sque
|
|
34
|
+
<Text as="b"> eget hendrt felis.</Text>
|
|
35
|
+
</>
|
|
36
|
+
<>
|
|
37
|
+
Description paragraph ipsum dolor sit ame tconsectetur. At pelle nte
|
|
38
|
+
sque eget hendrt felis.
|
|
39
|
+
</>
|
|
40
|
+
<Button
|
|
41
|
+
text="Acti asdf asdfads fon"
|
|
42
|
+
ariaLabel="Action"
|
|
43
|
+
width="fixed"
|
|
44
|
+
variant="secondary"
|
|
45
|
+
onClick={() => {
|
|
46
|
+
console.log('button on click');
|
|
47
|
+
}}
|
|
48
|
+
/>
|
|
49
|
+
</Card>
|
|
50
|
+
</Flex>
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
export const Default = Template.bind({});
|
|
54
|
+
Default.args = {
|
|
55
|
+
title: 'Card title',
|
|
56
|
+
};
|