@megafon/ui-core 6.0.0-beta.4 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (513) hide show
  1. package/CHANGELOG.md +4008 -0
  2. package/dist/es/colors/ColorItem/ColorItem.css +45 -1
  3. package/dist/es/colors/ColorItem/ColorItem.d.ts +2 -2
  4. package/dist/es/colors/ColorItem/ColorItem.js +7 -5
  5. package/dist/es/colors/Colors.css +233 -1
  6. package/dist/es/colors/Colors.d.ts +1 -1
  7. package/dist/es/colors/Colors.js +55 -33
  8. package/dist/es/colors/colorsData.d.ts +4 -4
  9. package/dist/es/components/Accordion/Accordion.css +89 -1
  10. package/dist/es/components/Accordion/Accordion.d.ts +1 -2
  11. package/dist/es/components/Accordion/Accordion.js +65 -22
  12. package/dist/es/components/Avatar/Avatar.css +52 -1
  13. package/dist/es/components/Avatar/Avatar.d.ts +1 -1
  14. package/dist/es/components/Avatar/Avatar.js +27 -9
  15. package/dist/es/components/Avatar/doc/i/img.png +0 -0
  16. package/dist/es/components/Badges/components/CounterBadge/CounterBadge.css +54 -0
  17. package/dist/es/components/Badges/{CounterBadge → components/CounterBadge}/CounterBadge.d.ts +2 -2
  18. package/dist/es/components/Badges/{CounterBadge → components/CounterBadge}/CounterBadge.js +28 -10
  19. package/dist/es/components/Badges/components/NotificationBadge/NotificationBadge.css +58 -0
  20. package/dist/es/components/Badges/{NotificationBadge → components/NotificationBadge}/NotificationBadge.d.ts +4 -3
  21. package/dist/es/components/Badges/components/NotificationBadge/NotificationBadge.js +49 -0
  22. package/dist/es/components/Badges/components/PriceBadge/PriceBadge.css +119 -0
  23. package/dist/es/components/Badges/{PriceBadge → components/PriceBadge}/PriceBadge.d.ts +4 -4
  24. package/dist/es/components/Badges/{PriceBadge → components/PriceBadge}/PriceBadge.js +54 -11
  25. package/dist/es/components/Badges/components/PromoBadge/PromoBadge.css +64 -0
  26. package/dist/{lib/components/Badges → es/components/Badges/components}/PromoBadge/PromoBadge.d.ts +3 -3
  27. package/dist/es/components/Badges/{PromoBadge → components/PromoBadge}/PromoBadge.js +21 -7
  28. package/dist/es/components/Badges/{TimerBadge/components → components/TimerBadge}/Timer/Timer.js +32 -5
  29. package/dist/es/components/Badges/components/TimerBadge/TimerBadge.css +60 -0
  30. package/dist/{lib/components/Badges → es/components/Badges/components}/TimerBadge/TimerBadge.d.ts +2 -2
  31. package/dist/es/components/Badges/{TimerBadge → components/TimerBadge}/TimerBadge.js +45 -22
  32. package/dist/es/components/Banner/Banner.css +195 -1
  33. package/dist/es/components/Banner/Banner.d.ts +4 -5
  34. package/dist/es/components/Banner/Banner.js +129 -64
  35. package/dist/es/components/Banner/BannerDot.css +69 -1
  36. package/dist/es/components/Banner/BannerDot.d.ts +1 -1
  37. package/dist/es/components/Banner/BannerDot.js +22 -6
  38. package/dist/es/components/Banner/slidesSettings.d.ts +2 -4
  39. package/dist/es/components/Banner/slidesSettings.js +6 -3
  40. package/dist/es/components/Button/Button.css +814 -1
  41. package/dist/es/components/Button/Button.d.ts +6 -7
  42. package/dist/es/components/Button/Button.js +104 -44
  43. package/dist/es/components/Calendar/Calendar.css +5 -1
  44. package/dist/es/components/Calendar/Calendar.d.ts +2 -2
  45. package/dist/es/components/Calendar/Calendar.js +114 -60
  46. package/dist/es/components/Calendar/components/Day/Day.css +128 -0
  47. package/dist/{lib/components/Calendar/components/_Day → es/components/Calendar/components/Day}/Day.d.ts +4 -4
  48. package/dist/es/components/Calendar/components/{_Day → Day}/Day.js +50 -19
  49. package/dist/es/components/Calendar/components/Month/Month.css +81 -0
  50. package/dist/es/components/Calendar/components/{_Month → Month}/Month.d.ts +2 -3
  51. package/dist/es/components/Calendar/components/{_Month → Month}/Month.js +33 -9
  52. package/dist/es/components/Caption/Caption.css +48 -1
  53. package/dist/es/components/Caption/Caption.d.ts +2 -4
  54. package/dist/es/components/Caption/Caption.js +25 -11
  55. package/dist/es/components/Carousel/Carousel.css +215 -1
  56. package/dist/es/components/Carousel/Carousel.d.ts +10 -11
  57. package/dist/es/components/Carousel/Carousel.js +161 -104
  58. package/dist/es/components/Carousel/checkBreakpointsPropTypes.d.ts +1 -1
  59. package/dist/es/components/Carousel/checkBreakpointsPropTypes.js +4 -1
  60. package/dist/es/components/Carousel/useGradient.d.ts +1 -1
  61. package/dist/es/components/Carousel/useGradient.js +13 -9
  62. package/dist/es/components/Checkbox/Checkbox.css +150 -1
  63. package/dist/es/components/Checkbox/Checkbox.d.ts +4 -4
  64. package/dist/es/components/Checkbox/Checkbox.js +50 -21
  65. package/dist/es/components/Chips/Chip.css +132 -1
  66. package/dist/es/components/Chips/Chip.d.ts +26 -6
  67. package/dist/es/components/Chips/Chip.js +42 -17
  68. package/dist/es/components/Chips/Chips.css +19 -1
  69. package/dist/es/components/Chips/Chips.d.ts +2 -2
  70. package/dist/es/components/Chips/Chips.js +56 -32
  71. package/dist/es/components/Chips/components/ChipsDropdown.css +106 -1
  72. package/dist/es/components/Chips/components/ChipsDropdown.d.ts +2 -2
  73. package/dist/es/components/Chips/components/ChipsDropdown.js +27 -12
  74. package/dist/es/components/Collapse/Collapse.css +3 -0
  75. package/dist/{lib/components/_Collapse → es/components/Collapse}/Collapse.d.ts +3 -3
  76. package/dist/es/components/{_Collapse → Collapse}/Collapse.js +62 -25
  77. package/dist/es/components/ContentArea/ContentArea.css +109 -1
  78. package/dist/es/components/ContentArea/ContentArea.d.ts +4 -5
  79. package/dist/es/components/ContentArea/ContentArea.js +28 -9
  80. package/dist/es/components/ContentView/ContentView.css +103 -1
  81. package/dist/es/components/ContentView/ContentView.d.ts +2 -3
  82. package/dist/es/components/ContentView/ContentView.js +46 -12
  83. package/dist/es/components/Counter/Counter.css +123 -1
  84. package/dist/es/components/Counter/Counter.d.ts +1 -1
  85. package/dist/es/components/Counter/Counter.js +55 -20
  86. package/dist/es/components/Grid/Grid.css +102 -1
  87. package/dist/es/components/Grid/Grid.d.ts +1 -1
  88. package/dist/es/components/Grid/Grid.js +24 -8
  89. package/dist/es/components/Grid/GridColumn.css +3102 -1
  90. package/dist/es/components/Grid/GridColumn.d.ts +2 -2
  91. package/dist/es/components/Grid/GridColumn.js +62 -33
  92. package/dist/es/components/Header/Header.css +122 -1
  93. package/dist/es/components/Header/Header.d.ts +1 -3
  94. package/dist/es/components/Header/Header.js +28 -13
  95. package/dist/es/components/Link/Link.d.ts +2 -2
  96. package/dist/es/components/Link/Link.js +25 -9
  97. package/dist/es/components/List/List.css +66 -1
  98. package/dist/es/components/List/List.d.ts +1 -2
  99. package/dist/es/components/List/List.js +18 -8
  100. package/dist/es/components/List/ListItem.css +6 -1
  101. package/dist/es/components/List/ListItem.d.ts +1 -2
  102. package/dist/es/components/List/ListItem.js +7 -1
  103. package/dist/es/components/ListData/ListData.css +162 -1
  104. package/dist/es/components/ListData/ListData.d.ts +34 -6
  105. package/dist/es/components/ListData/ListData.js +65 -22
  106. package/dist/es/components/ListData/ListDataGroup.css +15 -1
  107. package/dist/es/components/ListData/ListDataGroup.d.ts +4 -4
  108. package/dist/es/components/ListData/ListDataGroup.js +74 -29
  109. package/dist/es/components/ListData/components/ListDataSortable.css +79 -1
  110. package/dist/es/components/ListData/components/ListDataSortable.d.ts +4 -4
  111. package/dist/es/components/ListData/components/ListDataSortable.js +42 -21
  112. package/dist/es/components/ListData/doc/i/img.png +0 -0
  113. package/dist/es/components/ListData/helpers.js +8 -1
  114. package/dist/es/components/Logo/Logo.css +43 -1
  115. package/dist/es/components/Logo/Logo.d.ts +1 -1
  116. package/dist/es/components/Logo/Logo.js +25 -9
  117. package/dist/es/components/NavArrow/NavArrow.css +63 -1
  118. package/dist/es/components/NavArrow/NavArrow.d.ts +3 -3
  119. package/dist/es/components/NavArrow/NavArrow.js +28 -8
  120. package/dist/es/components/Notification/Notification.css +350 -1
  121. package/dist/es/components/Notification/Notification.d.ts +4 -5
  122. package/dist/es/components/Notification/Notification.js +131 -61
  123. package/dist/es/components/Pagination/Pagination.css +5 -1
  124. package/dist/es/components/Pagination/Pagination.d.ts +3 -4
  125. package/dist/es/components/Pagination/Pagination.js +22 -7
  126. package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.css +62 -1
  127. package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.d.ts +4 -5
  128. package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.js +26 -10
  129. package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.css +10 -1
  130. package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.d.ts +2 -3
  131. package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.js +22 -5
  132. package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.css +17 -1
  133. package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.d.ts +2 -3
  134. package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.js +23 -7
  135. package/dist/es/components/Pagination/helpers.js +3 -0
  136. package/dist/es/components/Pagination/usePagination.d.ts +1 -2
  137. package/dist/es/components/Pagination/usePagination.js +18 -6
  138. package/dist/es/components/Paragraph/Paragraph.css +43 -1
  139. package/dist/es/components/Paragraph/Paragraph.d.ts +2 -4
  140. package/dist/es/components/Paragraph/Paragraph.js +22 -9
  141. package/dist/es/components/Preloader/Preloader.css +224 -1
  142. package/dist/es/components/Preloader/Preloader.d.ts +3 -3
  143. package/dist/es/components/Preloader/Preloader.js +36 -16
  144. package/dist/es/components/RadioButton/RadioButton.css +120 -1
  145. package/dist/es/components/RadioButton/RadioButton.d.ts +1 -1
  146. package/dist/es/components/RadioButton/RadioButton.js +50 -18
  147. package/dist/es/components/Row/Row.css +238 -1
  148. package/dist/es/components/Row/Row.d.ts +2 -2
  149. package/dist/es/components/Row/Row.js +48 -23
  150. package/dist/es/components/Search/Search.css +453 -1
  151. package/dist/es/components/Search/Search.d.ts +8 -7
  152. package/dist/es/components/Search/Search.js +149 -54
  153. package/dist/es/components/Select/Select.css +389 -1
  154. package/dist/es/components/Select/Select.d.ts +84 -8
  155. package/dist/es/components/Select/Select.js +142 -52
  156. package/dist/es/components/Select/reducer/selectReducer.d.ts +1 -1
  157. package/dist/es/components/Select/reducer/selectReducer.js +32 -18
  158. package/dist/es/components/Selector/Selector.css +132 -1
  159. package/dist/es/components/Selector/Selector.d.ts +1 -1
  160. package/dist/es/components/Selector/Selector.js +50 -23
  161. package/dist/es/components/Selector/doc/Selector.example.css +17 -0
  162. package/dist/es/components/Sliders/Slider/Slider.css +128 -1
  163. package/dist/es/components/Sliders/Slider/Slider.d.ts +1 -1
  164. package/dist/es/components/Sliders/Slider/Slider.js +56 -25
  165. package/dist/es/components/Sliders/SliderRange/SliderRange.css +169 -1
  166. package/dist/es/components/Sliders/SliderRange/SliderRange.d.ts +1 -1
  167. package/dist/es/components/Sliders/SliderRange/SliderRange.js +80 -33
  168. package/dist/es/components/Sliders/SliderRange/helpers.js +2 -0
  169. package/dist/es/components/Sliders/SliderRatio/SliderRatio.css +219 -1
  170. package/dist/es/components/Sliders/SliderRatio/SliderRatio.d.ts +1 -1
  171. package/dist/es/components/Sliders/SliderRatio/SliderRatio.js +85 -36
  172. package/dist/es/components/Sliders/SliderRatio/helpers.js +1 -1
  173. package/dist/es/components/Sliders/SliderRatio/types.d.ts +1 -1
  174. package/dist/es/components/Sliders/SliderRatio/types.js +1 -0
  175. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.css +84 -1
  176. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.d.ts +2 -2
  177. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.js +35 -11
  178. package/dist/es/components/Sliders/components/SliderScale/SliderScale.css +15 -1
  179. package/dist/es/components/Sliders/components/SliderScale/SliderScale.d.ts +2 -2
  180. package/dist/es/components/Sliders/components/SliderScale/SliderScale.js +20 -6
  181. package/dist/es/components/Sliders/components/SliderScale/helpers.js +16 -12
  182. package/dist/es/components/Sliders/helpers.js +5 -1
  183. package/dist/es/components/Snackbar/Snackbar.css +220 -1
  184. package/dist/es/components/Snackbar/Snackbar.d.ts +3 -3
  185. package/dist/es/components/Snackbar/Snackbar.js +82 -44
  186. package/dist/es/components/Snackbar/SnackbarTimer/SnackbarTimer.css +66 -1
  187. package/dist/es/components/Snackbar/SnackbarTimer/SnackbarTimer.d.ts +3 -3
  188. package/dist/es/components/Snackbar/SnackbarTimer/SnackbarTimer.js +17 -9
  189. package/dist/es/components/Switcher/Switcher.css +160 -1
  190. package/dist/es/components/Switcher/Switcher.d.ts +1 -2
  191. package/dist/es/components/Switcher/Switcher.js +39 -17
  192. package/dist/es/components/Tabs/Tab.d.ts +6 -0
  193. package/dist/es/components/Tabs/Tab.js +14 -0
  194. package/dist/es/components/Tabs/Tabs.css +306 -1
  195. package/dist/es/components/Tabs/Tabs.d.ts +5 -6
  196. package/dist/es/components/Tabs/Tabs.js +177 -87
  197. package/dist/es/components/TextField/TextField.css +343 -1
  198. package/dist/es/components/TextField/TextField.d.ts +3 -3
  199. package/dist/es/components/TextField/TextField.js +188 -80
  200. package/dist/es/components/TextField/utils/countGraphemes.js +18 -10
  201. package/dist/es/components/TextLink/TextLink.css +50 -1
  202. package/dist/es/components/TextLink/TextLink.d.ts +2 -2
  203. package/dist/es/components/TextLink/TextLink.js +27 -14
  204. package/dist/es/components/Tile/Tile.css +43 -1
  205. package/dist/es/components/Tile/Tile.d.ts +5 -7
  206. package/dist/es/components/Tile/Tile.js +36 -16
  207. package/dist/es/components/Tooltip/Tooltip.css +335 -1
  208. package/dist/es/components/Tooltip/Tooltip.d.ts +8 -9
  209. package/dist/es/components/Tooltip/Tooltip.js +139 -58
  210. package/dist/es/hooks/usePrevious.js +2 -0
  211. package/dist/es/hooks/useResolution.d.ts +1 -1
  212. package/dist/es/hooks/useResolution.js +11 -5
  213. package/dist/es/hooks/useSwipe.d.ts +1 -1
  214. package/dist/es/hooks/useSwipe.js +44 -17
  215. package/dist/es/index.d.ts +9 -16
  216. package/dist/es/index.js +10 -17
  217. package/dist/lib/colors/ColorItem/ColorItem.css +45 -1
  218. package/dist/lib/colors/ColorItem/ColorItem.d.ts +2 -2
  219. package/dist/lib/colors/ColorItem/ColorItem.js +18 -9
  220. package/dist/lib/colors/Colors.css +233 -1
  221. package/dist/lib/colors/Colors.d.ts +1 -1
  222. package/dist/lib/colors/Colors.js +79 -37
  223. package/dist/lib/colors/colorsData.d.ts +4 -4
  224. package/dist/lib/colors/colorsData.js +2 -1
  225. package/dist/lib/components/Accordion/Accordion.css +89 -1
  226. package/dist/lib/components/Accordion/Accordion.d.ts +1 -2
  227. package/dist/lib/components/Accordion/Accordion.js +81 -26
  228. package/dist/lib/components/Avatar/Avatar.css +52 -1
  229. package/dist/lib/components/Avatar/Avatar.d.ts +1 -1
  230. package/dist/lib/components/Avatar/Avatar.js +41 -13
  231. package/dist/lib/components/Avatar/doc/i/img.png +0 -0
  232. package/dist/lib/components/Badges/components/CounterBadge/CounterBadge.css +54 -0
  233. package/dist/lib/components/Badges/{CounterBadge → components/CounterBadge}/CounterBadge.d.ts +2 -2
  234. package/dist/lib/components/Badges/components/CounterBadge/CounterBadge.js +81 -0
  235. package/dist/lib/components/Badges/components/NotificationBadge/NotificationBadge.css +58 -0
  236. package/dist/lib/components/Badges/{NotificationBadge → components/NotificationBadge}/NotificationBadge.d.ts +4 -3
  237. package/dist/lib/components/Badges/components/NotificationBadge/NotificationBadge.js +71 -0
  238. package/dist/lib/components/Badges/components/PriceBadge/PriceBadge.css +119 -0
  239. package/dist/lib/components/Badges/{PriceBadge → components/PriceBadge}/PriceBadge.d.ts +4 -4
  240. package/dist/lib/components/Badges/{PriceBadge → components/PriceBadge}/PriceBadge.js +75 -19
  241. package/dist/lib/components/Badges/components/PromoBadge/PromoBadge.css +64 -0
  242. package/dist/{es/components/Badges → lib/components/Badges/components}/PromoBadge/PromoBadge.d.ts +3 -3
  243. package/dist/lib/components/Badges/components/PromoBadge/PromoBadge.js +76 -0
  244. package/dist/lib/components/Badges/{TimerBadge/components → components/TimerBadge}/Timer/Timer.js +55 -11
  245. package/dist/lib/components/Badges/components/TimerBadge/TimerBadge.css +60 -0
  246. package/dist/{es/components/Badges → lib/components/Badges/components}/TimerBadge/TimerBadge.d.ts +2 -2
  247. package/dist/lib/components/Badges/components/TimerBadge/TimerBadge.js +135 -0
  248. package/dist/lib/components/Banner/Banner.css +195 -1
  249. package/dist/lib/components/Banner/Banner.d.ts +4 -5
  250. package/dist/lib/components/Banner/Banner.js +160 -72
  251. package/dist/lib/components/Banner/BannerDot.css +69 -1
  252. package/dist/lib/components/Banner/BannerDot.d.ts +1 -1
  253. package/dist/lib/components/Banner/BannerDot.js +36 -10
  254. package/dist/lib/components/Banner/slidesSettings.d.ts +2 -4
  255. package/dist/lib/components/Banner/slidesSettings.js +11 -4
  256. package/dist/lib/components/Button/Button.css +814 -1
  257. package/dist/lib/components/Button/Button.d.ts +6 -7
  258. package/dist/lib/components/Button/Button.js +157 -70
  259. package/dist/lib/components/Calendar/Calendar.css +5 -1
  260. package/dist/lib/components/Calendar/Calendar.d.ts +2 -2
  261. package/dist/lib/components/Calendar/Calendar.js +148 -70
  262. package/dist/lib/components/Calendar/components/Day/Day.css +128 -0
  263. package/dist/{es/components/Calendar/components/_Day → lib/components/Calendar/components/Day}/Day.d.ts +4 -4
  264. package/dist/lib/components/Calendar/components/Day/Day.js +117 -0
  265. package/dist/lib/components/Calendar/components/Month/Month.css +81 -0
  266. package/dist/lib/components/Calendar/components/{_Month → Month}/Month.d.ts +2 -3
  267. package/dist/lib/components/Calendar/components/Month/Month.js +122 -0
  268. package/dist/lib/components/Caption/Caption.css +48 -1
  269. package/dist/lib/components/Caption/Caption.d.ts +2 -4
  270. package/dist/lib/components/Caption/Caption.js +40 -15
  271. package/dist/lib/components/Carousel/Carousel.css +215 -1
  272. package/dist/lib/components/Carousel/Carousel.d.ts +10 -11
  273. package/dist/lib/components/Carousel/Carousel.js +226 -195
  274. package/dist/lib/components/Carousel/checkBreakpointsPropTypes.d.ts +1 -1
  275. package/dist/lib/components/Carousel/checkBreakpointsPropTypes.js +17 -5
  276. package/dist/lib/components/Carousel/useGradient.d.ts +1 -1
  277. package/dist/lib/components/Carousel/useGradient.js +24 -11
  278. package/dist/lib/components/Checkbox/Checkbox.css +150 -1
  279. package/dist/lib/components/Checkbox/Checkbox.d.ts +4 -4
  280. package/dist/lib/components/Checkbox/Checkbox.js +74 -34
  281. package/dist/lib/components/Chips/Chip.css +132 -1
  282. package/dist/lib/components/Chips/Chip.d.ts +26 -6
  283. package/dist/lib/components/Chips/Chip.js +75 -35
  284. package/dist/lib/components/Chips/Chips.css +19 -1
  285. package/dist/lib/components/Chips/Chips.d.ts +2 -2
  286. package/dist/lib/components/Chips/Chips.js +91 -46
  287. package/dist/lib/components/Chips/components/ChipsDropdown.css +106 -1
  288. package/dist/lib/components/Chips/components/ChipsDropdown.d.ts +2 -2
  289. package/dist/lib/components/Chips/components/ChipsDropdown.js +66 -30
  290. package/dist/lib/components/Collapse/Collapse.css +3 -0
  291. package/dist/{es/components/_Collapse → lib/components/Collapse}/Collapse.d.ts +3 -3
  292. package/dist/lib/components/Collapse/Collapse.js +141 -0
  293. package/dist/lib/components/ContentArea/ContentArea.css +109 -1
  294. package/dist/lib/components/ContentArea/ContentArea.d.ts +4 -5
  295. package/dist/lib/components/ContentArea/ContentArea.js +43 -13
  296. package/dist/lib/components/ContentView/ContentView.css +103 -1
  297. package/dist/lib/components/ContentView/ContentView.d.ts +2 -3
  298. package/dist/lib/components/ContentView/ContentView.js +62 -16
  299. package/dist/lib/components/Counter/Counter.css +123 -1
  300. package/dist/lib/components/Counter/Counter.d.ts +1 -1
  301. package/dist/lib/components/Counter/Counter.js +70 -24
  302. package/dist/lib/components/Grid/Grid.css +102 -1
  303. package/dist/lib/components/Grid/Grid.d.ts +1 -1
  304. package/dist/lib/components/Grid/Grid.js +39 -12
  305. package/dist/lib/components/Grid/GridColumn.css +3102 -1
  306. package/dist/lib/components/Grid/GridColumn.d.ts +2 -2
  307. package/dist/lib/components/Grid/GridColumn.js +76 -37
  308. package/dist/lib/components/Header/Header.css +122 -1
  309. package/dist/lib/components/Header/Header.d.ts +1 -3
  310. package/dist/lib/components/Header/Header.js +42 -17
  311. package/dist/lib/components/Link/Link.d.ts +2 -2
  312. package/dist/lib/components/Link/Link.js +33 -14
  313. package/dist/lib/components/List/List.css +66 -1
  314. package/dist/lib/components/List/List.d.ts +1 -2
  315. package/dist/lib/components/List/List.js +30 -12
  316. package/dist/lib/components/List/ListItem.css +6 -1
  317. package/dist/lib/components/List/ListItem.d.ts +1 -2
  318. package/dist/lib/components/List/ListItem.js +19 -5
  319. package/dist/lib/components/ListData/ListData.css +162 -1
  320. package/dist/lib/components/ListData/ListData.d.ts +34 -6
  321. package/dist/lib/components/ListData/ListData.js +110 -50
  322. package/dist/lib/components/ListData/ListDataGroup.css +15 -1
  323. package/dist/lib/components/ListData/ListDataGroup.d.ts +4 -4
  324. package/dist/lib/components/ListData/ListDataGroup.js +117 -47
  325. package/dist/lib/components/ListData/components/ListDataSortable.css +79 -1
  326. package/dist/lib/components/ListData/components/ListDataSortable.d.ts +4 -4
  327. package/dist/lib/components/ListData/components/ListDataSortable.js +73 -34
  328. package/dist/lib/components/ListData/doc/i/img.png +0 -0
  329. package/dist/lib/components/ListData/helpers.js +24 -6
  330. package/dist/lib/components/Logo/Logo.css +43 -1
  331. package/dist/lib/components/Logo/Logo.d.ts +1 -1
  332. package/dist/lib/components/Logo/Logo.js +40 -13
  333. package/dist/lib/components/NavArrow/NavArrow.css +63 -1
  334. package/dist/lib/components/NavArrow/NavArrow.d.ts +3 -3
  335. package/dist/lib/components/NavArrow/NavArrow.js +46 -14
  336. package/dist/lib/components/Notification/Notification.css +350 -1
  337. package/dist/lib/components/Notification/Notification.d.ts +4 -5
  338. package/dist/lib/components/Notification/Notification.js +200 -113
  339. package/dist/lib/components/Pagination/Pagination.css +5 -1
  340. package/dist/lib/components/Pagination/Pagination.d.ts +3 -4
  341. package/dist/lib/components/Pagination/Pagination.js +50 -18
  342. package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.css +62 -1
  343. package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.d.ts +4 -5
  344. package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.js +34 -11
  345. package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.css +10 -1
  346. package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.d.ts +2 -3
  347. package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.js +31 -6
  348. package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.css +17 -1
  349. package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.d.ts +2 -3
  350. package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.js +31 -8
  351. package/dist/lib/components/Pagination/helpers.js +6 -1
  352. package/dist/lib/components/Pagination/usePagination.d.ts +1 -2
  353. package/dist/lib/components/Pagination/usePagination.js +35 -9
  354. package/dist/lib/components/Paragraph/Paragraph.css +43 -1
  355. package/dist/lib/components/Paragraph/Paragraph.d.ts +2 -4
  356. package/dist/lib/components/Paragraph/Paragraph.js +37 -13
  357. package/dist/lib/components/Preloader/Preloader.css +224 -1
  358. package/dist/lib/components/Preloader/Preloader.d.ts +3 -3
  359. package/dist/lib/components/Preloader/Preloader.js +57 -22
  360. package/dist/lib/components/RadioButton/RadioButton.css +120 -1
  361. package/dist/lib/components/RadioButton/RadioButton.d.ts +1 -1
  362. package/dist/lib/components/RadioButton/RadioButton.js +69 -22
  363. package/dist/lib/components/Row/Row.css +238 -1
  364. package/dist/lib/components/Row/Row.d.ts +2 -2
  365. package/dist/lib/components/Row/Row.js +75 -39
  366. package/dist/lib/components/Search/Search.css +453 -1
  367. package/dist/lib/components/Search/Search.d.ts +8 -7
  368. package/dist/lib/components/Search/Search.js +261 -121
  369. package/dist/lib/components/Select/Select.css +389 -1
  370. package/dist/lib/components/Select/Select.d.ts +84 -8
  371. package/dist/lib/components/Select/Select.js +186 -69
  372. package/dist/lib/components/Select/reducer/selectReducer.d.ts +1 -1
  373. package/dist/lib/components/Select/reducer/selectReducer.js +41 -21
  374. package/dist/lib/components/Selector/Selector.css +132 -1
  375. package/dist/lib/components/Selector/Selector.d.ts +1 -1
  376. package/dist/lib/components/Selector/Selector.js +70 -27
  377. package/dist/lib/components/Selector/doc/Selector.example.css +17 -0
  378. package/dist/lib/components/Sliders/Slider/Slider.css +128 -1
  379. package/dist/lib/components/Sliders/Slider/Slider.d.ts +1 -1
  380. package/dist/lib/components/Sliders/Slider/Slider.js +75 -29
  381. package/dist/lib/components/Sliders/SliderRange/SliderRange.css +169 -1
  382. package/dist/lib/components/Sliders/SliderRange/SliderRange.d.ts +1 -1
  383. package/dist/lib/components/Sliders/SliderRange/SliderRange.js +100 -37
  384. package/dist/lib/components/Sliders/SliderRange/helpers.js +18 -5
  385. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.css +219 -1
  386. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.d.ts +1 -1
  387. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.js +111 -40
  388. package/dist/lib/components/Sliders/SliderRatio/helpers.js +27 -8
  389. package/dist/lib/components/Sliders/SliderRatio/types.d.ts +1 -1
  390. package/dist/lib/components/Sliders/SliderRatio/types.js +2 -0
  391. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.css +84 -1
  392. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.d.ts +2 -2
  393. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.js +56 -17
  394. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.css +15 -1
  395. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.d.ts +2 -2
  396. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.js +39 -11
  397. package/dist/lib/components/Sliders/components/SliderScale/helpers.js +33 -15
  398. package/dist/lib/components/Sliders/helpers.js +22 -5
  399. package/dist/lib/components/Snackbar/Snackbar.css +220 -1
  400. package/dist/lib/components/Snackbar/Snackbar.d.ts +3 -3
  401. package/dist/lib/components/Snackbar/Snackbar.js +138 -81
  402. package/dist/lib/components/Snackbar/SnackbarTimer/SnackbarTimer.css +66 -1
  403. package/dist/lib/components/Snackbar/SnackbarTimer/SnackbarTimer.d.ts +3 -3
  404. package/dist/lib/components/Snackbar/SnackbarTimer/SnackbarTimer.js +36 -17
  405. package/dist/lib/components/Switcher/Switcher.css +160 -1
  406. package/dist/lib/components/Switcher/Switcher.d.ts +1 -2
  407. package/dist/lib/components/Switcher/Switcher.js +52 -21
  408. package/dist/lib/components/Tabs/Tab.d.ts +6 -0
  409. package/dist/lib/components/Tabs/Tab.js +26 -5
  410. package/dist/lib/components/Tabs/Tabs.css +306 -1
  411. package/dist/lib/components/Tabs/Tabs.d.ts +5 -6
  412. package/dist/lib/components/Tabs/Tabs.js +209 -95
  413. package/dist/lib/components/TextField/TextField.css +343 -1
  414. package/dist/lib/components/TextField/TextField.d.ts +3 -3
  415. package/dist/lib/components/TextField/TextField.js +238 -113
  416. package/dist/lib/components/TextField/utils/countGraphemes.js +28 -11
  417. package/dist/lib/components/TextLink/TextLink.css +50 -1
  418. package/dist/lib/components/TextLink/TextLink.d.ts +2 -2
  419. package/dist/lib/components/TextLink/TextLink.js +41 -18
  420. package/dist/lib/components/Tile/Tile.css +43 -1
  421. package/dist/lib/components/Tile/Tile.d.ts +5 -7
  422. package/dist/lib/components/Tile/Tile.js +54 -26
  423. package/dist/lib/components/Tooltip/Tooltip.css +335 -1
  424. package/dist/lib/components/Tooltip/Tooltip.d.ts +8 -9
  425. package/dist/lib/components/Tooltip/Tooltip.js +218 -110
  426. package/dist/lib/constants/throttleTime.js +3 -2
  427. package/dist/lib/hooks/usePrevious.js +11 -4
  428. package/dist/lib/hooks/useResolution.d.ts +1 -1
  429. package/dist/lib/hooks/useResolution.js +23 -9
  430. package/dist/lib/hooks/useSwipe.d.ts +1 -1
  431. package/dist/lib/hooks/useSwipe.js +63 -21
  432. package/dist/lib/index.d.ts +9 -16
  433. package/dist/lib/index.js +101 -82
  434. package/package.json +101 -106
  435. package/styles/base.less +171 -0
  436. package/styles/colors.css +0 -53
  437. package/dist/es/components/Badges/CounterBadge/CounterBadge.css +0 -1
  438. package/dist/es/components/Badges/NotificationBadge/NotificationBadge.css +0 -1
  439. package/dist/es/components/Badges/NotificationBadge/NotificationBadge.js +0 -34
  440. package/dist/es/components/Badges/PriceBadge/PriceBadge.css +0 -1
  441. package/dist/es/components/Badges/PromoBadge/PromoBadge.css +0 -1
  442. package/dist/es/components/Badges/TimerBadge/TimerBadge.css +0 -1
  443. package/dist/es/components/Calendar/components/_Day/Day.css +0 -1
  444. package/dist/es/components/Calendar/components/_Month/Month.css +0 -1
  445. package/dist/es/components/Modal/Modal.css +0 -1
  446. package/dist/es/components/Modal/Modal.d.ts +0 -106
  447. package/dist/es/components/Modal/Modal.js +0 -277
  448. package/dist/es/components/Modal/_ModalContent/ModalContent.css +0 -1
  449. package/dist/es/components/Modal/_ModalContent/ModalContent.d.ts +0 -8
  450. package/dist/es/components/Modal/_ModalContent/ModalContent.js +0 -167
  451. package/dist/es/components/Modal/_ModalDesktop/ModalDesktop.css +0 -1
  452. package/dist/es/components/Modal/_ModalDesktop/ModalDesktop.d.ts +0 -8
  453. package/dist/es/components/Modal/_ModalDesktop/ModalDesktop.js +0 -32
  454. package/dist/es/components/Modal/_ModalMobileBottom/ModalMobileBottom.css +0 -1
  455. package/dist/es/components/Modal/_ModalMobileBottom/ModalMobileBottom.d.ts +0 -12
  456. package/dist/es/components/Modal/_ModalMobileBottom/ModalMobileBottom.js +0 -114
  457. package/dist/es/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.css +0 -1
  458. package/dist/es/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.d.ts +0 -8
  459. package/dist/es/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.js +0 -55
  460. package/dist/es/components/Modal/mocks.d.ts +0 -3
  461. package/dist/es/components/Modal/mocks.js +0 -79
  462. package/dist/es/components/Modal/types.d.ts +0 -28
  463. package/dist/es/components/Modal/types.js +0 -1
  464. package/dist/es/components/Modal/utils/utils.d.ts +0 -18
  465. package/dist/es/components/Modal/utils/utils.js +0 -66
  466. package/dist/es/components/ScrollBar/ScrollBar.css +0 -1
  467. package/dist/es/components/ScrollBar/ScrollBar.d.ts +0 -34
  468. package/dist/es/components/ScrollBar/ScrollBar.js +0 -86
  469. package/dist/es/components/_Collapse/Collapse.css +0 -1
  470. package/dist/es/styles/base.css +0 -1
  471. package/dist/lib/components/Badges/CounterBadge/CounterBadge.css +0 -1
  472. package/dist/lib/components/Badges/CounterBadge/CounterBadge.js +0 -52
  473. package/dist/lib/components/Badges/NotificationBadge/NotificationBadge.css +0 -1
  474. package/dist/lib/components/Badges/NotificationBadge/NotificationBadge.js +0 -43
  475. package/dist/lib/components/Badges/PriceBadge/PriceBadge.css +0 -1
  476. package/dist/lib/components/Badges/PromoBadge/PromoBadge.css +0 -1
  477. package/dist/lib/components/Badges/PromoBadge/PromoBadge.js +0 -49
  478. package/dist/lib/components/Badges/TimerBadge/TimerBadge.css +0 -1
  479. package/dist/lib/components/Badges/TimerBadge/TimerBadge.js +0 -97
  480. package/dist/lib/components/Calendar/components/_Day/Day.css +0 -1
  481. package/dist/lib/components/Calendar/components/_Day/Day.js +0 -75
  482. package/dist/lib/components/Calendar/components/_Month/Month.css +0 -1
  483. package/dist/lib/components/Calendar/components/_Month/Month.js +0 -93
  484. package/dist/lib/components/Modal/Modal.css +0 -1
  485. package/dist/lib/components/Modal/Modal.d.ts +0 -106
  486. package/dist/lib/components/Modal/Modal.js +0 -286
  487. package/dist/lib/components/Modal/_ModalContent/ModalContent.css +0 -1
  488. package/dist/lib/components/Modal/_ModalContent/ModalContent.d.ts +0 -8
  489. package/dist/lib/components/Modal/_ModalContent/ModalContent.js +0 -176
  490. package/dist/lib/components/Modal/_ModalDesktop/ModalDesktop.css +0 -1
  491. package/dist/lib/components/Modal/_ModalDesktop/ModalDesktop.d.ts +0 -8
  492. package/dist/lib/components/Modal/_ModalDesktop/ModalDesktop.js +0 -41
  493. package/dist/lib/components/Modal/_ModalMobileBottom/ModalMobileBottom.css +0 -1
  494. package/dist/lib/components/Modal/_ModalMobileBottom/ModalMobileBottom.d.ts +0 -12
  495. package/dist/lib/components/Modal/_ModalMobileBottom/ModalMobileBottom.js +0 -123
  496. package/dist/lib/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.css +0 -1
  497. package/dist/lib/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.d.ts +0 -8
  498. package/dist/lib/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.js +0 -64
  499. package/dist/lib/components/Modal/mocks.d.ts +0 -3
  500. package/dist/lib/components/Modal/mocks.js +0 -85
  501. package/dist/lib/components/Modal/types.d.ts +0 -28
  502. package/dist/lib/components/Modal/types.js +0 -5
  503. package/dist/lib/components/Modal/utils/utils.d.ts +0 -18
  504. package/dist/lib/components/Modal/utils/utils.js +0 -72
  505. package/dist/lib/components/ScrollBar/ScrollBar.css +0 -1
  506. package/dist/lib/components/ScrollBar/ScrollBar.d.ts +0 -34
  507. package/dist/lib/components/ScrollBar/ScrollBar.js +0 -94
  508. package/dist/lib/components/_Collapse/Collapse.css +0 -1
  509. package/dist/lib/components/_Collapse/Collapse.js +0 -95
  510. package/dist/lib/styles/base.css +0 -1
  511. package/styles/base.scss +0 -150
  512. /package/dist/es/components/Badges/{TimerBadge/components → components/TimerBadge}/Timer/Timer.d.ts +0 -0
  513. /package/dist/lib/components/Badges/{TimerBadge/components → components/TimerBadge}/Timer/Timer.d.ts +0 -0
@@ -1,32 +1,31 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import "core-js/modules/es.array.concat.js";
4
- import "core-js/modules/es.array.filter.js";
5
- import "core-js/modules/es.array.find.js";
6
3
  import "core-js/modules/es.array.find-index.js";
7
- import "core-js/modules/es.array.map.js";
8
- import "core-js/modules/es.object.to-string.js";
9
- import "core-js/modules/es.regexp.constructor.js";
10
4
  import "core-js/modules/es.regexp.exec.js";
11
- import "core-js/modules/es.regexp.sticky.js";
12
- import "core-js/modules/es.regexp.test.js";
13
- import "core-js/modules/es.regexp.to-string.js";
14
5
  import "core-js/modules/es.string.replace.js";
6
+ import "core-js/modules/es.array.filter.js";
7
+ import "core-js/modules/es.regexp.constructor.js";
8
+ import "core-js/modules/es.regexp.to-string.js";
9
+ import "core-js/modules/es.array.find.js";
15
10
  import "core-js/modules/es.string.split.js";
11
+ import "core-js/modules/es.array.map.js";
16
12
  import "core-js/modules/es.string.trim.js";
13
+ import "core-js/modules/es.array.concat.js";
14
+ import "core-js/modules/es.object.values.js";
17
15
  import * as React from 'react';
18
16
  import { Fragment, useEffect, useReducer, useCallback } from 'react';
19
17
  import { cnCreate, detectTouch, filterDataAttrs } from '@megafon/ui-helpers';
20
18
  import debounce from 'lodash.debounce';
19
+ import * as PropTypes from 'prop-types';
21
20
  import "./Select.css";
22
21
  import selectReducer, { initialState, SelectActions } from "./reducer/selectReducer";
23
22
  var UPDATE_ITEMS_LIST = SelectActions.UPDATE_ITEMS_LIST,
24
- UPDATE_VALUE_FROM_PROPS = SelectActions.UPDATE_VALUE_FROM_PROPS,
25
- COMBOBOX_VALUE_DEBOUNCE = SelectActions.COMBOBOX_VALUE_DEBOUNCE,
26
- COMBOBOX_INPUT_CHANGE = SelectActions.COMBOBOX_INPUT_CHANGE,
27
- TOGGLE_DROPDOWN = SelectActions.TOGGLE_DROPDOWN,
28
- UPDATE_SELECT_VALUE = SelectActions.UPDATE_SELECT_VALUE,
29
- SET_HOVERED_ITEM_INDEX = SelectActions.SET_HOVERED_ITEM_INDEX;
23
+ UPDATE_VALUE_FROM_PROPS = SelectActions.UPDATE_VALUE_FROM_PROPS,
24
+ COMBOBOX_VALUE_DEBOUNCE = SelectActions.COMBOBOX_VALUE_DEBOUNCE,
25
+ COMBOBOX_INPUT_CHANGE = SelectActions.COMBOBOX_INPUT_CHANGE,
26
+ TOGGLE_DROPDOWN = SelectActions.TOGGLE_DROPDOWN,
27
+ UPDATE_SELECT_VALUE = SelectActions.UPDATE_SELECT_VALUE,
28
+ SET_HOVERED_ITEM_INDEX = SelectActions.SET_HOVERED_ITEM_INDEX;
30
29
  export var SelectItemsPaddings = {
31
30
  SMALL: 'small',
32
31
  LARGE: 'large'
@@ -38,8 +37,7 @@ export var Verification = {
38
37
  export var SelectTypes = {
39
38
  CLASSIC: 'classic',
40
39
  COMBOBOX: 'combobox'
41
- };
42
- // List of cases to check on component change:
40
+ }; // List of cases to check on component change:
43
41
  // - Should correctly choose value and trigger callbacks with correct arguments on click or touch.
44
42
  // - Should correctly choose value and trigger callbacks with correct arguments on choose via filtration in combobox.
45
43
  // - Should highlight chosen item with bold only in cases without view
@@ -51,67 +49,76 @@ export var SelectTypes = {
51
49
  // - Should add event listener for outside of dropdown click on list open and remove it on list close.
52
50
  // - onClose callback shouldn't fire multiple times on outside click if dropdown was opened multiple times.
53
51
  // - If item with currentValue is not found in items, input value will not be displayed
52
+
54
53
  var cn = cnCreate('mfui-select');
54
+
55
55
  var Select = function Select(_ref) {
56
56
  var _ref$type = _ref.type,
57
- type = _ref$type === void 0 ? 'classic' : _ref$type,
58
- _ref$disabled = _ref.disabled,
59
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
60
- verification = _ref.verification,
61
- noticeText = _ref.noticeText,
62
- label = _ref.label,
63
- labelId = _ref.labelId,
64
- _ref$required = _ref.required,
65
- required = _ref$required === void 0 ? false : _ref$required,
66
- _ref$className = _ref.className,
67
- className = _ref$className === void 0 ? '' : _ref$className,
68
- _ref$classes = _ref.classes,
69
- classes = _ref$classes === void 0 ? {} : _ref$classes,
70
- dataAttrs = _ref.dataAttrs,
71
- _ref$notFoundText = _ref.notFoundText,
72
- notFoundText = _ref$notFoundText === void 0 ? 'Ничего не нашлось' : _ref$notFoundText,
73
- items = _ref.items,
74
- placeholder = _ref.placeholder,
75
- currentValue = _ref.currentValue,
76
- _ref$shortList = _ref.shortList,
77
- shortList = _ref$shortList === void 0 ? false : _ref$shortList,
78
- onClosed = _ref.onClosed,
79
- onOpened = _ref.onOpened,
80
- onSelect = _ref.onSelect;
57
+ type = _ref$type === void 0 ? 'classic' : _ref$type,
58
+ _ref$disabled = _ref.disabled,
59
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
60
+ verification = _ref.verification,
61
+ noticeText = _ref.noticeText,
62
+ label = _ref.label,
63
+ labelId = _ref.labelId,
64
+ _ref$required = _ref.required,
65
+ required = _ref$required === void 0 ? false : _ref$required,
66
+ _ref$className = _ref.className,
67
+ className = _ref$className === void 0 ? '' : _ref$className,
68
+ _ref$classes = _ref.classes,
69
+ classes = _ref$classes === void 0 ? {} : _ref$classes,
70
+ dataAttrs = _ref.dataAttrs,
71
+ _ref$notFoundText = _ref.notFoundText,
72
+ notFoundText = _ref$notFoundText === void 0 ? 'Ничего не нашлось' : _ref$notFoundText,
73
+ items = _ref.items,
74
+ placeholder = _ref.placeholder,
75
+ currentValue = _ref.currentValue,
76
+ _ref$shortList = _ref.shortList,
77
+ shortList = _ref$shortList === void 0 ? false : _ref$shortList,
78
+ onClosed = _ref.onClosed,
79
+ onOpened = _ref.onOpened,
80
+ onSelect = _ref.onSelect;
81
+
81
82
  var _useReducer = useReducer(selectReducer, initialState),
82
- _useReducer2 = _slicedToArray(_useReducer, 2),
83
- selectState = _useReducer2[0],
84
- changeSelectState = _useReducer2[1];
83
+ _useReducer2 = _slicedToArray(_useReducer, 2),
84
+ selectState = _useReducer2[0],
85
+ changeSelectState = _useReducer2[1];
86
+
85
87
  var itemWrapperNode = React.useRef(null);
86
88
  var itemsNodeList = React.useRef([]);
87
89
  var selectNode = React.useRef(null);
88
90
  var itemsList = selectState.itemsList,
89
- filterValue = selectState.comparableInputValue,
90
- isOpened = selectState.isOpened,
91
- hoveredItemIndex = selectState.hoveredItemIndex,
92
- inputValue = selectState.inputValue;
91
+ filterValue = selectState.comparableInputValue,
92
+ isOpened = selectState.isOpened,
93
+ hoveredItemIndex = selectState.hoveredItemIndex,
94
+ inputValue = selectState.inputValue;
93
95
  var isTouch = detectTouch();
94
96
  var currentIndex = itemsList.findIndex(function (elem) {
95
97
  return elem.value === currentValue;
96
98
  });
97
99
  var handleClickOutside = useCallback(function (e) {
98
100
  var _a;
101
+
99
102
  if (e.target instanceof Node && ((_a = selectNode.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) || !isOpened) {
100
103
  return;
101
104
  }
105
+
102
106
  onClosed === null || onClosed === void 0 ? void 0 : onClosed();
103
107
  changeSelectState({
104
108
  type: TOGGLE_DROPDOWN,
105
109
  isOpened: false
106
110
  });
107
111
  }, [onClosed, isOpened]);
112
+
108
113
  var scrollList = function scrollList(itemIndex) {
109
114
  var _a, _b;
115
+
110
116
  (_b = (_a = itemsNodeList.current[itemIndex]) === null || _a === void 0 ? void 0 : _a.scrollIntoView) === null || _b === void 0 ? void 0 : _b.call(_a, {
111
117
  behavior: 'smooth',
112
118
  block: 'nearest'
113
119
  });
114
120
  };
121
+
115
122
  useEffect(function () {
116
123
  if (!isOpened) {
117
124
  // Changes hovered item on dropdown close to currently chosen to hover it on dropdown open
@@ -121,6 +128,7 @@ var Select = function Select(_ref) {
121
128
  });
122
129
  return undefined;
123
130
  }
131
+
124
132
  onOpened === null || onOpened === void 0 ? void 0 : onOpened();
125
133
  scrollList(currentIndex);
126
134
  document.addEventListener('click', handleClickOutside);
@@ -138,6 +146,7 @@ var Select = function Select(_ref) {
138
146
  if (currentIndex === -1) {
139
147
  return;
140
148
  }
149
+
141
150
  changeSelectState({
142
151
  type: UPDATE_VALUE_FROM_PROPS,
143
152
  hoveredItemIndex: currentIndex,
@@ -151,9 +160,11 @@ var Select = function Select(_ref) {
151
160
  });
152
161
  var debounceItemsList = items.filter(function (_ref2) {
153
162
  var title = _ref2.title;
163
+
154
164
  if (debounceFilterValue.length <= title.length) {
155
165
  return RegExp(query, 'ig').test(title);
156
166
  }
167
+
157
168
  return false;
158
169
  });
159
170
  changeSelectState({
@@ -162,6 +173,7 @@ var Select = function Select(_ref) {
162
173
  comparableInputValue: debounceFilterValue
163
174
  });
164
175
  }, 250);
176
+
165
177
  var handleSelectClick = function handleSelectClick() {
166
178
  var isCurrentlyOpened = isOpened;
167
179
  changeSelectState({
@@ -170,14 +182,17 @@ var Select = function Select(_ref) {
170
182
  });
171
183
  isCurrentlyOpened && (onClosed === null || onClosed === void 0 ? void 0 : onClosed());
172
184
  };
185
+
173
186
  var handleSelectItem = function handleSelectItem(e) {
174
187
  var currentItem = itemsList[hoveredItemIndex].value;
175
188
  var item = itemsList.find(function (elem) {
176
189
  return elem.value === currentItem;
177
190
  });
191
+
178
192
  if (!item) {
179
193
  return;
180
194
  }
195
+
181
196
  var title = item.title;
182
197
  changeSelectState({
183
198
  type: UPDATE_SELECT_VALUE,
@@ -189,6 +204,7 @@ var Select = function Select(_ref) {
189
204
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(e, item);
190
205
  onClosed === null || onClosed === void 0 ? void 0 : onClosed();
191
206
  };
207
+
192
208
  var handleHoverItem = function handleHoverItem(index) {
193
209
  return function (e) {
194
210
  e.preventDefault();
@@ -198,16 +214,19 @@ var Select = function Select(_ref) {
198
214
  });
199
215
  };
200
216
  };
217
+
201
218
  var handleComboboxFocus = function handleComboboxFocus(e) {
202
219
  e.stopPropagation();
203
220
  changeSelectState({
204
221
  type: TOGGLE_DROPDOWN,
205
222
  isOpened: true
206
223
  });
224
+
207
225
  if (!isOpened && itemsList) {
208
226
  e.target.select();
209
227
  }
210
228
  };
229
+
211
230
  var handleChangeCombobox = function handleChangeCombobox(e) {
212
231
  var comboboxValue = e.target.value;
213
232
  onSelect && onSelect(null);
@@ -217,10 +236,12 @@ var Select = function Select(_ref) {
217
236
  });
218
237
  debouncedComboboxChange(comboboxValue);
219
238
  };
239
+
220
240
  var handleKeyDown = function handleKeyDown(e) {
221
241
  if (itemsList.length === 0 || disabled) {
222
242
  return true;
223
243
  }
244
+
224
245
  if (e.key === 'ArrowDown' && isOpened && hoveredItemIndex < itemsList.length - 1) {
225
246
  var nextIndex = hoveredItemIndex + 1;
226
247
  e.preventDefault();
@@ -231,8 +252,10 @@ var Select = function Select(_ref) {
231
252
  scrollList(nextIndex);
232
253
  return false;
233
254
  }
255
+
234
256
  if (e.key === 'ArrowUp' && isOpened && hoveredItemIndex > 0) {
235
257
  var _nextIndex = hoveredItemIndex - 1;
258
+
236
259
  e.preventDefault();
237
260
  changeSelectState({
238
261
  type: SET_HOVERED_ITEM_INDEX,
@@ -241,10 +264,12 @@ var Select = function Select(_ref) {
241
264
  scrollList(_nextIndex);
242
265
  return false;
243
266
  }
267
+
244
268
  if (e.key === 'Enter' && isOpened) {
245
269
  handleSelectItem(e);
246
270
  return false;
247
271
  }
272
+
248
273
  if (e.key === 'Enter' && !isOpened) {
249
274
  changeSelectState({
250
275
  type: TOGGLE_DROPDOWN,
@@ -253,6 +278,7 @@ var Select = function Select(_ref) {
253
278
  onOpened === null || onOpened === void 0 ? void 0 : onOpened();
254
279
  return false;
255
280
  }
281
+
256
282
  if (e.key === 'Tab') {
257
283
  changeSelectState({
258
284
  type: TOGGLE_DROPDOWN,
@@ -260,8 +286,10 @@ var Select = function Select(_ref) {
260
286
  });
261
287
  return false;
262
288
  }
289
+
263
290
  return true;
264
291
  };
292
+
265
293
  var highlightString = function highlightString(title, isItemActive, view) {
266
294
  if (type === SelectTypes.CLASSIC) {
267
295
  if (typeof view === 'function' && ! /*#__PURE__*/React.isValidElement(view)) {
@@ -270,8 +298,10 @@ var Select = function Select(_ref) {
270
298
  isItemActive: isItemActive
271
299
  });
272
300
  }
301
+
273
302
  return view || title;
274
303
  }
304
+
275
305
  if (type === SelectTypes.COMBOBOX && view) {
276
306
  if (typeof view === 'function' && ! /*#__PURE__*/React.isValidElement(view)) {
277
307
  return view({
@@ -279,8 +309,10 @@ var Select = function Select(_ref) {
279
309
  isItemActive: isItemActive
280
310
  });
281
311
  }
312
+
282
313
  return view;
283
314
  }
315
+
284
316
  var stringFragments = title.split(RegExp("(".concat(filterValue, ")"), 'ig'));
285
317
  return /*#__PURE__*/React.createElement(React.Fragment, null, stringFragments.map(function (fragment, i) {
286
318
  return /*#__PURE__*/React.createElement(Fragment, {
@@ -290,13 +322,16 @@ var Select = function Select(_ref) {
290
322
  }, fragment) : fragment);
291
323
  }));
292
324
  };
325
+
293
326
  var getNodeList = useCallback(function (node) {
294
327
  if (filterValue.trim()) {
295
328
  itemsNodeList.current = [];
296
329
  return;
297
330
  }
331
+
298
332
  !filterValue && node && itemsNodeList.current.push(node);
299
333
  }, [filterValue]);
334
+
300
335
  var renderLabel = function renderLabel() {
301
336
  return /*#__PURE__*/React.createElement("label", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.label), {
302
337
  htmlFor: labelId,
@@ -305,14 +340,17 @@ var Select = function Select(_ref) {
305
340
  className: cn('require-mark')
306
341
  }, "*"));
307
342
  };
343
+
308
344
  var renderTitle = function renderTitle() {
309
345
  var item = items.find(function (elem) {
310
346
  return elem.value === currentValue;
311
347
  });
312
348
  var inputTitle = placeholder;
349
+
313
350
  if (item && item.title) {
314
351
  inputTitle = item.selectedView ? item.selectedView : item.title;
315
352
  }
353
+
316
354
  return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.title), {
317
355
  className: cn('title', [classes === null || classes === void 0 ? void 0 : classes.title]),
318
356
  role: "button",
@@ -326,6 +364,7 @@ var Select = function Select(_ref) {
326
364
  className: cn('title-value')
327
365
  }, inputTitle), label && renderLabel()));
328
366
  };
367
+
329
368
  var renderCombobox = function renderCombobox() {
330
369
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.input), {
331
370
  className: cn('combobox', {
@@ -338,6 +377,7 @@ var Select = function Select(_ref) {
338
377
  placeholder: placeholder
339
378
  })), label && renderLabel());
340
379
  };
380
+
341
381
  var renderChildren = function renderChildren() {
342
382
  var currentItems = type === SelectTypes.COMBOBOX ? itemsList : items;
343
383
  return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.list), {
@@ -349,10 +389,10 @@ var Select = function Select(_ref) {
349
389
  ref: itemWrapperNode
350
390
  }), currentItems.map(function (_ref3, i) {
351
391
  var title = _ref3.title,
352
- value = _ref3.value,
353
- view = _ref3.view,
354
- _ref3$paddings = _ref3.paddings,
355
- paddings = _ref3$paddings === void 0 ? SelectItemsPaddings.LARGE : _ref3$paddings;
392
+ value = _ref3.value,
393
+ view = _ref3.view,
394
+ _ref3$paddings = _ref3.paddings,
395
+ paddings = _ref3$paddings === void 0 ? SelectItemsPaddings.LARGE : _ref3$paddings;
356
396
  var isItemActive = currentValue === value;
357
397
  return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.listItem, i + 1), {
358
398
  className: cn('list-item', {
@@ -372,6 +412,7 @@ var Select = function Select(_ref) {
372
412
  className: cn('not-found')
373
413
  }), notFoundText)));
374
414
  };
415
+
375
416
  return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
376
417
  className: cn({
377
418
  open: isOpened,
@@ -395,4 +436,53 @@ var Select = function Select(_ref) {
395
436
  })
396
437
  }), noticeText));
397
438
  };
439
+
440
+ Select.propTypes = {
441
+ type: PropTypes.oneOf(Object.values(SelectTypes)),
442
+ label: PropTypes.string,
443
+ id: PropTypes.string,
444
+ currentValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
445
+ verification: PropTypes.oneOf(Object.values(Verification)),
446
+ noticeText: PropTypes.string,
447
+ disabled: PropTypes.bool,
448
+ required: PropTypes.bool,
449
+ placeholder: PropTypes.string,
450
+ notFoundText: PropTypes.string,
451
+ className: PropTypes.string,
452
+ classes: PropTypes.shape({
453
+ root: PropTypes.string,
454
+ control: PropTypes.string,
455
+ title: PropTypes.string,
456
+ titleInner: PropTypes.string,
457
+ list: PropTypes.string,
458
+ listInner: PropTypes.string,
459
+ listItem: PropTypes.string,
460
+ listItemTitle: PropTypes.string
461
+ }),
462
+ dataAttrs: PropTypes.shape({
463
+ root: PropTypes.objectOf(PropTypes.string.isRequired),
464
+ label: PropTypes.objectOf(PropTypes.string.isRequired),
465
+ control: PropTypes.objectOf(PropTypes.string.isRequired),
466
+ title: PropTypes.objectOf(PropTypes.string.isRequired),
467
+ titleInner: PropTypes.objectOf(PropTypes.string.isRequired),
468
+ input: PropTypes.objectOf(PropTypes.string.isRequired),
469
+ noticeText: PropTypes.objectOf(PropTypes.string.isRequired),
470
+ list: PropTypes.objectOf(PropTypes.string.isRequired),
471
+ listInner: PropTypes.objectOf(PropTypes.string.isRequired),
472
+ listItem: PropTypes.objectOf(PropTypes.string.isRequired),
473
+ listItemTitle: PropTypes.objectOf(PropTypes.string.isRequired),
474
+ notFound: PropTypes.objectOf(PropTypes.string.isRequired)
475
+ }),
476
+ items: PropTypes.arrayOf(PropTypes.exact({
477
+ view: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.func]),
478
+ selectedView: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.func]),
479
+ title: PropTypes.string.isRequired,
480
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
481
+ paddings: PropTypes.oneOf(Object.values(SelectItemsPaddings))
482
+ })).isRequired,
483
+ shortList: PropTypes.bool,
484
+ onSelect: PropTypes.func,
485
+ onOpened: PropTypes.func,
486
+ onClosed: PropTypes.func
487
+ };
398
488
  export default Select;
@@ -30,5 +30,5 @@ export interface ISelectAction<T extends SelectItemValueType> {
30
30
  comparableInputValue?: string;
31
31
  isOpened?: boolean;
32
32
  }
33
- declare const selectReducer: <T extends SelectItemValueType>(state: ISelectState<T>, action: ISelectAction<T>) => ISelectState<T>;
33
+ declare const selectReducer: <T extends string | number | undefined>(state: ISelectState<T>, action: ISelectAction<T>) => ISelectState<T>;
34
34
  export default selectReducer;
@@ -1,16 +1,18 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import "core-js/modules/es.array.every.js";
3
- import "core-js/modules/es.object.to-string.js";
3
+
4
4
  var isEqualItems = function isEqualItems(newItems, setItems) {
5
5
  if (newItems.length !== setItems.length) {
6
6
  return false;
7
7
  }
8
+
8
9
  return newItems.every(function (item, i) {
9
10
  var isEqualValue = item.value === setItems[i].value;
10
11
  var isEqualTitle = item.title === setItems[i].title;
11
12
  return isEqualValue && isEqualTitle;
12
13
  });
13
14
  };
15
+
14
16
  export var initialState = {
15
17
  isOpened: false,
16
18
  hoveredItemIndex: 0,
@@ -19,6 +21,7 @@ export var initialState = {
19
21
  inputValue: ''
20
22
  };
21
23
  export var SelectActions;
24
+
22
25
  (function (SelectActions) {
23
26
  SelectActions["TOGGLE_DROPDOWN"] = "TOGGLE_DROPDOWN";
24
27
  SelectActions["UPDATE_ITEMS_LIST"] = "UPDATE_ITEMS_LIST";
@@ -28,27 +31,30 @@ export var SelectActions;
28
31
  SelectActions["COMBOBOX_VALUE_DEBOUNCE"] = "COMBOBOX_VALUE_DEBOUNCE";
29
32
  SelectActions["COMBOBOX_INPUT_CHANGE"] = "COMBOBOX_INPUT_CHANGE";
30
33
  })(SelectActions || (SelectActions = {}));
34
+
31
35
  var _SelectActions = SelectActions,
32
- TOGGLE_DROPDOWN = _SelectActions.TOGGLE_DROPDOWN,
33
- UPDATE_ITEMS_LIST = _SelectActions.UPDATE_ITEMS_LIST,
34
- UPDATE_VALUE_FROM_PROPS = _SelectActions.UPDATE_VALUE_FROM_PROPS,
35
- UPDATE_SELECT_VALUE = _SelectActions.UPDATE_SELECT_VALUE,
36
- SET_HOVERED_ITEM_INDEX = _SelectActions.SET_HOVERED_ITEM_INDEX,
37
- COMBOBOX_VALUE_DEBOUNCE = _SelectActions.COMBOBOX_VALUE_DEBOUNCE,
38
- COMBOBOX_INPUT_CHANGE = _SelectActions.COMBOBOX_INPUT_CHANGE;
36
+ TOGGLE_DROPDOWN = _SelectActions.TOGGLE_DROPDOWN,
37
+ UPDATE_ITEMS_LIST = _SelectActions.UPDATE_ITEMS_LIST,
38
+ UPDATE_VALUE_FROM_PROPS = _SelectActions.UPDATE_VALUE_FROM_PROPS,
39
+ UPDATE_SELECT_VALUE = _SelectActions.UPDATE_SELECT_VALUE,
40
+ SET_HOVERED_ITEM_INDEX = _SelectActions.SET_HOVERED_ITEM_INDEX,
41
+ COMBOBOX_VALUE_DEBOUNCE = _SelectActions.COMBOBOX_VALUE_DEBOUNCE,
42
+ COMBOBOX_INPUT_CHANGE = _SelectActions.COMBOBOX_INPUT_CHANGE;
43
+
39
44
  var selectReducer = function selectReducer(state, action) {
40
45
  var type = action.type,
41
- _action$items = action.items,
42
- items = _action$items === void 0 ? [] : _action$items,
43
- _action$hoveredItemIn = action.hoveredItemIndex,
44
- hoveredItemIndex = _action$hoveredItemIn === void 0 ? 0 : _action$hoveredItemIn,
45
- _action$inputValue = action.inputValue,
46
- inputValue = _action$inputValue === void 0 ? '' : _action$inputValue,
47
- _action$comparableInp = action.comparableInputValue,
48
- comparableInputValue = _action$comparableInp === void 0 ? '' : _action$comparableInp,
49
- _action$isOpened = action.isOpened,
50
- isOpened = _action$isOpened === void 0 ? false : _action$isOpened;
46
+ _action$items = action.items,
47
+ items = _action$items === void 0 ? [] : _action$items,
48
+ _action$hoveredItemIn = action.hoveredItemIndex,
49
+ hoveredItemIndex = _action$hoveredItemIn === void 0 ? 0 : _action$hoveredItemIn,
50
+ _action$inputValue = action.inputValue,
51
+ inputValue = _action$inputValue === void 0 ? '' : _action$inputValue,
52
+ _action$comparableInp = action.comparableInputValue,
53
+ comparableInputValue = _action$comparableInp === void 0 ? '' : _action$comparableInp,
54
+ _action$isOpened = action.isOpened,
55
+ isOpened = _action$isOpened === void 0 ? false : _action$isOpened;
51
56
  var prevItems = state.itemsList;
57
+
52
58
  switch (type) {
53
59
  case TOGGLE_DROPDOWN:
54
60
  {
@@ -56,6 +62,7 @@ var selectReducer = function selectReducer(state, action) {
56
62
  isOpened: isOpened
57
63
  });
58
64
  }
65
+
59
66
  case UPDATE_ITEMS_LIST:
60
67
  {
61
68
  var isItemsEqual = isEqualItems(items, prevItems);
@@ -63,6 +70,7 @@ var selectReducer = function selectReducer(state, action) {
63
70
  itemsList: items
64
71
  });
65
72
  }
73
+
66
74
  case UPDATE_VALUE_FROM_PROPS:
67
75
  {
68
76
  return _extends(_extends({}, state), {
@@ -71,6 +79,7 @@ var selectReducer = function selectReducer(state, action) {
71
79
  comparableInputValue: ''
72
80
  });
73
81
  }
82
+
74
83
  case COMBOBOX_VALUE_DEBOUNCE:
75
84
  {
76
85
  return _extends(_extends({}, state), {
@@ -80,6 +89,7 @@ var selectReducer = function selectReducer(state, action) {
80
89
  hoveredItemIndex: 0
81
90
  });
82
91
  }
92
+
83
93
  case UPDATE_SELECT_VALUE:
84
94
  {
85
95
  return _extends(_extends({}, state), {
@@ -88,22 +98,26 @@ var selectReducer = function selectReducer(state, action) {
88
98
  hoveredItemIndex: hoveredItemIndex
89
99
  });
90
100
  }
101
+
91
102
  case SET_HOVERED_ITEM_INDEX:
92
103
  {
93
104
  return _extends(_extends({}, state), {
94
105
  hoveredItemIndex: hoveredItemIndex
95
106
  });
96
107
  }
108
+
97
109
  case COMBOBOX_INPUT_CHANGE:
98
110
  {
99
111
  return _extends(_extends({}, state), {
100
112
  inputValue: inputValue
101
113
  });
102
114
  }
115
+
103
116
  default:
104
117
  {
105
118
  return state;
106
119
  }
107
120
  }
108
121
  };
122
+
109
123
  export default selectReducer;