@vkontakte/vkui 4.27.1 → 4.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (730) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +11910 -4711
  4. package/.cache/ts/src/components/Button/Button.d.ts +1 -1
  5. package/.cache/ts/src/components/ButtonGroup/ButtonGroup.d.ts +20 -0
  6. package/.cache/ts/src/components/Calendar/Calendar.d.ts +21 -0
  7. package/.cache/ts/src/components/CalendarDay/CalendarDay.d.ts +22 -0
  8. package/.cache/ts/src/components/CalendarDays/CalendarDays.d.ts +22 -0
  9. package/.cache/ts/src/components/CalendarHeader/CalendarHeader.d.ts +16 -0
  10. package/.cache/ts/src/components/CalendarRange/CalendarRange.d.ts +16 -0
  11. package/.cache/ts/src/components/CalendarTime/CalendarTime.d.ts +11 -0
  12. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -2
  13. package/.cache/ts/src/components/ConfigProvider/ConfigProvider.d.ts +4 -0
  14. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +0 -7
  15. package/.cache/ts/src/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  16. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +10 -1
  17. package/.cache/ts/src/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +4 -1
  18. package/.cache/ts/src/components/DateInput/DateInput.d.ts +12 -0
  19. package/.cache/ts/src/components/DateRangeInput/DateRangeInput.d.ts +18 -0
  20. package/.cache/ts/src/components/Div/Div.d.ts +1 -2
  21. package/.cache/ts/src/components/IconButton/IconButton.d.ts +1 -1
  22. package/.cache/ts/src/components/InputLike/InputLike.d.ts +10 -0
  23. package/.cache/ts/src/components/InputLike/InputLikeDivider.d.ts +3 -0
  24. package/.cache/ts/src/components/LocaleProviderContext/LocaleProviderContext.d.ts +2 -0
  25. package/.cache/ts/src/components/Pagination/Pagination.d.ts +42 -0
  26. package/.cache/ts/src/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  27. package/.cache/ts/src/components/RichCell/RichCell.d.ts +3 -2
  28. package/.cache/ts/src/components/Select/Select.d.ts +1 -1
  29. package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +5 -1
  30. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +1 -1
  31. package/.cache/ts/src/components/SimpleCheckbox/SimpleCheckbox.d.ts +0 -1
  32. package/.cache/ts/src/components/Tappable/Tappable.d.ts +3 -1
  33. package/.cache/ts/src/components/Typography/Caption/Caption.d.ts +8 -4
  34. package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +6 -1
  35. package/.cache/ts/src/components/Typography/Title/Title.d.ts +3 -1
  36. package/.cache/ts/src/components/View/ViewInfinite.d.ts +2 -2
  37. package/.cache/ts/src/helpers/typography.d.ts +1 -0
  38. package/.cache/ts/src/hooks/useBooleanState.d.ts +6 -0
  39. package/.cache/ts/src/hooks/useCalendar.d.ts +18 -0
  40. package/.cache/ts/src/hooks/useDateInput.d.ts +30 -0
  41. package/.cache/ts/src/hooks/useKeyboardInputTracker.d.ts +2 -0
  42. package/.cache/ts/src/hooks/useOrientationChange.d.ts +7 -0
  43. package/.cache/ts/src/hooks/usePagination.d.ts +34 -0
  44. package/.cache/ts/src/index.d.ts +12 -2
  45. package/.cache/ts/src/lib/calendar.d.ts +14 -0
  46. package/.cache/ts/src/lib/utils.d.ts +2 -1
  47. package/.cache/ts/src/tokenized/index.d.ts +14 -0
  48. package/.cache/ts/src/unstable/index.d.ts +6 -6
  49. package/CONTRIBUTING.md +3 -2
  50. package/CSS_GUIDE.md +145 -0
  51. package/dist/cjs/components/ActionSheet/ActionSheet.js +4 -7
  52. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  53. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +3 -6
  54. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  55. package/dist/cjs/components/Alert/Alert.js +5 -8
  56. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  57. package/dist/cjs/components/Banner/Banner.js +1 -3
  58. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  59. package/dist/cjs/components/Button/Button.d.ts +1 -1
  60. package/dist/cjs/components/Button/Button.js +7 -11
  61. package/dist/cjs/components/Button/Button.js.map +1 -1
  62. package/dist/cjs/components/ButtonGroup/ButtonGroup.d.ts +20 -0
  63. package/dist/cjs/components/ButtonGroup/ButtonGroup.js +38 -0
  64. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -0
  65. package/dist/cjs/components/Calendar/Calendar.d.ts +21 -0
  66. package/dist/cjs/components/Calendar/Calendar.js +160 -0
  67. package/dist/cjs/components/Calendar/Calendar.js.map +1 -0
  68. package/dist/cjs/components/CalendarDay/CalendarDay.d.ts +22 -0
  69. package/dist/cjs/components/CalendarDay/CalendarDay.js +109 -0
  70. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -0
  71. package/dist/cjs/components/CalendarDays/CalendarDays.d.ts +22 -0
  72. package/dist/cjs/components/CalendarDays/CalendarDays.js +118 -0
  73. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -0
  74. package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts +16 -0
  75. package/dist/cjs/components/CalendarHeader/CalendarHeader.js +143 -0
  76. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -0
  77. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +16 -0
  78. package/dist/cjs/components/CalendarRange/CalendarRange.js +219 -0
  79. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -0
  80. package/dist/cjs/components/CalendarTime/CalendarTime.d.ts +11 -0
  81. package/dist/cjs/components/CalendarTime/CalendarTime.js +92 -0
  82. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -0
  83. package/dist/cjs/components/Checkbox/Checkbox.js +2 -5
  84. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  85. package/dist/cjs/components/Chip/Chip.js +2 -4
  86. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  87. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +1 -2
  88. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +7 -11
  89. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  90. package/dist/cjs/components/ConfigProvider/ConfigProvider.d.ts +4 -0
  91. package/dist/cjs/components/ConfigProvider/ConfigProvider.js +40 -21
  92. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  93. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +0 -7
  94. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js +3 -5
  95. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  96. package/dist/cjs/components/ContentCard/ContentCard.js +5 -7
  97. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  98. package/dist/cjs/components/Counter/Counter.js +3 -3
  99. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  100. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  101. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  102. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +10 -1
  103. package/dist/cjs/components/CustomSelect/CustomSelect.js +47 -17
  104. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  105. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +4 -1
  106. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +14 -5
  107. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  108. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +3 -5
  109. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  110. package/dist/cjs/components/DateInput/DateInput.d.ts +12 -0
  111. package/dist/cjs/components/DateInput/DateInput.js +290 -0
  112. package/dist/cjs/components/DateInput/DateInput.js.map +1 -0
  113. package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +18 -0
  114. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +310 -0
  115. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -0
  116. package/dist/cjs/components/Div/Div.d.ts +1 -2
  117. package/dist/cjs/components/Div/Div.js +2 -5
  118. package/dist/cjs/components/Div/Div.js.map +1 -1
  119. package/dist/cjs/components/Footer/Footer.js +2 -4
  120. package/dist/cjs/components/Footer/Footer.js.map +1 -1
  121. package/dist/cjs/components/FormItem/FormItem.js +2 -5
  122. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  123. package/dist/cjs/components/FormStatus/FormStatus.js +3 -8
  124. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  125. package/dist/cjs/components/Group/Group.js +3 -5
  126. package/dist/cjs/components/Group/Group.js.map +1 -1
  127. package/dist/cjs/components/Header/Header.js +10 -23
  128. package/dist/cjs/components/Header/Header.js.map +1 -1
  129. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +5 -10
  130. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  131. package/dist/cjs/components/IconButton/IconButton.d.ts +1 -1
  132. package/dist/cjs/components/InfoRow/InfoRow.js +1 -2
  133. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  134. package/dist/cjs/components/InputLike/InputLike.d.ts +10 -0
  135. package/dist/cjs/components/InputLike/InputLike.js +71 -0
  136. package/dist/cjs/components/InputLike/InputLike.js.map +1 -0
  137. package/dist/cjs/components/InputLike/InputLikeDivider.d.ts +3 -0
  138. package/dist/cjs/components/InputLike/InputLikeDivider.js +27 -0
  139. package/dist/cjs/components/InputLike/InputLikeDivider.js.map +1 -0
  140. package/dist/cjs/components/LocaleProviderContext/LocaleProviderContext.d.ts +2 -0
  141. package/dist/cjs/components/LocaleProviderContext/LocaleProviderContext.js +14 -0
  142. package/dist/cjs/components/LocaleProviderContext/LocaleProviderContext.js.map +1 -0
  143. package/dist/cjs/components/ModalPage/ModalPage.js +5 -5
  144. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  145. package/dist/cjs/components/Pagination/Pagination.d.ts +42 -0
  146. package/dist/cjs/components/Pagination/Pagination.js +152 -0
  147. package/dist/cjs/components/Pagination/Pagination.js.map +1 -0
  148. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  149. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +2 -4
  150. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  151. package/dist/cjs/components/PromoBanner/PromoBanner.js +3 -7
  152. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  153. package/dist/cjs/components/Radio/Radio.js +2 -5
  154. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  155. package/dist/cjs/components/Removable/Removable.js +8 -4
  156. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  157. package/dist/cjs/components/RichCell/RichCell.d.ts +3 -2
  158. package/dist/cjs/components/RichCell/RichCell.js +0 -1
  159. package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
  160. package/dist/cjs/components/Select/Select.d.ts +1 -1
  161. package/dist/cjs/components/SelectMimicry/SelectMimicry.d.ts +5 -1
  162. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +11 -5
  163. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  164. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +1 -1
  165. package/dist/cjs/components/SimpleCell/SimpleCell.js +0 -1
  166. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  167. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.d.ts +0 -1
  168. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js +2 -5
  169. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  170. package/dist/cjs/components/Spacing/Spacing.js +2 -2
  171. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  172. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +4 -7
  173. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  174. package/dist/cjs/components/Tappable/Tappable.d.ts +3 -1
  175. package/dist/cjs/components/Tappable/Tappable.js +11 -11
  176. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  177. package/dist/cjs/components/TextTooltip/TextTooltip.js +1 -2
  178. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  179. package/dist/cjs/components/Tooltip/Tooltip.js +1 -2
  180. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  181. package/dist/cjs/components/Typography/Caption/Caption.d.ts +8 -4
  182. package/dist/cjs/components/Typography/Caption/Caption.js +12 -14
  183. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  184. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +6 -1
  185. package/dist/cjs/components/Typography/Subhead/Subhead.js +15 -8
  186. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  187. package/dist/cjs/components/Typography/Title/Title.d.ts +3 -1
  188. package/dist/cjs/components/Typography/Title/Title.js +4 -2
  189. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  190. package/dist/cjs/components/UsersStack/UsersStack.js +3 -5
  191. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  192. package/dist/cjs/components/View/ViewInfinite.d.ts +2 -2
  193. package/dist/cjs/components/View/ViewInfinite.js +12 -15
  194. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  195. package/dist/cjs/helpers/typography.d.ts +1 -0
  196. package/dist/cjs/helpers/typography.js +25 -0
  197. package/dist/cjs/helpers/typography.js.map +1 -0
  198. package/dist/cjs/hooks/useBooleanState.d.ts +6 -0
  199. package/dist/cjs/hooks/useBooleanState.js +42 -0
  200. package/dist/cjs/hooks/useBooleanState.js.map +1 -0
  201. package/dist/cjs/hooks/useCalendar.d.ts +18 -0
  202. package/dist/cjs/hooks/useCalendar.js +78 -0
  203. package/dist/cjs/hooks/useCalendar.js.map +1 -0
  204. package/dist/cjs/hooks/useDateInput.d.ts +30 -0
  205. package/dist/cjs/hooks/useDateInput.js +180 -0
  206. package/dist/cjs/hooks/useDateInput.js.map +1 -0
  207. package/dist/cjs/hooks/useKeyboardInputTracker.d.ts +2 -0
  208. package/dist/cjs/hooks/useKeyboardInputTracker.js +15 -4
  209. package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
  210. package/dist/cjs/hooks/useOrientationChange.d.ts +7 -0
  211. package/dist/cjs/hooks/useOrientationChange.js +56 -0
  212. package/dist/cjs/hooks/useOrientationChange.js.map +1 -0
  213. package/dist/cjs/hooks/usePagination.d.ts +34 -0
  214. package/dist/cjs/hooks/usePagination.js +81 -0
  215. package/dist/cjs/hooks/usePagination.js.map +1 -0
  216. package/dist/cjs/index.d.ts +12 -2
  217. package/dist/cjs/index.js +68 -4
  218. package/dist/cjs/index.js.map +1 -1
  219. package/dist/cjs/lib/calendar.d.ts +14 -0
  220. package/dist/cjs/lib/calendar.js +142 -0
  221. package/dist/cjs/lib/calendar.js.map +1 -0
  222. package/dist/cjs/lib/utils.d.ts +2 -1
  223. package/dist/cjs/lib/utils.js +7 -0
  224. package/dist/cjs/lib/utils.js.map +1 -1
  225. package/dist/cjs/tokenized/index.d.ts +14 -0
  226. package/dist/cjs/tokenized/index.js +56 -0
  227. package/dist/cjs/tokenized/index.js.map +1 -1
  228. package/dist/cjs/unstable/index.d.ts +6 -6
  229. package/dist/cjs/unstable/index.js +6 -8
  230. package/dist/cjs/unstable/index.js.map +1 -1
  231. package/dist/components/ActionSheet/ActionSheet.js +2 -5
  232. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  233. package/dist/components/ActionSheetItem/ActionSheetItem.js +2 -5
  234. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  235. package/dist/components/Alert/Alert.js +3 -6
  236. package/dist/components/Alert/Alert.js.map +1 -1
  237. package/dist/components/Banner/Banner.js +1 -3
  238. package/dist/components/Banner/Banner.js.map +1 -1
  239. package/dist/components/Button/Button.d.ts +1 -1
  240. package/dist/components/Button/Button.js +6 -10
  241. package/dist/components/Button/Button.js.map +1 -1
  242. package/dist/components/ButtonGroup/ButtonGroup.d.ts +20 -0
  243. package/dist/components/ButtonGroup/ButtonGroup.js +23 -0
  244. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -0
  245. package/dist/components/Calendar/Calendar.d.ts +21 -0
  246. package/dist/components/Calendar/Calendar.js +133 -0
  247. package/dist/components/Calendar/Calendar.js.map +1 -0
  248. package/dist/components/CalendarDay/CalendarDay.d.ts +22 -0
  249. package/dist/components/CalendarDay/CalendarDay.js +91 -0
  250. package/dist/components/CalendarDay/CalendarDay.js.map +1 -0
  251. package/dist/components/CalendarDays/CalendarDays.d.ts +22 -0
  252. package/dist/components/CalendarDays/CalendarDays.js +94 -0
  253. package/dist/components/CalendarDays/CalendarDays.js.map +1 -0
  254. package/dist/components/CalendarHeader/CalendarHeader.d.ts +16 -0
  255. package/dist/components/CalendarHeader/CalendarHeader.js +118 -0
  256. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -0
  257. package/dist/components/CalendarRange/CalendarRange.d.ts +16 -0
  258. package/dist/components/CalendarRange/CalendarRange.js +196 -0
  259. package/dist/components/CalendarRange/CalendarRange.js.map +1 -0
  260. package/dist/components/CalendarTime/CalendarTime.d.ts +11 -0
  261. package/dist/components/CalendarTime/CalendarTime.js +73 -0
  262. package/dist/components/CalendarTime/CalendarTime.js.map +1 -0
  263. package/dist/components/Checkbox/Checkbox.js +1 -4
  264. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  265. package/dist/components/Chip/Chip.js +1 -3
  266. package/dist/components/Chip/Chip.js.map +1 -1
  267. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -2
  268. package/dist/components/ChipsSelect/ChipsSelect.js +4 -7
  269. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  270. package/dist/components/ConfigProvider/ConfigProvider.d.ts +4 -0
  271. package/dist/components/ConfigProvider/ConfigProvider.js +36 -20
  272. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  273. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +0 -7
  274. package/dist/components/ConfigProvider/ConfigProviderContext.js +2 -3
  275. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  276. package/dist/components/ContentCard/ContentCard.js +3 -5
  277. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  278. package/dist/components/Counter/Counter.js +2 -2
  279. package/dist/components/Counter/Counter.js.map +1 -1
  280. package/dist/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  281. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  282. package/dist/components/CustomSelect/CustomSelect.d.ts +10 -1
  283. package/dist/components/CustomSelect/CustomSelect.js +44 -15
  284. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  285. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +4 -1
  286. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +14 -5
  287. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  288. package/dist/components/CustomSelectOption/CustomSelectOption.js +2 -4
  289. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  290. package/dist/components/DateInput/DateInput.d.ts +12 -0
  291. package/dist/components/DateInput/DateInput.js +261 -0
  292. package/dist/components/DateInput/DateInput.js.map +1 -0
  293. package/dist/components/DateRangeInput/DateRangeInput.d.ts +18 -0
  294. package/dist/components/DateRangeInput/DateRangeInput.js +281 -0
  295. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -0
  296. package/dist/components/Div/Div.d.ts +1 -2
  297. package/dist/components/Div/Div.js +1 -3
  298. package/dist/components/Div/Div.js.map +1 -1
  299. package/dist/components/Footer/Footer.js +1 -3
  300. package/dist/components/Footer/Footer.js.map +1 -1
  301. package/dist/components/FormItem/FormItem.js +1 -4
  302. package/dist/components/FormItem/FormItem.js.map +1 -1
  303. package/dist/components/FormStatus/FormStatus.js +2 -7
  304. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  305. package/dist/components/Group/Group.js +2 -4
  306. package/dist/components/Group/Group.js.map +1 -1
  307. package/dist/components/Header/Header.js +7 -20
  308. package/dist/components/Header/Header.js.map +1 -1
  309. package/dist/components/HorizontalCell/HorizontalCell.js +3 -8
  310. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  311. package/dist/components/IconButton/IconButton.d.ts +1 -1
  312. package/dist/components/InfoRow/InfoRow.js +1 -2
  313. package/dist/components/InfoRow/InfoRow.js.map +1 -1
  314. package/dist/components/InputLike/InputLike.d.ts +10 -0
  315. package/dist/components/InputLike/InputLike.js +52 -0
  316. package/dist/components/InputLike/InputLike.js.map +1 -0
  317. package/dist/components/InputLike/InputLikeDivider.d.ts +3 -0
  318. package/dist/components/InputLike/InputLikeDivider.js +13 -0
  319. package/dist/components/InputLike/InputLikeDivider.js.map +1 -0
  320. package/dist/components/LocaleProviderContext/LocaleProviderContext.d.ts +2 -0
  321. package/dist/components/LocaleProviderContext/LocaleProviderContext.js +3 -0
  322. package/dist/components/LocaleProviderContext/LocaleProviderContext.js.map +1 -0
  323. package/dist/components/ModalPage/ModalPage.js +4 -5
  324. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  325. package/dist/components/Pagination/Pagination.d.ts +42 -0
  326. package/dist/components/Pagination/Pagination.js +129 -0
  327. package/dist/components/Pagination/Pagination.js.map +1 -0
  328. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  329. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +1 -3
  330. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  331. package/dist/components/PromoBanner/PromoBanner.js +1 -5
  332. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  333. package/dist/components/Radio/Radio.js +1 -4
  334. package/dist/components/Radio/Radio.js.map +1 -1
  335. package/dist/components/Removable/Removable.js +8 -4
  336. package/dist/components/Removable/Removable.js.map +1 -1
  337. package/dist/components/RichCell/RichCell.d.ts +3 -2
  338. package/dist/components/RichCell/RichCell.js +0 -1
  339. package/dist/components/RichCell/RichCell.js.map +1 -1
  340. package/dist/components/Select/Select.d.ts +1 -1
  341. package/dist/components/SelectMimicry/SelectMimicry.d.ts +5 -1
  342. package/dist/components/SelectMimicry/SelectMimicry.js +10 -5
  343. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  344. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  345. package/dist/components/SimpleCell/SimpleCell.js +0 -1
  346. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  347. package/dist/components/SimpleCheckbox/SimpleCheckbox.d.ts +0 -1
  348. package/dist/components/SimpleCheckbox/SimpleCheckbox.js +1 -3
  349. package/dist/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  350. package/dist/components/Spacing/Spacing.js +2 -2
  351. package/dist/components/Spacing/Spacing.js.map +1 -1
  352. package/dist/components/SubnavigationButton/SubnavigationButton.js +3 -6
  353. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  354. package/dist/components/Tappable/Tappable.d.ts +3 -1
  355. package/dist/components/Tappable/Tappable.js +10 -11
  356. package/dist/components/Tappable/Tappable.js.map +1 -1
  357. package/dist/components/TextTooltip/TextTooltip.js +1 -2
  358. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  359. package/dist/components/Tooltip/Tooltip.js +1 -2
  360. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  361. package/dist/components/Typography/Caption/Caption.d.ts +8 -4
  362. package/dist/components/Typography/Caption/Caption.js +10 -14
  363. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  364. package/dist/components/Typography/Subhead/Subhead.d.ts +6 -1
  365. package/dist/components/Typography/Subhead/Subhead.js +13 -7
  366. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  367. package/dist/components/Typography/Title/Title.d.ts +3 -1
  368. package/dist/components/Typography/Title/Title.js +3 -2
  369. package/dist/components/Typography/Title/Title.js.map +1 -1
  370. package/dist/components/UsersStack/UsersStack.js +2 -4
  371. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  372. package/dist/components/View/ViewInfinite.d.ts +2 -2
  373. package/dist/components/View/ViewInfinite.js +10 -11
  374. package/dist/components/View/ViewInfinite.js.map +1 -1
  375. package/dist/components.css +5 -5
  376. package/dist/components.css.map +1 -1
  377. package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -5
  378. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  379. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +2 -5
  380. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  381. package/dist/cssm/components/Alert/Alert.js +3 -6
  382. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  383. package/dist/cssm/components/Banner/Banner.js +1 -3
  384. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  385. package/dist/cssm/components/Button/Button.css +1 -1
  386. package/dist/cssm/components/Button/Button.d.ts +1 -1
  387. package/dist/cssm/components/Button/Button.js +6 -10
  388. package/dist/cssm/components/Button/Button.js.map +1 -1
  389. package/dist/cssm/components/ButtonGroup/ButtonGroup.css +1 -0
  390. package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +20 -0
  391. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +24 -0
  392. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -0
  393. package/dist/cssm/components/Calendar/Calendar.css +1 -0
  394. package/dist/cssm/components/Calendar/Calendar.d.ts +21 -0
  395. package/dist/cssm/components/Calendar/Calendar.js +134 -0
  396. package/dist/cssm/components/Calendar/Calendar.js.map +1 -0
  397. package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -0
  398. package/dist/cssm/components/CalendarDay/CalendarDay.d.ts +22 -0
  399. package/dist/cssm/components/CalendarDay/CalendarDay.js +92 -0
  400. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -0
  401. package/dist/cssm/components/CalendarDays/CalendarDays.css +1 -0
  402. package/dist/cssm/components/CalendarDays/CalendarDays.d.ts +22 -0
  403. package/dist/cssm/components/CalendarDays/CalendarDays.js +95 -0
  404. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -0
  405. package/dist/cssm/components/CalendarHeader/CalendarHeader.css +1 -0
  406. package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts +16 -0
  407. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +119 -0
  408. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -0
  409. package/dist/cssm/components/CalendarRange/CalendarRange.css +1 -0
  410. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +16 -0
  411. package/dist/cssm/components/CalendarRange/CalendarRange.js +197 -0
  412. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -0
  413. package/dist/cssm/components/CalendarTime/CalendarTime.css +1 -0
  414. package/dist/cssm/components/CalendarTime/CalendarTime.d.ts +11 -0
  415. package/dist/cssm/components/CalendarTime/CalendarTime.js +74 -0
  416. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -0
  417. package/dist/cssm/components/Checkbox/Checkbox.js +1 -4
  418. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  419. package/dist/cssm/components/Chip/Chip.js +1 -3
  420. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  421. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +1 -2
  422. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +4 -7
  423. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  424. package/dist/cssm/components/ConfigProvider/ConfigProvider.d.ts +4 -0
  425. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +36 -20
  426. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  427. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.d.ts +0 -7
  428. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +2 -3
  429. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  430. package/dist/cssm/components/ContentCard/ContentCard.js +3 -5
  431. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  432. package/dist/cssm/components/Counter/Counter.js +2 -2
  433. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  434. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  435. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  436. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  437. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +10 -1
  438. package/dist/cssm/components/CustomSelect/CustomSelect.js +44 -15
  439. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  440. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.css +1 -1
  441. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +4 -1
  442. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +14 -5
  443. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  444. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +2 -4
  445. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  446. package/dist/cssm/components/DateInput/DateInput.css +1 -0
  447. package/dist/cssm/components/DateInput/DateInput.d.ts +12 -0
  448. package/dist/cssm/components/DateInput/DateInput.js +262 -0
  449. package/dist/cssm/components/DateInput/DateInput.js.map +1 -0
  450. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -0
  451. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +18 -0
  452. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +282 -0
  453. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -0
  454. package/dist/cssm/components/Div/Div.css +1 -1
  455. package/dist/cssm/components/Div/Div.d.ts +1 -2
  456. package/dist/cssm/components/Div/Div.js +1 -3
  457. package/dist/cssm/components/Div/Div.js.map +1 -1
  458. package/dist/cssm/components/Footer/Footer.js +1 -3
  459. package/dist/cssm/components/Footer/Footer.js.map +1 -1
  460. package/dist/cssm/components/FormField/FormField.css +1 -1
  461. package/dist/cssm/components/FormItem/FormItem.js +1 -4
  462. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  463. package/dist/cssm/components/FormStatus/FormStatus.js +2 -7
  464. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  465. package/dist/cssm/components/Group/Group.js +2 -4
  466. package/dist/cssm/components/Group/Group.js.map +1 -1
  467. package/dist/cssm/components/Header/Header.js +7 -20
  468. package/dist/cssm/components/Header/Header.js.map +1 -1
  469. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -8
  470. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  471. package/dist/cssm/components/IconButton/IconButton.d.ts +1 -1
  472. package/dist/cssm/components/InfoRow/InfoRow.js +1 -2
  473. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  474. package/dist/cssm/components/InputLike/InputLike.css +1 -0
  475. package/dist/cssm/components/InputLike/InputLike.d.ts +10 -0
  476. package/dist/cssm/components/InputLike/InputLike.js +53 -0
  477. package/dist/cssm/components/InputLike/InputLike.js.map +1 -0
  478. package/dist/cssm/components/InputLike/InputLikeDivider.css +1 -0
  479. package/dist/cssm/components/InputLike/InputLikeDivider.d.ts +3 -0
  480. package/dist/cssm/components/InputLike/InputLikeDivider.js +14 -0
  481. package/dist/cssm/components/InputLike/InputLikeDivider.js.map +1 -0
  482. package/dist/cssm/components/LocaleProviderContext/LocaleProviderContext.d.ts +2 -0
  483. package/dist/cssm/components/LocaleProviderContext/LocaleProviderContext.js +3 -0
  484. package/dist/cssm/components/LocaleProviderContext/LocaleProviderContext.js.map +1 -0
  485. package/dist/cssm/components/ModalPage/ModalPage.js +4 -5
  486. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  487. package/dist/cssm/components/Pagination/Pagination.css +1 -0
  488. package/dist/cssm/components/Pagination/Pagination.d.ts +42 -0
  489. package/dist/cssm/components/Pagination/Pagination.js +130 -0
  490. package/dist/cssm/components/Pagination/Pagination.js.map +1 -0
  491. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  492. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +1 -3
  493. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  494. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -5
  495. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  496. package/dist/cssm/components/Radio/Radio.js +1 -4
  497. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  498. package/dist/cssm/components/Removable/Removable.js +8 -4
  499. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  500. package/dist/cssm/components/RichCell/RichCell.d.ts +3 -2
  501. package/dist/cssm/components/RichCell/RichCell.js +0 -1
  502. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  503. package/dist/cssm/components/Select/Select.css +1 -1
  504. package/dist/cssm/components/Select/Select.d.ts +1 -1
  505. package/dist/cssm/components/SelectMimicry/SelectMimicry.css +1 -0
  506. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +5 -1
  507. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +11 -5
  508. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  509. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
  510. package/dist/cssm/components/SimpleCell/SimpleCell.js +0 -1
  511. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  512. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.d.ts +0 -1
  513. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js +1 -3
  514. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  515. package/dist/cssm/components/Spacing/Spacing.js +2 -2
  516. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  517. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +3 -6
  518. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  519. package/dist/cssm/components/Tappable/Tappable.d.ts +3 -1
  520. package/dist/cssm/components/Tappable/Tappable.js +10 -11
  521. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  522. package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -2
  523. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  524. package/dist/cssm/components/Tooltip/Tooltip.js +1 -2
  525. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  526. package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
  527. package/dist/cssm/components/Typography/Caption/Caption.d.ts +8 -4
  528. package/dist/cssm/components/Typography/Caption/Caption.js +10 -14
  529. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  530. package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
  531. package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +6 -1
  532. package/dist/cssm/components/Typography/Subhead/Subhead.js +13 -7
  533. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  534. package/dist/cssm/components/Typography/Title/Title.d.ts +3 -1
  535. package/dist/cssm/components/Typography/Title/Title.js +3 -2
  536. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  537. package/dist/cssm/components/UsersStack/UsersStack.js +2 -4
  538. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  539. package/dist/cssm/components/View/ViewInfinite.d.ts +2 -2
  540. package/dist/cssm/components/View/ViewInfinite.js +10 -11
  541. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  542. package/dist/cssm/helpers/typography.d.ts +1 -0
  543. package/dist/cssm/helpers/typography.js +18 -0
  544. package/dist/cssm/helpers/typography.js.map +1 -0
  545. package/dist/cssm/hooks/useBooleanState.d.ts +6 -0
  546. package/dist/cssm/hooks/useBooleanState.js +27 -0
  547. package/dist/cssm/hooks/useBooleanState.js.map +1 -0
  548. package/dist/cssm/hooks/useCalendar.d.ts +18 -0
  549. package/dist/cssm/hooks/useCalendar.js +64 -0
  550. package/dist/cssm/hooks/useCalendar.js.map +1 -0
  551. package/dist/cssm/hooks/useDateInput.d.ts +30 -0
  552. package/dist/cssm/hooks/useDateInput.js +163 -0
  553. package/dist/cssm/hooks/useDateInput.js.map +1 -0
  554. package/dist/cssm/hooks/useKeyboardInputTracker.d.ts +2 -0
  555. package/dist/cssm/hooks/useKeyboardInputTracker.js +11 -4
  556. package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
  557. package/dist/cssm/hooks/useOrientationChange.d.ts +7 -0
  558. package/dist/cssm/hooks/useOrientationChange.js +42 -0
  559. package/dist/cssm/hooks/useOrientationChange.js.map +1 -0
  560. package/dist/cssm/hooks/usePagination.d.ts +34 -0
  561. package/dist/cssm/hooks/usePagination.js +67 -0
  562. package/dist/cssm/hooks/usePagination.js.map +1 -0
  563. package/dist/cssm/index.d.ts +12 -2
  564. package/dist/cssm/index.js +11 -3
  565. package/dist/cssm/index.js.map +1 -1
  566. package/dist/cssm/lib/calendar.d.ts +14 -0
  567. package/dist/cssm/lib/calendar.js +111 -0
  568. package/dist/cssm/lib/calendar.js.map +1 -0
  569. package/dist/cssm/lib/utils.d.ts +2 -1
  570. package/dist/cssm/lib/utils.js +3 -0
  571. package/dist/cssm/lib/utils.js.map +1 -1
  572. package/dist/cssm/styles/components.css +5 -5
  573. package/dist/cssm/styles/themes.css +1 -1
  574. package/dist/cssm/tokenized/index.d.ts +14 -0
  575. package/dist/cssm/tokenized/index.js +7 -0
  576. package/dist/cssm/tokenized/index.js.map +1 -1
  577. package/dist/cssm/unstable/index.d.ts +6 -6
  578. package/dist/cssm/unstable/index.js +3 -3
  579. package/dist/cssm/unstable/index.js.map +1 -1
  580. package/dist/helpers/typography.d.ts +1 -0
  581. package/dist/helpers/typography.js +18 -0
  582. package/dist/helpers/typography.js.map +1 -0
  583. package/dist/hooks/useBooleanState.d.ts +6 -0
  584. package/dist/hooks/useBooleanState.js +27 -0
  585. package/dist/hooks/useBooleanState.js.map +1 -0
  586. package/dist/hooks/useCalendar.d.ts +18 -0
  587. package/dist/hooks/useCalendar.js +64 -0
  588. package/dist/hooks/useCalendar.js.map +1 -0
  589. package/dist/hooks/useDateInput.d.ts +30 -0
  590. package/dist/hooks/useDateInput.js +163 -0
  591. package/dist/hooks/useDateInput.js.map +1 -0
  592. package/dist/hooks/useKeyboardInputTracker.d.ts +2 -0
  593. package/dist/hooks/useKeyboardInputTracker.js +11 -4
  594. package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
  595. package/dist/hooks/useOrientationChange.d.ts +7 -0
  596. package/dist/hooks/useOrientationChange.js +42 -0
  597. package/dist/hooks/useOrientationChange.js.map +1 -0
  598. package/dist/hooks/usePagination.d.ts +34 -0
  599. package/dist/hooks/usePagination.js +67 -0
  600. package/dist/hooks/usePagination.js.map +1 -0
  601. package/dist/index.d.ts +12 -2
  602. package/dist/index.js +11 -3
  603. package/dist/index.js.map +1 -1
  604. package/dist/lib/calendar.d.ts +14 -0
  605. package/dist/lib/calendar.js +111 -0
  606. package/dist/lib/calendar.js.map +1 -0
  607. package/dist/lib/utils.d.ts +2 -1
  608. package/dist/lib/utils.js +3 -0
  609. package/dist/lib/utils.js.map +1 -1
  610. package/dist/tokenized/index.d.ts +14 -0
  611. package/dist/tokenized/index.js +7 -0
  612. package/dist/tokenized/index.js.map +1 -1
  613. package/dist/unstable/index.d.ts +6 -6
  614. package/dist/unstable/index.js +3 -3
  615. package/dist/unstable/index.js.map +1 -1
  616. package/dist/vkui.css +6 -6
  617. package/dist/vkui.css.map +1 -1
  618. package/package.json +14 -11
  619. package/src/components/ActionSheet/ActionSheet.tsx +3 -6
  620. package/src/components/ActionSheetItem/ActionSheetItem.tsx +3 -11
  621. package/src/components/Alert/Alert.tsx +3 -7
  622. package/src/components/Alert/Readme.md +4 -4
  623. package/src/components/AppRoot/Readme.md +2 -2
  624. package/src/components/Banner/Banner.tsx +1 -1
  625. package/src/components/Button/Button.css +26 -1
  626. package/src/components/Button/Button.tsx +6 -9
  627. package/src/components/ButtonGroup/ButtonGroup.css +52 -0
  628. package/src/components/ButtonGroup/ButtonGroup.tsx +48 -0
  629. package/src/components/ButtonGroup/Readme.md +311 -0
  630. package/src/components/Calendar/Calendar.css +31 -0
  631. package/src/components/Calendar/Calendar.tsx +184 -0
  632. package/src/components/Calendar/Readme.md +124 -0
  633. package/src/components/CalendarDay/CalendarDay.css +85 -0
  634. package/src/components/CalendarDay/CalendarDay.tsx +114 -0
  635. package/src/components/CalendarDays/CalendarDays.css +31 -0
  636. package/src/components/CalendarDays/CalendarDays.tsx +131 -0
  637. package/src/components/CalendarHeader/CalendarHeader.css +50 -0
  638. package/src/components/CalendarHeader/CalendarHeader.tsx +167 -0
  639. package/src/components/CalendarRange/CalendarRange.css +27 -0
  640. package/src/components/CalendarRange/CalendarRange.tsx +278 -0
  641. package/src/components/CalendarRange/Readme.md +85 -0
  642. package/src/components/CalendarTime/CalendarTime.css +18 -0
  643. package/src/components/CalendarTime/CalendarTime.tsx +88 -0
  644. package/src/components/Checkbox/Checkbox.tsx +2 -9
  645. package/src/components/Chip/Chip.tsx +2 -8
  646. package/src/components/ChipsSelect/ChipsSelect.tsx +6 -7
  647. package/src/components/ConfigProvider/ConfigProvider.tsx +36 -18
  648. package/src/components/ConfigProvider/ConfigProviderContext.tsx +9 -13
  649. package/src/components/ContentCard/ContentCard.tsx +3 -10
  650. package/src/components/Counter/Counter.tsx +2 -2
  651. package/src/components/CustomScrollView/CustomScrollView.tsx +1 -1
  652. package/src/components/CustomSelect/CustomSelect.css +0 -15
  653. package/src/components/CustomSelect/CustomSelect.tsx +46 -7
  654. package/src/components/CustomSelectDropdown/CustomSelectDropdown.css +13 -1
  655. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +12 -3
  656. package/src/components/CustomSelectOption/CustomSelectOption.tsx +3 -7
  657. package/src/components/CustomSelectOption/Readme.md +1 -1
  658. package/src/components/DateInput/DateInput.css +20 -0
  659. package/src/components/DateInput/DateInput.tsx +317 -0
  660. package/src/components/DateInput/Readme.md +116 -0
  661. package/src/components/DateRangeInput/DateRangeInput.css +16 -0
  662. package/src/components/DateRangeInput/DateRangeInput.tsx +350 -0
  663. package/src/components/DateRangeInput/Readme.md +96 -0
  664. package/src/components/Div/Div.css +1 -8
  665. package/src/components/Div/Div.tsx +2 -5
  666. package/src/components/Footer/Footer.tsx +2 -8
  667. package/src/components/Footer/Readme.md +1 -1
  668. package/src/components/FormField/FormField.css +33 -0
  669. package/src/components/FormItem/FormItem.tsx +3 -9
  670. package/src/components/FormStatus/FormStatus.tsx +3 -9
  671. package/src/components/Gallery/Readme.md +1 -1
  672. package/src/components/Group/Group.tsx +2 -4
  673. package/src/components/Header/Header.tsx +8 -11
  674. package/src/components/HorizontalCell/HorizontalCell.tsx +4 -12
  675. package/src/components/InfoRow/InfoRow.tsx +1 -1
  676. package/src/components/InputLike/InputLike.css +25 -0
  677. package/src/components/InputLike/InputLike.tsx +72 -0
  678. package/src/components/InputLike/InputLikeDivider.css +4 -0
  679. package/src/components/InputLike/InputLikeDivider.tsx +12 -0
  680. package/src/components/LocaleProviderContext/LocaleProviderContext.tsx +5 -0
  681. package/src/components/ModalPage/ModalPage.tsx +10 -4
  682. package/src/components/Pagination/Pagination.css +62 -0
  683. package/src/components/Pagination/Pagination.tsx +196 -0
  684. package/src/components/Pagination/Readme.md +110 -0
  685. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +2 -8
  686. package/src/components/PopoutWrapper/Readme.md +1 -1
  687. package/src/components/Popper/Readme.md +1 -1
  688. package/src/components/PromoBanner/PromoBanner.tsx +3 -5
  689. package/src/components/Radio/Radio.tsx +2 -9
  690. package/src/components/Removable/Removable.tsx +9 -7
  691. package/src/components/RichCell/Readme.md +4 -4
  692. package/src/components/RichCell/RichCell.tsx +3 -6
  693. package/src/components/RichTooltip/Readme.md +1 -1
  694. package/src/components/Select/Select.css +5 -0
  695. package/src/components/SelectMimicry/SelectMimicry.css +10 -0
  696. package/src/components/SelectMimicry/SelectMimicry.tsx +13 -3
  697. package/src/components/SimpleCell/SimpleCell.tsx +1 -5
  698. package/src/components/SimpleCheckbox/SimpleCheckbox.tsx +0 -3
  699. package/src/components/Spacing/Spacing.tsx +2 -2
  700. package/src/components/SubnavigationButton/SubnavigationButton.tsx +3 -9
  701. package/src/components/Tabbar/Readme.md +1 -1
  702. package/src/components/Tappable/Tappable.tsx +12 -3
  703. package/src/components/TextTooltip/Readme.md +1 -1
  704. package/src/components/TextTooltip/TextTooltip.tsx +2 -6
  705. package/src/components/Tooltip/Tooltip.tsx +2 -6
  706. package/src/components/Typography/Caption/Caption.css +61 -19
  707. package/src/components/Typography/Caption/Caption.tsx +24 -15
  708. package/src/components/Typography/Caption/Readme.md +26 -48
  709. package/src/components/Typography/Subhead/Readme.md +18 -24
  710. package/src/components/Typography/Subhead/Subhead.css +22 -7
  711. package/src/components/Typography/Subhead/Subhead.tsx +25 -7
  712. package/src/components/Typography/Title/Title.tsx +6 -3
  713. package/src/components/UsersStack/Readme.md +1 -1
  714. package/src/components/UsersStack/UsersStack.tsx +3 -4
  715. package/src/components/View/Readme.md +1 -1
  716. package/src/components/View/ViewInfinite.tsx +3 -4
  717. package/src/helpers/typography.ts +24 -0
  718. package/src/hooks/useBooleanState.ts +19 -0
  719. package/src/hooks/useCalendar.ts +78 -0
  720. package/src/hooks/useDateInput.ts +213 -0
  721. package/src/hooks/useKeyboardInputTracker.ts +25 -8
  722. package/src/hooks/useOrientationChange.ts +39 -0
  723. package/src/hooks/usePagination.ts +96 -0
  724. package/src/index.ts +12 -2
  725. package/src/lib/calendar.ts +123 -0
  726. package/src/lib/utils.ts +4 -1
  727. package/src/styles/components.css +14 -0
  728. package/src/tokenized/index.ts +21 -0
  729. package/src/unstable/index.ts +6 -6
  730. package/postcss.config.js +0 -54
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/CalendarDays/CalendarDays.tsx"],"names":["CalendarDays","viewDate","value","weekStartsOn","onDayChange","isDaySelected","isDayActive","isDaySelectionEnd","isDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","isHintedDaySelectionStart","isHintedDaySelectionEnd","isDayFocused","isDayDisabled","size","showNeighboringMonth","props","locale","React","useContext","LocaleProviderContext","ref","useRef","useState","Date","now","weeks","useMemo","daysNames","handleDayChange","useCallback","date","current","focus","map","dayName","week","i","day","sameMonth","toISOString"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAwBO,IAAMA,YAAyC,GAAG,SAA5CA,YAA4C,OAmBnD;AAAA,MAlBJC,QAkBI,QAlBJA,QAkBI;AAAA,MAjBJC,KAiBI,QAjBJA,KAiBI;AAAA,MAhBJC,YAgBI,QAhBJA,YAgBI;AAAA,MAfJC,WAeI,QAfJA,WAeI;AAAA,MAdJC,aAcI,QAdJA,aAcI;AAAA,MAbJC,WAaI,QAbJA,WAaI;AAAA,MAZJC,iBAYI,QAZJA,iBAYI;AAAA,MAXJC,mBAWI,QAXJA,mBAWI;AAAA,MAVJC,UAUI,QAVJA,UAUI;AAAA,MATJC,UASI,QATJA,UASI;AAAA,MARJC,WAQI,QARJA,WAQI;AAAA,MAPJC,yBAOI,QAPJA,yBAOI;AAAA,MANJC,uBAMI,QANJA,uBAMI;AAAA,MALJC,YAKI,QALJA,YAKI;AAAA,MAJJC,aAII,QAJJA,aAII;AAAA,MAHJC,IAGI,QAHJA,IAGI;AAAA,mCAFJC,oBAEI;AAAA,MAFJA,oBAEI,sCAFmB,KAEnB;AAAA,MADDC,KACC;AACJ,MAAMC,MAAM,GAAGC,KAAK,CAACC,UAAN,CAAiBC,4CAAjB,CAAf;AACA,MAAMC,GAAG,GAAGH,KAAK,CAACI,MAAN,CAA6B,IAA7B,CAAZ;;AACA,wBAAcJ,KAAK,CAACK,QAAN,CAAe,IAAIC,IAAJ,EAAf,CAAd;AAAA;AAAA,MAAOC,GAAP;;AAEA,MAAMC,KAAK,GAAGR,KAAK,CAACS,OAAN,CACZ;AAAA,WAAM,wBAAS5B,QAAT,EAAmBE,YAAnB,CAAN;AAAA,GADY,EAEZ,CAACA,YAAD,EAAeF,QAAf,CAFY,CAAd;AAKA,MAAM6B,SAAS,GAAGV,KAAK,CAACS,OAAN,CAChB;AAAA,WAAM,4BAAaF,GAAb,EAAkBxB,YAAlB,EAAgCgB,MAAhC,CAAN;AAAA,GADgB,EAEhB,CAACA,MAAD,EAASQ,GAAT,EAAcxB,YAAd,CAFgB,CAAlB;AAKA,MAAM4B,eAAe,GAAGX,KAAK,CAACY,WAAN,CACtB,UAACC,IAAD,EAAgB;AAAA;;AACd7B,IAAAA,WAAW,CAAC6B,IAAD,CAAX;AAEA,oBAAAV,GAAG,CAACW,OAAJ,8DAAaC,KAAb;AACD,GALqB,EAMtB,CAAC/B,WAAD,CANsB,CAAxB;AASA,SACE,uEAASc,KAAT;AAAgB,IAAA,SAAS,EAAC,cAA1B;AAAyC,IAAA,GAAG,EAAEK;AAA9C,MACE;AACE,IAAA,SAAS,EAAE,4BACT,mBADS,oCAEkBP,IAFlB;AADb,KAMGc,SAAS,CAACM,GAAV,CAAc,UAACC,OAAD;AAAA,WACb,qCAAC,gBAAD;AACE,MAAA,KAAK,EAAC,GADR;AAEE,MAAA,MAAM,EAAC,SAFT;AAGE,MAAA,SAAS,EAAC,uBAHZ;AAIE,MAAA,GAAG,EAAEA;AAJP,OAMGA,OANH,CADa;AAAA,GAAd,CANH,CADF,EAmBGT,KAAK,CAACQ,GAAN,CAAU,UAACE,IAAD,EAAOC,CAAP;AAAA,WACT;AACE,MAAA,SAAS,EAAE,4BACT,mBADS,oCAEkBvB,IAFlB,EADb;AAKE,MAAA,GAAG,EAAEuB;AALP,OAOGD,IAAI,CAACF,GAAL,CAAS,UAACI,GAAD,EAAMD,CAAN,EAAY;AACpB,UAAME,SAAS,GAAG,0BAAYD,GAAZ,EAAiBvC,QAAjB,CAAlB;AACA,aACE,qCAAC,wBAAD;AACE,QAAA,GAAG,EAAEuC,GAAG,CAACE,WAAJ,EADP;AAEE,QAAA,GAAG,EAAEF,GAFP;AAGE,QAAA,KAAK,EAAE,wBAAUA,GAAV,EAAeb,GAAf,CAHT;AAIE,QAAA,MAAM,EAAErB,WAAW,CAACkC,GAAD,CAJrB;AAKE,QAAA,QAAQ,EAAET,eALZ;AAME,QAAA,MAAM,EAAE,CAACd,oBAAD,IAAyB,CAACwB,SANpC;AAOE,QAAA,QAAQ,EAAE1B,aAAa,CAACyB,GAAD,CAPzB;AAQE,QAAA,cAAc,EAAEhC,mBAAmB,CAACgC,GAAD,EAAMD,CAAN,CARrC;AASE,QAAA,YAAY,EAAEhC,iBAAiB,CAACiC,GAAD,EAAMD,CAAN,CATjC;AAUE,QAAA,oBAAoB,EAAE3B,yBAAF,aAAEA,yBAAF,uBAAEA,yBAAyB,CAAG4B,GAAH,EAAQD,CAAR,CAVjD;AAWE,QAAA,kBAAkB,EAAE1B,uBAAF,aAAEA,uBAAF,uBAAEA,uBAAuB,CAAG2B,GAAH,EAAQD,CAAR,CAX7C;AAYE,QAAA,QAAQ,EAAElC,aAAF,aAAEA,aAAF,uBAAEA,aAAa,CAAGmC,GAAH,CAZzB;AAaE,QAAA,OAAO,EAAE1B,YAAY,CAAC0B,GAAD,CAbvB;AAcE,QAAA,OAAO,EAAE/B,UAdX;AAeE,QAAA,OAAO,EAAEC,UAfX;AAgBE,QAAA,MAAM,EAAEC,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAG6B,GAAH,CAhBrB;AAiBE,QAAA,SAAS,EAAEC,SAjBb;AAkBE,QAAA,IAAI,EAAEzB;AAlBR,QADF;AAsBD,KAxBA,CAPH,CADS;AAAA,GAAV,CAnBH,CADF;AAyDD,CApGM","sourcesContent":["import * as React from \"react\";\nimport { isSameDay, isSameMonth } from \"date-fns\";\nimport { CalendarDay } from \"../CalendarDay/CalendarDay\";\nimport { getDaysNames, getWeeks } from \"../../lib/calendar\";\nimport { LocaleProviderContext } from \"../LocaleProviderContext/LocaleProviderContext\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport \"./CalendarDays.css\";\n\nexport interface CalendarDaysProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: Date | Array<Date | null>;\n viewDate: Date;\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n showNeighboringMonth?: boolean;\n size?: \"s\" | \"m\";\n onDayChange(value: Date): void;\n isDayDisabled(value: Date): boolean;\n isDaySelectionStart(value: Date, dayOfWeek: number): boolean;\n isDaySelectionEnd(value: Date, dayOfWeek: number): boolean;\n isHintedDaySelectionStart?(value: Date, dayOfWeek: number): boolean;\n isHintedDaySelectionEnd?(value: Date, dayOfWeek: number): boolean;\n isDayActive(value: Date): boolean;\n isDayHinted?(value: Date): boolean;\n isDaySelected?(value: Date): boolean;\n isDayFocused(value: Date): boolean;\n onDayEnter?(value: Date): void;\n onDayLeave?(value: Date): void;\n}\n\nexport const CalendarDays: React.FC<CalendarDaysProps> = ({\n viewDate,\n value,\n weekStartsOn,\n onDayChange,\n isDaySelected,\n isDayActive,\n isDaySelectionEnd,\n isDaySelectionStart,\n onDayEnter,\n onDayLeave,\n isDayHinted,\n isHintedDaySelectionStart,\n isHintedDaySelectionEnd,\n isDayFocused,\n isDayDisabled,\n size,\n showNeighboringMonth = false,\n ...props\n}) => {\n const locale = React.useContext(LocaleProviderContext);\n const ref = React.useRef<HTMLDivElement>(null);\n const [now] = React.useState(new Date());\n\n const weeks = React.useMemo(\n () => getWeeks(viewDate, weekStartsOn),\n [weekStartsOn, viewDate]\n );\n\n const daysNames = React.useMemo(\n () => getDaysNames(now, weekStartsOn, locale),\n [locale, now, weekStartsOn]\n );\n\n const handleDayChange = React.useCallback(\n (date: Date) => {\n onDayChange(date);\n\n ref.current?.focus();\n },\n [onDayChange]\n );\n\n return (\n <div {...props} vkuiClass=\"CalendarDays\" ref={ref}>\n <div\n vkuiClass={classNames(\n \"CalendarDays__row\",\n `CalendarDays__row--size-${size}`\n )}\n >\n {daysNames.map((dayName) => (\n <Caption\n level=\"1\"\n weight=\"regular\"\n vkuiClass=\"CalendarDays__weekday\"\n key={dayName}\n >\n {dayName}\n </Caption>\n ))}\n </div>\n\n {weeks.map((week, i) => (\n <div\n vkuiClass={classNames(\n \"CalendarDays__row\",\n `CalendarDays__row--size-${size}`\n )}\n key={i}\n >\n {week.map((day, i) => {\n const sameMonth = isSameMonth(day, viewDate);\n return (\n <CalendarDay\n key={day.toISOString()}\n day={day}\n today={isSameDay(day, now)}\n active={isDayActive(day)}\n onChange={handleDayChange}\n hidden={!showNeighboringMonth && !sameMonth}\n disabled={isDayDisabled(day)}\n selectionStart={isDaySelectionStart(day, i)}\n selectionEnd={isDaySelectionEnd(day, i)}\n hintedSelectionStart={isHintedDaySelectionStart?.(day, i)}\n hintedSelectionEnd={isHintedDaySelectionEnd?.(day, i)}\n selected={isDaySelected?.(day)}\n focused={isDayFocused(day)}\n onEnter={onDayEnter}\n onLeave={onDayLeave}\n hinted={isDayHinted?.(day)}\n sameMonth={sameMonth}\n size={size}\n />\n );\n })}\n </div>\n ))}\n </div>\n );\n};\n"],"file":"CalendarDays.js"}
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ import "./CalendarHeader.css";
3
+ export interface CalendarHeaderProps extends Pick<React.HTMLAttributes<HTMLDivElement>, "className"> {
4
+ viewDate: Date;
5
+ prevMonth?: boolean;
6
+ nextMonth?: boolean;
7
+ disablePickers?: boolean;
8
+ prevMonthAriaLabel?: string;
9
+ nextMonthAriaLabel?: string;
10
+ changeMonthAriaLabel?: string;
11
+ changeYearAriaLabel?: string;
12
+ onChange(viewDate: Date): void;
13
+ onNextMonth?(): void;
14
+ onPrevMonth?(): void;
15
+ }
16
+ export declare const CalendarHeader: React.FC<CalendarHeaderProps>;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.CalendarHeader = void 0;
11
+
12
+ var _jsxRuntime = require("../../lib/jsxRuntime");
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var React = _interopRequireWildcard(require("react"));
17
+
18
+ var _dateFns = require("date-fns");
19
+
20
+ var _icons = require("@vkontakte/icons");
21
+
22
+ var _Tappable = _interopRequireDefault(require("../Tappable/Tappable"));
23
+
24
+ var _classNames = require("../../lib/classNames");
25
+
26
+ var _CustomSelect = _interopRequireWildcard(require("../CustomSelect/CustomSelect"));
27
+
28
+ var _CustomSelectOption = _interopRequireDefault(require("../CustomSelectOption/CustomSelectOption"));
29
+
30
+ var _withAdaptivity = require("../../hoc/withAdaptivity");
31
+
32
+ var _calendar = require("../../lib/calendar");
33
+
34
+ var _LocaleProviderContext = require("../LocaleProviderContext/LocaleProviderContext");
35
+
36
+ var _Text = _interopRequireDefault(require("../Typography/Text/Text"));
37
+
38
+ var _excluded = ["option", "children"];
39
+
40
+ var renderOption = function renderOption(_ref) {
41
+ var option = _ref.option,
42
+ children = _ref.children,
43
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
44
+ return (0, _jsxRuntime.createScopedElement)(_CustomSelectOption.default, props, (0, _jsxRuntime.createScopedElement)("span", {
45
+ vkuiClass: "CalendarHeader__month_name"
46
+ }, children));
47
+ };
48
+
49
+ var CalendarHeader = function CalendarHeader(_ref2) {
50
+ var viewDate = _ref2.viewDate,
51
+ onChange = _ref2.onChange,
52
+ _ref2$prevMonth = _ref2.prevMonth,
53
+ prevMonth = _ref2$prevMonth === void 0 ? true : _ref2$prevMonth,
54
+ _ref2$nextMonth = _ref2.nextMonth,
55
+ nextMonth = _ref2$nextMonth === void 0 ? true : _ref2$nextMonth,
56
+ _ref2$disablePickers = _ref2.disablePickers,
57
+ disablePickers = _ref2$disablePickers === void 0 ? false : _ref2$disablePickers,
58
+ onNextMonth = _ref2.onNextMonth,
59
+ onPrevMonth = _ref2.onPrevMonth,
60
+ className = _ref2.className,
61
+ _ref2$prevMonthAriaLa = _ref2.prevMonthAriaLabel,
62
+ prevMonthAriaLabel = _ref2$prevMonthAriaLa === void 0 ? "Предыдущий месяц" : _ref2$prevMonthAriaLa,
63
+ _ref2$nextMonthAriaLa = _ref2.nextMonthAriaLabel,
64
+ nextMonthAriaLabel = _ref2$nextMonthAriaLa === void 0 ? "Следующий месяц" : _ref2$nextMonthAriaLa,
65
+ _ref2$changeMonthAria = _ref2.changeMonthAriaLabel,
66
+ changeMonthAriaLabel = _ref2$changeMonthAria === void 0 ? "Изменить месяц" : _ref2$changeMonthAria,
67
+ _ref2$changeYearAriaL = _ref2.changeYearAriaLabel,
68
+ changeYearAriaLabel = _ref2$changeYearAriaL === void 0 ? "Изменить год" : _ref2$changeYearAriaL;
69
+ var locale = React.useContext(_LocaleProviderContext.LocaleProviderContext);
70
+ var onMonthsChange = React.useCallback(function (event) {
71
+ return onChange((0, _dateFns.setMonth)(viewDate, Number(event.target.value)));
72
+ }, [onChange, viewDate]);
73
+ var onYearChange = React.useCallback(function (event) {
74
+ return onChange((0, _dateFns.setYear)(viewDate, Number(event.target.value)));
75
+ }, [onChange, viewDate]);
76
+ var months = React.useMemo(function () {
77
+ return (0, _calendar.getMonths)(locale);
78
+ }, [locale]);
79
+ var currentYear = viewDate.getFullYear();
80
+ var years = React.useMemo(function () {
81
+ return (0, _calendar.getYears)(currentYear, 100);
82
+ }, [currentYear]);
83
+ var formatter = new Intl.DateTimeFormat(locale, {
84
+ year: "numeric",
85
+ month: "long"
86
+ });
87
+ return (0, _jsxRuntime.createScopedElement)("div", {
88
+ vkuiClass: "CalendarHeader",
89
+ className: className
90
+ }, prevMonth && (0, _jsxRuntime.createScopedElement)(_Tappable.default, {
91
+ vkuiClass: (0, _classNames.classNames)("CalendarHeader__nav-icon", "CalendarHeader__nav-icon-prev"),
92
+ onClick: onPrevMonth,
93
+ "aria-label": "".concat(prevMonthAriaLabel, ", ").concat(formatter.format((0, _dateFns.subMonths)(viewDate, 1)))
94
+ }, (0, _jsxRuntime.createScopedElement)(_icons.Icon20ChevronLeftOutline, {
95
+ width: 30,
96
+ height: 30
97
+ })), (0, _jsxRuntime.createScopedElement)("div", {
98
+ vkuiClass: "CalendarHeader__pickers"
99
+ }, disablePickers ? (0, _jsxRuntime.createScopedElement)(React.Fragment, null, (0, _jsxRuntime.createScopedElement)(_Text.default, {
100
+ weight: "medium",
101
+ vkuiClass: "CalendarHeader__pickers-placeholder"
102
+ }, new Intl.DateTimeFormat(locale, {
103
+ month: "long"
104
+ }).format(viewDate)), (0, _jsxRuntime.createScopedElement)(_Text.default, {
105
+ weight: "medium",
106
+ vkuiClass: "CalendarHeader__pickers-placeholder"
107
+ }, new Intl.DateTimeFormat(locale, {
108
+ year: "numeric"
109
+ }).format(viewDate))) : (0, _jsxRuntime.createScopedElement)(React.Fragment, null, (0, _jsxRuntime.createScopedElement)(_CustomSelect.default, {
110
+ value: viewDate.getMonth(),
111
+ options: months,
112
+ renderOption: renderOption,
113
+ dropdownOffsetDistance: 4,
114
+ fixDropdownWidth: false,
115
+ sizeY: _withAdaptivity.SizeType.COMPACT,
116
+ icon: (0, _jsxRuntime.createScopedElement)(_icons.Icon12Dropdown, null),
117
+ onChange: onMonthsChange,
118
+ forceDropdownPortal: false,
119
+ selectType: _CustomSelect.SelectType.Plain,
120
+ "aria-label": changeMonthAriaLabel
121
+ }), (0, _jsxRuntime.createScopedElement)(_CustomSelect.default, {
122
+ value: viewDate.getFullYear(),
123
+ options: years,
124
+ dropdownOffsetDistance: 4,
125
+ fixDropdownWidth: false,
126
+ sizeY: _withAdaptivity.SizeType.COMPACT,
127
+ icon: (0, _jsxRuntime.createScopedElement)(_icons.Icon12Dropdown, null),
128
+ onChange: onYearChange,
129
+ forceDropdownPortal: false,
130
+ selectType: _CustomSelect.SelectType.Plain,
131
+ "aria-label": changeYearAriaLabel
132
+ }))), nextMonth && (0, _jsxRuntime.createScopedElement)(_Tappable.default, {
133
+ vkuiClass: (0, _classNames.classNames)("CalendarHeader__nav-icon", "CalendarHeader__nav-icon-next"),
134
+ onClick: onNextMonth,
135
+ "aria-label": "".concat(nextMonthAriaLabel, ", ").concat(formatter.format((0, _dateFns.addMonths)(viewDate, 1)))
136
+ }, (0, _jsxRuntime.createScopedElement)(_icons.Icon20ChevronRightOutline, {
137
+ width: 30,
138
+ height: 30
139
+ })));
140
+ };
141
+
142
+ exports.CalendarHeader = CalendarHeader;
143
+ //# sourceMappingURL=CalendarHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/CalendarHeader/CalendarHeader.tsx"],"names":["renderOption","option","children","props","CalendarHeader","viewDate","onChange","prevMonth","nextMonth","disablePickers","onNextMonth","onPrevMonth","className","prevMonthAriaLabel","nextMonthAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","locale","React","useContext","LocaleProviderContext","onMonthsChange","useCallback","event","Number","target","value","onYearChange","months","useMemo","currentYear","getFullYear","years","formatter","Intl","DateTimeFormat","year","month","format","getMonth","SizeType","COMPACT","SelectType","Plain"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { setMonth, setYear, subMonths, addMonths } from \"date-fns\";\nimport {\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n Icon12Dropdown,\n} from \"@vkontakte/icons\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { classNames } from \"../../lib/classNames\";\nimport CustomSelect, {\n CustomSelectProps,\n SelectType,\n} from \"../CustomSelect/CustomSelect\";\nimport CustomSelectOption from \"../CustomSelectOption/CustomSelectOption\";\nimport { SizeType } from \"../../hoc/withAdaptivity\";\nimport { getMonths, getYears } from \"../../lib/calendar\";\nimport { LocaleProviderContext } from \"../LocaleProviderContext/LocaleProviderContext\";\nimport Text from \"../Typography/Text/Text\";\nimport \"./CalendarHeader.css\";\n\nexport interface CalendarHeaderProps\n extends Pick<React.HTMLAttributes<HTMLDivElement>, \"className\"> {\n viewDate: Date;\n prevMonth?: boolean;\n nextMonth?: boolean;\n disablePickers?: boolean;\n prevMonthAriaLabel?: string;\n nextMonthAriaLabel?: string;\n changeMonthAriaLabel?: string;\n changeYearAriaLabel?: string;\n onChange(viewDate: Date): void;\n onNextMonth?(): void;\n onPrevMonth?(): void;\n}\n\nconst renderOption: CustomSelectProps[\"renderOption\"] = ({\n option,\n children,\n ...props\n}) => {\n return (\n <CustomSelectOption {...props}>\n <span vkuiClass=\"CalendarHeader__month_name\">{children}</span>\n </CustomSelectOption>\n );\n};\n\nexport const CalendarHeader: React.FC<CalendarHeaderProps> = ({\n viewDate,\n onChange,\n prevMonth = true,\n nextMonth = true,\n disablePickers = false,\n onNextMonth,\n onPrevMonth,\n className,\n prevMonthAriaLabel = \"Предыдущий месяц\",\n nextMonthAriaLabel = \"Следующий месяц\",\n changeMonthAriaLabel = \"Изменить месяц\",\n changeYearAriaLabel = \"Изменить год\",\n}) => {\n const locale = React.useContext(LocaleProviderContext);\n const onMonthsChange = React.useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) =>\n onChange(setMonth(viewDate, Number(event.target.value))),\n [onChange, viewDate]\n );\n const onYearChange = React.useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) =>\n onChange(setYear(viewDate, Number(event.target.value))),\n [onChange, viewDate]\n );\n\n const months = React.useMemo(() => getMonths(locale), [locale]);\n\n const currentYear = viewDate.getFullYear();\n\n const years = React.useMemo(() => getYears(currentYear, 100), [currentYear]);\n\n const formatter = new Intl.DateTimeFormat(locale, {\n year: \"numeric\",\n month: \"long\",\n });\n\n return (\n <div vkuiClass=\"CalendarHeader\" className={className}>\n {prevMonth && (\n <Tappable\n vkuiClass={classNames(\n \"CalendarHeader__nav-icon\",\n \"CalendarHeader__nav-icon-prev\"\n )}\n onClick={onPrevMonth}\n aria-label={`${prevMonthAriaLabel}, ${formatter.format(\n subMonths(viewDate, 1)\n )}`}\n >\n <Icon20ChevronLeftOutline width={30} height={30} />\n </Tappable>\n )}\n <div vkuiClass=\"CalendarHeader__pickers\">\n {disablePickers ? (\n <React.Fragment>\n <Text\n weight=\"medium\"\n vkuiClass=\"CalendarHeader__pickers-placeholder\"\n >\n {new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(viewDate)}\n </Text>\n <Text\n weight=\"medium\"\n vkuiClass=\"CalendarHeader__pickers-placeholder\"\n >\n {new Intl.DateTimeFormat(locale, {\n year: \"numeric\",\n }).format(viewDate)}\n </Text>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <CustomSelect\n value={viewDate.getMonth()}\n options={months}\n renderOption={renderOption}\n dropdownOffsetDistance={4}\n fixDropdownWidth={false}\n sizeY={SizeType.COMPACT}\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType={SelectType.Plain}\n aria-label={changeMonthAriaLabel}\n />\n <CustomSelect\n value={viewDate.getFullYear()}\n options={years}\n dropdownOffsetDistance={4}\n fixDropdownWidth={false}\n sizeY={SizeType.COMPACT}\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType={SelectType.Plain}\n aria-label={changeYearAriaLabel}\n />\n </React.Fragment>\n )}\n </div>\n {nextMonth && (\n <Tappable\n vkuiClass={classNames(\n \"CalendarHeader__nav-icon\",\n \"CalendarHeader__nav-icon-next\"\n )}\n onClick={onNextMonth}\n aria-label={`${nextMonthAriaLabel}, ${formatter.format(\n addMonths(viewDate, 1)\n )}`}\n >\n <Icon20ChevronRightOutline width={30} height={30} />\n </Tappable>\n )}\n </div>\n );\n};\n"],"file":"CalendarHeader.js"}
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ import { CalendarHeaderProps } from "../CalendarHeader/CalendarHeader";
3
+ import { HasRootRef } from "../../types";
4
+ import "./CalendarRange.css";
5
+ export interface CalendarRangeProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange">, Pick<CalendarHeaderProps, "prevMonthAriaLabel" | "nextMonthAriaLabel" | "changeMonthAriaLabel" | "changeYearAriaLabel">, HasRootRef<HTMLDivElement> {
6
+ value?: Array<Date | null>;
7
+ disablePast?: boolean;
8
+ disableFuture?: boolean;
9
+ disablePickers?: boolean;
10
+ changeDayAriaLabel?: string;
11
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
12
+ onChange?(value?: Array<Date | null>): void;
13
+ shouldDisableDate?(value: Date): boolean;
14
+ onClose?(): void;
15
+ }
16
+ export declare const CalendarRange: React.FC<CalendarRangeProps>;
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.CalendarRange = void 0;
11
+
12
+ var _jsxRuntime = require("../../lib/jsxRuntime");
13
+
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
+
20
+ var React = _interopRequireWildcard(require("react"));
21
+
22
+ var _dateFns = require("date-fns");
23
+
24
+ var _CalendarHeader = require("../CalendarHeader/CalendarHeader");
25
+
26
+ var _CalendarDays = require("../CalendarDays/CalendarDays");
27
+
28
+ var _calendar = require("../../lib/calendar");
29
+
30
+ var _useCalendar2 = require("../../hooks/useCalendar");
31
+
32
+ var _excluded = ["value", "onChange", "disablePast", "disableFuture", "shouldDisableDate", "onClose", "weekStartsOn", "getRootRef", "disablePickers", "prevMonthAriaLabel", "nextMonthAriaLabel", "changeMonthAriaLabel", "changeYearAriaLabel", "changeDayAriaLabel"];
33
+
34
+ var getIsDaySelected = function getIsDaySelected(day, value) {
35
+ if (!(value !== null && value !== void 0 && value[0]) || !value[1]) {
36
+ return false;
37
+ }
38
+
39
+ return Boolean((0, _dateFns.isWithinInterval)(day, {
40
+ start: (0, _dateFns.startOfDay)(value[0]),
41
+ end: (0, _dateFns.endOfDay)(value[1])
42
+ }));
43
+ };
44
+
45
+ var CalendarRange = function CalendarRange(_ref) {
46
+ var value = _ref.value,
47
+ onChange = _ref.onChange,
48
+ disablePast = _ref.disablePast,
49
+ disableFuture = _ref.disableFuture,
50
+ shouldDisableDate = _ref.shouldDisableDate,
51
+ onClose = _ref.onClose,
52
+ _ref$weekStartsOn = _ref.weekStartsOn,
53
+ weekStartsOn = _ref$weekStartsOn === void 0 ? 1 : _ref$weekStartsOn,
54
+ getRootRef = _ref.getRootRef,
55
+ disablePickers = _ref.disablePickers,
56
+ prevMonthAriaLabel = _ref.prevMonthAriaLabel,
57
+ nextMonthAriaLabel = _ref.nextMonthAriaLabel,
58
+ changeMonthAriaLabel = _ref.changeMonthAriaLabel,
59
+ changeYearAriaLabel = _ref.changeYearAriaLabel,
60
+ _ref$changeDayAriaLab = _ref.changeDayAriaLabel,
61
+ changeDayAriaLabel = _ref$changeDayAriaLab === void 0 ? "Изменить день" : _ref$changeDayAriaLab,
62
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
63
+
64
+ var _useCalendar = (0, _useCalendar2.useCalendar)({
65
+ value: value,
66
+ disableFuture: disableFuture,
67
+ disablePast: disablePast,
68
+ shouldDisableDate: shouldDisableDate
69
+ }),
70
+ viewDate = _useCalendar.viewDate,
71
+ setViewDate = _useCalendar.setViewDate,
72
+ setPrevMonth = _useCalendar.setPrevMonth,
73
+ setNextMonth = _useCalendar.setNextMonth,
74
+ focusedDay = _useCalendar.focusedDay,
75
+ setFocusedDay = _useCalendar.setFocusedDay,
76
+ isDayFocused = _useCalendar.isDayFocused,
77
+ isDayDisabled = _useCalendar.isDayDisabled,
78
+ resetSelectedDay = _useCalendar.resetSelectedDay;
79
+
80
+ var _React$useState = React.useState(),
81
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
82
+ hintedDate = _React$useState2[0],
83
+ setHintedDate = _React$useState2[1];
84
+
85
+ var secondViewDate = (0, _dateFns.addMonths)(viewDate, 1);
86
+ var handleKeyDown = React.useCallback(function (event) {
87
+ if (["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(event.key)) {
88
+ event.preventDefault();
89
+ }
90
+
91
+ var newFocusedDay = (0, _calendar.navigateDate)(focusedDay !== null && focusedDay !== void 0 ? focusedDay : value === null || value === void 0 ? void 0 : value[1], event.key);
92
+
93
+ if (newFocusedDay && !(0, _dateFns.isSameMonth)(newFocusedDay, viewDate) && !(0, _dateFns.isSameMonth)(newFocusedDay, (0, _dateFns.addMonths)(viewDate, 1))) {
94
+ setViewDate(newFocusedDay);
95
+ }
96
+
97
+ setFocusedDay(newFocusedDay);
98
+ }, [focusedDay, setFocusedDay, setViewDate, value, viewDate]);
99
+ var getNewValue = React.useCallback(function (date) {
100
+ if (!value) {
101
+ return [date, null];
102
+ }
103
+
104
+ var start = value[0];
105
+ var end = value[1];
106
+
107
+ if (start && (0, _dateFns.isSameDay)(date, start) || end && (0, _dateFns.isSameDay)(date, end)) {
108
+ return [(0, _calendar.setTimeEqual)(date, start), (0, _calendar.setTimeEqual)(date, end)];
109
+ } else if (start && (0, _dateFns.isBefore)(date, start)) {
110
+ return [(0, _calendar.setTimeEqual)(date, start), end];
111
+ } else if (start && (0, _dateFns.isAfter)(date, start)) {
112
+ return [start, (0, _calendar.setTimeEqual)(date, end)];
113
+ }
114
+
115
+ return value;
116
+ }, [value]);
117
+ var onDayChange = React.useCallback(function (date) {
118
+ onChange === null || onChange === void 0 ? void 0 : onChange(getNewValue(date));
119
+ setHintedDate(undefined);
120
+ }, [onChange, getNewValue]);
121
+ var isDaySelected = React.useCallback(function (day) {
122
+ return getIsDaySelected(day, value);
123
+ }, [value]);
124
+ var isDayActive = React.useCallback(function (day) {
125
+ return Boolean((value === null || value === void 0 ? void 0 : value[0]) && (0, _dateFns.isSameDay)(day, value[0]) || (value === null || value === void 0 ? void 0 : value[1]) && (0, _dateFns.isSameDay)(day, value[1]));
126
+ }, [value]);
127
+ var isDaySelectionEnd = React.useCallback(function (day, dayOfWeek) {
128
+ return Boolean((0, _calendar.isLastDay)(day, dayOfWeek) || (value === null || value === void 0 ? void 0 : value[1]) && (0, _dateFns.isSameDay)(day, value[1]));
129
+ }, [value]);
130
+ var isHintedDaySelectionEnd = React.useCallback(function (day, dayOfWeek) {
131
+ return Boolean((0, _calendar.isLastDay)(day, dayOfWeek) || (hintedDate === null || hintedDate === void 0 ? void 0 : hintedDate[1]) && (0, _dateFns.isSameDay)(day, hintedDate[1]));
132
+ }, [hintedDate]);
133
+ var isDaySelectionStart = React.useCallback(function (day, dayOfWeek) {
134
+ return Boolean((0, _calendar.isFirstDay)(day, dayOfWeek) || (value === null || value === void 0 ? void 0 : value[0]) && (0, _dateFns.isSameDay)(day, value[0]));
135
+ }, [value]);
136
+ var isHintedDaySelectionStart = React.useCallback(function (day, dayOfWeek) {
137
+ return Boolean((0, _calendar.isFirstDay)(day, dayOfWeek) || (hintedDate === null || hintedDate === void 0 ? void 0 : hintedDate[0]) && (0, _dateFns.isSameDay)(day, hintedDate[0]));
138
+ }, [hintedDate]);
139
+ var onDayEnter = React.useCallback(function (date) {
140
+ return setHintedDate(getNewValue(date));
141
+ }, [setHintedDate, getNewValue]);
142
+ var onDayLeave = React.useCallback(function () {
143
+ return setHintedDate(undefined);
144
+ }, [setHintedDate]);
145
+ var isDayHinted = React.useCallback(function (day) {
146
+ return getIsDaySelected(day, hintedDate);
147
+ }, [hintedDate]);
148
+ return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, props, {
149
+ ref: getRootRef,
150
+ vkuiClass: "CalendarRange"
151
+ }), (0, _jsxRuntime.createScopedElement)("div", {
152
+ vkuiClass: "CalendarRange__inner"
153
+ }, (0, _jsxRuntime.createScopedElement)(_CalendarHeader.CalendarHeader, {
154
+ viewDate: viewDate,
155
+ onChange: setViewDate,
156
+ nextMonth: false,
157
+ onPrevMonth: setPrevMonth,
158
+ disablePickers: disablePickers,
159
+ vkuiClass: "CalendarRange__header",
160
+ prevMonthAriaLabel: prevMonthAriaLabel,
161
+ nextMonthAriaLabel: nextMonthAriaLabel,
162
+ changeMonthAriaLabel: changeMonthAriaLabel,
163
+ changeYearAriaLabel: changeYearAriaLabel
164
+ }), (0, _jsxRuntime.createScopedElement)(_CalendarDays.CalendarDays, {
165
+ viewDate: viewDate,
166
+ value: value,
167
+ weekStartsOn: weekStartsOn,
168
+ onKeyDown: handleKeyDown,
169
+ isDayFocused: isDayFocused,
170
+ onDayChange: onDayChange,
171
+ isDaySelected: isDaySelected,
172
+ isDayActive: isDayActive,
173
+ isDaySelectionEnd: isDaySelectionEnd,
174
+ isDaySelectionStart: isDaySelectionStart,
175
+ isDayHinted: isDayHinted,
176
+ onDayEnter: onDayEnter,
177
+ onDayLeave: onDayLeave,
178
+ isHintedDaySelectionEnd: isHintedDaySelectionEnd,
179
+ isHintedDaySelectionStart: isHintedDaySelectionStart,
180
+ isDayDisabled: isDayDisabled,
181
+ "aria-label": changeDayAriaLabel
182
+ })), (0, _jsxRuntime.createScopedElement)("div", {
183
+ vkuiClass: "CalendarRange__inner"
184
+ }, (0, _jsxRuntime.createScopedElement)(_CalendarHeader.CalendarHeader, {
185
+ viewDate: secondViewDate,
186
+ onChange: setViewDate,
187
+ prevMonth: false,
188
+ onNextMonth: setNextMonth,
189
+ disablePickers: disablePickers,
190
+ vkuiClass: "CalendarRange__header",
191
+ prevMonthAriaLabel: prevMonthAriaLabel,
192
+ nextMonthAriaLabel: nextMonthAriaLabel,
193
+ changeMonthAriaLabel: changeMonthAriaLabel,
194
+ changeYearAriaLabel: changeYearAriaLabel
195
+ }), (0, _jsxRuntime.createScopedElement)(_CalendarDays.CalendarDays, {
196
+ viewDate: secondViewDate,
197
+ value: value,
198
+ weekStartsOn: weekStartsOn,
199
+ "aria-label": changeDayAriaLabel,
200
+ onKeyDown: handleKeyDown,
201
+ isDayFocused: isDayFocused,
202
+ onDayChange: onDayChange,
203
+ isDaySelected: isDaySelected,
204
+ isDayActive: isDayActive,
205
+ isDaySelectionEnd: isDaySelectionEnd,
206
+ isDaySelectionStart: isDaySelectionStart,
207
+ isDayHinted: isDayHinted,
208
+ onDayEnter: onDayEnter,
209
+ onDayLeave: onDayLeave,
210
+ isHintedDaySelectionEnd: isHintedDaySelectionEnd,
211
+ isHintedDaySelectionStart: isHintedDaySelectionStart,
212
+ isDayDisabled: isDayDisabled,
213
+ tabIndex: 0,
214
+ onBlur: resetSelectedDay
215
+ })));
216
+ };
217
+
218
+ exports.CalendarRange = CalendarRange;
219
+ //# sourceMappingURL=CalendarRange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"names":["getIsDaySelected","day","value","Boolean","start","end","CalendarRange","onChange","disablePast","disableFuture","shouldDisableDate","onClose","weekStartsOn","getRootRef","disablePickers","prevMonthAriaLabel","nextMonthAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","changeDayAriaLabel","props","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","React","useState","hintedDate","setHintedDate","secondViewDate","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","getNewValue","date","onDayChange","undefined","isDaySelected","isDayActive","isDaySelectionEnd","dayOfWeek","isHintedDaySelectionEnd","isDaySelectionStart","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n addMonths,\n isSameMonth,\n isSameDay,\n isBefore,\n isAfter,\n startOfDay,\n endOfDay,\n isWithinInterval,\n} from \"date-fns\";\nimport {\n CalendarHeader,\n CalendarHeaderProps,\n} from \"../CalendarHeader/CalendarHeader\";\nimport { CalendarDays } from \"../CalendarDays/CalendarDays\";\nimport {\n navigateDate,\n setTimeEqual,\n isLastDay,\n isFirstDay,\n} from \"../../lib/calendar\";\nimport { useCalendar } from \"../../hooks/useCalendar\";\nimport { HasRootRef } from \"../../types\";\nimport \"./CalendarRange.css\";\n\nexport interface CalendarRangeProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\">,\n Pick<\n CalendarHeaderProps,\n | \"prevMonthAriaLabel\"\n | \"nextMonthAriaLabel\"\n | \"changeMonthAriaLabel\"\n | \"changeYearAriaLabel\"\n >,\n HasRootRef<HTMLDivElement> {\n value?: Array<Date | null>;\n disablePast?: boolean;\n disableFuture?: boolean;\n disablePickers?: boolean;\n changeDayAriaLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n onChange?(value?: Array<Date | null>): void;\n shouldDisableDate?(value: Date): boolean;\n onClose?(): void;\n}\n\nconst getIsDaySelected = (day: Date, value?: Array<Date | null>) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return Boolean(\n isWithinInterval(day, {\n start: startOfDay(value[0]),\n end: endOfDay(value[1]),\n })\n );\n};\n\nexport const CalendarRange: React.FC<CalendarRangeProps> = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n weekStartsOn = 1,\n getRootRef,\n disablePickers,\n prevMonthAriaLabel,\n nextMonthAriaLabel,\n changeMonthAriaLabel,\n changeYearAriaLabel,\n changeDayAriaLabel = \"Изменить день\",\n ...props\n}) => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n const [hintedDate, setHintedDate] = React.useState<Array<Date | null>>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (\n [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(event.key)\n ) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value?.[1], event.key);\n\n if (\n newFocusedDay &&\n !isSameMonth(newFocusedDay, viewDate) &&\n !isSameMonth(newFocusedDay, addMonths(viewDate, 1))\n ) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate]\n );\n\n const getNewValue = React.useCallback(\n (date: Date) => {\n if (!value) {\n return [date, null];\n }\n\n const start = value[0];\n const end = value[1];\n if ((start && isSameDay(date, start)) || (end && isSameDay(date, end))) {\n return [setTimeEqual(date, start), setTimeEqual(date, end)];\n } else if (start && isBefore(date, start)) {\n return [setTimeEqual(date, start), end];\n } else if (start && isAfter(date, start)) {\n return [start, setTimeEqual(date, end)];\n }\n\n return value;\n },\n [value]\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n onChange?.(getNewValue(date));\n setHintedDate(undefined);\n },\n [onChange, getNewValue]\n );\n\n const isDaySelected = React.useCallback(\n (day: Date) => getIsDaySelected(day, value),\n [value]\n );\n\n const isDayActive = React.useCallback(\n (day: Date) =>\n Boolean(\n (value?.[0] && isSameDay(day, value[0])) ||\n (value?.[1] && isSameDay(day, value[1]))\n ),\n [value]\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isLastDay(day, dayOfWeek) || (value?.[1] && isSameDay(day, value[1]))\n ),\n [value]\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isLastDay(day, dayOfWeek) ||\n (hintedDate?.[1] && isSameDay(day, hintedDate[1]))\n ),\n [hintedDate]\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDay(day, value[0]))\n ),\n [value]\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isFirstDay(day, dayOfWeek) ||\n (hintedDate?.[0] && isSameDay(day, hintedDate[0]))\n ),\n [hintedDate]\n );\n\n const onDayEnter = React.useCallback(\n (date: Date) => setHintedDate(getNewValue(date)),\n [setHintedDate, getNewValue]\n );\n\n const onDayLeave = React.useCallback(\n () => setHintedDate(undefined),\n [setHintedDate]\n );\n\n const isDayHinted = React.useCallback(\n (day: Date) => getIsDaySelected(day, hintedDate),\n [hintedDate]\n );\n\n return (\n <div {...props} ref={getRootRef} vkuiClass=\"CalendarRange\">\n <div vkuiClass=\"CalendarRange__inner\">\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonth={false}\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n vkuiClass=\"CalendarRange__header\"\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n />\n <CalendarDays\n viewDate={viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n aria-label={changeDayAriaLabel}\n />\n </div>\n <div vkuiClass=\"CalendarRange__inner\">\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={setViewDate}\n prevMonth={false}\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n vkuiClass=\"CalendarRange__header\"\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n aria-label={changeDayAriaLabel}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n tabIndex={0}\n onBlur={resetSelectedDay}\n />\n </div>\n </div>\n );\n};\n"],"file":"CalendarRange.js"}
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import "./CalendarTime.css";
3
+ export interface CalendarTimeProps {
4
+ value: Date;
5
+ doneButtonText?: string;
6
+ changeHoursAriaLabel?: string;
7
+ changeMinutesAriaLabel?: string;
8
+ onChange?(value: Date): void;
9
+ onClose?(): void;
10
+ }
11
+ export declare const CalendarTime: React.FC<CalendarTimeProps>;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.CalendarTime = void 0;
11
+
12
+ var _jsxRuntime = require("../../lib/jsxRuntime");
13
+
14
+ var React = _interopRequireWildcard(require("react"));
15
+
16
+ var _dateFns = require("date-fns");
17
+
18
+ var _CustomSelect = _interopRequireDefault(require("../CustomSelect/CustomSelect"));
19
+
20
+ var _Button = _interopRequireDefault(require("../Button/Button"));
21
+
22
+ var _withAdaptivity = require("../../hoc/withAdaptivity");
23
+
24
+ var hours = [];
25
+
26
+ for (var i = 0; i < 24; i += 1) {
27
+ hours.push({
28
+ value: i,
29
+ label: String(i).padStart(2, "0")
30
+ });
31
+ }
32
+
33
+ var minutes = [];
34
+
35
+ for (var _i = 0; _i < 60; _i += 1) {
36
+ minutes.push({
37
+ value: _i,
38
+ label: String(_i).padStart(2, "0")
39
+ });
40
+ }
41
+
42
+ var CalendarTime = function CalendarTime(_ref) {
43
+ var value = _ref.value,
44
+ _ref$doneButtonText = _ref.doneButtonText,
45
+ doneButtonText = _ref$doneButtonText === void 0 ? "Готово" : _ref$doneButtonText,
46
+ onChange = _ref.onChange,
47
+ onClose = _ref.onClose,
48
+ _ref$changeHoursAriaL = _ref.changeHoursAriaLabel,
49
+ changeHoursAriaLabel = _ref$changeHoursAriaL === void 0 ? "Изменить час" : _ref$changeHoursAriaL,
50
+ _ref$changeMinutesAri = _ref.changeMinutesAriaLabel,
51
+ changeMinutesAriaLabel = _ref$changeMinutesAri === void 0 ? "Изменить минуту" : _ref$changeMinutesAri;
52
+ var onHoursChange = React.useCallback(function (event) {
53
+ return onChange === null || onChange === void 0 ? void 0 : onChange((0, _dateFns.setHours)(value, Number(event.target.value)));
54
+ }, [onChange, value]);
55
+ var onMinutesChange = React.useCallback(function (event) {
56
+ return onChange === null || onChange === void 0 ? void 0 : onChange((0, _dateFns.setMinutes)(value, Number(event.target.value)));
57
+ }, [onChange, value]);
58
+ return (0, _jsxRuntime.createScopedElement)("div", {
59
+ vkuiClass: "CalendarTime"
60
+ }, (0, _jsxRuntime.createScopedElement)("div", {
61
+ vkuiClass: "CalendarTime__picker"
62
+ }, (0, _jsxRuntime.createScopedElement)(_CustomSelect.default, {
63
+ value: value.getHours(),
64
+ options: hours,
65
+ onChange: onHoursChange,
66
+ forceDropdownPortal: false,
67
+ sizeY: _withAdaptivity.SizeType.COMPACT,
68
+ "aria-label": changeHoursAriaLabel
69
+ })), (0, _jsxRuntime.createScopedElement)("div", {
70
+ vkuiClass: "CalendarTime__divider"
71
+ }, ":"), (0, _jsxRuntime.createScopedElement)("div", {
72
+ vkuiClass: "CalendarTime__picker"
73
+ }, (0, _jsxRuntime.createScopedElement)(_CustomSelect.default, {
74
+ value: value.getMinutes(),
75
+ options: minutes,
76
+ onChange: onMinutesChange,
77
+ forceDropdownPortal: false,
78
+ sizeY: _withAdaptivity.SizeType.COMPACT,
79
+ "aria-label": changeMinutesAriaLabel
80
+ })), (0, _jsxRuntime.createScopedElement)("div", {
81
+ vkuiClass: "CalendarTime__button"
82
+ }, (0, _jsxRuntime.createScopedElement)(_Button.default, {
83
+ sizeY: _withAdaptivity.SizeType.COMPACT,
84
+ mode: "secondary",
85
+ onClick: onClose,
86
+ size: "l",
87
+ "aria-label": doneButtonText
88
+ }, doneButtonText)));
89
+ };
90
+
91
+ exports.CalendarTime = CalendarTime;
92
+ //# sourceMappingURL=CalendarTime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/CalendarTime/CalendarTime.tsx"],"names":["hours","i","push","value","label","String","padStart","minutes","CalendarTime","doneButtonText","onChange","onClose","changeHoursAriaLabel","changeMinutesAriaLabel","onHoursChange","React","useCallback","event","Number","target","onMinutesChange","getHours","SizeType","COMPACT","getMinutes"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { setHours, setMinutes } from \"date-fns\";\nimport CustomSelect from \"../CustomSelect/CustomSelect\";\nimport Button from \"../Button/Button\";\nimport { SizeType } from \"../../hoc/withAdaptivity\";\nimport \"./CalendarTime.css\";\n\nexport interface CalendarTimeProps {\n value: Date;\n doneButtonText?: string;\n changeHoursAriaLabel?: string;\n changeMinutesAriaLabel?: string;\n onChange?(value: Date): void;\n onClose?(): void;\n}\n\nconst hours: Array<{\n value: number;\n label: string;\n}> = [];\nfor (let i = 0; i < 24; i += 1) {\n hours.push({ value: i, label: String(i).padStart(2, \"0\") });\n}\n\nconst minutes: Array<{\n value: number;\n label: string;\n}> = [];\nfor (let i = 0; i < 60; i += 1) {\n minutes.push({ value: i, label: String(i).padStart(2, \"0\") });\n}\n\nexport const CalendarTime: React.FC<CalendarTimeProps> = ({\n value,\n doneButtonText = \"Готово\",\n onChange,\n onClose,\n changeHoursAriaLabel = \"Изменить час\",\n changeMinutesAriaLabel = \"Изменить минуту\",\n}) => {\n const onHoursChange = React.useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) =>\n onChange?.(setHours(value, Number(event.target.value))),\n [onChange, value]\n );\n const onMinutesChange = React.useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) =>\n onChange?.(setMinutes(value, Number(event.target.value))),\n [onChange, value]\n );\n\n return (\n <div vkuiClass=\"CalendarTime\">\n <div vkuiClass=\"CalendarTime__picker\">\n <CustomSelect\n value={value.getHours()}\n options={hours}\n onChange={onHoursChange}\n forceDropdownPortal={false}\n sizeY={SizeType.COMPACT}\n aria-label={changeHoursAriaLabel}\n />\n </div>\n <div vkuiClass=\"CalendarTime__divider\">:</div>\n <div vkuiClass=\"CalendarTime__picker\">\n <CustomSelect\n value={value.getMinutes()}\n options={minutes}\n onChange={onMinutesChange}\n forceDropdownPortal={false}\n sizeY={SizeType.COMPACT}\n aria-label={changeMinutesAriaLabel}\n />\n </div>\n <div vkuiClass=\"CalendarTime__button\">\n <Button\n sizeY={SizeType.COMPACT}\n mode=\"secondary\"\n onClick={onClose}\n size=\"l\"\n aria-label={doneButtonText}\n >\n {doneButtonText}\n </Button>\n </div>\n </div>\n );\n};\n"],"file":"CalendarTime.js"}
@@ -35,7 +35,7 @@ var _Headline = _interopRequireDefault(require("../Typography/Headline/Headline"
35
35
 
36
36
  var _utils = require("../../lib/utils");
37
37
 
38
- var _Caption = _interopRequireDefault(require("../Typography/Caption/Caption"));
38
+ var _Caption = require("../Typography/Caption/Caption");
39
39
 
40
40
  var _excluded = ["children", "className", "style", "getRootRef", "getRef", "description", "sizeY"];
41
41
 
@@ -74,10 +74,7 @@ var Checkbox = function Checkbox(_ref) {
74
74
  Component: "div"
75
75
  }, (0, _jsxRuntime.createScopedElement)("div", {
76
76
  vkuiClass: "Checkbox__children"
77
- }, children), (0, _utils.hasReactNode)(description) && (0, _jsxRuntime.createScopedElement)(_Caption.default, {
78
- level: "1",
79
- Component: "span",
80
- weight: "regular",
77
+ }, children), (0, _utils.hasReactNode)(description) && (0, _jsxRuntime.createScopedElement)(_Caption.Caption, {
81
78
  vkuiClass: "Checkbox__description"
82
79
  }, description))));
83
80
  }; // eslint-disable-next-line import/no-default-export