@true-engineering/true-react-common-ui-kit 2.5.0 → 2.7.0

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 (233) hide show
  1. package/README.md +26 -0
  2. package/dist/components/Icon/icons-list.d.ts +1 -1
  3. package/dist/components/Input/Input.d.ts +2 -2
  4. package/dist/components/List/List.d.ts +1 -1
  5. package/dist/components/List/List.styles.d.ts +0 -28
  6. package/dist/components/List/index.d.ts +0 -1
  7. package/dist/components/ListItem/ListItem.d.ts +6 -0
  8. package/dist/components/ListItem/ListItem.styles.d.ts +35 -0
  9. package/dist/components/ListItem/constants.d.ts +1 -0
  10. package/dist/components/ListItem/index.d.ts +3 -0
  11. package/dist/components/{List → ListItem}/types.d.ts +5 -0
  12. package/dist/components/MoreMenu/MoreMenu.d.ts +2 -2
  13. package/dist/components/index.d.ts +1 -0
  14. package/dist/helpers/index.d.ts +1 -0
  15. package/dist/true-react-common-ui-kit.js +175 -75
  16. package/dist/true-react-common-ui-kit.js.map +1 -1
  17. package/dist/true-react-common-ui-kit.umd.cjs +176 -76
  18. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  19. package/dist/types.d.ts +1 -1
  20. package/package.json +93 -93
  21. package/src/components/AccountInfo/AccountInfo.stories.tsx +32 -32
  22. package/src/components/AccountInfo/AccountInfo.tsx +76 -76
  23. package/src/components/AccountInfo/constants.ts +1 -1
  24. package/src/components/AddButton/AddButton.tsx +48 -48
  25. package/src/components/Button/Button.stories.tsx +56 -56
  26. package/src/components/Button/Button.tsx +153 -154
  27. package/src/components/Button/constants.ts +9 -9
  28. package/src/components/Button/index.ts +3 -3
  29. package/src/components/Button/types.ts +5 -5
  30. package/src/components/Checkbox/Checkbox.stories.tsx +32 -32
  31. package/src/components/Checkbox/Checkbox.tsx +105 -105
  32. package/src/components/CloseButton/CloseButton.styles.ts +34 -34
  33. package/src/components/CloseButton/CloseButton.tsx +35 -35
  34. package/src/components/Colors/Colors.tsx +26 -26
  35. package/src/components/CssBaseline/CssBaseline.tsx +15 -15
  36. package/src/components/DateInput/DateInput.stories.tsx +61 -61
  37. package/src/components/DateInput/DateInput.tsx +82 -82
  38. package/src/components/DatePicker/DatePicker.stories.tsx +87 -87
  39. package/src/components/DatePicker/DatePicker.styles.ts +44 -44
  40. package/src/components/DatePicker/DatePicker.tsx +309 -309
  41. package/src/components/DatePicker/components/DatePickerHeader/DatePickerHeader.styles.ts +84 -84
  42. package/src/components/DatePicker/components/DatePickerHeader/DatePickerHeader.tsx +79 -79
  43. package/src/components/DatePicker/components/DatePickerHeader/index.ts +2 -2
  44. package/src/components/DatePicker/components/PopperContainer/PopperContainer.tsx +6 -6
  45. package/src/components/DatePicker/components/PopperContainer/index.ts +1 -1
  46. package/src/components/DatePicker/components/index.ts +2 -2
  47. package/src/components/DatePicker/constants.ts +6 -6
  48. package/src/components/DatePicker/helpers.ts +23 -23
  49. package/src/components/DatePicker/index.ts +4 -4
  50. package/src/components/DatePicker/types.ts +45 -45
  51. package/src/components/Description/Description.stories.tsx +27 -27
  52. package/src/components/Description/Description.tsx +59 -59
  53. package/src/components/Description/constants.ts +1 -1
  54. package/src/components/FiltersPane/FiltersPane.stories.tsx +295 -295
  55. package/src/components/FiltersPane/FiltersPane.tsx +150 -150
  56. package/src/components/FiltersPane/components/Filter/Filter.tsx +203 -203
  57. package/src/components/FiltersPane/components/Filter/index.ts +1 -1
  58. package/src/components/FiltersPane/components/FilterInterval/FilterInterval.styles.ts +64 -64
  59. package/src/components/FiltersPane/components/FilterInterval/FilterInterval.tsx +141 -141
  60. package/src/components/FiltersPane/components/FilterInterval/index.ts +2 -2
  61. package/src/components/FiltersPane/components/FilterMultiSelect/FilterMultiSelect.tsx +10 -10
  62. package/src/components/FiltersPane/components/FilterMultiSelect/index.ts +1 -1
  63. package/src/components/FiltersPane/components/FilterSelect/FilterSelect.styles.ts +143 -143
  64. package/src/components/FiltersPane/components/FilterSelect/FilterSelect.tsx +346 -346
  65. package/src/components/FiltersPane/components/FilterSelect/index.ts +2 -2
  66. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.styles.tsx +15 -15
  67. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.tsx +163 -163
  68. package/src/components/FiltersPane/components/FilterValueView/index.tsx +2 -2
  69. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.ts +60 -60
  70. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.tsx +181 -181
  71. package/src/components/FiltersPane/components/FilterWithDates/index.ts +2 -2
  72. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.styles.ts +17 -17
  73. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.tsx +174 -174
  74. package/src/components/FiltersPane/components/FilterWithPeriod/index.ts +2 -2
  75. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.styles.ts +110 -110
  76. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.tsx +149 -149
  77. package/src/components/FiltersPane/components/FilterWrapper/index.ts +2 -2
  78. package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.styles.ts +109 -109
  79. package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.tsx +155 -155
  80. package/src/components/FiltersPane/components/FiltersPaneSearch/index.ts +2 -2
  81. package/src/components/FiltersPane/components/index.ts +9 -9
  82. package/src/components/FiltersPane/constants.ts +137 -137
  83. package/src/components/FiltersPane/helpers.ts +26 -26
  84. package/src/components/FiltersPane/index.ts +5 -5
  85. package/src/components/FiltersPane/types.ts +156 -156
  86. package/src/components/Flag/Flag.stories.tsx +29 -29
  87. package/src/components/Flag/Flag.tsx +27 -27
  88. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +338 -338
  89. package/src/components/FlexibleTable/FlexibleTable.styles.ts +131 -131
  90. package/src/components/FlexibleTable/FlexibleTable.tsx +205 -205
  91. package/src/components/FlexibleTable/components/TableRow/TableRow.tsx +152 -152
  92. package/src/components/FlexibleTable/components/TableRow/index.ts +1 -1
  93. package/src/components/FlexibleTable/components/TableValue/TableValue.tsx +74 -74
  94. package/src/components/FlexibleTable/components/TableValue/index.ts +1 -1
  95. package/src/components/FlexibleTable/components/index.ts +2 -2
  96. package/src/components/FlexibleTable/constants.ts +1 -1
  97. package/src/components/FlexibleTable/types.ts +52 -52
  98. package/src/components/Icon/Icon.stories.tsx +86 -86
  99. package/src/components/Icon/Icon.tsx +27 -27
  100. package/src/components/Icon/complexIcons/icons.ts +5 -5
  101. package/src/components/Icon/components/ComplexIconBoilerplate/ComplexIconBoilerplate.tsx +16 -16
  102. package/src/components/Icon/components/ComplexIconBoilerplate/index.ts +1 -1
  103. package/src/components/Icon/components/IconBolerplate/IconBoilerplate.tsx +43 -43
  104. package/src/components/Icon/components/IconBolerplate/index.ts +1 -1
  105. package/src/components/Icon/components/index.ts +2 -2
  106. package/src/components/Icon/helpers.ts +9 -9
  107. package/src/components/Icon/icons-list.ts +856 -826
  108. package/src/components/Icon/index.ts +4 -4
  109. package/src/components/Icon/types.ts +16 -16
  110. package/src/components/IncrementInput/IncrementInput.stories.tsx +31 -31
  111. package/src/components/IncrementInput/IncrementInput.tsx +80 -80
  112. package/src/components/IncrementInput/components/ChangeButton/ChangeButton.tsx +33 -33
  113. package/src/components/IncrementInput/components/ChangeButton/index.ts +1 -1
  114. package/src/components/IncrementInput/components/index.ts +1 -1
  115. package/src/components/Input/Input.stories.tsx +86 -86
  116. package/src/components/Input/Input.tsx +308 -308
  117. package/src/components/Input/constants.ts +1 -1
  118. package/src/components/Input/index.ts +3 -3
  119. package/src/components/Input/types.ts +6 -6
  120. package/src/components/List/List.stories.tsx +63 -63
  121. package/src/components/List/List.styles.ts +0 -38
  122. package/src/components/List/List.tsx +36 -54
  123. package/src/components/List/index.ts +2 -3
  124. package/src/components/ListItem/ListItem.stories.tsx +67 -0
  125. package/src/components/ListItem/ListItem.styles.ts +48 -0
  126. package/src/components/ListItem/ListItem.tsx +44 -0
  127. package/src/components/ListItem/constants.ts +5 -0
  128. package/src/components/ListItem/index.ts +3 -0
  129. package/src/components/{List → ListItem}/types.ts +19 -13
  130. package/src/components/Modal/Modal.stories.tsx +105 -105
  131. package/src/components/Modal/Modal.styles.ts +305 -305
  132. package/src/components/Modal/Modal.tsx +184 -184
  133. package/src/components/Modal/index.ts +3 -3
  134. package/src/components/Modal/types.ts +17 -17
  135. package/src/components/MoreMenu/MoreMenu.styles.ts +70 -70
  136. package/src/components/MoreMenu/MoreMenu.tsx +90 -90
  137. package/src/components/MultiSelect/MultiSelect.stories.tsx +46 -46
  138. package/src/components/MultiSelect/MultiSelect.tsx +92 -92
  139. package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.styles.ts +73 -73
  140. package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.tsx +51 -51
  141. package/src/components/MultiSelect/components/MultiSelectInput/index.ts +2 -2
  142. package/src/components/MultiSelect/components/index.ts +1 -1
  143. package/src/components/MultiSelect/index.ts +4 -4
  144. package/src/components/MultiSelect/types.ts +1 -1
  145. package/src/components/MultiSelectList/MultiSelectList.styles.ts +124 -124
  146. package/src/components/MultiSelectList/MultiSelectList.tsx +441 -441
  147. package/src/components/MultiSelectList/constants.ts +21 -21
  148. package/src/components/MultiSelectList/helpers.ts +11 -11
  149. package/src/components/MultiSelectList/index.ts +3 -3
  150. package/src/components/MultiSelectList/types.ts +15 -15
  151. package/src/components/Notification/Notification.stories.tsx +46 -46
  152. package/src/components/Notification/Notification.styles.ts +50 -50
  153. package/src/components/Notification/Notification.tsx +78 -78
  154. package/src/components/Notification/index.ts +3 -3
  155. package/src/components/Notification/types.ts +1 -1
  156. package/src/components/NumberInput/NumberInput.stories.tsx +35 -35
  157. package/src/components/NumberInput/NumberInput.tsx +133 -133
  158. package/src/components/NumberInput/helpers.ts +86 -86
  159. package/src/components/PhoneInput/PhoneInput.stories.tsx +70 -70
  160. package/src/components/PhoneInput/PhoneInput.tsx +193 -193
  161. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +21 -21
  162. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.styles.ts +100 -100
  163. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.tsx +145 -145
  164. package/src/components/PhoneInput/components/PhoneInputCountryList/index.ts +2 -2
  165. package/src/components/PhoneInput/components/index.ts +1 -1
  166. package/src/components/PhoneInput/constants.ts +3 -3
  167. package/src/components/PhoneInput/index.ts +5 -5
  168. package/src/components/PhoneInput/phone-info.ts +2147 -2147
  169. package/src/components/RadioButton/RadioButton.stories.tsx +46 -46
  170. package/src/components/RadioButton/RadioButton.tsx +55 -55
  171. package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +54 -54
  172. package/src/components/ScrollIntoViewIfNeeded/constants.ts +12 -12
  173. package/src/components/SearchInput/SearchInput.stories.tsx +23 -23
  174. package/src/components/SearchInput/SearchInput.styles.ts +50 -50
  175. package/src/components/SearchInput/SearchInput.tsx +51 -51
  176. package/src/components/Select/MultiSelect.stories.tsx +240 -240
  177. package/src/components/Select/Select.stories.tsx +235 -235
  178. package/src/components/Select/Select.tsx +574 -575
  179. package/src/components/Select/components/SelectList/SelectList.styles.ts +72 -72
  180. package/src/components/Select/components/SelectList/SelectList.tsx +158 -158
  181. package/src/components/Select/components/SelectList/index.ts +2 -2
  182. package/src/components/Select/components/SelectListItem/SelectListItem.styles.ts +14 -14
  183. package/src/components/Select/components/SelectListItem/SelectListItem.tsx +68 -68
  184. package/src/components/Select/components/SelectListItem/index.ts +1 -1
  185. package/src/components/Select/components/index.ts +2 -2
  186. package/src/components/Select/helpers.ts +26 -26
  187. package/src/components/Select/index.ts +4 -4
  188. package/src/components/SmartInput/SmartInput.stories.tsx +51 -51
  189. package/src/components/SmartInput/SmartInput.tsx +124 -124
  190. package/src/components/SmartInput/constants.ts +84 -84
  191. package/src/components/SmartInput/helpers.ts +13 -13
  192. package/src/components/SmartInput/index.ts +2 -2
  193. package/src/components/SmartInput/types.ts +11 -11
  194. package/src/components/Switch/Switch.stories.tsx +40 -40
  195. package/src/components/Switch/Switch.tsx +79 -79
  196. package/src/components/Switch/index.ts +3 -3
  197. package/src/components/Switch/types.ts +4 -4
  198. package/src/components/TextArea/TextArea.stories.tsx +35 -35
  199. package/src/components/TextArea/TextArea.tsx +174 -174
  200. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +53 -53
  201. package/src/components/TextWithInfo/TextWithInfo.tsx +60 -60
  202. package/src/components/TextWithTooltip/TextWithTooltip.tsx +143 -143
  203. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +41 -41
  204. package/src/components/ThemedPreloader/ThemedPreloader.tsx +47 -47
  205. package/src/components/ThemedPreloader/components/DefaultPreloader/DefaultPreloader.tsx +29 -29
  206. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.tsx +18 -18
  207. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.tsx +25 -25
  208. package/src/components/ThemedPreloader/components/index.ts +3 -3
  209. package/src/components/ThemedPreloader/constants.ts +1 -1
  210. package/src/components/ThemedPreloader/index.ts +4 -4
  211. package/src/components/ThemedPreloader/types.ts +3 -3
  212. package/src/components/Toaster/Toaster.stories.tsx +30 -30
  213. package/src/components/Toaster/Toaster.tsx +108 -108
  214. package/src/components/Toaster/constants.ts +1 -1
  215. package/src/components/Toaster/index.ts +3 -3
  216. package/src/components/Toaster/types.ts +1 -1
  217. package/src/components/Tooltip/Tooltip.stories.tsx +19 -19
  218. package/src/components/Tooltip/Tooltip.styles.ts +45 -45
  219. package/src/components/Tooltip/Tooltip.tsx +35 -35
  220. package/src/components/Tooltip/index.ts +3 -3
  221. package/src/components/index.ts +1 -0
  222. package/src/helpers/deprecated.ts +23 -23
  223. package/src/helpers/index.ts +5 -4
  224. package/src/helpers/misc.ts +158 -158
  225. package/src/helpers/phone.ts +87 -87
  226. package/src/helpers/snippets.tsx +6 -6
  227. package/src/hooks/use-did-mount-effect.ts +18 -18
  228. package/src/hooks/use-dropdown.ts +82 -82
  229. package/src/hooks/use-on-click-outside.ts +77 -77
  230. package/src/hooks/use-theme.ts +32 -32
  231. package/src/hooks/use-tweak-styles.ts +13 -13
  232. package/src/theme.ts +149 -149
  233. package/src/types.ts +109 -108
@@ -1,47 +1,47 @@
1
- import { FC } from 'react';
2
- import clsx from 'clsx';
3
- import { addDataAttributes } from '../../helpers';
4
- import { useTheme, useTweakStyles } from '../../hooks';
5
- import { ICommonProps } from '../../types';
6
- import { SvgPreloader, DotsPreloader } from './components';
7
- import { IPreloaderSvgType } from './types';
8
- import { ThemedPreloaderStyles, styles } from './ThemedPreloader.styles';
9
-
10
- export interface IThemedPreloaderProps extends ICommonProps {
11
- tweakStyles?: ThemedPreloaderStyles;
12
- /**
13
- * @default `default`
14
- */
15
- type?: 'dots' | IPreloaderSvgType;
16
- useCurrentColor?: boolean;
17
- }
18
-
19
- export const ThemedPreloader: FC<IThemedPreloaderProps> = ({
20
- type = 'default',
21
- useCurrentColor = false,
22
- data,
23
- tweakStyles,
24
- }) => {
25
- const { classes, componentStyles } = useTheme('ThemedPreloader', styles, tweakStyles);
26
-
27
- const preloaderComponentStyles = useTweakStyles(
28
- componentStyles,
29
- tweakStyles,
30
- 'tweakPreloaderComponent',
31
- );
32
-
33
- return (
34
- <div
35
- className={clsx(classes.root, classes[type], {
36
- [classes.currentColor]: useCurrentColor,
37
- })}
38
- {...addDataAttributes(data)}
39
- >
40
- {type === 'dots' ? (
41
- <DotsPreloader tweakStyles={preloaderComponentStyles} />
42
- ) : (
43
- <SvgPreloader type={type} tweakStyles={preloaderComponentStyles} />
44
- )}
45
- </div>
46
- );
47
- };
1
+ import { FC } from 'react';
2
+ import clsx from 'clsx';
3
+ import { addDataAttributes } from '../../helpers';
4
+ import { useTheme, useTweakStyles } from '../../hooks';
5
+ import { ICommonProps } from '../../types';
6
+ import { SvgPreloader, DotsPreloader } from './components';
7
+ import { IPreloaderSvgType } from './types';
8
+ import { ThemedPreloaderStyles, styles } from './ThemedPreloader.styles';
9
+
10
+ export interface IThemedPreloaderProps extends ICommonProps {
11
+ tweakStyles?: ThemedPreloaderStyles;
12
+ /**
13
+ * @default `default`
14
+ */
15
+ type?: 'dots' | IPreloaderSvgType;
16
+ useCurrentColor?: boolean;
17
+ }
18
+
19
+ export const ThemedPreloader: FC<IThemedPreloaderProps> = ({
20
+ type = 'default',
21
+ useCurrentColor = false,
22
+ data,
23
+ tweakStyles,
24
+ }) => {
25
+ const { classes, componentStyles } = useTheme('ThemedPreloader', styles, tweakStyles);
26
+
27
+ const preloaderComponentStyles = useTweakStyles(
28
+ componentStyles,
29
+ tweakStyles,
30
+ 'tweakPreloaderComponent',
31
+ );
32
+
33
+ return (
34
+ <div
35
+ className={clsx(classes.root, classes[type], {
36
+ [classes.currentColor]: useCurrentColor,
37
+ })}
38
+ {...addDataAttributes(data)}
39
+ >
40
+ {type === 'dots' ? (
41
+ <DotsPreloader tweakStyles={preloaderComponentStyles} />
42
+ ) : (
43
+ <SvgPreloader type={type} tweakStyles={preloaderComponentStyles} />
44
+ )}
45
+ </div>
46
+ );
47
+ };
@@ -1,29 +1,29 @@
1
- import { FC } from 'react';
2
-
3
- export const DefaultPreloader: FC = () => (
4
- <svg width="100%" height="100%" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
5
- <defs>
6
- <linearGradient x1="8.042%" y1="0%" x2="65.682%" y2="23.865%" id="a">
7
- <stop stopColor="currentColor" stopOpacity="0" offset="0%" />
8
- <stop stopColor="currentColor" stopOpacity=".631" offset="63.146%" />
9
- <stop stopColor="currentColor" offset="100%" />
10
- </linearGradient>
11
- </defs>
12
- <g transform="translate(2,2)" fill="none">
13
- <path d="M36 18c0-9.94-8.06-18-18-18" stroke="url(#a)" strokeWidth="3">
14
- <animateTransform
15
- xmlns="http://www.w3.org/2000/svg"
16
- attributeName="transform"
17
- attributeType="XML"
18
- type="rotate"
19
- from="0 18 18"
20
- to="360 18 18"
21
- dur="1s"
22
- begin="0s"
23
- repeatCount="indefinite"
24
- fill="freeze"
25
- />
26
- </path>
27
- </g>
28
- </svg>
29
- );
1
+ import { FC } from 'react';
2
+
3
+ export const DefaultPreloader: FC = () => (
4
+ <svg width="100%" height="100%" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
5
+ <defs>
6
+ <linearGradient x1="8.042%" y1="0%" x2="65.682%" y2="23.865%" id="a">
7
+ <stop stopColor="currentColor" stopOpacity="0" offset="0%" />
8
+ <stop stopColor="currentColor" stopOpacity=".631" offset="63.146%" />
9
+ <stop stopColor="currentColor" offset="100%" />
10
+ </linearGradient>
11
+ </defs>
12
+ <g transform="translate(2,2)" fill="none">
13
+ <path d="M36 18c0-9.94-8.06-18-18-18" stroke="url(#a)" strokeWidth="3">
14
+ <animateTransform
15
+ xmlns="http://www.w3.org/2000/svg"
16
+ attributeName="transform"
17
+ attributeType="XML"
18
+ type="rotate"
19
+ from="0 18 18"
20
+ to="360 18 18"
21
+ dur="1s"
22
+ begin="0s"
23
+ repeatCount="indefinite"
24
+ fill="freeze"
25
+ />
26
+ </path>
27
+ </g>
28
+ </svg>
29
+ );
@@ -1,18 +1,18 @@
1
- import { FC } from 'react';
2
- import { useTheme } from '../../../../hooks';
3
- import { ICommonProps } from '../../../../types';
4
- import { DotsPreloaderStyles, styles } from './DotsPreloader.styles';
5
-
6
- export interface IDotsPreloaderProps extends ICommonProps {
7
- tweakStyles?: DotsPreloaderStyles;
8
- }
9
-
10
- export const DotsPreloader: FC<IDotsPreloaderProps> = ({ tweakStyles }) => {
11
- const { classes } = useTheme('DotsPreloader', styles, tweakStyles);
12
-
13
- return (
14
- <div className={classes.root}>
15
- <span className={classes.dot} />
16
- </div>
17
- );
18
- };
1
+ import { FC } from 'react';
2
+ import { useTheme } from '../../../../hooks';
3
+ import { ICommonProps } from '../../../../types';
4
+ import { DotsPreloaderStyles, styles } from './DotsPreloader.styles';
5
+
6
+ export interface IDotsPreloaderProps extends ICommonProps {
7
+ tweakStyles?: DotsPreloaderStyles;
8
+ }
9
+
10
+ export const DotsPreloader: FC<IDotsPreloaderProps> = ({ tweakStyles }) => {
11
+ const { classes } = useTheme('DotsPreloader', styles, tweakStyles);
12
+
13
+ return (
14
+ <div className={classes.root}>
15
+ <span className={classes.dot} />
16
+ </div>
17
+ );
18
+ };
@@ -1,25 +1,25 @@
1
- import { FC, useContext } from 'react';
2
- import { ThemeContext, useTheme } from '../../../../hooks';
3
- import { ICommonProps } from '../../../../types';
4
- import { IPreloaderSvgType } from '../../types';
5
- import { DefaultPreloader } from '../DefaultPreloader';
6
- import { SvgPreloaderStyles, styles } from './SvgPreloader.styles';
7
-
8
- export interface ISvgPreloaderProps extends ICommonProps {
9
- type: IPreloaderSvgType;
10
- tweakStyles?: SvgPreloaderStyles;
11
- }
12
-
13
- export const SvgPreloader: FC<ISvgPreloaderProps> = ({ type = 'default', tweakStyles }) => {
14
- const { classes } = useTheme('SvgPreloader', styles, tweakStyles);
15
- const { theme } = useContext(ThemeContext);
16
- const PreloaderIcon = theme.preloaders?.[type] ?? DefaultPreloader;
17
-
18
- const isInlineSvg = typeof PreloaderIcon === 'string';
19
-
20
- return isInlineSvg ? (
21
- <div className={classes.root} dangerouslySetInnerHTML={{ __html: PreloaderIcon }} />
22
- ) : (
23
- <PreloaderIcon />
24
- );
25
- };
1
+ import { FC, useContext } from 'react';
2
+ import { ThemeContext, useTheme } from '../../../../hooks';
3
+ import { ICommonProps } from '../../../../types';
4
+ import { IPreloaderSvgType } from '../../types';
5
+ import { DefaultPreloader } from '../DefaultPreloader';
6
+ import { SvgPreloaderStyles, styles } from './SvgPreloader.styles';
7
+
8
+ export interface ISvgPreloaderProps extends ICommonProps {
9
+ type: IPreloaderSvgType;
10
+ tweakStyles?: SvgPreloaderStyles;
11
+ }
12
+
13
+ export const SvgPreloader: FC<ISvgPreloaderProps> = ({ type = 'default', tweakStyles }) => {
14
+ const { classes } = useTheme('SvgPreloader', styles, tweakStyles);
15
+ const { theme } = useContext(ThemeContext);
16
+ const PreloaderIcon = theme.preloaders?.[type] ?? DefaultPreloader;
17
+
18
+ const isInlineSvg = typeof PreloaderIcon === 'string';
19
+
20
+ return isInlineSvg ? (
21
+ <div className={classes.root} dangerouslySetInnerHTML={{ __html: PreloaderIcon }} />
22
+ ) : (
23
+ <PreloaderIcon />
24
+ );
25
+ };
@@ -1,3 +1,3 @@
1
- export * from './DotsPreloader';
2
- export * from './SvgPreloader';
3
- export * from './DefaultPreloader';
1
+ export * from './DotsPreloader';
2
+ export * from './SvgPreloader';
3
+ export * from './DefaultPreloader';
@@ -1 +1 @@
1
- export const svgTypes = ['default', 'logo'] as const;
1
+ export const svgTypes = ['default', 'logo'] as const;
@@ -1,4 +1,4 @@
1
- export * from './ThemedPreloader';
2
- export * from './types';
3
- export type { ThemedPreloaderStyles } from './ThemedPreloader.styles';
4
- export type { DotsPreloaderStyles, SvgPreloaderStyles } from './components';
1
+ export * from './ThemedPreloader';
2
+ export * from './types';
3
+ export type { ThemedPreloaderStyles } from './ThemedPreloader.styles';
4
+ export type { DotsPreloaderStyles, SvgPreloaderStyles } from './components';
@@ -1,3 +1,3 @@
1
- import { svgTypes } from './constants';
2
-
3
- export type IPreloaderSvgType = (typeof svgTypes)[number];
1
+ import { svgTypes } from './constants';
2
+
3
+ export type IPreloaderSvgType = (typeof svgTypes)[number];
@@ -1,30 +1,30 @@
1
- import { ComponentStory, ComponentMeta } from '@storybook/react';
2
- import { Button } from '../Button';
3
- import { Toaster } from './Toaster';
4
-
5
- const types = ['error', 'info', 'warning', 'ok', 'not-ok'];
6
-
7
- export default {
8
- title: 'Toaster',
9
- component: Toaster,
10
- args: {
11
- title: 'Произошла очень страшная ошибка',
12
- text: 'Мы даже не знаем, чем вам помочь!',
13
- type: types[0],
14
- timeout: 7000,
15
- hasCloseButton: false,
16
- shouldCloseOnClick: false,
17
- },
18
- argTypes: {
19
- type: { control: 'inline-radio', options: types },
20
- },
21
- parameters: {
22
- controls: { exclude: ['onTimeEnd', 'onClose', 'data', 'tweakStyles'] },
23
- },
24
- } as ComponentMeta<typeof Toaster>;
25
-
26
- export const Default: ComponentStory<typeof Toaster> = (args) => (
27
- <Toaster {...args} onTimeEnd={() => console.log(1)} onClose={() => alert('closed')}>
28
- <Button size="m">Нажмите</Button>
29
- </Toaster>
30
- );
1
+ import { ComponentStory, ComponentMeta } from '@storybook/react';
2
+ import { Button } from '../Button';
3
+ import { Toaster } from './Toaster';
4
+
5
+ const types = ['error', 'info', 'warning', 'ok', 'not-ok'];
6
+
7
+ export default {
8
+ title: 'Toaster',
9
+ component: Toaster,
10
+ args: {
11
+ title: 'Произошла очень страшная ошибка',
12
+ text: 'Мы даже не знаем, чем вам помочь!',
13
+ type: types[0],
14
+ timeout: 7000,
15
+ hasCloseButton: false,
16
+ shouldCloseOnClick: false,
17
+ },
18
+ argTypes: {
19
+ type: { control: 'inline-radio', options: types },
20
+ },
21
+ parameters: {
22
+ controls: { exclude: ['onTimeEnd', 'onClose', 'data', 'tweakStyles'] },
23
+ },
24
+ } as ComponentMeta<typeof Toaster>;
25
+
26
+ export const Default: ComponentStory<typeof Toaster> = (args) => (
27
+ <Toaster {...args} onTimeEnd={() => console.log(1)} onClose={() => alert('closed')}>
28
+ <Button size="m">Нажмите</Button>
29
+ </Toaster>
30
+ );
@@ -1,108 +1,108 @@
1
- import { FC, ReactNode, useEffect } from 'react';
2
- import clsx from 'clsx';
3
- import {
4
- isNotEmpty,
5
- isReactNodeNotEmpty,
6
- isStringNotEmpty,
7
- } from '@true-engineering/true-react-platform-helpers';
8
- import { addDataAttributes } from '../../helpers';
9
- import { useTheme, useTweakStyles } from '../../hooks';
10
- import { ICommonProps } from '../../types';
11
- import { CloseButton } from '../CloseButton';
12
- import { Icon } from '../Icon';
13
- import { DEFAULT_TIMEOUT } from './constants';
14
- import { ToasterType } from './types';
15
- import { styles, ToasterStyles } from './Toaster.styles';
16
-
17
- export interface IToasterProps extends ICommonProps {
18
- tweakStyles?: ToasterStyles;
19
- /**
20
- * @default `error`
21
- */
22
- type?: ToasterType;
23
- title?: string;
24
- text?: string;
25
- children?: ReactNode;
26
- /**
27
- * Время автоматического закрытия тостера в миллисекундах
28
- * @default 7000
29
- */
30
- timeout?: number;
31
- /**
32
- * @default false
33
- */
34
- hasCloseButton?: boolean;
35
- /**
36
- * @default false
37
- */
38
- shouldCloseOnClick?: boolean;
39
- onClose?(): void;
40
- onTimeEnd?(): void;
41
- }
42
-
43
- export const Toaster: FC<IToasterProps> = ({
44
- title,
45
- type = 'error',
46
- text,
47
- timeout = DEFAULT_TIMEOUT,
48
- data,
49
- tweakStyles,
50
- hasCloseButton = false,
51
- shouldCloseOnClick = false,
52
- children,
53
- onClose,
54
- onTimeEnd,
55
- }) => {
56
- const { classes, componentStyles } = useTheme('Toaster', styles, tweakStyles);
57
-
58
- let timeoutFunction: ReturnType<typeof setTimeout>;
59
-
60
- useEffect(() => {
61
- if (onTimeEnd === undefined) {
62
- return;
63
- }
64
-
65
- const disappear = async () => {
66
- await new Promise((resolve) => {
67
- timeoutFunction = setTimeout(() => {
68
- resolve(undefined);
69
- }, timeout);
70
- });
71
-
72
- onTimeEnd();
73
- clearTimeout(timeoutFunction);
74
- };
75
-
76
- disappear();
77
-
78
- return () => clearTimeout(timeoutFunction);
79
- }, []);
80
-
81
- const tweakCloseButtonStyles = useTweakStyles(componentStyles, tweakStyles, 'tweakCloseButton');
82
-
83
- return (
84
- <div
85
- className={classes.root}
86
- onClick={shouldCloseOnClick ? onClose : undefined}
87
- {...addDataAttributes(data)}
88
- >
89
- <div className={clsx(classes.iconContainer, classes[type])}>
90
- <Icon type={`status-${type}`} />
91
- </div>
92
- <div>
93
- {isStringNotEmpty(title) && <div className={classes.title}>{title}</div>}
94
- {isStringNotEmpty(text) && <div className={classes.text}>{text}</div>}
95
- {isReactNodeNotEmpty(children) && <div className={classes.content}>{children}</div>}
96
- </div>
97
- {hasCloseButton && isNotEmpty(onClose) && (
98
- <div className={classes.close}>
99
- <CloseButton
100
- onClose={onClose}
101
- iconType="close-window"
102
- tweakStyles={tweakCloseButtonStyles}
103
- />
104
- </div>
105
- )}
106
- </div>
107
- );
108
- };
1
+ import { FC, ReactNode, useEffect } from 'react';
2
+ import clsx from 'clsx';
3
+ import {
4
+ isNotEmpty,
5
+ isReactNodeNotEmpty,
6
+ isStringNotEmpty,
7
+ } from '@true-engineering/true-react-platform-helpers';
8
+ import { addDataAttributes } from '../../helpers';
9
+ import { useTheme, useTweakStyles } from '../../hooks';
10
+ import { ICommonProps } from '../../types';
11
+ import { CloseButton } from '../CloseButton';
12
+ import { Icon } from '../Icon';
13
+ import { DEFAULT_TIMEOUT } from './constants';
14
+ import { ToasterType } from './types';
15
+ import { styles, ToasterStyles } from './Toaster.styles';
16
+
17
+ export interface IToasterProps extends ICommonProps {
18
+ tweakStyles?: ToasterStyles;
19
+ /**
20
+ * @default `error`
21
+ */
22
+ type?: ToasterType;
23
+ title?: string;
24
+ text?: string;
25
+ children?: ReactNode;
26
+ /**
27
+ * Время автоматического закрытия тостера в миллисекундах
28
+ * @default 7000
29
+ */
30
+ timeout?: number;
31
+ /**
32
+ * @default false
33
+ */
34
+ hasCloseButton?: boolean;
35
+ /**
36
+ * @default false
37
+ */
38
+ shouldCloseOnClick?: boolean;
39
+ onClose?(): void;
40
+ onTimeEnd?(): void;
41
+ }
42
+
43
+ export const Toaster: FC<IToasterProps> = ({
44
+ title,
45
+ type = 'error',
46
+ text,
47
+ timeout = DEFAULT_TIMEOUT,
48
+ data,
49
+ tweakStyles,
50
+ hasCloseButton = false,
51
+ shouldCloseOnClick = false,
52
+ children,
53
+ onClose,
54
+ onTimeEnd,
55
+ }) => {
56
+ const { classes, componentStyles } = useTheme('Toaster', styles, tweakStyles);
57
+
58
+ let timeoutFunction: ReturnType<typeof setTimeout>;
59
+
60
+ useEffect(() => {
61
+ if (onTimeEnd === undefined) {
62
+ return;
63
+ }
64
+
65
+ const disappear = async () => {
66
+ await new Promise((resolve) => {
67
+ timeoutFunction = setTimeout(() => {
68
+ resolve(undefined);
69
+ }, timeout);
70
+ });
71
+
72
+ onTimeEnd();
73
+ clearTimeout(timeoutFunction);
74
+ };
75
+
76
+ disappear();
77
+
78
+ return () => clearTimeout(timeoutFunction);
79
+ }, []);
80
+
81
+ const tweakCloseButtonStyles = useTweakStyles(componentStyles, tweakStyles, 'tweakCloseButton');
82
+
83
+ return (
84
+ <div
85
+ className={classes.root}
86
+ onClick={shouldCloseOnClick ? onClose : undefined}
87
+ {...addDataAttributes(data)}
88
+ >
89
+ <div className={clsx(classes.iconContainer, classes[type])}>
90
+ <Icon type={`status-${type}`} />
91
+ </div>
92
+ <div>
93
+ {isStringNotEmpty(title) && <div className={classes.title}>{title}</div>}
94
+ {isStringNotEmpty(text) && <div className={classes.text}>{text}</div>}
95
+ {isReactNodeNotEmpty(children) && <div className={classes.content}>{children}</div>}
96
+ </div>
97
+ {hasCloseButton && isNotEmpty(onClose) && (
98
+ <div className={classes.close}>
99
+ <CloseButton
100
+ onClose={onClose}
101
+ iconType="close-window"
102
+ tweakStyles={tweakCloseButtonStyles}
103
+ />
104
+ </div>
105
+ )}
106
+ </div>
107
+ );
108
+ };
@@ -1 +1 @@
1
- export const DEFAULT_TIMEOUT = 7 * 1000; // 7 seconds
1
+ export const DEFAULT_TIMEOUT = 7 * 1000; // 7 seconds
@@ -1,3 +1,3 @@
1
- export * from './Toaster';
2
- export * from './types';
3
- export type { ToasterStyles } from './Toaster.styles';
1
+ export * from './Toaster';
2
+ export * from './types';
3
+ export type { ToasterStyles } from './Toaster.styles';
@@ -1 +1 @@
1
- export type ToasterType = 'error' | 'info' | 'warning' | 'ok' | 'not-ok';
1
+ export type ToasterType = 'error' | 'info' | 'warning' | 'ok' | 'not-ok';
@@ -1,19 +1,19 @@
1
- import { ComponentStory, ComponentMeta } from '@storybook/react';
2
- import { Tooltip } from './Tooltip';
3
-
4
- export default {
5
- title: 'Tooltip',
6
- component: Tooltip,
7
- args: {
8
- text: 'Tooltip Text',
9
- view: 'tooltip',
10
- type: 'info',
11
- },
12
- argTypes: {
13
- text: { control: 'text' },
14
- view: { control: 'inline-radio', options: ['tooltip', 'hint'] },
15
- type: { control: 'inline-radio', options: ['info', 'error'] },
16
- },
17
- } as ComponentMeta<typeof Tooltip>;
18
-
19
- export const Default: ComponentStory<typeof Tooltip> = (args) => <Tooltip {...args} />;
1
+ import { ComponentStory, ComponentMeta } from '@storybook/react';
2
+ import { Tooltip } from './Tooltip';
3
+
4
+ export default {
5
+ title: 'Tooltip',
6
+ component: Tooltip,
7
+ args: {
8
+ text: 'Tooltip Text',
9
+ view: 'tooltip',
10
+ type: 'info',
11
+ },
12
+ argTypes: {
13
+ text: { control: 'text' },
14
+ view: { control: 'inline-radio', options: ['tooltip', 'hint'] },
15
+ type: { control: 'inline-radio', options: ['info', 'error'] },
16
+ },
17
+ } as ComponentMeta<typeof Tooltip>;
18
+
19
+ export const Default: ComponentStory<typeof Tooltip> = (args) => <Tooltip {...args} />;