@true-engineering/true-react-common-ui-kit 3.8.0 → 3.8.1

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 (117) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +6 -0
  3. package/dist/components/NewMoreMenu/NewMoreMenu.d.ts +1 -1
  4. package/dist/components/WithPopup/WithPopup.d.ts +2 -0
  5. package/dist/true-react-common-ui-kit.js +62 -60
  6. package/dist/true-react-common-ui-kit.js.map +1 -1
  7. package/dist/true-react-common-ui-kit.umd.cjs +62 -60
  8. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  9. package/package.json +1 -1
  10. package/src/components/AccountInfo/AccountInfo.stories.tsx +32 -32
  11. package/src/components/AccountInfo/AccountInfo.tsx +80 -80
  12. package/src/components/AddButton/AddButton.stories.tsx +21 -21
  13. package/src/components/AddButton/AddButton.tsx +52 -52
  14. package/src/components/Button/Button.stories.tsx +56 -56
  15. package/src/components/Button/Button.tsx +129 -129
  16. package/src/components/Checkbox/Checkbox.stories.tsx +28 -28
  17. package/src/components/Checkbox/Checkbox.tsx +85 -85
  18. package/src/components/CloseButton/CloseButton.tsx +34 -34
  19. package/src/components/Colors/Colors.stories.tsx +7 -7
  20. package/src/components/DateInput/DateInput.tsx +90 -90
  21. package/src/components/DateInput/constants.ts +2 -2
  22. package/src/components/DatePicker/DatePicker.tsx +308 -308
  23. package/src/components/Description/Description.stories.tsx +27 -27
  24. package/src/components/Description/Description.tsx +61 -61
  25. package/src/components/FiltersPane/FiltersPane.tsx +158 -158
  26. package/src/components/FiltersPane/components/Filter/Filter.tsx +203 -203
  27. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.tsx +166 -166
  28. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.tsx +210 -210
  29. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.tsx +177 -177
  30. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.tsx +167 -167
  31. package/src/components/Flag/Flag.stories.tsx +29 -29
  32. package/src/components/Flag/Flag.tsx +26 -26
  33. package/src/components/Flag/augment.d.ts +1 -1
  34. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +267 -267
  35. package/src/components/FlexibleTable/FlexibleTable.styles.ts +110 -110
  36. package/src/components/FlexibleTable/FlexibleTable.tsx +271 -271
  37. package/src/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.styles.ts +38 -38
  38. package/src/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.tsx +83 -83
  39. package/src/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.styles.ts +25 -25
  40. package/src/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.tsx +196 -196
  41. package/src/components/FlexibleTable/helpers.ts +13 -13
  42. package/src/components/FlexibleTable/types.ts +52 -52
  43. package/src/components/Icon/Icon.stories.tsx +86 -86
  44. package/src/components/Icon/complexIcons/augment.d.ts +1 -1
  45. package/src/components/Icon/complexIcons/avatarGreen.svg +57 -57
  46. package/src/components/Icon/complexIcons/index.ts +1 -1
  47. package/src/components/IncrementInput/IncrementInput.tsx +105 -105
  48. package/src/components/Input/Input.tsx +297 -297
  49. package/src/components/Input/types.ts +32 -32
  50. package/src/components/List/List.stories.tsx +70 -70
  51. package/src/components/List/List.tsx +33 -33
  52. package/src/components/List/components/ListItem/ListItem.tsx +57 -57
  53. package/src/components/Modal/Modal.stories.tsx +105 -105
  54. package/src/components/Modal/Modal.tsx +196 -196
  55. package/src/components/MoreMenu/MoreMenu.styles.ts +68 -68
  56. package/src/components/MultiSelect/MultiSelect.stories.tsx +46 -46
  57. package/src/components/MultiSelect/MultiSelect.tsx +106 -106
  58. package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.tsx +53 -53
  59. package/src/components/MultiSelectList/MultiSelectList.tsx +461 -461
  60. package/src/components/NewMoreMenu/NewMoreMenu.stories.tsx +1 -0
  61. package/src/components/NewMoreMenu/NewMoreMenu.tsx +3 -1
  62. package/src/components/Notification/Notification.stories.tsx +46 -46
  63. package/src/components/Notification/Notification.tsx +69 -69
  64. package/src/components/NumberInput/NumberInput.tsx +137 -137
  65. package/src/components/NumberInput/index.ts +1 -1
  66. package/src/components/PhoneInput/PhoneInput.tsx +214 -214
  67. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.tsx +155 -155
  68. package/src/components/PhoneInput/types.ts +16 -16
  69. package/src/components/RadioButton/RadioButton.stories.tsx +46 -46
  70. package/src/components/RadioButton/RadioButton.tsx +57 -57
  71. package/src/components/ScrollIntoViewIfNeeded/index.ts +1 -1
  72. package/src/components/Select/CustomSelect.stories.tsx +217 -217
  73. package/src/components/Select/MultiSelect.stories.tsx +240 -240
  74. package/src/components/Select/Select.stories.tsx +235 -235
  75. package/src/components/Select/Select.tsx +580 -580
  76. package/src/components/Select/components/SelectList/SelectList.tsx +157 -157
  77. package/src/components/Select/components/SelectListItem/SelectListItem.tsx +68 -68
  78. package/src/components/Select/constants.ts +2 -2
  79. package/src/components/Select/types.ts +1 -1
  80. package/src/components/Selector/Selector.stories.tsx +62 -62
  81. package/src/components/Selector/Selector.styles.ts +164 -164
  82. package/src/components/Selector/Selector.tsx +115 -115
  83. package/src/components/Selector/index.ts +2 -2
  84. package/src/components/Selector/types.ts +12 -12
  85. package/src/components/Skeleton/Skeleton.stories.tsx +19 -19
  86. package/src/components/SmartInput/SmartInput.tsx +134 -134
  87. package/src/components/Status/Status.stories.tsx +73 -73
  88. package/src/components/Status/Status.styles.ts +143 -143
  89. package/src/components/Status/Status.tsx +49 -49
  90. package/src/components/Status/constants.ts +11 -11
  91. package/src/components/Status/index.ts +3 -3
  92. package/src/components/Status/types.ts +5 -5
  93. package/src/components/Switch/Switch.stories.tsx +40 -40
  94. package/src/components/Switch/Switch.tsx +75 -75
  95. package/src/components/TextArea/TextArea.tsx +180 -180
  96. package/src/components/TextButton/TextButton.stories.tsx +46 -46
  97. package/src/components/TextButton/TextButton.styles.ts +129 -129
  98. package/src/components/TextButton/TextButton.tsx +103 -103
  99. package/src/components/TextButton/index.ts +4 -4
  100. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +53 -53
  101. package/src/components/TextWithInfo/TextWithInfo.tsx +62 -62
  102. package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +58 -58
  103. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +41 -41
  104. package/src/components/ThemedPreloader/ThemedPreloader.tsx +54 -54
  105. package/src/components/ThemedPreloader/components/DefaultPreloader/index.ts +1 -1
  106. package/src/components/Toaster/Toaster.stories.tsx +30 -30
  107. package/src/components/Toaster/Toaster.tsx +108 -108
  108. package/src/components/Tooltip/Tooltip.stories.tsx +19 -19
  109. package/src/components/Tooltip/Tooltip.tsx +35 -35
  110. package/src/components/Tooltip/types.ts +1 -1
  111. package/src/components/WithPopup/WithPopup.stories.tsx +1 -0
  112. package/src/components/WithPopup/WithPopup.tsx +7 -1
  113. package/src/helpers/popper-helpers.ts +17 -17
  114. package/src/hooks/use-dropdown.ts +84 -84
  115. package/src/hooks/use-is-mounted.ts +15 -15
  116. package/src/theme/helpers.ts +76 -76
  117. package/src/vite-env.d.ts +1 -1
@@ -1,177 +1,177 @@
1
- import { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
- import { useOnClickOutside, useTweakStyles } from '../../../../hooks';
3
- import { ICommonProps } from '../../../../types';
4
- import { PERIODS, PERIODS_GETTERS } from '../../constants';
5
- import { getLocale } from '../../helpers';
6
- import {
7
- IDatePeriod,
8
- IFilterLocaleKey,
9
- IPartialFilterLocale,
10
- IPeriod,
11
- IPeriodGetter,
12
- IPeriodsList,
13
- } from '../../types';
14
- import { FilterSelect } from '../FilterSelect';
15
- import { FilterWithDates } from '../FilterWithDates';
16
- import { useStyles, IFilterWithPeriodStyles, filterSelectStyles } from './FilterWithPeriod.styles';
17
-
18
- export interface IFilterWithPeriodProps extends ICommonProps<IFilterWithPeriodStyles> {
19
- value?: IPeriod;
20
- localeKey?: IFilterLocaleKey;
21
- locale?: IPartialFilterLocale;
22
- periods?: IPeriodsList;
23
- onChange: (period?: IPeriod) => void;
24
- onClose?: () => void;
25
- }
26
-
27
- export const FilterWithPeriod: FC<IFilterWithPeriodProps> = ({
28
- value,
29
- localeKey,
30
- locale,
31
- onChange,
32
- onClose,
33
- periods,
34
- tweakStyles,
35
- testId,
36
- }) => {
37
- const classes = useStyles({ theme: tweakStyles });
38
-
39
- const translates = useMemo(() => getLocale(localeKey, locale), [localeKey, locale]);
40
-
41
- const [isPeriodPickerShown, setIsPeriodPickerShown] = useState(value?.periodType !== 'CUSTOM');
42
-
43
- const [isDatePickerShown, setIsDatePickerShown] = useState(value?.periodType === 'CUSTOM');
44
-
45
- const [period, setPeriod] = useState(value);
46
-
47
- const periodGetters = useMemo(() => {
48
- const result: Record<string, IPeriodGetter> = { ...PERIODS_GETTERS };
49
- periods?.forEach((p) => {
50
- if (Array.isArray(p)) {
51
- result[p[0]] = p[1];
52
- }
53
- });
54
- return result;
55
- }, [periods]);
56
-
57
- const periodsList = useMemo(() => {
58
- if (periods === undefined) {
59
- return [...PERIODS];
60
- }
61
- return periods.map((p) => (Array.isArray(p) ? p[0] : p));
62
- }, [periods]);
63
-
64
- const getPeriodTranslate = useCallback(
65
- (val: string) => translates.periods[val] ?? val,
66
- [translates.periods],
67
- );
68
-
69
- const handlePeriodChange = (periodType: string) => {
70
- let from = null;
71
- let to = null;
72
-
73
- if (periodType in periodGetters) {
74
- const newPeriod = periodGetters[periodType]();
75
- from = newPeriod.from;
76
- to = newPeriod.to;
77
- }
78
-
79
- const p = { from, to, periodType };
80
- setPeriod(p);
81
-
82
- if (periodType === 'CUSTOM') {
83
- setIsDatePickerShown(true);
84
- } else {
85
- if (onClose !== undefined) {
86
- onClose();
87
- }
88
- onChange({ ...p, label: getPeriodTranslate(periodType) });
89
- }
90
-
91
- setIsPeriodPickerShown(false);
92
- };
93
-
94
- const refPeriodPicker = useRef<HTMLDivElement>(null);
95
- const refDatePicker = useRef<HTMLDivElement>(null);
96
-
97
- const onPeriodChange = (val?: string) => {
98
- if (val !== undefined) {
99
- handlePeriodChange(val);
100
- } else {
101
- onChange(undefined);
102
- if (onClose !== undefined) {
103
- onClose();
104
- }
105
- }
106
- };
107
-
108
- const handleCustomDateChange = (val: IDatePeriod): void => {
109
- if (val.from || val.to) {
110
- onChange({
111
- ...val,
112
- periodType: 'CUSTOM',
113
- });
114
- } else {
115
- onChange(undefined);
116
- }
117
- };
118
-
119
- useOnClickOutside(refDatePicker, () => {
120
- if (!period?.from && !period?.to) {
121
- setPeriod(undefined);
122
- }
123
- setIsDatePickerShown(false);
124
- });
125
-
126
- useEffect(() => {
127
- setPeriod(value);
128
- }, [value, value?.from, value?.to, value?.periodType]);
129
-
130
- const tweakSelectStyles = useTweakStyles({
131
- innerStyles: filterSelectStyles,
132
- tweakStyles,
133
- className: 'tweakFilterSelect',
134
- currentComponentName: 'FilterWithPeriod',
135
- });
136
-
137
- return (
138
- <div className={classes.root}>
139
- {isPeriodPickerShown && (
140
- <div className={classes.main} ref={refPeriodPicker}>
141
- <FilterSelect
142
- options={periodsList}
143
- value={period?.periodType}
144
- onChange={onPeriodChange}
145
- localeKey={localeKey}
146
- locale={translates}
147
- tweakStyles={tweakSelectStyles}
148
- getValueView={getPeriodTranslate}
149
- testId={testId !== undefined ? `${testId}-select` : undefined}
150
- />
151
- </div>
152
- )}
153
- {isDatePickerShown && (
154
- <div className={classes.picker} style={{ width: 320 }} ref={refDatePicker}>
155
- <FilterWithDates
156
- onStartBtnSubmit={() => {
157
- setIsDatePickerShown(false);
158
- setIsPeriodPickerShown(true);
159
- }}
160
- onEndBtnSubmit={() => {
161
- onChange(undefined);
162
- setIsDatePickerShown(false);
163
- if (onClose !== undefined) {
164
- onClose();
165
- }
166
- }}
167
- value={period}
168
- onChange={handleCustomDateChange}
169
- localeKey={localeKey}
170
- locale={translates}
171
- testId={testId !== undefined ? `${testId}-dates` : undefined}
172
- />
173
- </div>
174
- )}
175
- </div>
176
- );
177
- };
1
+ import { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
+ import { useOnClickOutside, useTweakStyles } from '../../../../hooks';
3
+ import { ICommonProps } from '../../../../types';
4
+ import { PERIODS, PERIODS_GETTERS } from '../../constants';
5
+ import { getLocale } from '../../helpers';
6
+ import {
7
+ IDatePeriod,
8
+ IFilterLocaleKey,
9
+ IPartialFilterLocale,
10
+ IPeriod,
11
+ IPeriodGetter,
12
+ IPeriodsList,
13
+ } from '../../types';
14
+ import { FilterSelect } from '../FilterSelect';
15
+ import { FilterWithDates } from '../FilterWithDates';
16
+ import { useStyles, IFilterWithPeriodStyles, filterSelectStyles } from './FilterWithPeriod.styles';
17
+
18
+ export interface IFilterWithPeriodProps extends ICommonProps<IFilterWithPeriodStyles> {
19
+ value?: IPeriod;
20
+ localeKey?: IFilterLocaleKey;
21
+ locale?: IPartialFilterLocale;
22
+ periods?: IPeriodsList;
23
+ onChange: (period?: IPeriod) => void;
24
+ onClose?: () => void;
25
+ }
26
+
27
+ export const FilterWithPeriod: FC<IFilterWithPeriodProps> = ({
28
+ value,
29
+ localeKey,
30
+ locale,
31
+ onChange,
32
+ onClose,
33
+ periods,
34
+ tweakStyles,
35
+ testId,
36
+ }) => {
37
+ const classes = useStyles({ theme: tweakStyles });
38
+
39
+ const translates = useMemo(() => getLocale(localeKey, locale), [localeKey, locale]);
40
+
41
+ const [isPeriodPickerShown, setIsPeriodPickerShown] = useState(value?.periodType !== 'CUSTOM');
42
+
43
+ const [isDatePickerShown, setIsDatePickerShown] = useState(value?.periodType === 'CUSTOM');
44
+
45
+ const [period, setPeriod] = useState(value);
46
+
47
+ const periodGetters = useMemo(() => {
48
+ const result: Record<string, IPeriodGetter> = { ...PERIODS_GETTERS };
49
+ periods?.forEach((p) => {
50
+ if (Array.isArray(p)) {
51
+ result[p[0]] = p[1];
52
+ }
53
+ });
54
+ return result;
55
+ }, [periods]);
56
+
57
+ const periodsList = useMemo(() => {
58
+ if (periods === undefined) {
59
+ return [...PERIODS];
60
+ }
61
+ return periods.map((p) => (Array.isArray(p) ? p[0] : p));
62
+ }, [periods]);
63
+
64
+ const getPeriodTranslate = useCallback(
65
+ (val: string) => translates.periods[val] ?? val,
66
+ [translates.periods],
67
+ );
68
+
69
+ const handlePeriodChange = (periodType: string) => {
70
+ let from = null;
71
+ let to = null;
72
+
73
+ if (periodType in periodGetters) {
74
+ const newPeriod = periodGetters[periodType]();
75
+ from = newPeriod.from;
76
+ to = newPeriod.to;
77
+ }
78
+
79
+ const p = { from, to, periodType };
80
+ setPeriod(p);
81
+
82
+ if (periodType === 'CUSTOM') {
83
+ setIsDatePickerShown(true);
84
+ } else {
85
+ if (onClose !== undefined) {
86
+ onClose();
87
+ }
88
+ onChange({ ...p, label: getPeriodTranslate(periodType) });
89
+ }
90
+
91
+ setIsPeriodPickerShown(false);
92
+ };
93
+
94
+ const refPeriodPicker = useRef<HTMLDivElement>(null);
95
+ const refDatePicker = useRef<HTMLDivElement>(null);
96
+
97
+ const onPeriodChange = (val?: string) => {
98
+ if (val !== undefined) {
99
+ handlePeriodChange(val);
100
+ } else {
101
+ onChange(undefined);
102
+ if (onClose !== undefined) {
103
+ onClose();
104
+ }
105
+ }
106
+ };
107
+
108
+ const handleCustomDateChange = (val: IDatePeriod): void => {
109
+ if (val.from || val.to) {
110
+ onChange({
111
+ ...val,
112
+ periodType: 'CUSTOM',
113
+ });
114
+ } else {
115
+ onChange(undefined);
116
+ }
117
+ };
118
+
119
+ useOnClickOutside(refDatePicker, () => {
120
+ if (!period?.from && !period?.to) {
121
+ setPeriod(undefined);
122
+ }
123
+ setIsDatePickerShown(false);
124
+ });
125
+
126
+ useEffect(() => {
127
+ setPeriod(value);
128
+ }, [value, value?.from, value?.to, value?.periodType]);
129
+
130
+ const tweakSelectStyles = useTweakStyles({
131
+ innerStyles: filterSelectStyles,
132
+ tweakStyles,
133
+ className: 'tweakFilterSelect',
134
+ currentComponentName: 'FilterWithPeriod',
135
+ });
136
+
137
+ return (
138
+ <div className={classes.root}>
139
+ {isPeriodPickerShown && (
140
+ <div className={classes.main} ref={refPeriodPicker}>
141
+ <FilterSelect
142
+ options={periodsList}
143
+ value={period?.periodType}
144
+ onChange={onPeriodChange}
145
+ localeKey={localeKey}
146
+ locale={translates}
147
+ tweakStyles={tweakSelectStyles}
148
+ getValueView={getPeriodTranslate}
149
+ testId={testId !== undefined ? `${testId}-select` : undefined}
150
+ />
151
+ </div>
152
+ )}
153
+ {isDatePickerShown && (
154
+ <div className={classes.picker} style={{ width: 320 }} ref={refDatePicker}>
155
+ <FilterWithDates
156
+ onStartBtnSubmit={() => {
157
+ setIsDatePickerShown(false);
158
+ setIsPeriodPickerShown(true);
159
+ }}
160
+ onEndBtnSubmit={() => {
161
+ onChange(undefined);
162
+ setIsDatePickerShown(false);
163
+ if (onClose !== undefined) {
164
+ onClose();
165
+ }
166
+ }}
167
+ value={period}
168
+ onChange={handleCustomDateChange}
169
+ localeKey={localeKey}
170
+ locale={translates}
171
+ testId={testId !== undefined ? `${testId}-dates` : undefined}
172
+ />
173
+ </div>
174
+ )}
175
+ </div>
176
+ );
177
+ };