@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,106 +1,106 @@
1
- import { useRef, useState } from 'react';
2
- import clsx from 'clsx';
3
- import { addDataTestId } from '@true-engineering/true-react-platform-helpers';
4
- import { addDataAttributes } from '../../helpers';
5
- import { useOnClickOutside, useTweakStyles } from '../../hooks';
6
- import { ICommonProps } from '../../types';
7
- import {
8
- MultiSelectList,
9
- IMultiSelectListValues,
10
- IMultiSelectLocale,
11
- IMultiSelectLocaleKey,
12
- } from '../MultiSelectList';
13
- import { MultiSelectInput } from './components';
14
- import { IHorizontalCornerConnection } from './types';
15
- import { useStyles, IMultiSelectStyles, multiSelectListStyles } from './MultiSelect.styles';
16
-
17
- export interface IMultiSelectProps<Value = string> extends ICommonProps<IMultiSelectStyles> {
18
- value?: IMultiSelectListValues<Value>;
19
- /** @default 'full' */
20
- corners?: IHorizontalCornerConnection;
21
- /** @default false */
22
- isInvalid?: boolean;
23
- /** @default false */
24
- isRequired?: boolean;
25
- /** @default false */
26
- isDisabled?: boolean;
27
- /** @default '' */
28
- placeholder?: string;
29
- localeKey?: IMultiSelectLocaleKey;
30
- locale?: IMultiSelectLocale;
31
- onChange: (value?: IMultiSelectListValues<Value>) => void;
32
- fetchOptions: (value?: string, page?: number) => Promise<Value[]>;
33
- }
34
-
35
- export function MultiSelect<Value = string>({
36
- value,
37
- corners = 'full',
38
- isInvalid = false,
39
- isRequired = false,
40
- isDisabled = false,
41
- placeholder = '',
42
- localeKey,
43
- locale,
44
- testId,
45
- data,
46
- onChange,
47
- fetchOptions,
48
- tweakStyles,
49
- }: IMultiSelectProps<Value>): JSX.Element {
50
- const classes = useStyles({ theme: tweakStyles });
51
-
52
- const tweakMultiSelectListStyles = useTweakStyles({
53
- innerStyles: multiSelectListStyles,
54
- tweakStyles,
55
- className: 'tweakMultiSelectList',
56
- currentComponentName: 'MultiSelect',
57
- });
58
-
59
- const [isOpen, setIsOpen] = useState(false);
60
-
61
- const ref = useRef(null);
62
-
63
- const handleOnClose = () => {
64
- setIsOpen(false);
65
- };
66
-
67
- useOnClickOutside(ref, handleOnClose, classes.root);
68
-
69
- return (
70
- <div
71
- className={clsx(
72
- classes.root,
73
- classes[corners],
74
- isOpen && classes.open,
75
- isInvalid && !isDisabled && classes.invalid,
76
- isRequired && classes.required,
77
- isDisabled && classes.disabled,
78
- )}
79
- {...addDataTestId(testId)}
80
- {...addDataAttributes(data)}
81
- >
82
- {/* Input */}
83
- <MultiSelectInput
84
- value={value}
85
- isOpen={isOpen}
86
- isDisabled={isDisabled}
87
- placeholder={placeholder}
88
- onToggle={(state) => setIsOpen(state)}
89
- />
90
- {/* Dropdown */}
91
- {isOpen && (
92
- <div className={classes.listContainer} ref={ref}>
93
- <MultiSelectList
94
- tweakStyles={tweakMultiSelectListStyles}
95
- value={value}
96
- localeKey={localeKey}
97
- locale={locale}
98
- fetchOptions={fetchOptions}
99
- onChange={onChange}
100
- onClose={handleOnClose}
101
- />
102
- </div>
103
- )}
104
- </div>
105
- );
106
- }
1
+ import { useRef, useState } from 'react';
2
+ import clsx from 'clsx';
3
+ import { addDataTestId } from '@true-engineering/true-react-platform-helpers';
4
+ import { addDataAttributes } from '../../helpers';
5
+ import { useOnClickOutside, useTweakStyles } from '../../hooks';
6
+ import { ICommonProps } from '../../types';
7
+ import {
8
+ MultiSelectList,
9
+ IMultiSelectListValues,
10
+ IMultiSelectLocale,
11
+ IMultiSelectLocaleKey,
12
+ } from '../MultiSelectList';
13
+ import { MultiSelectInput } from './components';
14
+ import { IHorizontalCornerConnection } from './types';
15
+ import { useStyles, IMultiSelectStyles, multiSelectListStyles } from './MultiSelect.styles';
16
+
17
+ export interface IMultiSelectProps<Value = string> extends ICommonProps<IMultiSelectStyles> {
18
+ value?: IMultiSelectListValues<Value>;
19
+ /** @default 'full' */
20
+ corners?: IHorizontalCornerConnection;
21
+ /** @default false */
22
+ isInvalid?: boolean;
23
+ /** @default false */
24
+ isRequired?: boolean;
25
+ /** @default false */
26
+ isDisabled?: boolean;
27
+ /** @default '' */
28
+ placeholder?: string;
29
+ localeKey?: IMultiSelectLocaleKey;
30
+ locale?: IMultiSelectLocale;
31
+ onChange: (value?: IMultiSelectListValues<Value>) => void;
32
+ fetchOptions: (value?: string, page?: number) => Promise<Value[]>;
33
+ }
34
+
35
+ export function MultiSelect<Value = string>({
36
+ value,
37
+ corners = 'full',
38
+ isInvalid = false,
39
+ isRequired = false,
40
+ isDisabled = false,
41
+ placeholder = '',
42
+ localeKey,
43
+ locale,
44
+ testId,
45
+ data,
46
+ onChange,
47
+ fetchOptions,
48
+ tweakStyles,
49
+ }: IMultiSelectProps<Value>): JSX.Element {
50
+ const classes = useStyles({ theme: tweakStyles });
51
+
52
+ const tweakMultiSelectListStyles = useTweakStyles({
53
+ innerStyles: multiSelectListStyles,
54
+ tweakStyles,
55
+ className: 'tweakMultiSelectList',
56
+ currentComponentName: 'MultiSelect',
57
+ });
58
+
59
+ const [isOpen, setIsOpen] = useState(false);
60
+
61
+ const ref = useRef(null);
62
+
63
+ const handleOnClose = () => {
64
+ setIsOpen(false);
65
+ };
66
+
67
+ useOnClickOutside(ref, handleOnClose, classes.root);
68
+
69
+ return (
70
+ <div
71
+ className={clsx(
72
+ classes.root,
73
+ classes[corners],
74
+ isOpen && classes.open,
75
+ isInvalid && !isDisabled && classes.invalid,
76
+ isRequired && classes.required,
77
+ isDisabled && classes.disabled,
78
+ )}
79
+ {...addDataTestId(testId)}
80
+ {...addDataAttributes(data)}
81
+ >
82
+ {/* Input */}
83
+ <MultiSelectInput
84
+ value={value}
85
+ isOpen={isOpen}
86
+ isDisabled={isDisabled}
87
+ placeholder={placeholder}
88
+ onToggle={(state) => setIsOpen(state)}
89
+ />
90
+ {/* Dropdown */}
91
+ {isOpen && (
92
+ <div className={classes.listContainer} ref={ref}>
93
+ <MultiSelectList
94
+ tweakStyles={tweakMultiSelectListStyles}
95
+ value={value}
96
+ localeKey={localeKey}
97
+ locale={locale}
98
+ fetchOptions={fetchOptions}
99
+ onChange={onChange}
100
+ onClose={handleOnClose}
101
+ />
102
+ </div>
103
+ )}
104
+ </div>
105
+ );
106
+ }
@@ -1,53 +1,53 @@
1
- import { ReactElement } from 'react';
2
- import clsx from 'clsx';
3
- import { ICommonProps } from '../../../../types';
4
- import { Icon } from '../../../Icon';
5
- import { IMultiSelectListValues } from '../../../MultiSelectList';
6
- import { useStyles, IMultiSelectInputStyles } from './MultiSelectInput.styles';
7
-
8
- export interface IMultiSelectInputProps<Value>
9
- extends Pick<ICommonProps<IMultiSelectInputStyles>, 'tweakStyles'> {
10
- value?: IMultiSelectListValues<Value>;
11
- isOpen: boolean;
12
- isDisabled: boolean;
13
- placeholder: string;
14
- onToggle: (state: boolean) => void;
15
- }
16
-
17
- export function MultiSelectInput<Value>({
18
- value: v,
19
- isOpen,
20
- isDisabled = false,
21
- placeholder = '',
22
- tweakStyles,
23
- onToggle,
24
- }: IMultiSelectInputProps<Value>): ReactElement | null {
25
- const classes = useStyles({ theme: tweakStyles });
26
-
27
- const value = v?.include;
28
-
29
- return (
30
- <div className={classes.root} onClick={() => !isDisabled && onToggle(!isOpen)}>
31
- {/* Placeholder */}
32
- {(value === undefined || (value && value.length === 0)) && (
33
- <div className={classes.placeholder}>{placeholder}</div>
34
- )}
35
- {/* Selected options */}
36
- {value !== undefined && value.length > 0 && (
37
- <>
38
- <div className={clsx(classes.placeholder, classes.placeholderSmall)}>{placeholder}</div>
39
- <div className={classes.values}>
40
- <div className={classes.value}>{value.join(', ')}</div>
41
- <div className={classes.amount}>{value.length}</div>
42
- </div>
43
- </>
44
- )}
45
- {/* Chevron */}
46
- <div className={clsx(classes.indicator, isDisabled && classes.indicatorDisabled)}>
47
- <div className={clsx(classes.arrow, isOpen && classes.arrowUp)}>
48
- <Icon type="chevron-down" />
49
- </div>
50
- </div>
51
- </div>
52
- );
53
- }
1
+ import { ReactElement } from 'react';
2
+ import clsx from 'clsx';
3
+ import { ICommonProps } from '../../../../types';
4
+ import { Icon } from '../../../Icon';
5
+ import { IMultiSelectListValues } from '../../../MultiSelectList';
6
+ import { useStyles, IMultiSelectInputStyles } from './MultiSelectInput.styles';
7
+
8
+ export interface IMultiSelectInputProps<Value>
9
+ extends Pick<ICommonProps<IMultiSelectInputStyles>, 'tweakStyles'> {
10
+ value?: IMultiSelectListValues<Value>;
11
+ isOpen: boolean;
12
+ isDisabled: boolean;
13
+ placeholder: string;
14
+ onToggle: (state: boolean) => void;
15
+ }
16
+
17
+ export function MultiSelectInput<Value>({
18
+ value: v,
19
+ isOpen,
20
+ isDisabled = false,
21
+ placeholder = '',
22
+ tweakStyles,
23
+ onToggle,
24
+ }: IMultiSelectInputProps<Value>): ReactElement | null {
25
+ const classes = useStyles({ theme: tweakStyles });
26
+
27
+ const value = v?.include;
28
+
29
+ return (
30
+ <div className={classes.root} onClick={() => !isDisabled && onToggle(!isOpen)}>
31
+ {/* Placeholder */}
32
+ {(value === undefined || (value && value.length === 0)) && (
33
+ <div className={classes.placeholder}>{placeholder}</div>
34
+ )}
35
+ {/* Selected options */}
36
+ {value !== undefined && value.length > 0 && (
37
+ <>
38
+ <div className={clsx(classes.placeholder, classes.placeholderSmall)}>{placeholder}</div>
39
+ <div className={classes.values}>
40
+ <div className={classes.value}>{value.join(', ')}</div>
41
+ <div className={classes.amount}>{value.length}</div>
42
+ </div>
43
+ </>
44
+ )}
45
+ {/* Chevron */}
46
+ <div className={clsx(classes.indicator, isDisabled && classes.indicatorDisabled)}>
47
+ <div className={clsx(classes.arrow, isOpen && classes.arrowUp)}>
48
+ <Icon type="chevron-down" />
49
+ </div>
50
+ </div>
51
+ </div>
52
+ );
53
+ }