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

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 (210) hide show
  1. package/dist/components/AccountInfo/AccountInfo.styles.d.ts +1 -1
  2. package/dist/components/AddButton/AddButton.styles.d.ts +1 -1
  3. package/dist/components/Button/Button.d.ts +1 -1
  4. package/dist/components/Button/Button.styles.d.ts +1 -1
  5. package/dist/components/Checkbox/Checkbox.styles.d.ts +1 -1
  6. package/dist/components/CloseButton/CloseButton.styles.d.ts +1 -1
  7. package/dist/components/ControlWrapper/ControlWrapper.d.ts +2 -2
  8. package/dist/components/ControlWrapper/ControlWrapper.styles.d.ts +1 -1
  9. package/dist/components/ControlWrapper/constants.d.ts +1 -0
  10. package/dist/components/ControlWrapper/index.d.ts +1 -0
  11. package/dist/components/ControlWrapper/types.d.ts +3 -1
  12. package/dist/components/CssBaseline/CssBaseline.styles.d.ts +1 -1
  13. package/dist/components/DateInput/DateInput.d.ts +1 -2
  14. package/dist/components/DateInput/DateInput.styles.d.ts +1 -1
  15. package/dist/components/DateInput/constants.d.ts +1 -1
  16. package/dist/components/DatePicker/DatePicker.d.ts +2 -3
  17. package/dist/components/DatePicker/DatePicker.styles.d.ts +1 -1
  18. package/dist/components/DatePicker/components/DatePickerBase/DatePickerBase.d.ts +1 -1
  19. package/dist/components/DatePicker/components/DatePickerHeader/DatePickerHeader.styles.d.ts +1 -1
  20. package/dist/components/DatePicker/constants.d.ts +1 -1
  21. package/dist/components/DatePicker/types.d.ts +2 -2
  22. package/dist/components/Description/Description.styles.d.ts +1 -1
  23. package/dist/components/FileInput/FileInput.d.ts +1 -1
  24. package/dist/components/FileInput/FileInput.styles.d.ts +1 -1
  25. package/dist/components/FileItem/FileItem.styles.d.ts +1 -1
  26. package/dist/components/FiltersPane/FiltersPane.d.ts +0 -1
  27. package/dist/components/FiltersPane/FiltersPane.styles.d.ts +2 -2
  28. package/dist/components/FiltersPane/components/Filter/Filter.d.ts +1 -2
  29. package/dist/components/FiltersPane/components/FilterInterval/FilterInterval.styles.d.ts +3 -6
  30. package/dist/components/FiltersPane/components/FilterMultiSelect/FilterMultiSelect.d.ts +0 -1
  31. package/dist/components/FiltersPane/components/FilterSelect/FilterSelect.styles.d.ts +3 -6
  32. package/dist/components/FiltersPane/components/FilterValueView/FilterValueView.d.ts +1 -2
  33. package/dist/components/FiltersPane/components/FilterValueView/FilterValueView.styles.d.ts +1 -1
  34. package/dist/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.d.ts +5 -11
  35. package/dist/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.styles.d.ts +1 -1
  36. package/dist/components/FiltersPane/components/FilterWrapper/FilterWrapper.d.ts +0 -1
  37. package/dist/components/FiltersPane/components/FilterWrapper/FilterWrapper.styles.d.ts +2 -2
  38. package/dist/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.styles.d.ts +1 -1
  39. package/dist/components/FiltersPane/constants.d.ts +1 -1
  40. package/dist/components/FiltersPane/helpers.d.ts +1 -1
  41. package/dist/components/FiltersPane/types.d.ts +1 -1
  42. package/dist/components/Flag/Flag.styles.d.ts +1 -1
  43. package/dist/components/Flag/customFlags/customFlags.d.ts +2 -2
  44. package/dist/components/FlexibleTable/FlexibleTable.styles.d.ts +2 -2
  45. package/dist/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.styles.d.ts +1 -1
  46. package/dist/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.styles.d.ts +1 -1
  47. package/dist/components/FlexibleTable/helpers.d.ts +2 -2
  48. package/dist/components/FloatDocActions/FloatDocActions.styles.d.ts +1 -1
  49. package/dist/components/FloatDocActions/components/DocActions/DocActions.styles.d.ts +1 -1
  50. package/dist/components/Icon/Icon.styles.d.ts +1 -1
  51. package/dist/components/Icon/icons/index.d.ts +29 -29
  52. package/dist/components/IconButton/IconButton.d.ts +1 -2
  53. package/dist/components/IconButton/IconButton.styles.d.ts +1 -1
  54. package/dist/components/IncrementInput/IncrementInput.styles.d.ts +1 -1
  55. package/dist/components/Input/Input.d.ts +1 -2
  56. package/dist/components/Input/Input.styles.d.ts +1 -1
  57. package/dist/components/Input/InputBase.d.ts +1 -1
  58. package/dist/components/List/List.styles.d.ts +1 -1
  59. package/dist/components/List/components/ListItem/ListItem.styles.d.ts +1 -1
  60. package/dist/components/Modal/Modal.styles.d.ts +1 -1
  61. package/dist/components/MoreMenu/MoreMenu.styles.d.ts +1 -1
  62. package/dist/components/MultiSelect/MultiSelect.d.ts +0 -1
  63. package/dist/components/MultiSelect/MultiSelect.styles.d.ts +1 -1
  64. package/dist/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.styles.d.ts +1 -1
  65. package/dist/components/MultiSelectList/MultiSelectList.styles.d.ts +1 -1
  66. package/dist/components/MultiSelectList/constants.d.ts +1 -1
  67. package/dist/components/MultiSelectList/helpers.d.ts +1 -1
  68. package/dist/components/NewMoreMenu/NewMoreMenu.styles.d.ts +1 -1
  69. package/dist/components/Notification/Notification.styles.d.ts +1 -1
  70. package/dist/components/NumberInput/NumberInput.d.ts +1 -2
  71. package/dist/components/NumberInput/helpers.d.ts +2 -2
  72. package/dist/components/PhoneInput/PhoneInput.styles.d.ts +1 -1
  73. package/dist/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.styles.d.ts +1 -1
  74. package/dist/components/RadioButton/RadioButton.styles.d.ts +1 -1
  75. package/dist/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.d.ts +3 -373
  76. package/dist/components/ScrollIntoViewIfNeeded/constants.d.ts +1 -1
  77. package/dist/components/SearchInput/SearchInput.d.ts +1 -2
  78. package/dist/components/Select/Select.d.ts +1 -1
  79. package/dist/components/Select/Select.styles.d.ts +12 -22
  80. package/dist/components/Select/components/SelectList/SelectList.d.ts +5 -5
  81. package/dist/components/Select/components/SelectList/SelectList.styles.d.ts +1 -1
  82. package/dist/components/Select/components/SelectListItem/SelectListItem.d.ts +2 -2
  83. package/dist/components/Select/helpers.d.ts +1 -1
  84. package/dist/components/Selector/Selector.d.ts +0 -1
  85. package/dist/components/Selector/Selector.styles.d.ts +1 -1
  86. package/dist/components/Skeleton/Skeleton.styles.d.ts +1 -1
  87. package/dist/components/SmartInput/SmartInput.d.ts +1 -1
  88. package/dist/components/Status/Status.styles.d.ts +1 -1
  89. package/dist/components/Status/types.d.ts +1 -1
  90. package/dist/components/Switch/Switch.styles.d.ts +1 -1
  91. package/dist/components/TextArea/TextArea.d.ts +1 -1
  92. package/dist/components/TextArea/TextArea.styles.d.ts +1 -1
  93. package/dist/components/TextButton/TextButton.d.ts +1 -1
  94. package/dist/components/TextButton/TextButton.styles.d.ts +1 -1
  95. package/dist/components/TextWithInfo/TextWithInfo.styles.d.ts +1 -1
  96. package/dist/components/TextWithTooltip/TextWithTooltip.styles.d.ts +1 -1
  97. package/dist/components/ThemedPreloader/ThemedPreloader.styles.d.ts +1 -1
  98. package/dist/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.styles.d.ts +1 -1
  99. package/dist/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.styles.d.ts +1 -1
  100. package/dist/components/Toaster/Toaster.styles.d.ts +1 -1
  101. package/dist/components/Tooltip/Tooltip.styles.d.ts +1 -1
  102. package/dist/components/WithMessages/WithMessages.d.ts +1 -1
  103. package/dist/components/WithMessages/WithMessages.styles.d.ts +1 -1
  104. package/dist/components/WithPopup/WithPopup.styles.d.ts +1 -1
  105. package/dist/components/WithPopup/types.d.ts +4 -4
  106. package/dist/components/index.d.ts +0 -1
  107. package/dist/constants/phone-info.d.ts +1 -1
  108. package/dist/helpers/misc.d.ts +2 -1
  109. package/dist/helpers/phone.d.ts +1 -1
  110. package/dist/hooks/use-dropdown.d.ts +3 -3
  111. package/dist/hooks/use-merge.d.ts +1 -1
  112. package/dist/hooks/use-mixed-styles.d.ts +3 -3
  113. package/dist/hooks/use-tweak-styles.d.ts +5 -5
  114. package/dist/theme/Provider.d.ts +2 -2
  115. package/dist/theme/common.d.ts +1 -1
  116. package/dist/theme/helpers.d.ts +3 -3
  117. package/dist/theme/true-jss/ThemedStylesManager.d.ts +1 -1
  118. package/dist/theme/true-jss/TweakStylesManager.d.ts +1 -1
  119. package/dist/theme/types.d.ts +1 -1
  120. package/dist/true-react-common-ui-kit.js +881 -733
  121. package/dist/true-react-common-ui-kit.js.map +1 -1
  122. package/dist/true-react-common-ui-kit.umd.cjs +881 -733
  123. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  124. package/dist/types.d.ts +4 -4
  125. package/package.json +14 -16
  126. package/src/components/AccountInfo/AccountInfo.stories.tsx +19 -27
  127. package/src/components/AddButton/AddButton.stories.tsx +14 -17
  128. package/src/components/Button/Button.stories.tsx +7 -24
  129. package/src/components/Checkbox/Checkbox.stories.tsx +24 -26
  130. package/src/components/Checkbox/types.ts +1 -1
  131. package/src/components/CloseButton/CloseButton.stories.tsx +5 -6
  132. package/src/components/Colors/Colors.stories.tsx +63 -3
  133. package/src/components/ControlWrapper/ControlWrapper.stories.tsx +43 -38
  134. package/src/components/ControlWrapper/ControlWrapper.tsx +2 -11
  135. package/src/components/ControlWrapper/constants.ts +11 -0
  136. package/src/components/ControlWrapper/index.ts +1 -0
  137. package/src/components/ControlWrapper/types.ts +4 -1
  138. package/src/components/DateInput/DateInput.stories.tsx +13 -30
  139. package/src/components/DatePicker/DatePicker.stories.tsx +15 -52
  140. package/src/components/Description/Description.stories.tsx +11 -16
  141. package/src/components/FileInput/FileInput.stories.tsx +59 -63
  142. package/src/components/FileItem/FileItem.stories.tsx +46 -45
  143. package/src/components/FiltersPane/FiltersPane.stories.tsx +27 -30
  144. package/src/components/FiltersPane/components/Filter/Filter.tsx +1 -1
  145. package/src/components/FiltersPane/components/Filter/helpers.ts +3 -3
  146. package/src/components/FiltersPane/types.ts +0 -2
  147. package/src/components/Flag/Flag.stories.tsx +15 -20
  148. package/src/components/Flag/Flag.tsx +2 -2
  149. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +47 -50
  150. package/src/components/FloatDocActions/FloatDocActions.stories.tsx +18 -24
  151. package/src/components/Icon/Icon.stories.tsx +9 -5
  152. package/src/components/Icon/types.ts +1 -1
  153. package/src/components/IconButton/IconButton.stories.tsx +7 -11
  154. package/src/components/IncrementInput/IncrementInput.stories.tsx +25 -25
  155. package/src/components/Input/Input.stories.tsx +35 -61
  156. package/src/components/List/List.stories.tsx +22 -17
  157. package/src/components/List/List.styles.ts +2 -1
  158. package/src/components/Modal/Modal.stories.tsx +50 -59
  159. package/src/components/MoreMenu/MoreMenu.stories.tsx +24 -15
  160. package/src/components/MultiSelect/MultiSelect.stories.tsx +23 -20
  161. package/src/components/NewMoreMenu/NewMoreMenu.stories.tsx +42 -40
  162. package/src/components/Notification/Notification.stories.tsx +34 -32
  163. package/src/components/NumberInput/NumberInput.stories.tsx +27 -27
  164. package/src/components/PhoneInput/PhoneInput.stories.tsx +28 -54
  165. package/src/components/PhoneInput/PhoneInput.tsx +1 -1
  166. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +5 -11
  167. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.tsx +1 -4
  168. package/src/components/RadioButton/RadioButton.stories.tsx +28 -31
  169. package/src/components/RadioButton/types.ts +1 -1
  170. package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +15 -9
  171. package/src/components/SearchInput/SearchInput.stories.tsx +14 -14
  172. package/src/components/Select/CustomSelect.stories.tsx +29 -33
  173. package/src/components/Select/MultiSelect.stories.tsx +41 -46
  174. package/src/components/Select/Select.stories.tsx +41 -46
  175. package/src/components/Select/Select.tsx +27 -27
  176. package/src/components/Select/components/SelectList/SelectList.tsx +4 -4
  177. package/src/components/Selector/Selector.stories.tsx +25 -27
  178. package/src/components/Selector/Selector.tsx +1 -2
  179. package/src/components/Skeleton/Skeleton.stories.tsx +13 -12
  180. package/src/components/SmartInput/SmartInput.stories.tsx +23 -23
  181. package/src/components/Status/Status.stories.tsx +29 -30
  182. package/src/components/Status/types.ts +1 -1
  183. package/src/components/Switch/Switch.stories.tsx +19 -26
  184. package/src/components/TextArea/TextArea.stories.tsx +32 -35
  185. package/src/components/TextArea/types.ts +1 -1
  186. package/src/components/TextButton/TextButton.stories.tsx +6 -16
  187. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +13 -21
  188. package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +26 -25
  189. package/src/components/TextWithTooltip/TextWithTooltip.tsx +1 -2
  190. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +12 -23
  191. package/src/components/Toaster/Toaster.stories.tsx +16 -14
  192. package/src/components/Tooltip/Tooltip.stories.tsx +5 -4
  193. package/src/components/WithMessages/WithMessages.stories.tsx +16 -20
  194. package/src/components/WithPopup/WithPopup.stories.tsx +27 -26
  195. package/src/components/WithTooltip/WithTooltip.stories.tsx +28 -28
  196. package/src/components/index.ts +0 -1
  197. package/src/helpers/misc.ts +8 -5
  198. package/src/helpers/popper-helpers.ts +0 -1
  199. package/src/theme/helpers.ts +3 -1
  200. package/src/theme/true-jss/ThemedStylesManager.ts +2 -1
  201. package/src/theme/true-jss/TweakStylesManager.ts +1 -2
  202. package/src/theme/types.ts +0 -1
  203. package/src/types.ts +0 -2
  204. package/dist/components/Colors/Colors.d.ts +0 -2
  205. package/dist/components/Colors/Colors.styles.d.ts +0 -1
  206. package/dist/components/Colors/index.d.ts +0 -1
  207. package/src/components/Colors/Colors.styles.ts +0 -36
  208. package/src/components/Colors/Colors.tsx +0 -26
  209. package/src/components/Colors/index.ts +0 -1
  210. package/src/components/Flag/customFlags/augment.d.ts +0 -1
@@ -1,20 +1,24 @@
1
1
  import { FC, useState } from 'react';
2
- import { ComponentStory } from '@storybook/react';
2
+ import { type Meta } from '@storybook/react';
3
+ import { excludeStorybookParams } from '../../helpers';
3
4
  import { Button } from '../Button';
4
5
  import { IModalProps, Modal } from './Modal';
5
6
 
6
7
  const smallText =
7
8
  'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.';
9
+
8
10
  const text =
9
11
  'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat.';
10
- const largeText = [...text, ...text, ...text];
12
+
13
+ const largeText = `${text}${text}${text}`;
14
+
11
15
  const texts = { small: smallText, medium: text, large: largeText };
12
16
 
13
- export interface IModalWithCustomProps extends IModalProps {
17
+ export interface IModalCustomProps extends IModalProps {
14
18
  textSize: 'small' | 'medium' | 'large';
15
19
  }
16
20
 
17
- const ModalWithCustomProps: FC<IModalWithCustomProps> = ({ size, textSize, ...args }) => {
21
+ const Story: FC<IModalCustomProps> = ({ size, textSize, ...args }) => {
18
22
  const [isModalOpen, setIsModalOpen] = useState(false);
19
23
  const [isSecondModalOpen, setIsSecondModalOpen] = useState(false);
20
24
 
@@ -27,26 +31,28 @@ const ModalWithCustomProps: FC<IModalWithCustomProps> = ({ size, textSize, ...ar
27
31
  {...args}
28
32
  isOpen={isModalOpen}
29
33
  onClose={() => setIsModalOpen(false)}
30
- buttons={[
31
- <Button
32
- key="1"
33
- view="secondary"
34
- onClick={() => setIsModalOpen(false)}
35
- size={size === 's' ? 'm' : 'l'}
36
- >
37
- Отмена
38
- </Button>,
39
- <Button
40
- key="2"
41
- size={size === 's' ? 'm' : 'l'}
42
- onClick={() => {
43
- setIsModalOpen(false);
44
- setIsSecondModalOpen(true);
45
- }}
46
- >
47
- Применить
48
- </Button>,
49
- ]}
34
+ footer={
35
+ <>
36
+ <Button
37
+ key="1"
38
+ view="secondary"
39
+ onClick={() => setIsModalOpen(false)}
40
+ size={size === 's' ? 'm' : 'l'}
41
+ >
42
+ Отмена
43
+ </Button>
44
+ <Button
45
+ key="2"
46
+ size={size === 's' ? 'm' : 'l'}
47
+ onClick={() => {
48
+ setIsModalOpen(false);
49
+ setIsSecondModalOpen(true);
50
+ }}
51
+ >
52
+ Применить
53
+ </Button>
54
+ </>
55
+ }
50
56
  >
51
57
  <div style={{ lineHeight: 1.6 }}>{texts[textSize]}</div>
52
58
  </Modal>
@@ -58,48 +64,33 @@ const ModalWithCustomProps: FC<IModalWithCustomProps> = ({ size, textSize, ...ar
58
64
  );
59
65
  };
60
66
 
61
- export default {
67
+ const meta: Meta<typeof Story> = {
62
68
  title: 'Feedback/Modal',
63
- component: Modal,
69
+ component: Story,
70
+ args: {
71
+ title: 'Some modal title',
72
+ size: 'm',
73
+ textSize: 'small',
74
+ buttonsAlign: 'right',
75
+ shouldCloseOnEsc: true,
76
+ hasOverlay: true,
77
+ hasCloseButton: true,
78
+ shouldCloseOnOverlayClick: true,
79
+ shouldBlockScroll: true,
80
+ isFooterSticky: false,
81
+ },
64
82
  argTypes: {
65
- buttonsAlign: {
66
- control: 'inline-radio',
67
- options: ['left', 'center', 'right'],
68
- },
69
83
  textSize: {
70
84
  control: 'inline-radio',
71
85
  options: ['small', 'medium', 'large'],
72
86
  },
73
- size: { control: 'inline-radio', options: ['s', 'm', 'l'] },
74
- position: {
75
- control: 'inline-radio',
76
- options: ['center', 'left', 'right', 'static'],
87
+ },
88
+ parameters: {
89
+ controls: {
90
+ exclude: excludeStorybookParams(['items']),
77
91
  },
78
92
  },
79
93
  };
80
94
 
81
- const Template: ComponentStory<typeof ModalWithCustomProps> = (args) => (
82
- <div
83
- style={{
84
- border: '1px dotted rgba(0,0,0,.2)',
85
- height: 1000, // чтобы был скролл на странице
86
- }}
87
- >
88
- <ModalWithCustomProps {...args} />
89
- </div>
90
- );
91
-
92
- export const Default = Template.bind({});
93
-
94
- Default.args = {
95
- title: 'Some modal title',
96
- size: 'm',
97
- textSize: 'small',
98
- buttonsAlign: 'right',
99
- shouldCloseOnEsc: true,
100
- hasOverlay: true,
101
- hasCloseButton: true,
102
- shouldCloseOnOverlayClick: true,
103
- shouldBlockScroll: true,
104
- isFooterSticky: false,
105
- };
95
+ export default meta;
96
+ export const Default = {};
@@ -1,8 +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 { MoreMenu } from './MoreMenu';
5
+ import { IListItem } from '../List';
6
+ import { IMoreMenuProps, MoreMenu } from './MoreMenu';
4
7
 
5
- const menuItems = [
8
+ const items: IListItem[] = [
6
9
  { item: 'Печатать билет', onClick: console.log },
7
10
  { item: 'Выписать', onClick: console.log },
8
11
  { item: 'Аннулировать', onClick: console.log, shouldDrawSpacerBelow: true },
@@ -16,12 +19,7 @@ const menuItems = [
16
19
  },
17
20
  ];
18
21
 
19
- export default {
20
- title: 'Data Display/MoreMenu',
21
- component: MoreMenu,
22
- };
23
-
24
- const Template: ComponentStory<typeof MoreMenu> = (args) => (
22
+ const Story: FC<IMoreMenuProps> = (args) => (
25
23
  <div
26
24
  style={{
27
25
  display: 'flex',
@@ -33,14 +31,25 @@ const Template: ComponentStory<typeof MoreMenu> = (args) => (
33
31
  >
34
32
  <div style={{ display: 'flex', gap: 10, alignItems: 'center' }}>
35
33
  <div style={{ flexShrink: 0 }}>Test subject</div>
36
- <MoreMenu {...args} items={menuItems} />
34
+ <MoreMenu {...args} />
37
35
  </div>
38
36
  </div>
39
37
  );
40
38
 
41
- export const Default = Template.bind({});
42
-
43
- Default.args = {
44
- isDisabled: false,
45
- hasDefaultStateBackground: true,
39
+ const meta: Meta<typeof Story> = {
40
+ title: 'Data Display/MoreMenu',
41
+ component: Story,
42
+ args: {
43
+ items,
44
+ isDisabled: false,
45
+ hasDefaultStateBackground: true,
46
+ },
47
+ parameters: {
48
+ controls: {
49
+ exclude: excludeStorybookParams(['items']),
50
+ },
51
+ },
46
52
  };
53
+
54
+ export default meta;
55
+ export const Default = {};
@@ -1,14 +1,7 @@
1
- import { useState } from 'react';
2
- import { ComponentStory } from '@storybook/react';
3
- import { MultiSelect } from './MultiSelect';
4
-
5
- export default {
6
- title: 'Controls/MultiSelect',
7
- component: MultiSelect,
8
- argTypes: {
9
- corners: { control: 'inline-radio', options: ['full', 'left', 'right'] },
10
- },
11
- };
1
+ import { FC, useState } from 'react';
2
+ import { type Meta } from '@storybook/react';
3
+ import { excludeStorybookParams } from '../../helpers';
4
+ import { IMultiSelectProps, MultiSelect } from './MultiSelect';
12
5
 
13
6
  const stringOptions = [
14
7
  'Опция 1',
@@ -22,7 +15,7 @@ const stringOptions = [
22
15
  '4',
23
16
  ];
24
17
 
25
- const Template: ComponentStory<typeof MultiSelect> = (args) => {
18
+ const Story: FC<IMultiSelectProps> = (args) => {
26
19
  const [value, setValue] = useState<string[]>([]);
27
20
 
28
21
  return (
@@ -35,12 +28,22 @@ const Template: ComponentStory<typeof MultiSelect> = (args) => {
35
28
  );
36
29
  };
37
30
 
38
- export const Default = Template.bind({});
39
-
40
- Default.args = {
41
- placeholder: 'Placeholder',
42
- corners: 'full',
43
- isInvalid: false,
44
- isDisabled: false,
45
- isRequired: false,
31
+ const meta: Meta<typeof Story> = {
32
+ title: 'Controls/MultiSelect',
33
+ component: Story,
34
+ args: {
35
+ placeholder: 'Placeholder',
36
+ corners: 'full',
37
+ isInvalid: false,
38
+ isDisabled: false,
39
+ isRequired: false,
40
+ },
41
+ parameters: {
42
+ controls: {
43
+ exclude: excludeStorybookParams(['items']),
44
+ },
45
+ },
46
46
  };
47
+
48
+ export default meta;
49
+ export const Default = {};
@@ -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 = {};
@@ -76,7 +76,7 @@ export const PhoneInput: FC<IPhoneInputProps> = ({
76
76
 
77
77
  const countryCode = useMemo(
78
78
  () => value?.countryCode ?? getCountryCodeFromPhone(phoneWithCode),
79
- [value.countryCode, value.dialCode, value.phoneNumber],
79
+ [phoneWithCode, value?.countryCode],
80
80
  );
81
81
 
82
82
  const handleClose = () => {
@@ -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 = {};
@@ -48,10 +48,7 @@ export const PhoneInputCountryList: FC<IPhoneInputCountryListProps> = ({
48
48
  currentComponentName: 'PhoneInputCountryList',
49
49
  });
50
50
 
51
- const sortedCountries = useMemo(
52
- () => sortCountriesByLocale(phoneInfo, locale),
53
- [phoneInfo, locale],
54
- );
51
+ const sortedCountries = useMemo(() => sortCountriesByLocale(phoneInfo, locale), [locale]);
55
52
 
56
53
  const selectedCountryIdx = findCountryIndexByCode(selectedCountryCode, sortedCountries);
57
54