@true-engineering/true-react-common-ui-kit 3.45.2 → 4.0.0-alpha0

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 (708) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +0 -40
  3. package/dist/components/AccountInfo/AccountInfo.d.ts +11 -11
  4. package/dist/components/AccountInfo/AccountInfo.stories.d.ts +6 -6
  5. package/dist/components/AccountInfo/AccountInfo.styles.d.ts +6 -6
  6. package/dist/components/AccountInfo/constants.d.ts +1 -1
  7. package/dist/components/AccountInfo/index.d.ts +2 -2
  8. package/dist/components/AddButton/AddButton.d.ts +14 -14
  9. package/dist/components/AddButton/AddButton.stories.d.ts +6 -6
  10. package/dist/components/AddButton/AddButton.styles.d.ts +3 -3
  11. package/dist/components/AddButton/index.d.ts +2 -2
  12. package/dist/components/Button/Button.d.ts +41 -41
  13. package/dist/components/Button/Button.stories.d.ts +6 -6
  14. package/dist/components/Button/Button.styles.d.ts +8 -8
  15. package/dist/components/Button/constants.d.ts +2 -2
  16. package/dist/components/Button/index.d.ts +3 -3
  17. package/dist/components/Button/types.d.ts +3 -3
  18. package/dist/components/Checkbox/Checkbox.d.ts +24 -24
  19. package/dist/components/Checkbox/Checkbox.stories.d.ts +8 -8
  20. package/dist/components/Checkbox/Checkbox.styles.d.ts +3 -3
  21. package/dist/components/Checkbox/index.d.ts +2 -2
  22. package/dist/components/CloseButton/CloseButton.d.ts +10 -10
  23. package/dist/components/CloseButton/CloseButton.stories.d.ts +5 -5
  24. package/dist/components/CloseButton/CloseButton.styles.d.ts +3 -3
  25. package/dist/components/CloseButton/index.d.ts +2 -2
  26. package/dist/components/Colors/Colors.d.ts +2 -2
  27. package/dist/components/Colors/Colors.stories.d.ts +5 -5
  28. package/dist/components/Colors/Colors.styles.d.ts +1 -1
  29. package/dist/components/Colors/index.d.ts +1 -1
  30. package/dist/components/ControlGroup/ControlGroup.d.ts +10 -0
  31. package/dist/components/ControlGroup/ControlGroup.stories.d.ts +7 -0
  32. package/dist/components/ControlGroup/ControlGroup.styles.d.ts +3 -0
  33. package/dist/components/ControlGroup/index.d.ts +2 -0
  34. package/dist/components/ControlWrapper/ControlWrapper.d.ts +27 -0
  35. package/dist/components/ControlWrapper/ControlWrapper.stories.d.ts +6 -0
  36. package/dist/components/ControlWrapper/ControlWrapper.styles.d.ts +6 -0
  37. package/dist/components/ControlWrapper/index.d.ts +2 -0
  38. package/dist/components/CssBaseline/CssBaseline.d.ts +5 -5
  39. package/dist/components/CssBaseline/CssBaseline.styles.d.ts +3 -3
  40. package/dist/components/CssBaseline/index.d.ts +2 -2
  41. package/dist/components/DateInput/DateInput.d.ts +17 -17
  42. package/dist/components/DateInput/DateInput.stories.d.ts +7 -7
  43. package/dist/components/DateInput/DateInput.styles.d.ts +6 -6
  44. package/dist/components/DateInput/constants.d.ts +2 -2
  45. package/dist/components/DateInput/index.d.ts +3 -3
  46. package/dist/components/DatePicker/DatePicker.d.ts +26 -26
  47. package/dist/components/DatePicker/DatePicker.stories.d.ts +7 -7
  48. package/dist/components/DatePicker/DatePicker.styles.d.ts +6 -6
  49. package/dist/components/DatePicker/components/DatePickerHeader/DatePickerHeader.d.ts +8 -8
  50. package/dist/components/DatePicker/components/DatePickerHeader/DatePickerHeader.styles.d.ts +7 -7
  51. package/dist/components/DatePicker/components/DatePickerHeader/index.d.ts +2 -2
  52. package/dist/components/DatePicker/components/PopperContainer/PopperContainer.d.ts +4 -4
  53. package/dist/components/DatePicker/components/PopperContainer/index.d.ts +1 -1
  54. package/dist/components/DatePicker/components/index.d.ts +2 -2
  55. package/dist/components/DatePicker/constants.d.ts +3 -3
  56. package/dist/components/DatePicker/helpers.d.ts +3 -3
  57. package/dist/components/DatePicker/index.d.ts +4 -4
  58. package/dist/components/DatePicker/types.d.ts +4 -4
  59. package/dist/components/Description/Description.d.ts +13 -13
  60. package/dist/components/Description/Description.stories.d.ts +16 -16
  61. package/dist/components/Description/Description.styles.d.ts +3 -3
  62. package/dist/components/Description/constants.d.ts +1 -1
  63. package/dist/components/Description/index.d.ts +2 -2
  64. package/dist/components/FileInput/FileInput.d.ts +25 -25
  65. package/dist/components/FileInput/FileInput.stories.d.ts +7 -7
  66. package/dist/components/FileInput/FileInput.styles.d.ts +3 -3
  67. package/dist/components/FileInput/helpers.d.ts +2 -2
  68. package/dist/components/FileInput/index.d.ts +2 -2
  69. package/dist/components/FileItem/FileItem.d.ts +31 -31
  70. package/dist/components/FileItem/FileItem.stories.d.ts +8 -8
  71. package/dist/components/FileItem/FileItem.styles.d.ts +11 -11
  72. package/dist/components/FileItem/constants.d.ts +5 -5
  73. package/dist/components/FileItem/helpers.d.ts +4 -4
  74. package/dist/components/FileItem/index.d.ts +4 -4
  75. package/dist/components/FileItem/types.d.ts +8 -8
  76. package/dist/components/FiltersPane/FiltersPane.d.ts +22 -22
  77. package/dist/components/FiltersPane/FiltersPane.stories.d.ts +31 -32
  78. package/dist/components/FiltersPane/FiltersPane.styles.d.ts +11 -11
  79. package/dist/components/FiltersPane/components/Filter/Filter.d.ts +7 -7
  80. package/dist/components/FiltersPane/components/Filter/index.d.ts +1 -1
  81. package/dist/components/FiltersPane/components/FilterInterval/FilterInterval.d.ts +24 -24
  82. package/dist/components/FiltersPane/components/FilterInterval/FilterInterval.styles.d.ts +15 -15
  83. package/dist/components/FiltersPane/components/FilterInterval/index.d.ts +2 -2
  84. package/dist/components/FiltersPane/components/FilterMultiSelect/FilterMultiSelect.d.ts +5 -5
  85. package/dist/components/FiltersPane/components/FilterMultiSelect/index.d.ts +1 -1
  86. package/dist/components/FiltersPane/components/FilterSelect/FilterSelect.d.ts +30 -30
  87. package/dist/components/FiltersPane/components/FilterSelect/FilterSelect.styles.d.ts +15 -15
  88. package/dist/components/FiltersPane/components/FilterSelect/index.d.ts +2 -2
  89. package/dist/components/FiltersPane/components/FilterValueView/FilterValueView.d.ts +5 -5
  90. package/dist/components/FiltersPane/components/FilterValueView/FilterValueView.styles.d.ts +3 -3
  91. package/dist/components/FiltersPane/components/FilterValueView/index.d.ts +2 -2
  92. package/dist/components/FiltersPane/components/FilterWithDates/FilterWithDates.d.ts +16 -16
  93. package/dist/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.d.ts +26 -26
  94. package/dist/components/FiltersPane/components/FilterWithDates/index.d.ts +2 -2
  95. package/dist/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.d.ts +13 -13
  96. package/dist/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.styles.d.ts +7 -7
  97. package/dist/components/FiltersPane/components/FilterWithPeriod/index.d.ts +2 -2
  98. package/dist/components/FiltersPane/components/FilterWrapper/FilterWrapper.d.ts +13 -13
  99. package/dist/components/FiltersPane/components/FilterWrapper/FilterWrapper.styles.d.ts +8 -8
  100. package/dist/components/FiltersPane/components/FilterWrapper/helpers.d.ts +1 -1
  101. package/dist/components/FiltersPane/components/FilterWrapper/index.d.ts +2 -2
  102. package/dist/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.d.ts +20 -21
  103. package/dist/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.styles.d.ts +10 -10
  104. package/dist/components/FiltersPane/components/FiltersPaneSearch/index.d.ts +2 -2
  105. package/dist/components/FiltersPane/components/index.d.ts +9 -9
  106. package/dist/components/FiltersPane/constants.d.ts +9 -9
  107. package/dist/components/FiltersPane/helpers.d.ts +5 -5
  108. package/dist/components/FiltersPane/index.d.ts +4 -4
  109. package/dist/components/FiltersPane/types.d.ts +108 -108
  110. package/dist/components/Flag/Flag.d.ts +8 -8
  111. package/dist/components/Flag/Flag.stories.d.ts +12 -12
  112. package/dist/components/Flag/Flag.styles.d.ts +3 -3
  113. package/dist/components/Flag/index.d.ts +2 -2
  114. package/dist/components/FlexibleTable/FlexibleTable.d.ts +31 -31
  115. package/dist/components/FlexibleTable/FlexibleTable.stories.d.ts +19 -19
  116. package/dist/components/FlexibleTable/FlexibleTable.styles.d.ts +7 -7
  117. package/dist/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.d.ts +14 -14
  118. package/dist/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.styles.d.ts +3 -3
  119. package/dist/components/FlexibleTable/components/FlexibleTableCell/index.d.ts +2 -2
  120. package/dist/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.d.ts +31 -31
  121. package/dist/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.styles.d.ts +6 -6
  122. package/dist/components/FlexibleTable/components/FlexibleTableRow/index.d.ts +2 -2
  123. package/dist/components/FlexibleTable/components/index.d.ts +2 -2
  124. package/dist/components/FlexibleTable/constants.d.ts +3 -3
  125. package/dist/components/FlexibleTable/helpers.d.ts +3 -3
  126. package/dist/components/FlexibleTable/index.d.ts +4 -4
  127. package/dist/components/FlexibleTable/types.d.ts +57 -57
  128. package/dist/components/Icon/Icon.d.ts +8 -8
  129. package/dist/components/Icon/Icon.stories.d.ts +6 -6
  130. package/dist/components/Icon/Icon.styles.d.ts +3 -3
  131. package/dist/components/Icon/complexIcons/icons.d.ts +10 -10
  132. package/dist/components/Icon/complexIcons/index.d.ts +1 -1
  133. package/dist/components/Icon/components/ComplexIconBoilerplate/ComplexIconBoilerplate.d.ts +6 -6
  134. package/dist/components/Icon/components/ComplexIconBoilerplate/index.d.ts +1 -1
  135. package/dist/components/Icon/components/IconBolerplate/IconBoilerplate.d.ts +6 -6
  136. package/dist/components/Icon/components/IconBolerplate/index.d.ts +1 -1
  137. package/dist/components/Icon/components/index.d.ts +2 -2
  138. package/dist/components/Icon/helpers.d.ts +6 -6
  139. package/dist/components/Icon/icons-list.d.ts +1 -1
  140. package/dist/components/Icon/index.d.ts +5 -5
  141. package/dist/components/Icon/snippet.d.ts +3 -3
  142. package/dist/components/Icon/types.d.ts +13 -13
  143. package/dist/components/IconButton/IconButton.d.ts +19 -19
  144. package/dist/components/IconButton/IconButton.stories.d.ts +6 -6
  145. package/dist/components/IconButton/IconButton.styles.d.ts +3 -3
  146. package/dist/components/IconButton/constants.d.ts +2 -2
  147. package/dist/components/IconButton/index.d.ts +3 -3
  148. package/dist/components/IconButton/types.d.ts +5 -5
  149. package/dist/components/IncrementInput/IncrementInput.d.ts +9 -9
  150. package/dist/components/IncrementInput/IncrementInput.stories.d.ts +6 -6
  151. package/dist/components/IncrementInput/IncrementInput.styles.d.ts +9 -9
  152. package/dist/components/IncrementInput/index.d.ts +2 -2
  153. package/dist/components/Input/Input.d.ts +5 -52
  154. package/dist/components/Input/Input.stories.d.ts +25 -34
  155. package/dist/components/Input/Input.styles.d.ts +8 -7
  156. package/dist/components/Input/InputBase.d.ts +24 -0
  157. package/dist/components/Input/index.d.ts +4 -3
  158. package/dist/components/Input/types.d.ts +3 -4
  159. package/dist/components/List/List.d.ts +9 -9
  160. package/dist/components/List/List.stories.d.ts +5 -5
  161. package/dist/components/List/List.styles.d.ts +5 -5
  162. package/dist/components/List/components/ListItem/ListItem.d.ts +17 -17
  163. package/dist/components/List/components/ListItem/ListItem.styles.d.ts +3 -3
  164. package/dist/components/List/components/ListItem/index.d.ts +2 -2
  165. package/dist/components/List/components/index.d.ts +1 -1
  166. package/dist/components/List/index.d.ts +3 -3
  167. package/dist/components/Modal/Modal.d.ts +34 -34
  168. package/dist/components/Modal/Modal.stories.d.ts +29 -29
  169. package/dist/components/Modal/Modal.styles.d.ts +7 -7
  170. package/dist/components/Modal/index.d.ts +3 -3
  171. package/dist/components/Modal/types.d.ts +3 -3
  172. package/dist/components/MoreMenu/MoreMenu.d.ts +15 -15
  173. package/dist/components/MoreMenu/MoreMenu.stories.d.ts +6 -6
  174. package/dist/components/MoreMenu/MoreMenu.styles.d.ts +6 -6
  175. package/dist/components/MoreMenu/index.d.ts +2 -2
  176. package/dist/components/MultiSelect/MultiSelect.d.ts +23 -23
  177. package/dist/components/MultiSelect/MultiSelect.stories.d.ts +13 -13
  178. package/dist/components/MultiSelect/MultiSelect.styles.d.ts +7 -7
  179. package/dist/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.d.ts +12 -12
  180. package/dist/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.styles.d.ts +3 -3
  181. package/dist/components/MultiSelect/components/MultiSelectInput/index.d.ts +2 -2
  182. package/dist/components/MultiSelect/components/index.d.ts +1 -1
  183. package/dist/components/MultiSelect/index.d.ts +4 -4
  184. package/dist/components/MultiSelect/types.d.ts +1 -1
  185. package/dist/components/MultiSelectList/MultiSelectList.d.ts +25 -25
  186. package/dist/components/MultiSelectList/MultiSelectList.styles.d.ts +13 -13
  187. package/dist/components/MultiSelectList/constants.d.ts +3 -3
  188. package/dist/components/MultiSelectList/helpers.d.ts +3 -3
  189. package/dist/components/MultiSelectList/index.d.ts +3 -3
  190. package/dist/components/MultiSelectList/types.d.ts +12 -12
  191. package/dist/components/NewMoreMenu/NewMoreMenu.d.ts +13 -13
  192. package/dist/components/NewMoreMenu/NewMoreMenu.stories.d.ts +12 -12
  193. package/dist/components/NewMoreMenu/NewMoreMenu.styles.d.ts +8 -8
  194. package/dist/components/NewMoreMenu/index.d.ts +2 -2
  195. package/dist/components/Notification/Notification.d.ts +17 -17
  196. package/dist/components/Notification/Notification.stories.d.ts +8 -8
  197. package/dist/components/Notification/Notification.styles.d.ts +3 -3
  198. package/dist/components/Notification/index.d.ts +3 -3
  199. package/dist/components/Notification/types.d.ts +1 -1
  200. package/dist/components/NumberInput/NumberInput.d.ts +18 -18
  201. package/dist/components/NumberInput/NumberInput.stories.d.ts +7 -7
  202. package/dist/components/NumberInput/helpers.d.ts +4 -4
  203. package/dist/components/NumberInput/index.d.ts +1 -1
  204. package/dist/components/PhoneInput/PhoneInput.d.ts +17 -17
  205. package/dist/components/PhoneInput/PhoneInput.stories.d.ts +28 -28
  206. package/dist/components/PhoneInput/PhoneInput.styles.d.ts +9 -9
  207. package/dist/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.d.ts +14 -13
  208. package/dist/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.stories.d.ts +5 -5
  209. package/dist/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.styles.d.ts +7 -7
  210. package/dist/components/PhoneInput/components/PhoneInputCountryList/index.d.ts +2 -2
  211. package/dist/components/PhoneInput/components/index.d.ts +1 -1
  212. package/dist/components/PhoneInput/constants.d.ts +2 -2
  213. package/dist/components/PhoneInput/index.d.ts +4 -4
  214. package/dist/components/PhoneInput/types.d.ts +17 -15
  215. package/dist/components/RadioButton/RadioButton.d.ts +15 -15
  216. package/dist/components/RadioButton/RadioButton.stories.d.ts +7 -7
  217. package/dist/components/RadioButton/RadioButton.styles.d.ts +3 -3
  218. package/dist/components/RadioButton/index.d.ts +2 -2
  219. package/dist/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.d.ts +386 -386
  220. package/dist/components/ScrollIntoViewIfNeeded/constants.d.ts +3 -3
  221. package/dist/components/ScrollIntoViewIfNeeded/index.d.ts +1 -1
  222. package/dist/components/SearchInput/SearchInput.d.ts +6 -8
  223. package/dist/components/SearchInput/SearchInput.stories.d.ts +16 -6
  224. package/dist/components/SearchInput/SearchInput.styles.d.ts +7 -7
  225. package/dist/components/SearchInput/index.d.ts +2 -2
  226. package/dist/components/Select/CustomSelect.stories.d.ts +11 -11
  227. package/dist/components/Select/MultiSelect.stories.d.ts +15 -15
  228. package/dist/components/Select/Select.d.ts +52 -52
  229. package/dist/components/Select/Select.stories.d.ts +15 -15
  230. package/dist/components/Select/Select.styles.d.ts +34 -33
  231. package/dist/components/Select/components/SelectList/SelectList.d.ts +23 -23
  232. package/dist/components/Select/components/SelectList/SelectList.styles.d.ts +6 -6
  233. package/dist/components/Select/components/SelectList/index.d.ts +2 -2
  234. package/dist/components/Select/components/SelectListItem/SelectListItem.d.ts +15 -15
  235. package/dist/components/Select/components/SelectListItem/SelectListItem.styles.d.ts +2 -2
  236. package/dist/components/Select/components/SelectListItem/index.d.ts +1 -1
  237. package/dist/components/Select/components/index.d.ts +2 -2
  238. package/dist/components/Select/constants.d.ts +2 -2
  239. package/dist/components/Select/helpers.d.ts +4 -4
  240. package/dist/components/Select/index.d.ts +4 -4
  241. package/dist/components/Select/types.d.ts +4 -1
  242. package/dist/components/Selector/Selector.d.ts +22 -22
  243. package/dist/components/Selector/Selector.stories.d.ts +7 -7
  244. package/dist/components/Selector/Selector.styles.d.ts +9 -9
  245. package/dist/components/Selector/index.d.ts +2 -2
  246. package/dist/components/Selector/types.d.ts +10 -10
  247. package/dist/components/Skeleton/Skeleton.d.ts +7 -7
  248. package/dist/components/Skeleton/Skeleton.stories.d.ts +6 -6
  249. package/dist/components/Skeleton/Skeleton.styles.d.ts +3 -3
  250. package/dist/components/Skeleton/index.d.ts +2 -2
  251. package/dist/components/SmartInput/SmartInput.d.ts +14 -14
  252. package/dist/components/SmartInput/SmartInput.stories.d.ts +18 -18
  253. package/dist/components/SmartInput/constants.d.ts +16 -16
  254. package/dist/components/SmartInput/helpers.d.ts +2 -2
  255. package/dist/components/SmartInput/index.d.ts +2 -2
  256. package/dist/components/SmartInput/types.d.ts +6 -6
  257. package/dist/components/Status/Status.d.ts +16 -16
  258. package/dist/components/Status/Status.stories.d.ts +6 -6
  259. package/dist/components/Status/Status.styles.d.ts +3 -3
  260. package/dist/components/Status/constants.d.ts +2 -2
  261. package/dist/components/Status/index.d.ts +2 -2
  262. package/dist/components/Status/types.d.ts +3 -3
  263. package/dist/components/Switch/Switch.d.ts +20 -20
  264. package/dist/components/Switch/Switch.stories.d.ts +16 -16
  265. package/dist/components/Switch/Switch.styles.d.ts +3 -3
  266. package/dist/components/Switch/index.d.ts +3 -3
  267. package/dist/components/Switch/types.d.ts +4 -4
  268. package/dist/components/TextArea/TextArea.d.ts +29 -38
  269. package/dist/components/TextArea/TextArea.stories.d.ts +17 -17
  270. package/dist/components/TextArea/TextArea.styles.d.ts +9 -3
  271. package/dist/components/TextArea/index.d.ts +3 -3
  272. package/dist/components/TextArea/types.d.ts +2 -2
  273. package/dist/components/TextButton/TextButton.d.ts +31 -31
  274. package/dist/components/TextButton/TextButton.stories.d.ts +6 -6
  275. package/dist/components/TextButton/TextButton.styles.d.ts +7 -7
  276. package/dist/components/TextButton/constants.d.ts +2 -2
  277. package/dist/components/TextButton/index.d.ts +3 -3
  278. package/dist/components/TextButton/types.d.ts +5 -5
  279. package/dist/components/TextWithInfo/TextWithInfo.d.ts +15 -15
  280. package/dist/components/TextWithInfo/TextWithInfo.stories.d.ts +12 -12
  281. package/dist/components/TextWithInfo/TextWithInfo.styles.d.ts +3 -3
  282. package/dist/components/TextWithInfo/index.d.ts +2 -2
  283. package/dist/components/TextWithTooltip/TextWithTooltip.d.ts +27 -27
  284. package/dist/components/TextWithTooltip/TextWithTooltip.stories.d.ts +24 -24
  285. package/dist/components/TextWithTooltip/TextWithTooltip.styles.d.ts +6 -6
  286. package/dist/components/TextWithTooltip/index.d.ts +2 -2
  287. package/dist/components/ThemedPreloader/ThemedPreloader.d.ts +11 -11
  288. package/dist/components/ThemedPreloader/ThemedPreloader.stories.d.ts +17 -17
  289. package/dist/components/ThemedPreloader/ThemedPreloader.styles.d.ts +7 -7
  290. package/dist/components/ThemedPreloader/components/DefaultPreloader/DefaultPreloader.d.ts +2 -2
  291. package/dist/components/ThemedPreloader/components/DefaultPreloader/index.d.ts +1 -1
  292. package/dist/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.d.ts +5 -5
  293. package/dist/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.styles.d.ts +3 -3
  294. package/dist/components/ThemedPreloader/components/DotsPreloader/index.d.ts +2 -2
  295. package/dist/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.d.ts +8 -8
  296. package/dist/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.styles.d.ts +3 -3
  297. package/dist/components/ThemedPreloader/components/SvgPreloader/index.d.ts +2 -2
  298. package/dist/components/ThemedPreloader/components/index.d.ts +3 -3
  299. package/dist/components/ThemedPreloader/constants.d.ts +1 -1
  300. package/dist/components/ThemedPreloader/index.d.ts +4 -4
  301. package/dist/components/ThemedPreloader/types.d.ts +2 -2
  302. package/dist/components/Toaster/Toaster.d.ts +23 -23
  303. package/dist/components/Toaster/Toaster.stories.d.ts +5 -5
  304. package/dist/components/Toaster/Toaster.styles.d.ts +6 -6
  305. package/dist/components/Toaster/constants.d.ts +1 -1
  306. package/dist/components/Toaster/index.d.ts +3 -3
  307. package/dist/components/Toaster/types.d.ts +1 -1
  308. package/dist/components/Tooltip/Tooltip.d.ts +11 -11
  309. package/dist/components/Tooltip/Tooltip.stories.d.ts +5 -5
  310. package/dist/components/Tooltip/Tooltip.styles.d.ts +3 -3
  311. package/dist/components/Tooltip/index.d.ts +3 -3
  312. package/dist/components/Tooltip/types.d.ts +1 -1
  313. package/dist/components/WithPopup/WithPopup.d.ts +33 -40
  314. package/dist/components/WithPopup/WithPopup.stories.d.ts +16 -16
  315. package/dist/components/WithPopup/WithPopup.styles.d.ts +3 -3
  316. package/dist/components/WithPopup/constants.d.ts +2 -2
  317. package/dist/components/WithPopup/index.d.ts +2 -2
  318. package/dist/components/WithPopup/types.d.ts +19 -22
  319. package/dist/components/WithTooltip/WithTooltip.d.ts +18 -18
  320. package/dist/components/WithTooltip/WithTooltip.stories.d.ts +6 -6
  321. package/dist/components/WithTooltip/WithTooltip.styles.d.ts +6 -7
  322. package/dist/components/WithTooltip/index.d.ts +2 -2
  323. package/dist/components/index.d.ts +48 -46
  324. package/dist/constants/index.d.ts +2 -2
  325. package/dist/constants/mime-types.d.ts +76 -76
  326. package/dist/constants/phone-info.d.ts +2 -2
  327. package/dist/helpers/index.d.ts +3 -3
  328. package/dist/helpers/misc.d.ts +21 -21
  329. package/dist/helpers/phone.d.ts +14 -14
  330. package/dist/helpers/popper-helpers.d.ts +2 -2
  331. package/dist/hooks/index.d.ts +7 -7
  332. package/dist/hooks/use-did-mount-effect.d.ts +2 -2
  333. package/dist/hooks/use-dropdown.d.ts +11 -11
  334. package/dist/hooks/use-is-mounted.d.ts +1 -1
  335. package/dist/hooks/use-merged-refs.d.ts +2 -2
  336. package/dist/hooks/use-mixed-styles.d.ts +1 -1
  337. package/dist/hooks/use-on-click-outside.d.ts +5 -5
  338. package/dist/hooks/use-tweak-styles.d.ts +21 -21
  339. package/dist/index.d.ts +6 -6
  340. package/dist/theme/Provider.d.ts +11 -11
  341. package/dist/theme/common.d.ts +111 -103
  342. package/dist/theme/helpers.d.ts +10 -10
  343. package/dist/theme/index.d.ts +4 -4
  344. package/dist/theme/types.d.ts +84 -82
  345. package/dist/true-react-common-ui-kit.js +1248 -1093
  346. package/dist/true-react-common-ui-kit.js.map +1 -1
  347. package/dist/true-react-common-ui-kit.umd.cjs +1228 -1073
  348. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  349. package/dist/types.d.ts +45 -44
  350. package/package.json +99 -99
  351. package/src/components/AccountInfo/AccountInfo.stories.tsx +32 -32
  352. package/src/components/AccountInfo/AccountInfo.styles.ts +52 -52
  353. package/src/components/AccountInfo/AccountInfo.tsx +80 -80
  354. package/src/components/AccountInfo/constants.ts +1 -1
  355. package/src/components/AccountInfo/index.ts +2 -2
  356. package/src/components/AddButton/AddButton.stories.tsx +21 -21
  357. package/src/components/AddButton/AddButton.styles.ts +34 -34
  358. package/src/components/AddButton/AddButton.tsx +52 -52
  359. package/src/components/AddButton/index.ts +2 -2
  360. package/src/components/Button/Button.stories.tsx +50 -54
  361. package/src/components/Button/Button.styles.ts +200 -200
  362. package/src/components/Button/Button.tsx +129 -129
  363. package/src/components/Button/constants.ts +11 -11
  364. package/src/components/Button/index.ts +3 -3
  365. package/src/components/Button/types.ts +5 -5
  366. package/src/components/Checkbox/Checkbox.stories.tsx +54 -54
  367. package/src/components/Checkbox/Checkbox.styles.ts +49 -49
  368. package/src/components/Checkbox/Checkbox.tsx +84 -84
  369. package/src/components/Checkbox/index.ts +2 -2
  370. package/src/components/CloseButton/CloseButton.stories.tsx +11 -11
  371. package/src/components/CloseButton/CloseButton.styles.ts +34 -34
  372. package/src/components/CloseButton/CloseButton.tsx +35 -35
  373. package/src/components/CloseButton/index.ts +2 -2
  374. package/src/components/Colors/Colors.stories.tsx +7 -7
  375. package/src/components/Colors/Colors.styles.ts +36 -36
  376. package/src/components/Colors/Colors.tsx +26 -26
  377. package/src/components/Colors/index.ts +1 -1
  378. package/src/components/ControlGroup/ControlGroup.stories.tsx +40 -0
  379. package/src/components/ControlGroup/ControlGroup.styles.ts +46 -0
  380. package/src/components/ControlGroup/ControlGroup.tsx +55 -0
  381. package/src/components/ControlGroup/index.ts +2 -0
  382. package/src/components/ControlWrapper/ControlWrapper.stories.tsx +45 -0
  383. package/src/components/ControlWrapper/ControlWrapper.styles.ts +185 -0
  384. package/src/components/ControlWrapper/ControlWrapper.tsx +151 -0
  385. package/src/components/ControlWrapper/index.ts +2 -0
  386. package/src/components/CssBaseline/CssBaseline.styles.ts +14 -14
  387. package/src/components/CssBaseline/CssBaseline.tsx +13 -13
  388. package/src/components/CssBaseline/index.ts +2 -2
  389. package/src/components/DateInput/DateInput.stories.tsx +61 -61
  390. package/src/components/DateInput/DateInput.styles.ts +13 -18
  391. package/src/components/DateInput/DateInput.tsx +90 -90
  392. package/src/components/DateInput/constants.ts +2 -2
  393. package/src/components/DateInput/index.ts +3 -3
  394. package/src/components/DatePicker/DatePicker.stories.tsx +88 -88
  395. package/src/components/DatePicker/DatePicker.styles.ts +38 -38
  396. package/src/components/DatePicker/DatePicker.tsx +314 -314
  397. package/src/components/DatePicker/components/DatePickerHeader/DatePickerHeader.styles.ts +54 -88
  398. package/src/components/DatePicker/components/DatePickerHeader/DatePickerHeader.tsx +81 -89
  399. package/src/components/DatePicker/components/DatePickerHeader/index.ts +2 -2
  400. package/src/components/DatePicker/components/PopperContainer/PopperContainer.tsx +6 -6
  401. package/src/components/DatePicker/components/PopperContainer/index.ts +1 -1
  402. package/src/components/DatePicker/components/index.ts +2 -2
  403. package/src/components/DatePicker/constants.ts +6 -6
  404. package/src/components/DatePicker/helpers.ts +23 -23
  405. package/src/components/DatePicker/index.ts +4 -4
  406. package/src/components/DatePicker/types.ts +48 -48
  407. package/src/components/Description/Description.stories.tsx +27 -27
  408. package/src/components/Description/Description.styles.ts +30 -30
  409. package/src/components/Description/Description.tsx +61 -61
  410. package/src/components/Description/constants.ts +1 -1
  411. package/src/components/Description/index.ts +2 -2
  412. package/src/components/FileInput/FileInput.stories.tsx +75 -75
  413. package/src/components/FileInput/FileInput.styles.ts +80 -80
  414. package/src/components/FileInput/FileInput.tsx +147 -147
  415. package/src/components/FileInput/helpers.ts +6 -6
  416. package/src/components/FileInput/index.ts +2 -2
  417. package/src/components/FileItem/FileItem.stories.tsx +59 -63
  418. package/src/components/FileItem/FileItem.styles.ts +122 -122
  419. package/src/components/FileItem/FileItem.tsx +157 -157
  420. package/src/components/FileItem/constants.ts +29 -29
  421. package/src/components/FileItem/helpers.ts +27 -27
  422. package/src/components/FileItem/index.ts +4 -4
  423. package/src/components/FileItem/types.ts +11 -11
  424. package/src/components/FiltersPane/FiltersPane.stories.tsx +295 -299
  425. package/src/components/FiltersPane/FiltersPane.styles.ts +92 -92
  426. package/src/components/FiltersPane/FiltersPane.tsx +162 -162
  427. package/src/components/FiltersPane/components/Filter/Filter.tsx +114 -114
  428. package/src/components/FiltersPane/components/Filter/index.ts +1 -1
  429. package/src/components/FiltersPane/components/FilterInterval/FilterInterval.styles.ts +63 -61
  430. package/src/components/FiltersPane/components/FilterInterval/FilterInterval.tsx +147 -154
  431. package/src/components/FiltersPane/components/FilterInterval/index.ts +2 -2
  432. package/src/components/FiltersPane/components/FilterMultiSelect/FilterMultiSelect.tsx +10 -10
  433. package/src/components/FiltersPane/components/FilterMultiSelect/index.ts +1 -1
  434. package/src/components/FiltersPane/components/FilterSelect/FilterSelect.styles.ts +143 -141
  435. package/src/components/FiltersPane/components/FilterSelect/FilterSelect.tsx +361 -361
  436. package/src/components/FiltersPane/components/FilterSelect/index.ts +2 -2
  437. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.styles.tsx +15 -15
  438. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.tsx +166 -166
  439. package/src/components/FiltersPane/components/FilterValueView/index.tsx +2 -2
  440. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.ts +68 -68
  441. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.tsx +208 -210
  442. package/src/components/FiltersPane/components/FilterWithDates/index.ts +2 -2
  443. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.styles.ts +21 -21
  444. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.tsx +177 -177
  445. package/src/components/FiltersPane/components/FilterWithPeriod/index.ts +2 -2
  446. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.styles.ts +99 -99
  447. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.tsx +149 -149
  448. package/src/components/FiltersPane/components/FilterWrapper/helpers.ts +14 -14
  449. package/src/components/FiltersPane/components/FilterWrapper/index.ts +2 -2
  450. package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.styles.ts +118 -123
  451. package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.tsx +162 -165
  452. package/src/components/FiltersPane/components/FiltersPaneSearch/index.ts +2 -2
  453. package/src/components/FiltersPane/components/index.ts +9 -9
  454. package/src/components/FiltersPane/constants.ts +137 -137
  455. package/src/components/FiltersPane/helpers.ts +26 -26
  456. package/src/components/FiltersPane/index.ts +5 -5
  457. package/src/components/FiltersPane/types.ts +157 -157
  458. package/src/components/Flag/Flag.stories.tsx +29 -29
  459. package/src/components/Flag/Flag.styles.ts +17 -17
  460. package/src/components/Flag/Flag.tsx +26 -26
  461. package/src/components/Flag/augment.d.ts +1 -1
  462. package/src/components/Flag/index.ts +2 -2
  463. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +300 -300
  464. package/src/components/FlexibleTable/FlexibleTable.styles.ts +111 -111
  465. package/src/components/FlexibleTable/FlexibleTable.tsx +308 -308
  466. package/src/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.styles.ts +43 -43
  467. package/src/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.tsx +113 -113
  468. package/src/components/FlexibleTable/components/FlexibleTableCell/index.ts +2 -2
  469. package/src/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.styles.ts +25 -25
  470. package/src/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.tsx +193 -193
  471. package/src/components/FlexibleTable/components/FlexibleTableRow/index.ts +2 -2
  472. package/src/components/FlexibleTable/components/index.ts +2 -2
  473. package/src/components/FlexibleTable/constants.ts +8 -8
  474. package/src/components/FlexibleTable/helpers.ts +16 -16
  475. package/src/components/FlexibleTable/index.ts +4 -4
  476. package/src/components/FlexibleTable/types.ts +82 -82
  477. package/src/components/Icon/Icon.stories.tsx +86 -86
  478. package/src/components/Icon/Icon.styles.ts +10 -10
  479. package/src/components/Icon/Icon.tsx +26 -26
  480. package/src/components/Icon/complexIcons/augment.d.ts +1 -1
  481. package/src/components/Icon/complexIcons/avatarGreen.svg +57 -57
  482. package/src/components/Icon/complexIcons/fileExcel.svg +10 -10
  483. package/src/components/Icon/complexIcons/fileImage.svg +12 -12
  484. package/src/components/Icon/complexIcons/fileOther.svg +9 -9
  485. package/src/components/Icon/complexIcons/filePdf.svg +10 -10
  486. package/src/components/Icon/complexIcons/fileWord.svg +10 -10
  487. package/src/components/Icon/complexIcons/fileXml.svg +12 -12
  488. package/src/components/Icon/complexIcons/fileZip.svg +15 -15
  489. package/src/components/Icon/complexIcons/icons.ts +19 -19
  490. package/src/components/Icon/complexIcons/index.ts +1 -1
  491. package/src/components/Icon/components/ComplexIconBoilerplate/ComplexIconBoilerplate.tsx +16 -16
  492. package/src/components/Icon/components/ComplexIconBoilerplate/index.ts +1 -1
  493. package/src/components/Icon/components/IconBolerplate/IconBoilerplate.tsx +43 -43
  494. package/src/components/Icon/components/IconBolerplate/index.ts +1 -1
  495. package/src/components/Icon/components/index.ts +2 -2
  496. package/src/components/Icon/helpers.tsx +9 -9
  497. package/src/components/Icon/icons-list.ts +855 -855
  498. package/src/components/Icon/index.ts +5 -5
  499. package/src/components/Icon/snippet.tsx +6 -6
  500. package/src/components/Icon/types.ts +18 -18
  501. package/src/components/IconButton/IconButton.stories.tsx +32 -32
  502. package/src/components/IconButton/IconButton.styles.ts +84 -84
  503. package/src/components/IconButton/IconButton.tsx +74 -74
  504. package/src/components/IconButton/constants.ts +3 -3
  505. package/src/components/IconButton/index.ts +3 -3
  506. package/src/components/IconButton/types.ts +11 -11
  507. package/src/components/IncrementInput/IncrementInput.stories.tsx +29 -31
  508. package/src/components/IncrementInput/IncrementInput.styles.ts +78 -78
  509. package/src/components/IncrementInput/IncrementInput.tsx +105 -105
  510. package/src/components/IncrementInput/index.ts +2 -2
  511. package/src/components/Input/Input.stories.tsx +83 -91
  512. package/src/components/Input/Input.styles.ts +98 -308
  513. package/src/components/Input/Input.tsx +33 -296
  514. package/src/components/Input/InputBase.tsx +250 -0
  515. package/src/components/Input/index.ts +4 -3
  516. package/src/components/Input/types.ts +4 -33
  517. package/src/components/List/List.stories.tsx +90 -90
  518. package/src/components/List/List.styles.ts +25 -25
  519. package/src/components/List/List.tsx +68 -68
  520. package/src/components/List/components/ListItem/ListItem.styles.ts +52 -52
  521. package/src/components/List/components/ListItem/ListItem.tsx +68 -68
  522. package/src/components/List/components/ListItem/index.ts +2 -2
  523. package/src/components/List/components/index.ts +1 -1
  524. package/src/components/List/index.ts +3 -3
  525. package/src/components/Modal/Modal.stories.tsx +105 -105
  526. package/src/components/Modal/Modal.styles.ts +318 -318
  527. package/src/components/Modal/Modal.tsx +203 -203
  528. package/src/components/Modal/index.ts +3 -3
  529. package/src/components/Modal/types.ts +17 -17
  530. package/src/components/MoreMenu/MoreMenu.stories.tsx +46 -46
  531. package/src/components/MoreMenu/MoreMenu.styles.ts +69 -69
  532. package/src/components/MoreMenu/MoreMenu.tsx +93 -93
  533. package/src/components/MoreMenu/index.ts +2 -2
  534. package/src/components/MultiSelect/MultiSelect.stories.tsx +46 -46
  535. package/src/components/MultiSelect/MultiSelect.styles.ts +59 -59
  536. package/src/components/MultiSelect/MultiSelect.tsx +106 -106
  537. package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.styles.ts +73 -73
  538. package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.tsx +53 -53
  539. package/src/components/MultiSelect/components/MultiSelectInput/index.ts +2 -2
  540. package/src/components/MultiSelect/components/index.ts +1 -1
  541. package/src/components/MultiSelect/index.ts +4 -4
  542. package/src/components/MultiSelect/types.ts +1 -1
  543. package/src/components/MultiSelectList/MultiSelectList.styles.ts +138 -136
  544. package/src/components/MultiSelectList/MultiSelectList.tsx +461 -461
  545. package/src/components/MultiSelectList/constants.ts +21 -21
  546. package/src/components/MultiSelectList/helpers.ts +11 -11
  547. package/src/components/MultiSelectList/index.ts +3 -3
  548. package/src/components/MultiSelectList/types.ts +15 -15
  549. package/src/components/NewMoreMenu/NewMoreMenu.stories.tsx +74 -74
  550. package/src/components/NewMoreMenu/NewMoreMenu.styles.ts +39 -39
  551. package/src/components/NewMoreMenu/NewMoreMenu.tsx +79 -79
  552. package/src/components/NewMoreMenu/index.ts +2 -2
  553. package/src/components/Notification/Notification.stories.tsx +51 -55
  554. package/src/components/Notification/Notification.styles.ts +57 -57
  555. package/src/components/Notification/Notification.tsx +77 -77
  556. package/src/components/Notification/index.ts +3 -3
  557. package/src/components/Notification/types.ts +1 -1
  558. package/src/components/NumberInput/NumberInput.stories.tsx +33 -35
  559. package/src/components/NumberInput/NumberInput.tsx +134 -137
  560. package/src/components/NumberInput/helpers.ts +84 -84
  561. package/src/components/NumberInput/index.ts +1 -1
  562. package/src/components/PhoneInput/PhoneInput.stories.tsx +66 -70
  563. package/src/components/PhoneInput/PhoneInput.styles.ts +92 -89
  564. package/src/components/PhoneInput/PhoneInput.tsx +211 -214
  565. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +21 -21
  566. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.styles.ts +105 -103
  567. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.tsx +155 -155
  568. package/src/components/PhoneInput/components/PhoneInputCountryList/index.ts +2 -2
  569. package/src/components/PhoneInput/components/index.ts +1 -1
  570. package/src/components/PhoneInput/constants.ts +3 -3
  571. package/src/components/PhoneInput/index.ts +4 -4
  572. package/src/components/PhoneInput/types.ts +20 -16
  573. package/src/components/RadioButton/RadioButton.stories.tsx +46 -46
  574. package/src/components/RadioButton/RadioButton.styles.ts +37 -37
  575. package/src/components/RadioButton/RadioButton.tsx +57 -57
  576. package/src/components/RadioButton/index.ts +2 -2
  577. package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +54 -54
  578. package/src/components/ScrollIntoViewIfNeeded/constants.ts +12 -12
  579. package/src/components/ScrollIntoViewIfNeeded/index.ts +1 -1
  580. package/src/components/SearchInput/SearchInput.stories.tsx +24 -23
  581. package/src/components/SearchInput/SearchInput.styles.ts +44 -54
  582. package/src/components/SearchInput/SearchInput.tsx +49 -70
  583. package/src/components/SearchInput/index.ts +2 -2
  584. package/src/components/Select/CustomSelect.stories.tsx +250 -253
  585. package/src/components/Select/MultiSelect.stories.tsx +232 -240
  586. package/src/components/Select/Select.stories.tsx +228 -236
  587. package/src/components/Select/Select.styles.ts +133 -147
  588. package/src/components/Select/Select.tsx +650 -658
  589. package/src/components/Select/components/SelectList/SelectList.styles.ts +73 -73
  590. package/src/components/Select/components/SelectList/SelectList.tsx +152 -152
  591. package/src/components/Select/components/SelectList/index.ts +2 -2
  592. package/src/components/Select/components/SelectListItem/SelectListItem.styles.ts +14 -14
  593. package/src/components/Select/components/SelectListItem/SelectListItem.tsx +76 -76
  594. package/src/components/Select/components/SelectListItem/index.ts +1 -1
  595. package/src/components/Select/components/index.ts +2 -2
  596. package/src/components/Select/constants.ts +2 -2
  597. package/src/components/Select/helpers.ts +20 -20
  598. package/src/components/Select/index.ts +4 -4
  599. package/src/components/Select/types.ts +6 -1
  600. package/src/components/Selector/Selector.stories.tsx +62 -62
  601. package/src/components/Selector/Selector.styles.ts +165 -165
  602. package/src/components/Selector/Selector.tsx +115 -115
  603. package/src/components/Selector/index.ts +2 -2
  604. package/src/components/Selector/types.ts +12 -12
  605. package/src/components/Skeleton/Skeleton.stories.tsx +19 -19
  606. package/src/components/Skeleton/Skeleton.styles.ts +46 -46
  607. package/src/components/Skeleton/Skeleton.tsx +12 -12
  608. package/src/components/Skeleton/index.ts +2 -2
  609. package/src/components/SmartInput/SmartInput.stories.tsx +51 -52
  610. package/src/components/SmartInput/SmartInput.tsx +116 -116
  611. package/src/components/SmartInput/constants.ts +91 -91
  612. package/src/components/SmartInput/helpers.ts +26 -26
  613. package/src/components/SmartInput/index.ts +2 -2
  614. package/src/components/SmartInput/types.ts +18 -18
  615. package/src/components/Status/Status.stories.tsx +69 -73
  616. package/src/components/Status/Status.styles.ts +143 -143
  617. package/src/components/Status/Status.tsx +49 -49
  618. package/src/components/Status/constants.ts +11 -11
  619. package/src/components/Status/index.ts +3 -3
  620. package/src/components/Status/types.ts +5 -5
  621. package/src/components/Switch/Switch.stories.tsx +40 -40
  622. package/src/components/Switch/Switch.styles.ts +75 -75
  623. package/src/components/Switch/Switch.tsx +75 -75
  624. package/src/components/Switch/index.ts +3 -3
  625. package/src/components/Switch/types.ts +4 -4
  626. package/src/components/TextArea/TextArea.stories.tsx +35 -37
  627. package/src/components/TextArea/TextArea.styles.ts +78 -177
  628. package/src/components/TextArea/TextArea.tsx +157 -183
  629. package/src/components/TextArea/index.ts +3 -3
  630. package/src/components/TextArea/types.ts +6 -6
  631. package/src/components/TextButton/TextButton.stories.tsx +43 -47
  632. package/src/components/TextButton/TextButton.styles.ts +130 -130
  633. package/src/components/TextButton/TextButton.tsx +110 -110
  634. package/src/components/TextButton/constants.ts +3 -3
  635. package/src/components/TextButton/index.ts +3 -3
  636. package/src/components/TextButton/types.ts +11 -11
  637. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +53 -53
  638. package/src/components/TextWithInfo/TextWithInfo.styles.ts +59 -59
  639. package/src/components/TextWithInfo/TextWithInfo.tsx +62 -62
  640. package/src/components/TextWithInfo/index.ts +2 -2
  641. package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +58 -58
  642. package/src/components/TextWithTooltip/TextWithTooltip.styles.ts +21 -21
  643. package/src/components/TextWithTooltip/TextWithTooltip.tsx +156 -156
  644. package/src/components/TextWithTooltip/index.ts +2 -2
  645. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +41 -41
  646. package/src/components/ThemedPreloader/ThemedPreloader.styles.ts +26 -26
  647. package/src/components/ThemedPreloader/ThemedPreloader.tsx +54 -54
  648. package/src/components/ThemedPreloader/components/DefaultPreloader/DefaultPreloader.tsx +29 -29
  649. package/src/components/ThemedPreloader/components/DefaultPreloader/index.ts +1 -1
  650. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.styles.ts +55 -55
  651. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.tsx +15 -15
  652. package/src/components/ThemedPreloader/components/DotsPreloader/index.ts +2 -2
  653. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.styles.ts +11 -11
  654. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.tsx +24 -24
  655. package/src/components/ThemedPreloader/components/SvgPreloader/index.ts +2 -2
  656. package/src/components/ThemedPreloader/components/index.ts +3 -3
  657. package/src/components/ThemedPreloader/constants.ts +1 -1
  658. package/src/components/ThemedPreloader/index.ts +4 -4
  659. package/src/components/ThemedPreloader/types.ts +3 -3
  660. package/src/components/Toaster/Toaster.stories.tsx +30 -30
  661. package/src/components/Toaster/Toaster.styles.ts +60 -60
  662. package/src/components/Toaster/Toaster.tsx +96 -96
  663. package/src/components/Toaster/constants.ts +1 -1
  664. package/src/components/Toaster/index.ts +3 -3
  665. package/src/components/Toaster/types.ts +1 -1
  666. package/src/components/Tooltip/Tooltip.stories.tsx +19 -19
  667. package/src/components/Tooltip/Tooltip.styles.ts +49 -49
  668. package/src/components/Tooltip/Tooltip.tsx +35 -35
  669. package/src/components/Tooltip/index.ts +3 -3
  670. package/src/components/Tooltip/types.ts +1 -1
  671. package/src/components/WithPopup/WithPopup.stories.tsx +100 -101
  672. package/src/components/WithPopup/WithPopup.styles.ts +45 -47
  673. package/src/components/WithPopup/WithPopup.tsx +184 -210
  674. package/src/components/WithPopup/constants.ts +3 -3
  675. package/src/components/WithPopup/index.ts +2 -2
  676. package/src/components/WithPopup/types.ts +25 -32
  677. package/src/components/WithTooltip/WithTooltip.stories.tsx +56 -56
  678. package/src/components/WithTooltip/WithTooltip.styles.ts +7 -13
  679. package/src/components/WithTooltip/WithTooltip.tsx +67 -72
  680. package/src/components/WithTooltip/index.ts +2 -2
  681. package/src/components/index.ts +48 -46
  682. package/src/constants/index.ts +2 -2
  683. package/src/constants/mime-types.ts +77 -77
  684. package/src/constants/phone-info.ts +2147 -2147
  685. package/src/helpers/index.ts +3 -3
  686. package/src/helpers/misc.ts +160 -160
  687. package/src/helpers/phone.ts +91 -91
  688. package/src/helpers/popper-helpers.ts +17 -17
  689. package/src/hooks/index.ts +7 -7
  690. package/src/hooks/use-did-mount-effect.ts +18 -18
  691. package/src/hooks/use-dropdown.ts +84 -84
  692. package/src/hooks/use-is-mounted.ts +15 -15
  693. package/src/hooks/use-merged-refs.ts +4 -4
  694. package/src/hooks/use-mixed-styles.ts +14 -14
  695. package/src/hooks/use-on-click-outside.ts +77 -77
  696. package/src/hooks/use-tweak-styles.ts +57 -57
  697. package/src/index.ts +6 -6
  698. package/src/theme/Provider.tsx +21 -21
  699. package/src/theme/common.ts +175 -166
  700. package/src/theme/helpers.ts +76 -76
  701. package/src/theme/index.ts +4 -4
  702. package/src/theme/types.ts +162 -158
  703. package/src/types.ts +65 -62
  704. package/src/vite-env.d.ts +1 -1
  705. package/dist/components/Input/constants.d.ts +0 -1
  706. package/dist/components/WithPopup/helpers.d.ts +0 -2
  707. package/src/components/Input/constants.ts +0 -1
  708. package/src/components/WithPopup/helpers.ts +0 -9
@@ -1,461 +1,461 @@
1
- import { useEffect, useState, useMemo, useRef, useCallback, ReactNode } from 'react';
2
- import clsx from 'clsx';
3
- import { debounce } from 'ts-debounce';
4
- import { isArrayNotEmpty, isNotEmpty } from '@true-engineering/true-react-platform-helpers';
5
- import { addDataAttributes } from '../../helpers';
6
- import { useIsMounted, useTweakStyles } from '../../hooks';
7
- import { ICommonProps } from '../../types';
8
- import { Button } from '../Button';
9
- import { Checkbox, ICheckboxProps } from '../Checkbox';
10
- import { SearchInput } from '../SearchInput';
11
- import { ThemedPreloader } from '../ThemedPreloader';
12
- import { DEFAULT_LOCALE, MultiSelectLocales } from './constants';
13
- import { defaultConvertFunction, getLocale } from './helpers';
14
- import { IMultiSelectListValues, IMultiSelectLocale, IMultiSelectLocaleKey } from './types';
15
- import {
16
- useStyles,
17
- IMultiSelectListStyles,
18
- checkboxStyles,
19
- searchInputStyles,
20
- clearButtonStyles,
21
- } from './MultiSelectList.styles';
22
-
23
- export interface IMultiSelectListProps<Value, Option> extends ICommonProps<IMultiSelectListStyles> {
24
- value?: Value;
25
- /** @default false */
26
- isSearchEnabled?: boolean;
27
- localeKey?: IMultiSelectLocaleKey;
28
- locale?: Partial<IMultiSelectLocale>;
29
- onClose?: () => void;
30
- onChange: (val?: Value) => void;
31
- options?: Option[];
32
- fetchOptions?: (val?: string, page?: number) => Promise<Option[]>;
33
- getValueView?: (val: Option) => ReactNode;
34
- getValueId?: (val: Option) => string;
35
- getValueString?: (val: Option) => string;
36
- /** @default по умолчанию значение совпадает с isSearchEnabled */
37
- isGroupingEnabled?: boolean;
38
- /** @default 'left' */
39
- checkboxPosition?: 'left' | 'right';
40
- pageSize?: number;
41
- searchMaxLength?: number;
42
- }
43
-
44
- export function MultiSelectList<Value extends IMultiSelectListValues<Option>, Option = string>({
45
- value,
46
- tweakStyles,
47
- data,
48
- isSearchEnabled = false,
49
- localeKey = DEFAULT_LOCALE,
50
- locale = MultiSelectLocales[localeKey],
51
- onChange,
52
- onClose,
53
- options,
54
- fetchOptions,
55
- isGroupingEnabled = isSearchEnabled,
56
- getValueView = defaultConvertFunction,
57
- getValueId = defaultConvertFunction,
58
- getValueString = defaultConvertFunction,
59
- checkboxPosition = 'left',
60
- pageSize,
61
- searchMaxLength,
62
- testId,
63
- }: IMultiSelectListProps<Value, Option>): JSX.Element {
64
- const isMounted = useIsMounted();
65
- const classes = useStyles({ theme: tweakStyles });
66
-
67
- const tweakCheckboxStyles = useTweakStyles({
68
- innerStyles: checkboxStyles,
69
- tweakStyles,
70
- className: 'tweakCheckbox',
71
- currentComponentName: 'MultiSelectList',
72
- });
73
-
74
- const tweakSearchInputStyles = useTweakStyles({
75
- innerStyles: searchInputStyles,
76
- tweakStyles,
77
- className: 'tweakSearchInput',
78
- currentComponentName: 'MultiSelectList',
79
- });
80
-
81
- const tweakClearButtonStyles = useTweakStyles({
82
- innerStyles: clearButtonStyles,
83
- tweakStyles,
84
- className: 'tweakClearButton',
85
- currentComponentName: 'MultiSelectList',
86
- });
87
-
88
- const [keyCursorOn, setKeyCursorOn] = useState(0);
89
- const [searchValue, setSearchValue] = useState('');
90
- // Опции, которые получаем с бека при изменении строки поиска
91
- const [allOptions, setAllOptions] = useState<Option[]>([]);
92
-
93
- const [isLoading, setIsLoading] = useState(false);
94
- const [isLoadingOptionsOnScroll, setLoadingOptionsOnScroll] = useState(false);
95
-
96
- const [activePage, setActivePage] = useState(0);
97
- const [isMaxPage, setIsMaxPage] = useState(false);
98
-
99
- const observer = useRef<IntersectionObserver>();
100
-
101
- const chosenValues = value?.include;
102
-
103
- const translates = useMemo(() => getLocale(localeKey, locale), [localeKey, locale]);
104
- const chosenValuesIds = useMemo(() => chosenValues?.map(getValueId), [getValueId, chosenValues]);
105
-
106
- const unchosenOptions = useMemo(
107
- () => allOptions.filter((v) => !chosenValuesIds?.includes(getValueId(v))),
108
- [getValueId, allOptions, chosenValuesIds],
109
- );
110
-
111
- const handleSearchInputChange = useCallback(
112
- async (inputValue?: string) => {
113
- if (fetchOptions === undefined) {
114
- return;
115
- }
116
- setIsLoading(true);
117
-
118
- try {
119
- const response = await fetchOptions(inputValue?.trim() ?? '');
120
- if (isMounted() && response !== undefined) {
121
- setAllOptions(response);
122
- setActivePage(0);
123
- setIsMaxPage(
124
- response.length === 0 || (pageSize !== undefined && response.length < pageSize),
125
- );
126
- }
127
- } finally {
128
- if (isMounted()) {
129
- setIsLoading(false);
130
- }
131
- }
132
- },
133
- [fetchOptions, pageSize],
134
- );
135
-
136
- const changeSearchValue = useCallback(debounce(handleSearchInputChange), [
137
- handleSearchInputChange,
138
- ]);
139
-
140
- function handleOnChange(inputValue: string) {
141
- setSearchValue(inputValue);
142
-
143
- if (fetchOptions === undefined) {
144
- if (options !== undefined) {
145
- const lowerSearchValue = inputValue.toLowerCase();
146
- setAllOptions(
147
- options.filter((o) => getValueString(o).toLowerCase().includes(lowerSearchValue)),
148
- );
149
- }
150
- } else {
151
- setIsLoading(true);
152
- changeSearchValue(inputValue);
153
- }
154
- }
155
-
156
- const handleSelectValue = (val: Option[]) => {
157
- if (val.length === 0) {
158
- onChange(undefined);
159
- return;
160
- }
161
-
162
- onChange({
163
- include: val,
164
- } as Value);
165
- };
166
-
167
- const handleClear = () => {
168
- onChange(undefined);
169
- };
170
-
171
- const onSelect: ICheckboxProps<Option>['onSelect'] = ({ value: checkboxValue, isSelected }) => {
172
- if (isNotEmpty(checkboxValue)) {
173
- handleSelectValue(
174
- isSelected
175
- ? [...(chosenValues ?? []), checkboxValue]
176
- : chosenValues?.filter((v) => getValueId(v) !== getValueId(checkboxValue)) ?? [],
177
- );
178
- }
179
- };
180
-
181
- const handleKeyDown = (event: KeyboardEvent) => {
182
- // TODO: это все очень плохо работает
183
- if (event.code === 'Escape') {
184
- onChange(value);
185
- if (onClose) {
186
- onClose();
187
- }
188
- }
189
- if (event.code === 'ArrowDown') {
190
- if (keyCursorOn < unchosenOptions.length + (value?.include.length ?? 0) - 1) {
191
- setKeyCursorOn(keyCursorOn + 1);
192
- }
193
- }
194
- if (event.code === 'ArrowUp') {
195
- if (keyCursorOn >= 1) {
196
- setKeyCursorOn(keyCursorOn - 1);
197
- }
198
- }
199
- if (event.code === 'Enter') {
200
- if (
201
- unchosenOptions[keyCursorOn] === undefined &&
202
- (value === undefined || value.include.length === 0)
203
- ) {
204
- return;
205
- }
206
- if (value !== undefined) {
207
- if (keyCursorOn < value.include.length) {
208
- onChange({
209
- ...value,
210
- include:
211
- value.include.filter(
212
- (val) => getValueId(val) !== getValueId(value.include[keyCursorOn]),
213
- ) ?? [],
214
- });
215
- } else {
216
- onChange({
217
- ...value,
218
- include: [...value.include, unchosenOptions[keyCursorOn - value.include.length]],
219
- });
220
- }
221
- } else {
222
- onChange({
223
- include: [unchosenOptions[keyCursorOn]],
224
- } as Value);
225
- }
226
- }
227
- };
228
-
229
- const getIsValueChosen = (id: string) => chosenValues?.some((v) => getValueId(v) === id);
230
-
231
- const handleLoadItemsOnScroll = useCallback(
232
- async (inputValue?: string, page?: number) => {
233
- if (fetchOptions === undefined) {
234
- return;
235
- }
236
-
237
- setLoadingOptionsOnScroll(true);
238
-
239
- try {
240
- const response = await fetchOptions(inputValue ?? '', page ?? 0);
241
- if (isMounted()) {
242
- if (response.length > 0) {
243
- setAllOptions((prevState) => [...prevState, ...response]);
244
- }
245
- if (response.length === 0 || (pageSize !== undefined && response.length < pageSize)) {
246
- setIsMaxPage(true);
247
- }
248
- }
249
- } finally {
250
- if (isMounted()) {
251
- setLoadingOptionsOnScroll(false);
252
- }
253
- }
254
- },
255
- [fetchOptions, getValueId],
256
- );
257
-
258
- const initIntersectionObserver = useCallback(
259
- (node: HTMLDivElement) => {
260
- if (isLoadingOptionsOnScroll || isMaxPage) {
261
- return;
262
- }
263
-
264
- if (observer.current) {
265
- observer.current.disconnect();
266
- }
267
-
268
- observer.current = new IntersectionObserver(async (entries) => {
269
- if (entries[0].isIntersecting) {
270
- await handleLoadItemsOnScroll(searchValue, activePage + 1);
271
- if (isMounted()) {
272
- setActivePage((prevState) => prevState + 1);
273
- }
274
- }
275
- });
276
-
277
- if (node) {
278
- observer.current.observe(node);
279
- }
280
- },
281
- [activePage, handleLoadItemsOnScroll, isLoadingOptionsOnScroll, isMaxPage, searchValue],
282
- );
283
-
284
- useEffect(() => {
285
- if (fetchOptions === undefined) {
286
- setAllOptions(options ?? []);
287
- return;
288
- }
289
-
290
- const doFetchOptions = async () => {
291
- setIsLoading(true);
292
-
293
- try {
294
- const response = await fetchOptions('');
295
- if (response !== undefined && isMounted()) {
296
- if (response.length === 0 || (pageSize !== undefined && response.length < pageSize)) {
297
- setIsMaxPage(true);
298
- }
299
- setAllOptions(response);
300
- }
301
- } finally {
302
- if (isMounted()) {
303
- setIsLoading(false);
304
- }
305
- }
306
- };
307
- doFetchOptions();
308
- }, []);
309
-
310
- useEffect(() => {
311
- document.addEventListener('keydown', handleKeyDown, false);
312
-
313
- return () => {
314
- document.removeEventListener('keydown', handleKeyDown, false);
315
- };
316
- });
317
-
318
- const mainOptionsList = isGroupingEnabled ? unchosenOptions : allOptions;
319
-
320
- const hasSelectedOptionsGroup = isGroupingEnabled && isArrayNotEmpty(chosenValues);
321
-
322
- const shouldShowNothingFoundMessage = !isLoading && !isArrayNotEmpty(allOptions);
323
-
324
- const shouldShowAllOptionsLabel =
325
- hasSelectedOptionsGroup && (isArrayNotEmpty(unchosenOptions) || !isArrayNotEmpty(allOptions));
326
-
327
- const shouldShowPreloader = isLoading || isLoadingOptionsOnScroll;
328
-
329
- const shouldShowOptionsList =
330
- !isLoading && (isArrayNotEmpty(allOptions) || isArrayNotEmpty(chosenValues));
331
-
332
- return (
333
- <div className={classes.root} {...addDataAttributes(data)}>
334
- {isSearchEnabled && (
335
- <div className={classes.dropdownInput}>
336
- <SearchInput
337
- value={searchValue}
338
- placeholder={translates.searchPlaceholder}
339
- onChange={handleOnChange}
340
- tweakStyles={tweakSearchInputStyles}
341
- maxLength={searchMaxLength}
342
- testId={testId !== undefined ? `${testId}-search` : undefined}
343
- shouldFocusOnMount
344
- />
345
- </div>
346
- )}
347
- {shouldShowOptionsList && (
348
- <div
349
- className={classes.list}
350
- data-testid={testId !== undefined ? `${testId}-list` : undefined}
351
- >
352
- {/* Выбранные */}
353
- {hasSelectedOptionsGroup && (
354
- <>
355
- <div
356
- className={clsx(
357
- classes.label,
358
- classes.labelChosen,
359
- !isSearchEnabled && classes.withoutTopGap,
360
- )}
361
- >
362
- {translates.chosen}
363
- </div>
364
- {chosenValues?.map((val) => {
365
- const id = getValueId(val);
366
- const view = getValueView(val);
367
-
368
- return (
369
- <div
370
- className={clsx(
371
- classes.item,
372
- // keyCursorOn === index && classes.selectedItem,
373
- )}
374
- key={id}
375
- >
376
- <Checkbox
377
- onSelect={onSelect}
378
- isChecked
379
- value={val}
380
- tweakStyles={tweakCheckboxStyles}
381
- labelPosition={checkboxPosition === 'left' ? 'right' : 'left'}
382
- >
383
- <div className={classes.option} data-option={id}>
384
- {view}
385
- </div>
386
- </Checkbox>
387
- </div>
388
- );
389
- })}
390
- </>
391
- )}
392
-
393
- {!isLoading && (
394
- <>
395
- {/* Не выбранные (или все если нет группировки) */}
396
- {shouldShowAllOptionsLabel && <div className={classes.label}>{translates.all}</div>}
397
-
398
- {mainOptionsList.map((val, index) => {
399
- const id = getValueId(val);
400
- const view = getValueView(val);
401
-
402
- return (
403
- <div
404
- className={clsx(
405
- classes.item,
406
- // keyCursorOn === index + (value?.include.length ?? 0) &&
407
- // classes.selectedItem,
408
- )}
409
- ref={
410
- mainOptionsList.length - 1 === index ? initIntersectionObserver : undefined
411
- }
412
- key={id}
413
- >
414
- <Checkbox
415
- onSelect={onSelect}
416
- isChecked={getIsValueChosen(id)}
417
- value={val}
418
- tweakStyles={tweakCheckboxStyles}
419
- labelPosition={checkboxPosition === 'left' ? 'right' : 'left'}
420
- >
421
- <div className={classes.option} data-option={id}>
422
- {view}
423
- </div>
424
- </Checkbox>
425
- </div>
426
- );
427
- })}
428
- </>
429
- )}
430
- </div>
431
- )}
432
-
433
- {/* Preloader */}
434
- {shouldShowPreloader && (
435
- <div className={classes.preloader}>
436
- <ThemedPreloader type="dots" />
437
- </div>
438
- )}
439
-
440
- {/* Nothing found */}
441
- {shouldShowNothingFoundMessage && (
442
- <div className={classes.nothingFound}>{translates.nothingFound}</div>
443
- )}
444
-
445
- {/* Controls */}
446
- <div className={classes.panel}>
447
- <div className={classes.clear}>
448
- <Button
449
- onClick={handleClear}
450
- size="s"
451
- view="text"
452
- testId={testId !== undefined ? `${testId}-clear-button` : undefined}
453
- tweakStyles={tweakClearButtonStyles}
454
- >
455
- {translates.clear}
456
- </Button>
457
- </div>
458
- </div>
459
- </div>
460
- );
461
- }
1
+ import { useEffect, useState, useMemo, useRef, useCallback, ReactNode } from 'react';
2
+ import clsx from 'clsx';
3
+ import { debounce } from 'ts-debounce';
4
+ import { isArrayNotEmpty, isNotEmpty } from '@true-engineering/true-react-platform-helpers';
5
+ import { addDataAttributes } from '../../helpers';
6
+ import { useIsMounted, useTweakStyles } from '../../hooks';
7
+ import { ICommonProps } from '../../types';
8
+ import { Button } from '../Button';
9
+ import { Checkbox, ICheckboxProps } from '../Checkbox';
10
+ import { SearchInput } from '../SearchInput';
11
+ import { ThemedPreloader } from '../ThemedPreloader';
12
+ import { DEFAULT_LOCALE, MultiSelectLocales } from './constants';
13
+ import { defaultConvertFunction, getLocale } from './helpers';
14
+ import { IMultiSelectListValues, IMultiSelectLocale, IMultiSelectLocaleKey } from './types';
15
+ import {
16
+ useStyles,
17
+ IMultiSelectListStyles,
18
+ checkboxStyles,
19
+ searchInputStyles,
20
+ clearButtonStyles,
21
+ } from './MultiSelectList.styles';
22
+
23
+ export interface IMultiSelectListProps<Value, Option> extends ICommonProps<IMultiSelectListStyles> {
24
+ value?: Value;
25
+ /** @default false */
26
+ isSearchEnabled?: boolean;
27
+ localeKey?: IMultiSelectLocaleKey;
28
+ locale?: Partial<IMultiSelectLocale>;
29
+ onClose?: () => void;
30
+ onChange: (val?: Value) => void;
31
+ options?: Option[];
32
+ fetchOptions?: (val?: string, page?: number) => Promise<Option[]>;
33
+ getValueView?: (val: Option) => ReactNode;
34
+ getValueId?: (val: Option) => string;
35
+ getValueString?: (val: Option) => string;
36
+ /** @default по умолчанию значение совпадает с isSearchEnabled */
37
+ isGroupingEnabled?: boolean;
38
+ /** @default 'left' */
39
+ checkboxPosition?: 'left' | 'right';
40
+ pageSize?: number;
41
+ searchMaxLength?: number;
42
+ }
43
+
44
+ export function MultiSelectList<Value extends IMultiSelectListValues<Option>, Option = string>({
45
+ value,
46
+ tweakStyles,
47
+ data,
48
+ isSearchEnabled = false,
49
+ localeKey = DEFAULT_LOCALE,
50
+ locale = MultiSelectLocales[localeKey],
51
+ onChange,
52
+ onClose,
53
+ options,
54
+ fetchOptions,
55
+ isGroupingEnabled = isSearchEnabled,
56
+ getValueView = defaultConvertFunction,
57
+ getValueId = defaultConvertFunction,
58
+ getValueString = defaultConvertFunction,
59
+ checkboxPosition = 'left',
60
+ pageSize,
61
+ searchMaxLength,
62
+ testId,
63
+ }: IMultiSelectListProps<Value, Option>): JSX.Element {
64
+ const isMounted = useIsMounted();
65
+ const classes = useStyles({ theme: tweakStyles });
66
+
67
+ const tweakCheckboxStyles = useTweakStyles({
68
+ innerStyles: checkboxStyles,
69
+ tweakStyles,
70
+ className: 'tweakCheckbox',
71
+ currentComponentName: 'MultiSelectList',
72
+ });
73
+
74
+ const tweakSearchInputStyles = useTweakStyles({
75
+ innerStyles: searchInputStyles,
76
+ tweakStyles,
77
+ className: 'tweakSearchInput',
78
+ currentComponentName: 'MultiSelectList',
79
+ });
80
+
81
+ const tweakClearButtonStyles = useTweakStyles({
82
+ innerStyles: clearButtonStyles,
83
+ tweakStyles,
84
+ className: 'tweakClearButton',
85
+ currentComponentName: 'MultiSelectList',
86
+ });
87
+
88
+ const [keyCursorOn, setKeyCursorOn] = useState(0);
89
+ const [searchValue, setSearchValue] = useState('');
90
+ // Опции, которые получаем с бека при изменении строки поиска
91
+ const [allOptions, setAllOptions] = useState<Option[]>([]);
92
+
93
+ const [isLoading, setIsLoading] = useState(false);
94
+ const [isLoadingOptionsOnScroll, setLoadingOptionsOnScroll] = useState(false);
95
+
96
+ const [activePage, setActivePage] = useState(0);
97
+ const [isMaxPage, setIsMaxPage] = useState(false);
98
+
99
+ const observer = useRef<IntersectionObserver>();
100
+
101
+ const chosenValues = value?.include;
102
+
103
+ const translates = useMemo(() => getLocale(localeKey, locale), [localeKey, locale]);
104
+ const chosenValuesIds = useMemo(() => chosenValues?.map(getValueId), [getValueId, chosenValues]);
105
+
106
+ const unchosenOptions = useMemo(
107
+ () => allOptions.filter((v) => !chosenValuesIds?.includes(getValueId(v))),
108
+ [getValueId, allOptions, chosenValuesIds],
109
+ );
110
+
111
+ const handleSearchInputChange = useCallback(
112
+ async (inputValue?: string) => {
113
+ if (fetchOptions === undefined) {
114
+ return;
115
+ }
116
+ setIsLoading(true);
117
+
118
+ try {
119
+ const response = await fetchOptions(inputValue?.trim() ?? '');
120
+ if (isMounted() && response !== undefined) {
121
+ setAllOptions(response);
122
+ setActivePage(0);
123
+ setIsMaxPage(
124
+ response.length === 0 || (pageSize !== undefined && response.length < pageSize),
125
+ );
126
+ }
127
+ } finally {
128
+ if (isMounted()) {
129
+ setIsLoading(false);
130
+ }
131
+ }
132
+ },
133
+ [fetchOptions, pageSize],
134
+ );
135
+
136
+ const changeSearchValue = useCallback(debounce(handleSearchInputChange), [
137
+ handleSearchInputChange,
138
+ ]);
139
+
140
+ function handleOnChange(inputValue: string) {
141
+ setSearchValue(inputValue);
142
+
143
+ if (fetchOptions === undefined) {
144
+ if (options !== undefined) {
145
+ const lowerSearchValue = inputValue.toLowerCase();
146
+ setAllOptions(
147
+ options.filter((o) => getValueString(o).toLowerCase().includes(lowerSearchValue)),
148
+ );
149
+ }
150
+ } else {
151
+ setIsLoading(true);
152
+ changeSearchValue(inputValue);
153
+ }
154
+ }
155
+
156
+ const handleSelectValue = (val: Option[]) => {
157
+ if (val.length === 0) {
158
+ onChange(undefined);
159
+ return;
160
+ }
161
+
162
+ onChange({
163
+ include: val,
164
+ } as Value);
165
+ };
166
+
167
+ const handleClear = () => {
168
+ onChange(undefined);
169
+ };
170
+
171
+ const onSelect: ICheckboxProps<Option>['onSelect'] = ({ value: checkboxValue, isSelected }) => {
172
+ if (isNotEmpty(checkboxValue)) {
173
+ handleSelectValue(
174
+ isSelected
175
+ ? [...(chosenValues ?? []), checkboxValue]
176
+ : chosenValues?.filter((v) => getValueId(v) !== getValueId(checkboxValue)) ?? [],
177
+ );
178
+ }
179
+ };
180
+
181
+ const handleKeyDown = (event: KeyboardEvent) => {
182
+ // TODO: это все очень плохо работает
183
+ if (event.code === 'Escape') {
184
+ onChange(value);
185
+ if (onClose) {
186
+ onClose();
187
+ }
188
+ }
189
+ if (event.code === 'ArrowDown') {
190
+ if (keyCursorOn < unchosenOptions.length + (value?.include.length ?? 0) - 1) {
191
+ setKeyCursorOn(keyCursorOn + 1);
192
+ }
193
+ }
194
+ if (event.code === 'ArrowUp') {
195
+ if (keyCursorOn >= 1) {
196
+ setKeyCursorOn(keyCursorOn - 1);
197
+ }
198
+ }
199
+ if (event.code === 'Enter') {
200
+ if (
201
+ unchosenOptions[keyCursorOn] === undefined &&
202
+ (value === undefined || value.include.length === 0)
203
+ ) {
204
+ return;
205
+ }
206
+ if (value !== undefined) {
207
+ if (keyCursorOn < value.include.length) {
208
+ onChange({
209
+ ...value,
210
+ include:
211
+ value.include.filter(
212
+ (val) => getValueId(val) !== getValueId(value.include[keyCursorOn]),
213
+ ) ?? [],
214
+ });
215
+ } else {
216
+ onChange({
217
+ ...value,
218
+ include: [...value.include, unchosenOptions[keyCursorOn - value.include.length]],
219
+ });
220
+ }
221
+ } else {
222
+ onChange({
223
+ include: [unchosenOptions[keyCursorOn]],
224
+ } as Value);
225
+ }
226
+ }
227
+ };
228
+
229
+ const getIsValueChosen = (id: string) => chosenValues?.some((v) => getValueId(v) === id);
230
+
231
+ const handleLoadItemsOnScroll = useCallback(
232
+ async (inputValue?: string, page?: number) => {
233
+ if (fetchOptions === undefined) {
234
+ return;
235
+ }
236
+
237
+ setLoadingOptionsOnScroll(true);
238
+
239
+ try {
240
+ const response = await fetchOptions(inputValue ?? '', page ?? 0);
241
+ if (isMounted()) {
242
+ if (response.length > 0) {
243
+ setAllOptions((prevState) => [...prevState, ...response]);
244
+ }
245
+ if (response.length === 0 || (pageSize !== undefined && response.length < pageSize)) {
246
+ setIsMaxPage(true);
247
+ }
248
+ }
249
+ } finally {
250
+ if (isMounted()) {
251
+ setLoadingOptionsOnScroll(false);
252
+ }
253
+ }
254
+ },
255
+ [fetchOptions, getValueId],
256
+ );
257
+
258
+ const initIntersectionObserver = useCallback(
259
+ (node: HTMLDivElement) => {
260
+ if (isLoadingOptionsOnScroll || isMaxPage) {
261
+ return;
262
+ }
263
+
264
+ if (observer.current) {
265
+ observer.current.disconnect();
266
+ }
267
+
268
+ observer.current = new IntersectionObserver(async (entries) => {
269
+ if (entries[0].isIntersecting) {
270
+ await handleLoadItemsOnScroll(searchValue, activePage + 1);
271
+ if (isMounted()) {
272
+ setActivePage((prevState) => prevState + 1);
273
+ }
274
+ }
275
+ });
276
+
277
+ if (node) {
278
+ observer.current.observe(node);
279
+ }
280
+ },
281
+ [activePage, handleLoadItemsOnScroll, isLoadingOptionsOnScroll, isMaxPage, searchValue],
282
+ );
283
+
284
+ useEffect(() => {
285
+ if (fetchOptions === undefined) {
286
+ setAllOptions(options ?? []);
287
+ return;
288
+ }
289
+
290
+ const doFetchOptions = async () => {
291
+ setIsLoading(true);
292
+
293
+ try {
294
+ const response = await fetchOptions('');
295
+ if (response !== undefined && isMounted()) {
296
+ if (response.length === 0 || (pageSize !== undefined && response.length < pageSize)) {
297
+ setIsMaxPage(true);
298
+ }
299
+ setAllOptions(response);
300
+ }
301
+ } finally {
302
+ if (isMounted()) {
303
+ setIsLoading(false);
304
+ }
305
+ }
306
+ };
307
+ doFetchOptions();
308
+ }, []);
309
+
310
+ useEffect(() => {
311
+ document.addEventListener('keydown', handleKeyDown, false);
312
+
313
+ return () => {
314
+ document.removeEventListener('keydown', handleKeyDown, false);
315
+ };
316
+ });
317
+
318
+ const mainOptionsList = isGroupingEnabled ? unchosenOptions : allOptions;
319
+
320
+ const hasSelectedOptionsGroup = isGroupingEnabled && isArrayNotEmpty(chosenValues);
321
+
322
+ const shouldShowNothingFoundMessage = !isLoading && !isArrayNotEmpty(allOptions);
323
+
324
+ const shouldShowAllOptionsLabel =
325
+ hasSelectedOptionsGroup && (isArrayNotEmpty(unchosenOptions) || !isArrayNotEmpty(allOptions));
326
+
327
+ const shouldShowPreloader = isLoading || isLoadingOptionsOnScroll;
328
+
329
+ const shouldShowOptionsList =
330
+ !isLoading && (isArrayNotEmpty(allOptions) || isArrayNotEmpty(chosenValues));
331
+
332
+ return (
333
+ <div className={classes.root} {...addDataAttributes(data)}>
334
+ {isSearchEnabled && (
335
+ <div className={classes.dropdownInput}>
336
+ <SearchInput
337
+ value={searchValue}
338
+ placeholder={translates.searchPlaceholder}
339
+ onChange={handleOnChange}
340
+ tweakStyles={tweakSearchInputStyles}
341
+ maxLength={searchMaxLength}
342
+ testId={testId !== undefined ? `${testId}-search` : undefined}
343
+ shouldFocusOnMount
344
+ />
345
+ </div>
346
+ )}
347
+ {shouldShowOptionsList && (
348
+ <div
349
+ className={classes.list}
350
+ data-testid={testId !== undefined ? `${testId}-list` : undefined}
351
+ >
352
+ {/* Выбранные */}
353
+ {hasSelectedOptionsGroup && (
354
+ <>
355
+ <div
356
+ className={clsx(
357
+ classes.label,
358
+ classes.labelChosen,
359
+ !isSearchEnabled && classes.withoutTopGap,
360
+ )}
361
+ >
362
+ {translates.chosen}
363
+ </div>
364
+ {chosenValues?.map((val) => {
365
+ const id = getValueId(val);
366
+ const view = getValueView(val);
367
+
368
+ return (
369
+ <div
370
+ className={clsx(
371
+ classes.item,
372
+ // keyCursorOn === index && classes.selectedItem,
373
+ )}
374
+ key={id}
375
+ >
376
+ <Checkbox
377
+ onSelect={onSelect}
378
+ isChecked
379
+ value={val}
380
+ tweakStyles={tweakCheckboxStyles}
381
+ labelPosition={checkboxPosition === 'left' ? 'right' : 'left'}
382
+ >
383
+ <div className={classes.option} data-option={id}>
384
+ {view}
385
+ </div>
386
+ </Checkbox>
387
+ </div>
388
+ );
389
+ })}
390
+ </>
391
+ )}
392
+
393
+ {!isLoading && (
394
+ <>
395
+ {/* Не выбранные (или все если нет группировки) */}
396
+ {shouldShowAllOptionsLabel && <div className={classes.label}>{translates.all}</div>}
397
+
398
+ {mainOptionsList.map((val, index) => {
399
+ const id = getValueId(val);
400
+ const view = getValueView(val);
401
+
402
+ return (
403
+ <div
404
+ className={clsx(
405
+ classes.item,
406
+ // keyCursorOn === index + (value?.include.length ?? 0) &&
407
+ // classes.selectedItem,
408
+ )}
409
+ ref={
410
+ mainOptionsList.length - 1 === index ? initIntersectionObserver : undefined
411
+ }
412
+ key={id}
413
+ >
414
+ <Checkbox
415
+ onSelect={onSelect}
416
+ isChecked={getIsValueChosen(id)}
417
+ value={val}
418
+ tweakStyles={tweakCheckboxStyles}
419
+ labelPosition={checkboxPosition === 'left' ? 'right' : 'left'}
420
+ >
421
+ <div className={classes.option} data-option={id}>
422
+ {view}
423
+ </div>
424
+ </Checkbox>
425
+ </div>
426
+ );
427
+ })}
428
+ </>
429
+ )}
430
+ </div>
431
+ )}
432
+
433
+ {/* Preloader */}
434
+ {shouldShowPreloader && (
435
+ <div className={classes.preloader}>
436
+ <ThemedPreloader type="dots" />
437
+ </div>
438
+ )}
439
+
440
+ {/* Nothing found */}
441
+ {shouldShowNothingFoundMessage && (
442
+ <div className={classes.nothingFound}>{translates.nothingFound}</div>
443
+ )}
444
+
445
+ {/* Controls */}
446
+ <div className={classes.panel}>
447
+ <div className={classes.clear}>
448
+ <Button
449
+ onClick={handleClear}
450
+ size="s"
451
+ view="text"
452
+ testId={testId !== undefined ? `${testId}-clear-button` : undefined}
453
+ tweakStyles={tweakClearButtonStyles}
454
+ >
455
+ {translates.clear}
456
+ </Button>
457
+ </div>
458
+ </div>
459
+ </div>
460
+ );
461
+ }