@true-engineering/true-react-common-ui-kit 4.0.0-alpha44 → 4.0.0-alpha45

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.
Files changed (73) hide show
  1. package/dist/components/ControlWrapper/ControlWrapper.d.ts +2 -2
  2. package/dist/components/ControlWrapper/constants.d.ts +1 -0
  3. package/dist/components/ControlWrapper/index.d.ts +1 -0
  4. package/dist/components/ControlWrapper/types.d.ts +2 -0
  5. package/dist/components/index.d.ts +0 -1
  6. package/dist/helpers/misc.d.ts +1 -0
  7. package/dist/true-react-common-ui-kit.js +169 -259
  8. package/dist/true-react-common-ui-kit.js.map +1 -1
  9. package/dist/true-react-common-ui-kit.umd.cjs +169 -259
  10. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  11. package/package.json +3 -6
  12. package/src/components/AccountInfo/AccountInfo.stories.tsx +19 -27
  13. package/src/components/AddButton/AddButton.stories.tsx +14 -17
  14. package/src/components/Button/Button.stories.tsx +7 -24
  15. package/src/components/Checkbox/Checkbox.stories.tsx +24 -26
  16. package/src/components/CloseButton/CloseButton.stories.tsx +5 -6
  17. package/src/components/Colors/Colors.stories.tsx +63 -3
  18. package/src/components/ControlWrapper/ControlWrapper.stories.tsx +43 -38
  19. package/src/components/ControlWrapper/ControlWrapper.tsx +2 -11
  20. package/src/components/ControlWrapper/constants.ts +11 -0
  21. package/src/components/ControlWrapper/index.ts +1 -0
  22. package/src/components/ControlWrapper/types.ts +3 -0
  23. package/src/components/DateInput/DateInput.stories.tsx +13 -30
  24. package/src/components/DatePicker/DatePicker.stories.tsx +15 -52
  25. package/src/components/Description/Description.stories.tsx +11 -16
  26. package/src/components/FileInput/FileInput.stories.tsx +59 -63
  27. package/src/components/FileItem/FileItem.stories.tsx +46 -45
  28. package/src/components/FiltersPane/FiltersPane.stories.tsx +27 -30
  29. package/src/components/Flag/Flag.stories.tsx +15 -20
  30. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +47 -50
  31. package/src/components/FloatDocActions/FloatDocActions.stories.tsx +18 -24
  32. package/src/components/Icon/Icon.stories.tsx +9 -5
  33. package/src/components/IconButton/IconButton.stories.tsx +7 -11
  34. package/src/components/IncrementInput/IncrementInput.stories.tsx +25 -25
  35. package/src/components/Input/Input.stories.tsx +35 -61
  36. package/src/components/List/List.stories.tsx +22 -17
  37. package/src/components/List/List.styles.ts +2 -1
  38. package/src/components/Modal/Modal.stories.tsx +50 -59
  39. package/src/components/MoreMenu/MoreMenu.stories.tsx +24 -15
  40. package/src/components/MultiSelect/MultiSelect.stories.tsx +23 -20
  41. package/src/components/NewMoreMenu/NewMoreMenu.stories.tsx +42 -40
  42. package/src/components/Notification/Notification.stories.tsx +34 -32
  43. package/src/components/NumberInput/NumberInput.stories.tsx +27 -27
  44. package/src/components/PhoneInput/PhoneInput.stories.tsx +28 -54
  45. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +5 -11
  46. package/src/components/RadioButton/RadioButton.stories.tsx +27 -30
  47. package/src/components/SearchInput/SearchInput.stories.tsx +14 -14
  48. package/src/components/Select/CustomSelect.stories.tsx +29 -33
  49. package/src/components/Select/MultiSelect.stories.tsx +40 -45
  50. package/src/components/Select/Select.stories.tsx +40 -45
  51. package/src/components/Selector/Selector.stories.tsx +25 -27
  52. package/src/components/Skeleton/Skeleton.stories.tsx +13 -12
  53. package/src/components/SmartInput/SmartInput.stories.tsx +23 -23
  54. package/src/components/Status/Status.stories.tsx +28 -29
  55. package/src/components/Switch/Switch.stories.tsx +19 -26
  56. package/src/components/TextArea/TextArea.stories.tsx +31 -34
  57. package/src/components/TextButton/TextButton.stories.tsx +6 -16
  58. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +13 -21
  59. package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +26 -25
  60. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +12 -23
  61. package/src/components/Toaster/Toaster.stories.tsx +16 -14
  62. package/src/components/Tooltip/Tooltip.stories.tsx +5 -4
  63. package/src/components/WithMessages/WithMessages.stories.tsx +16 -20
  64. package/src/components/WithPopup/WithPopup.stories.tsx +27 -26
  65. package/src/components/WithTooltip/WithTooltip.stories.tsx +28 -28
  66. package/src/components/index.ts +0 -1
  67. package/src/helpers/misc.ts +3 -0
  68. package/dist/components/Colors/Colors.d.ts +0 -2
  69. package/dist/components/Colors/Colors.styles.d.ts +0 -1
  70. package/dist/components/Colors/index.d.ts +0 -1
  71. package/src/components/Colors/Colors.styles.ts +0 -36
  72. package/src/components/Colors/Colors.tsx +0 -26
  73. package/src/components/Colors/index.ts +0 -1
@@ -1,23 +1,11 @@
1
- import { ComponentStory } from '@storybook/react';
1
+ import { FC } from 'react';
2
+ import { type Meta } from '@storybook/react';
3
+ import { excludeStorybookParams } from '../../helpers';
2
4
  import { colors } from '../../theme';
3
- import { NewMoreMenu } from './NewMoreMenu';
5
+ import { IListItem } from '../List';
6
+ import { INewMoreMenuProps, NewMoreMenu } from './NewMoreMenu';
4
7
 
5
- const positions = [
6
- 'top',
7
- 'bottom',
8
- 'right',
9
- 'left',
10
- 'top-start',
11
- 'top-end',
12
- 'bottom-start',
13
- 'bottom-end',
14
- 'right-start',
15
- 'right-end',
16
- 'left-start',
17
- 'left-end',
18
- ];
19
-
20
- const menuItems = [
8
+ const menuItems: IListItem[] = [
21
9
  { item: 'Печатать билет', onClick: console.log },
22
10
  { item: 'Выписать', onClick: console.log },
23
11
  { item: 'Аннулировать', onClick: console.log, shouldDrawSpacerBelow: true },
@@ -31,15 +19,22 @@ const menuItems = [
31
19
  },
32
20
  ];
33
21
 
34
- export default {
35
- title: 'Data Display/NewMoreMenu',
36
- component: NewMoreMenu,
37
- argTypes: {
38
- placement: { control: 'select', options: positions },
39
- },
40
- };
22
+ const placements = [
23
+ 'top',
24
+ 'bottom',
25
+ 'right',
26
+ 'left',
27
+ 'top-start',
28
+ 'top-end',
29
+ 'bottom-start',
30
+ 'bottom-end',
31
+ 'right-start',
32
+ 'right-end',
33
+ 'left-start',
34
+ 'left-end',
35
+ ];
41
36
 
42
- const Template: ComponentStory<typeof NewMoreMenu> = (args) => (
37
+ const Story: FC<INewMoreMenuProps> = (args) => (
43
38
  <div
44
39
  style={{
45
40
  display: 'flex',
@@ -56,19 +51,26 @@ const Template: ComponentStory<typeof NewMoreMenu> = (args) => (
56
51
  </div>
57
52
  );
58
53
 
59
- export const Default = Template.bind({});
60
-
61
- Default.args = {
62
- canBeFlipped: false,
63
- isDisabled: false,
64
- hasDefaultStateBackground: true,
65
- placement: 'bottom-end',
66
- shouldRenderInBody: false,
67
- shouldHideOnScroll: false,
68
- };
69
-
70
- Default.parameters = {
71
- controls: {
72
- exclude: ['items', 'middlewares', 'testId', 'data'],
54
+ const meta: Meta<typeof Story> = {
55
+ title: 'Data Display/NewMoreMenu',
56
+ component: Story,
57
+ args: {
58
+ canBeFlipped: false,
59
+ isDisabled: false,
60
+ hasDefaultStateBackground: true,
61
+ placement: 'bottom-end',
62
+ shouldRenderInBody: false,
63
+ shouldHideOnScroll: false,
64
+ },
65
+ argTypes: {
66
+ placement: { control: 'select', options: placements },
67
+ },
68
+ parameters: {
69
+ controls: {
70
+ exclude: excludeStorybookParams(['items', 'middlewares']),
71
+ },
73
72
  },
74
73
  };
74
+
75
+ export default meta;
76
+ export const Default = {};
@@ -1,50 +1,52 @@
1
- import { Meta, Story } from '@storybook/react';
1
+ import { FC } from 'react';
2
+ import { type Meta } from '@storybook/react';
3
+ import { excludeStorybookParams } from '../../helpers';
2
4
  import { iconsMap } from '../Icon';
3
5
  import { INotificationProps, Notification } from './Notification';
4
6
 
5
- const icons = [undefined, ...Object.keys(iconsMap)];
6
-
7
- const lorem = 'Lorem ipsum dolor, sit amet consectetur adipisicing';
8
-
9
- interface IStory extends INotificationProps {
7
+ interface INotificationCustomProps extends INotificationProps {
10
8
  shouldUseChildrenInstead: boolean;
11
9
  }
12
10
 
13
- export default {
11
+ const Story: FC<INotificationCustomProps> = ({
12
+ shouldUseChildrenInstead,
13
+ title,
14
+ text,
15
+ ...args
16
+ }) => (
17
+ <Notification
18
+ {...args}
19
+ title={!shouldUseChildrenInstead ? title : undefined}
20
+ text={!shouldUseChildrenInstead ? text : undefined}
21
+ >
22
+ {shouldUseChildrenInstead ? (
23
+ <div>
24
+ Some childrens with <a href="google.com">tags</a>
25
+ </div>
26
+ ) : undefined}
27
+ </Notification>
28
+ );
29
+
30
+ const meta: Meta<typeof Story> = {
14
31
  title: 'Data Display/Notification',
15
- component: Notification,
32
+ component: Story,
16
33
  args: {
17
34
  title: 'Notification title',
18
- text: lorem,
35
+ text: 'Lorem ipsum dolor, sit amet consectetur adipisicing',
19
36
  size: 's',
20
37
  type: 'info',
21
38
  isFullWidth: false,
22
39
  shouldUseChildrenInstead: false,
23
40
  },
24
41
  argTypes: {
25
- size: { control: 'inline-radio', options: ['s', 'm', 'l'] },
26
- icon: { options: icons, control: 'select' },
27
- type: {
28
- control: 'inline-radio',
29
- options: ['error', 'info', 'warning', 'ok', 'not-ok', 'custom'],
42
+ icon: { options: [undefined, ...Object.keys(iconsMap)], control: 'select' },
43
+ },
44
+ parameters: {
45
+ controls: {
46
+ exclude: excludeStorybookParams(['children']),
30
47
  },
31
48
  },
32
- } as Meta<IStory>;
33
-
34
- export const Default: Story<IStory> = ({ title, text, shouldUseChildrenInstead, ...args }) => {
35
- const children = (
36
- <div>
37
- Some childrens with <a href="google.com">tags</a>
38
- </div>
39
- );
40
-
41
- return (
42
- <Notification
43
- {...args}
44
- title={!shouldUseChildrenInstead ? title : undefined}
45
- text={!shouldUseChildrenInstead ? text : undefined}
46
- >
47
- {shouldUseChildrenInstead ? children : undefined}
48
- </Notification>
49
- );
50
49
  };
50
+
51
+ export default meta;
52
+ export const Default = {};
@@ -1,13 +1,8 @@
1
- import { useState } from 'react';
2
- import { ComponentStory } from '@storybook/react';
3
- import { NumberInput } from './NumberInput';
1
+ import { FC, useState } from 'react';
2
+ import { type Meta } from '@storybook/react';
3
+ import { INumberInputProps, NumberInput } from './NumberInput';
4
4
 
5
- export default {
6
- title: 'Inputs/NumberInput',
7
- component: NumberInput,
8
- };
9
-
10
- const Template: ComponentStory<typeof NumberInput> = (args) => {
5
+ const Story: FC<INumberInputProps> = (args) => {
11
6
  const [value, setValue] = useState<number>();
12
7
  return (
13
8
  <div style={{ width: 300 }}>
@@ -16,22 +11,27 @@ const Template: ComponentStory<typeof NumberInput> = (args) => {
16
11
  );
17
12
  };
18
13
 
19
- export const Default = Template.bind({});
20
-
21
- Default.args = {
22
- min: 0,
23
- max: 9999,
24
- precision: 3,
25
- intPartPrecision: 7,
26
- canBeFloat: false,
27
- canBeNegative: false,
28
- label: 'Label',
29
- placeholder: 'Placeholder',
30
- infoMessage: 'Message Info',
31
- units: 'RUB',
32
- isInvalid: false,
33
- errorMessage: 'Error Text',
34
- isDisabled: false,
35
- isRequired: false,
36
- isReadonly: false,
14
+ const meta: Meta<typeof Story> = {
15
+ title: 'Inputs/NumberInput',
16
+ component: Story,
17
+ args: {
18
+ min: 0,
19
+ max: 9999,
20
+ precision: 3,
21
+ intPartPrecision: 7,
22
+ canBeFloat: false,
23
+ canBeNegative: false,
24
+ label: 'Label',
25
+ placeholder: 'Placeholder',
26
+ infoMessage: 'Message Info',
27
+ units: 'RUB',
28
+ isInvalid: false,
29
+ errorMessage: 'Error Text',
30
+ isDisabled: false,
31
+ isRequired: false,
32
+ isReadonly: false,
33
+ },
37
34
  };
35
+
36
+ export default meta;
37
+ export const Default = {};
@@ -1,67 +1,41 @@
1
- import { useState } from 'react';
2
- import { ComponentStory } from '@storybook/react';
3
- import { phoneInfo } from '../../constants';
1
+ import { FC, useState } from 'react';
2
+ import { type Meta } from '@storybook/react';
3
+ import { GROUP_PLACEMENTS } from '../ControlWrapper';
4
4
  import { iconsMap } from '../Icon';
5
- import { PhoneInput } from './PhoneInput';
5
+ import { IPhoneInputProps, PhoneInput } from './PhoneInput';
6
6
  import { IPhoneValue } from './types';
7
7
 
8
- const icons = [undefined, ...Object.keys(iconsMap)];
9
- const groupPlacements = [undefined, 'left', 'right', 'middle'];
10
- const borders = [undefined, 'left', 'top', 'right', 'bottom'];
11
- const errorPositions = ['bottom', 'top'];
12
- const countryCodes = phoneInfo.map((info) => info.countryCode);
13
-
14
- export default {
15
- title: 'Inputs/PhoneInput',
16
- component: PhoneInput,
17
- argTypes: {
18
- icon: { control: 'select', options: icons },
19
- errorPosition: { control: 'inline-radio', options: errorPositions },
20
- border: { control: 'inline-radio', options: borders },
21
- groupPlacement: { control: 'select', options: groupPlacements },
22
- defaultCountryCode: { control: 'select', options: countryCodes },
23
- },
24
- };
25
-
26
- const Template: ComponentStory<typeof PhoneInput> = (args) => {
8
+ const Story: FC<IPhoneInputProps> = (args) => {
27
9
  const [value, setValue] = useState<IPhoneValue>({
28
10
  dialCode: '7',
29
11
  phoneNumber: '9134567890',
30
12
  countryCode: 'RU',
31
13
  });
32
-
33
14
  return <PhoneInput {...args} value={value} onChange={setValue} />;
34
15
  };
35
16
 
36
- export const Default = Template.bind({});
37
-
38
- Default.args = {
39
- label: 'Label',
40
- infoMessage: 'Message Info',
41
- icon: undefined,
42
- isInvalid: false,
43
- errorMessage: 'Error Text',
44
- isActive: false,
45
- isDisabled: false,
46
- isRequired: false,
47
- isReadonly: false,
48
- isClearable: false,
49
- isLoading: false,
50
- groupPlacement: undefined,
51
- };
52
-
53
- Default.parameters = {
54
- controls: {
55
- exclude: [
56
- 'testId',
57
- 'data',
58
- 'tabIndex',
59
- 'onChange',
60
- 'onFocus',
61
- 'onBlur',
62
- 'onPaste',
63
- 'onKeyDown',
64
- 'onIconClick',
65
- ],
17
+ const meta: Meta<typeof Story> = {
18
+ title: 'Inputs/PhoneInput',
19
+ component: Story,
20
+ args: {
21
+ label: 'Label',
22
+ infoMessage: 'Message Info',
23
+ icon: undefined,
24
+ isInvalid: false,
25
+ errorMessage: 'Error Text',
26
+ isActive: false,
27
+ isDisabled: false,
28
+ isRequired: false,
29
+ isReadonly: false,
30
+ isClearable: false,
31
+ isLoading: false,
32
+ groupPlacement: undefined,
33
+ },
34
+ argTypes: {
35
+ icon: { control: 'select', options: [undefined, ...Object.keys(iconsMap)] },
36
+ groupPlacement: { options: [undefined, ...GROUP_PLACEMENTS], control: 'select' },
66
37
  },
67
38
  };
39
+
40
+ export default meta;
41
+ export const Default = {};
@@ -1,7 +1,7 @@
1
- import { ComponentStory, ComponentMeta } from '@storybook/react';
1
+ import { type Meta } from '@storybook/react';
2
2
  import { PhoneInputCountryList } from './PhoneInputCountryList';
3
3
 
4
- export default {
4
+ const meta: Meta<typeof PhoneInputCountryList> = {
5
5
  title: 'Inputs/PhoneInput/PhoneInputCountryList',
6
6
  component: PhoneInputCountryList,
7
7
  args: {
@@ -9,13 +9,7 @@ export default {
9
9
  placeholder: 'Поиск',
10
10
  noMatchesLabel: 'Ничего не найдено',
11
11
  },
12
- parameters: {
13
- controls: {
14
- exclude: ['data', 'tweakStyles', 'testId'],
15
- },
16
- },
17
- } as ComponentMeta<typeof PhoneInputCountryList>;
12
+ };
18
13
 
19
- export const Default: ComponentStory<typeof PhoneInputCountryList> = (args) => (
20
- <PhoneInputCountryList {...args} />
21
- );
14
+ export default meta;
15
+ export const Default = {};
@@ -1,23 +1,18 @@
1
- import { useState } from 'react';
2
- import { ComponentStory } from '@storybook/react';
1
+ import { FC, useState } from 'react';
2
+ import { type Meta } from '@storybook/react';
3
+ import { excludeStorybookParams } from '../../helpers';
3
4
  import { IExtendableProps } from '../../types';
4
- import { RadioButton } from './RadioButton';
5
+ import { IRadioButtonProps, RadioButton } from './RadioButton';
5
6
 
6
- const RADIO_SIZES = [undefined, 'micro'] as const;
7
-
8
- export default {
9
- title: 'Controls/RadioButton',
10
- component: RadioButton,
11
- };
7
+ const options = ['one', 'two', 'three'];
8
+ const SIZES = [undefined, 'micro'] as const;
12
9
 
13
10
  declare module './types' {
14
11
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
15
- export interface IRadioButtonSizes extends IExtendableProps<typeof RADIO_SIZES> {}
12
+ export interface IRadioButtonSizes extends IExtendableProps<typeof SIZES> {}
16
13
  }
17
14
 
18
- const options = ['one', 'two', 'three'];
19
-
20
- const Template: ComponentStory<typeof RadioButton> = (args) => {
15
+ const Story: FC<IRadioButtonProps<string>> = (args) => {
21
16
  const [activeIdx, setActiveIdx] = useState(0);
22
17
 
23
18
  return (
@@ -38,22 +33,24 @@ const Template: ComponentStory<typeof RadioButton> = (args) => {
38
33
  );
39
34
  };
40
35
 
41
- export const Default = Template.bind({});
42
-
43
- Default.args = {
44
- children: 'Label',
45
- size: undefined,
46
- // isChecked: false,
47
- isInvalid: false,
48
- isDisabled: false,
49
- };
50
-
51
- Default.argTypes = {
52
- size: { options: [undefined, ...RADIO_SIZES], control: 'inline-radio' },
53
- };
54
-
55
- Default.parameters = {
56
- controls: {
57
- exclude: ['data', 'value', 'groupName', 'isChecked', 'onChange'],
36
+ const meta: Meta<typeof Story> = {
37
+ title: 'Controls/RadioButton',
38
+ component: Story,
39
+ args: {
40
+ children: 'Label',
41
+ size: undefined,
42
+ isInvalid: false,
43
+ isDisabled: false,
44
+ },
45
+ argTypes: {
46
+ size: { options: [undefined, ...SIZES], control: 'inline-radio' },
47
+ },
48
+ parameters: {
49
+ controls: {
50
+ exclude: excludeStorybookParams(['value', 'groupName', 'isChecked']),
51
+ },
58
52
  },
59
53
  };
54
+
55
+ export default meta;
56
+ export const Default = {};
@@ -1,13 +1,8 @@
1
- import { useState } from 'react';
2
- import { ComponentStory } from '@storybook/react';
3
- import { SearchInput } from './SearchInput';
1
+ import { FC, useState } from 'react';
2
+ import { type Meta } from '@storybook/react';
3
+ import { ISearchInputProps, SearchInput } from './SearchInput';
4
4
 
5
- export default {
6
- title: 'Inputs/SearchInput',
7
- component: SearchInput,
8
- };
9
-
10
- const Template: ComponentStory<typeof SearchInput> = (args) => {
5
+ const Story: FC<ISearchInputProps> = (args) => {
11
6
  const [value, setValue] = useState('');
12
7
  return (
13
8
  <div style={{ width: 320 }}>
@@ -16,9 +11,14 @@ const Template: ComponentStory<typeof SearchInput> = (args) => {
16
11
  );
17
12
  };
18
13
 
19
- export const Default = Template.bind({});
20
-
21
- Default.args = {
22
- placeholder: 'Поиск',
23
- isAutoSized: false,
14
+ const meta: Meta<typeof Story> = {
15
+ title: 'Inputs/SearchInput',
16
+ component: Story,
17
+ args: {
18
+ placeholder: 'Поиск',
19
+ isAutoSized: false,
20
+ },
24
21
  };
22
+
23
+ export default meta;
24
+ export const Default = {};
@@ -1,13 +1,13 @@
1
- import { useState } from 'react';
1
+ import { FC, useState } from 'react';
2
2
  import { createUseStyles } from 'react-jss';
3
3
  import { isStringNotEmpty } from '@true-engineering/true-react-platform-helpers';
4
- import { type ComponentMeta, type ComponentStory } from '@storybook/react';
4
+ import { type Meta } from '@storybook/react';
5
5
  import { Button, type IButtonStyles } from '../Button';
6
6
  import { type IInputStyles, Input } from '../Input';
7
7
  import { TextButton } from '../TextButton';
8
8
  import { type ISelectProps, Select } from './Select';
9
9
 
10
- interface ISelectWithCustomProps<Option> extends ISelectProps<Option> {
10
+ interface ISelectCustomProps<Option> extends ISelectProps<Option> {
11
11
  shouldUsePopper?: boolean;
12
12
  shouldRenderInBody?: boolean;
13
13
  shouldHideOnScroll?: boolean;
@@ -136,15 +136,15 @@ function CustomListFooter({ onReset, onClear }: ICustomListFooterProps) {
136
136
  );
137
137
  }
138
138
 
139
- function SelectWithCustomProps({
139
+ const Story: FC<ISelectCustomProps<string>> = ({
140
140
  noMatchesLabel,
141
141
  shouldUsePopper,
142
142
  shouldRenderInBody,
143
143
  shouldHideOnScroll,
144
144
  canBeFlipped,
145
145
  scrollParent,
146
- ...restProps
147
- }: ISelectWithCustomProps<string>) {
146
+ ...args
147
+ }) => {
148
148
  const classes = useSelectStyles();
149
149
  const [inputValue, setInputValue] = useState<string>();
150
150
  const [options, setOptions] = useState<string[]>([]);
@@ -185,7 +185,7 @@ function SelectWithCustomProps({
185
185
  );
186
186
 
187
187
  const props = {
188
- ...restProps,
188
+ ...args,
189
189
  onChange: setInputValue,
190
190
  value: inputValue,
191
191
  options,
@@ -214,38 +214,34 @@ function SelectWithCustomProps({
214
214
  }}
215
215
  />
216
216
  );
217
- }
217
+ };
218
218
 
219
- export default {
219
+ const meta: Meta<typeof Story> = {
220
220
  title: 'Controls/Select',
221
- component: SelectWithCustomProps,
221
+ component: Story,
222
+ args: {
223
+ label: 'Dropdown',
224
+ noMatchesLabel: 'No matches',
225
+ isInvalid: false,
226
+ errorMessage: '',
227
+ isDisabled: false,
228
+ isRequired: false,
229
+ isClearable: false,
230
+ shouldUsePopper: false,
231
+ shouldRenderInBody: false,
232
+ shouldHideOnScroll: false,
233
+ shouldScrollToList: true,
234
+ canBeFlipped: false,
235
+ scrollParent: 'document',
236
+ size: undefined,
237
+ },
222
238
  argTypes: {
223
239
  scrollParent: {
224
240
  options: ['document', 'auto'],
225
241
  control: { type: 'select' },
226
242
  },
227
243
  },
228
- } as ComponentMeta<typeof SelectWithCustomProps>;
229
-
230
- const Template: ComponentStory<typeof SelectWithCustomProps> = (args) => (
231
- <SelectWithCustomProps {...args} />
232
- );
233
-
234
- export const CustomSelect = Template.bind({});
235
-
236
- CustomSelect.args = {
237
- label: 'Dropdown',
238
- noMatchesLabel: 'No matches',
239
- isInvalid: false,
240
- errorMessage: '',
241
- isDisabled: false,
242
- isRequired: false,
243
- isClearable: false,
244
- shouldUsePopper: false,
245
- shouldRenderInBody: false,
246
- shouldHideOnScroll: false,
247
- shouldScrollToList: true,
248
- canBeFlipped: false,
249
- scrollParent: 'document',
250
- size: undefined,
251
244
  };
245
+
246
+ export default meta;
247
+ export const CustomSelect = {};