@vkontakte/vkui 6.4.0 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (740) hide show
  1. package/dist/cjs/components/ActionSheet/ActionSheet.js +2 -1
  2. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  3. package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts +1 -0
  4. package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
  5. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  6. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  7. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +38 -12
  8. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  9. package/dist/cjs/components/ActionSheetItem/helpers.d.ts +10 -0
  10. package/dist/cjs/components/ActionSheetItem/helpers.d.ts.map +1 -0
  11. package/dist/cjs/components/ActionSheetItem/helpers.js +22 -0
  12. package/dist/cjs/components/ActionSheetItem/helpers.js.map +1 -0
  13. package/dist/cjs/components/Alert/Alert.js +1 -1
  14. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  15. package/dist/cjs/components/Avatar/Avatar.d.ts +0 -1
  16. package/dist/cjs/components/Avatar/Avatar.d.ts.map +1 -1
  17. package/dist/cjs/components/Avatar/Avatar.js +3 -11
  18. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  19. package/dist/cjs/components/Avatar/AvatarBadge/icons.d.ts +8 -3
  20. package/dist/cjs/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
  21. package/dist/cjs/components/Avatar/AvatarBadge/icons.js +2 -2
  22. package/dist/cjs/components/Avatar/AvatarBadge/icons.js.map +1 -1
  23. package/dist/cjs/components/BaseGallery/BaseGallery.d.ts.map +1 -1
  24. package/dist/cjs/components/BaseGallery/BaseGallery.js +0 -2
  25. package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
  26. package/dist/cjs/components/Calendar/Calendar.js +3 -3
  27. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  28. package/dist/cjs/components/CalendarDays/CalendarDays.js +3 -3
  29. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  30. package/dist/cjs/components/CalendarHeader/CalendarHeader.js +5 -5
  31. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  32. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  33. package/dist/cjs/components/CalendarRange/CalendarRange.js +17 -15
  34. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  35. package/dist/cjs/components/CalendarTime/CalendarTime.js +5 -5
  36. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
  37. package/dist/cjs/components/Cell/Cell.d.ts.map +1 -1
  38. package/dist/cjs/components/Cell/Cell.js +2 -2
  39. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  40. package/dist/cjs/components/Checkbox/Checkbox.d.ts +7 -5
  41. package/dist/cjs/components/Checkbox/Checkbox.d.ts.map +1 -1
  42. package/dist/cjs/components/Checkbox/Checkbox.js +21 -143
  43. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  44. package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +8 -0
  45. package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -0
  46. package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.js +134 -0
  47. package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -0
  48. package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +3 -0
  49. package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -0
  50. package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.js +52 -0
  51. package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -0
  52. package/dist/cjs/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  53. package/dist/cjs/components/ChipsInput/ChipsInput.js +1 -2
  54. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  55. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +1 -1
  56. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  57. package/dist/cjs/components/ChipsInputBase/helpers.d.ts.map +1 -1
  58. package/dist/cjs/components/ChipsInputBase/helpers.js +0 -3
  59. package/dist/cjs/components/ChipsInputBase/helpers.js.map +1 -1
  60. package/dist/cjs/components/ChipsInputBase/types.d.ts +1 -1
  61. package/dist/cjs/components/ChipsInputBase/types.d.ts.map +1 -1
  62. package/dist/cjs/components/ChipsInputBase/types.js.map +1 -1
  63. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  64. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +1 -7
  65. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  66. package/dist/cjs/components/Clickable/useState.d.ts +0 -5
  67. package/dist/cjs/components/Clickable/useState.d.ts.map +1 -1
  68. package/dist/cjs/components/Clickable/useState.js +3 -7
  69. package/dist/cjs/components/Clickable/useState.js.map +1 -1
  70. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts +10 -1
  71. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  72. package/dist/cjs/components/CustomScrollView/CustomScrollView.js +41 -132
  73. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  74. package/dist/cjs/components/CustomScrollView/ScrollX.d.ts +3 -0
  75. package/dist/cjs/components/CustomScrollView/ScrollX.d.ts.map +1 -0
  76. package/dist/cjs/components/CustomScrollView/ScrollX.js +42 -0
  77. package/dist/cjs/components/CustomScrollView/ScrollX.js.map +1 -0
  78. package/dist/cjs/components/CustomScrollView/ScrollY.d.ts +3 -0
  79. package/dist/cjs/components/CustomScrollView/ScrollY.d.ts.map +1 -0
  80. package/dist/cjs/components/CustomScrollView/ScrollY.js +42 -0
  81. package/dist/cjs/components/CustomScrollView/ScrollY.js.map +1 -0
  82. package/dist/cjs/components/CustomScrollView/types.d.ts +21 -0
  83. package/dist/cjs/components/CustomScrollView/types.d.ts.map +1 -0
  84. package/dist/cjs/components/CustomScrollView/types.js +8 -0
  85. package/dist/cjs/components/CustomScrollView/types.js.map +1 -0
  86. package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.d.ts +8 -0
  87. package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.d.ts.map +1 -0
  88. package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.js +32 -0
  89. package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.js.map +1 -0
  90. package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.d.ts +6 -0
  91. package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.d.ts.map +1 -0
  92. package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.js +29 -0
  93. package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.js.map +1 -0
  94. package/dist/cjs/components/CustomScrollView/useDragAndDrop.d.ts +5 -0
  95. package/dist/cjs/components/CustomScrollView/useDragAndDrop.d.ts.map +1 -0
  96. package/dist/cjs/components/CustomScrollView/useDragAndDrop.js +57 -0
  97. package/dist/cjs/components/CustomScrollView/useDragAndDrop.js.map +1 -0
  98. package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.d.ts +4 -0
  99. package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.d.ts.map +1 -0
  100. package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.js +102 -0
  101. package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.js.map +1 -0
  102. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  103. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js +5 -0
  104. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  105. package/dist/cjs/components/CustomScrollView/useVerticalScrollController.d.ts +4 -0
  106. package/dist/cjs/components/CustomScrollView/useVerticalScrollController.d.ts.map +1 -0
  107. package/dist/cjs/components/CustomScrollView/useVerticalScrollController.js +102 -0
  108. package/dist/cjs/components/CustomScrollView/useVerticalScrollController.js.map +1 -0
  109. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  110. package/dist/cjs/components/CustomSelect/CustomSelect.js +3 -4
  111. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  112. package/dist/cjs/components/DateInput/DateInput.js +2 -2
  113. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  114. package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  115. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +4 -3
  116. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  117. package/dist/cjs/components/FixedLayout/FixedLayout.d.ts +2 -2
  118. package/dist/cjs/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  119. package/dist/cjs/components/FixedLayout/FixedLayout.js +1 -1
  120. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  121. package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts +3 -3
  122. package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  123. package/dist/cjs/components/Flex/FlexItem/FlexItem.js.map +1 -1
  124. package/dist/cjs/components/FocusTrap/FocusTrap.js +1 -1
  125. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  126. package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +0 -1
  127. package/dist/cjs/components/GridAvatar/GridAvatar.d.ts.map +1 -1
  128. package/dist/cjs/components/GridAvatar/GridAvatar.js +0 -3
  129. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
  130. package/dist/cjs/components/Group/Group.d.ts +1 -1
  131. package/dist/cjs/components/Group/Group.d.ts.map +1 -1
  132. package/dist/cjs/components/Group/Group.js +17 -12
  133. package/dist/cjs/components/Group/Group.js.map +1 -1
  134. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  135. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +7 -10
  136. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  137. package/dist/cjs/components/Image/Image.d.ts +0 -1
  138. package/dist/cjs/components/Image/Image.d.ts.map +1 -1
  139. package/dist/cjs/components/Image/Image.js +3 -11
  140. package/dist/cjs/components/Image/Image.js.map +1 -1
  141. package/dist/cjs/components/ImageBase/validators.js +1 -1
  142. package/dist/cjs/components/ImageBase/validators.js.map +1 -1
  143. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  144. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +17 -15
  145. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  146. package/dist/cjs/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  147. package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -28
  148. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  149. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +2 -2
  150. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  151. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.js +4 -3
  152. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  153. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  154. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +1 -3
  155. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  156. package/dist/cjs/components/Radio/Radio.d.ts +5 -1
  157. package/dist/cjs/components/Radio/Radio.d.ts.map +1 -1
  158. package/dist/cjs/components/Radio/Radio.js +12 -75
  159. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  160. package/dist/cjs/components/Radio/RadioInput/RadioInput.d.ts +6 -0
  161. package/dist/cjs/components/Radio/RadioInput/RadioInput.d.ts.map +1 -0
  162. package/dist/cjs/components/Radio/RadioInput/RadioInput.js +104 -0
  163. package/dist/cjs/components/Radio/RadioInput/RadioInput.js.map +1 -0
  164. package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  165. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +1 -2
  166. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  167. package/dist/cjs/components/SelectionControl/SelectionControl.d.ts +14 -0
  168. package/dist/cjs/components/SelectionControl/SelectionControl.d.ts.map +1 -0
  169. package/dist/cjs/components/SelectionControl/SelectionControl.js +36 -0
  170. package/dist/cjs/components/SelectionControl/SelectionControl.js.map +1 -0
  171. package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +7 -0
  172. package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -0
  173. package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +56 -0
  174. package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -0
  175. package/dist/cjs/components/Textarea/Textarea.d.ts +1 -1
  176. package/dist/cjs/components/Textarea/Textarea.d.ts.map +1 -1
  177. package/dist/cjs/components/Textarea/Textarea.js +13 -3
  178. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  179. package/dist/cjs/components/Textarea/useResizeTextarea.d.ts +1 -1
  180. package/dist/cjs/components/Textarea/useResizeTextarea.d.ts.map +1 -1
  181. package/dist/cjs/components/Textarea/useResizeTextarea.js +2 -2
  182. package/dist/cjs/components/Textarea/useResizeTextarea.js.map +1 -1
  183. package/dist/cjs/components/View/View.d.ts.map +1 -1
  184. package/dist/cjs/components/View/View.js +2 -4
  185. package/dist/cjs/components/View/View.js.map +1 -1
  186. package/dist/cjs/components/View/ViewInfinite.d.ts.map +1 -1
  187. package/dist/cjs/components/View/ViewInfinite.js +1 -3
  188. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  189. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  190. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  191. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +4 -3
  192. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  193. package/dist/cjs/hooks/useCalendar.d.ts.map +1 -1
  194. package/dist/cjs/hooks/useCalendar.js +6 -6
  195. package/dist/cjs/hooks/useCalendar.js.map +1 -1
  196. package/dist/cjs/hooks/useTodayDate.js +3 -3
  197. package/dist/cjs/hooks/useTodayDate.js.map +1 -1
  198. package/dist/cjs/index.d.ts +3 -0
  199. package/dist/cjs/index.d.ts.map +1 -1
  200. package/dist/cjs/index.js +8 -0
  201. package/dist/cjs/index.js.map +1 -1
  202. package/dist/cjs/lib/calendar.d.ts.map +1 -1
  203. package/dist/cjs/lib/calendar.js +27 -16
  204. package/dist/cjs/lib/calendar.js.map +1 -1
  205. package/dist/cjs/lib/date.d.ts +1 -28
  206. package/dist/cjs/lib/date.d.ts.map +1 -1
  207. package/dist/cjs/lib/date.js +8 -180
  208. package/dist/cjs/lib/date.js.map +1 -1
  209. package/dist/components/ActionSheet/ActionSheet.js +2 -1
  210. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  211. package/dist/components/ActionSheet/ActionSheetContext.d.ts +1 -0
  212. package/dist/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
  213. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  214. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  215. package/dist/components/ActionSheetItem/ActionSheetItem.js +38 -12
  216. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  217. package/dist/components/ActionSheetItem/helpers.d.ts +10 -0
  218. package/dist/components/ActionSheetItem/helpers.d.ts.map +1 -0
  219. package/dist/components/ActionSheetItem/helpers.js +12 -0
  220. package/dist/components/ActionSheetItem/helpers.js.map +1 -0
  221. package/dist/components/Alert/Alert.js +1 -1
  222. package/dist/components/Alert/Alert.js.map +1 -1
  223. package/dist/components/Avatar/Avatar.d.ts +0 -1
  224. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  225. package/dist/components/Avatar/Avatar.js +1 -1
  226. package/dist/components/Avatar/Avatar.js.map +1 -1
  227. package/dist/components/Avatar/AvatarBadge/icons.d.ts +8 -3
  228. package/dist/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
  229. package/dist/components/Avatar/AvatarBadge/icons.js +2 -2
  230. package/dist/components/Avatar/AvatarBadge/icons.js.map +1 -1
  231. package/dist/components/BaseGallery/BaseGallery.d.ts.map +1 -1
  232. package/dist/components/BaseGallery/BaseGallery.js +0 -2
  233. package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
  234. package/dist/components/Calendar/Calendar.js +1 -1
  235. package/dist/components/Calendar/Calendar.js.map +1 -1
  236. package/dist/components/CalendarDays/CalendarDays.js +1 -1
  237. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  238. package/dist/components/CalendarHeader/CalendarHeader.js +1 -1
  239. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  240. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  241. package/dist/components/CalendarRange/CalendarRange.js +6 -4
  242. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  243. package/dist/components/CalendarTime/CalendarTime.js +1 -1
  244. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  245. package/dist/components/Cell/Cell.d.ts.map +1 -1
  246. package/dist/components/Cell/Cell.js +2 -2
  247. package/dist/components/Cell/Cell.js.map +1 -1
  248. package/dist/components/Checkbox/Checkbox.d.ts +7 -5
  249. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  250. package/dist/components/Checkbox/Checkbox.js +24 -146
  251. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  252. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +8 -0
  253. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -0
  254. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.js +123 -0
  255. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -0
  256. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +3 -0
  257. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -0
  258. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js +42 -0
  259. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -0
  260. package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  261. package/dist/components/ChipsInput/ChipsInput.js +1 -2
  262. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  263. package/dist/components/ChipsInputBase/ChipsInputBase.js +1 -1
  264. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  265. package/dist/components/ChipsInputBase/helpers.d.ts.map +1 -1
  266. package/dist/components/ChipsInputBase/helpers.js +0 -3
  267. package/dist/components/ChipsInputBase/helpers.js.map +1 -1
  268. package/dist/components/ChipsInputBase/types.d.ts +1 -1
  269. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  270. package/dist/components/ChipsInputBase/types.js.map +1 -1
  271. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  272. package/dist/components/ChipsSelect/ChipsSelect.js +1 -7
  273. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  274. package/dist/components/Clickable/useState.d.ts +0 -5
  275. package/dist/components/Clickable/useState.d.ts.map +1 -1
  276. package/dist/components/Clickable/useState.js +2 -2
  277. package/dist/components/Clickable/useState.js.map +1 -1
  278. package/dist/components/CustomScrollView/CustomScrollView.d.ts +10 -1
  279. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  280. package/dist/components/CustomScrollView/CustomScrollView.js +44 -133
  281. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  282. package/dist/components/CustomScrollView/ScrollX.d.ts +3 -0
  283. package/dist/components/CustomScrollView/ScrollX.d.ts.map +1 -0
  284. package/dist/components/CustomScrollView/ScrollX.js +31 -0
  285. package/dist/components/CustomScrollView/ScrollX.js.map +1 -0
  286. package/dist/components/CustomScrollView/ScrollY.d.ts +3 -0
  287. package/dist/components/CustomScrollView/ScrollY.d.ts.map +1 -0
  288. package/dist/components/CustomScrollView/ScrollY.js +31 -0
  289. package/dist/components/CustomScrollView/ScrollY.js.map +1 -0
  290. package/dist/components/CustomScrollView/types.d.ts +21 -0
  291. package/dist/components/CustomScrollView/types.d.ts.map +1 -0
  292. package/dist/components/CustomScrollView/types.js +3 -0
  293. package/dist/components/CustomScrollView/types.js.map +1 -0
  294. package/dist/components/CustomScrollView/useCustomScrollViewResize.d.ts +8 -0
  295. package/dist/components/CustomScrollView/useCustomScrollViewResize.d.ts.map +1 -0
  296. package/dist/components/CustomScrollView/useCustomScrollViewResize.js +22 -0
  297. package/dist/components/CustomScrollView/useCustomScrollViewResize.js.map +1 -0
  298. package/dist/components/CustomScrollView/useDetectScrollDirection.d.ts +6 -0
  299. package/dist/components/CustomScrollView/useDetectScrollDirection.d.ts.map +1 -0
  300. package/dist/components/CustomScrollView/useDetectScrollDirection.js +20 -0
  301. package/dist/components/CustomScrollView/useDetectScrollDirection.js.map +1 -0
  302. package/dist/components/CustomScrollView/useDragAndDrop.d.ts +5 -0
  303. package/dist/components/CustomScrollView/useDragAndDrop.d.ts.map +1 -0
  304. package/dist/components/CustomScrollView/useDragAndDrop.js +46 -0
  305. package/dist/components/CustomScrollView/useDragAndDrop.js.map +1 -0
  306. package/dist/components/CustomScrollView/useHorizontalScrollController.d.ts +4 -0
  307. package/dist/components/CustomScrollView/useHorizontalScrollController.d.ts.map +1 -0
  308. package/dist/components/CustomScrollView/useHorizontalScrollController.js +91 -0
  309. package/dist/components/CustomScrollView/useHorizontalScrollController.js.map +1 -0
  310. package/dist/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  311. package/dist/components/CustomScrollView/useTrackerVisibility.js +5 -0
  312. package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  313. package/dist/components/CustomScrollView/useVerticalScrollController.d.ts +4 -0
  314. package/dist/components/CustomScrollView/useVerticalScrollController.d.ts.map +1 -0
  315. package/dist/components/CustomScrollView/useVerticalScrollController.js +91 -0
  316. package/dist/components/CustomScrollView/useVerticalScrollController.js.map +1 -0
  317. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  318. package/dist/components/CustomSelect/CustomSelect.js +3 -4
  319. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  320. package/dist/components/DateInput/DateInput.js +2 -2
  321. package/dist/components/DateInput/DateInput.js.map +1 -1
  322. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  323. package/dist/components/DateRangeInput/DateRangeInput.js +4 -3
  324. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  325. package/dist/components/FixedLayout/FixedLayout.d.ts +2 -2
  326. package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  327. package/dist/components/FixedLayout/FixedLayout.js +1 -1
  328. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  329. package/dist/components/Flex/FlexItem/FlexItem.d.ts +3 -3
  330. package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  331. package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
  332. package/dist/components/FocusTrap/FocusTrap.js +1 -1
  333. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  334. package/dist/components/GridAvatar/GridAvatar.d.ts +0 -1
  335. package/dist/components/GridAvatar/GridAvatar.d.ts.map +1 -1
  336. package/dist/components/GridAvatar/GridAvatar.js +1 -1
  337. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  338. package/dist/components/Group/Group.d.ts +1 -1
  339. package/dist/components/Group/Group.d.ts.map +1 -1
  340. package/dist/components/Group/Group.js +17 -12
  341. package/dist/components/Group/Group.js.map +1 -1
  342. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  343. package/dist/components/HorizontalScroll/HorizontalScroll.js +7 -10
  344. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  345. package/dist/components/Image/Image.d.ts +0 -1
  346. package/dist/components/Image/Image.d.ts.map +1 -1
  347. package/dist/components/Image/Image.js +1 -1
  348. package/dist/components/Image/Image.js.map +1 -1
  349. package/dist/components/ImageBase/validators.js +1 -1
  350. package/dist/components/ImageBase/validators.js.map +1 -1
  351. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  352. package/dist/components/ModalPageHeader/ModalPageHeader.js +18 -16
  353. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  354. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  355. package/dist/components/ModalRoot/ModalRoot.js +4 -28
  356. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  357. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +2 -2
  358. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  359. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js +4 -3
  360. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  361. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  362. package/dist/components/PullToRefresh/PullToRefresh.js +1 -3
  363. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  364. package/dist/components/Radio/Radio.d.ts +5 -1
  365. package/dist/components/Radio/Radio.d.ts.map +1 -1
  366. package/dist/components/Radio/Radio.js +13 -76
  367. package/dist/components/Radio/Radio.js.map +1 -1
  368. package/dist/components/Radio/RadioInput/RadioInput.d.ts +6 -0
  369. package/dist/components/Radio/RadioInput/RadioInput.d.ts.map +1 -0
  370. package/dist/components/Radio/RadioInput/RadioInput.js +93 -0
  371. package/dist/components/Radio/RadioInput/RadioInput.js.map +1 -0
  372. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  373. package/dist/components/SegmentedControl/SegmentedControl.js +1 -2
  374. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  375. package/dist/components/SelectionControl/SelectionControl.d.ts +14 -0
  376. package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -0
  377. package/dist/components/SelectionControl/SelectionControl.js +27 -0
  378. package/dist/components/SelectionControl/SelectionControl.js.map +1 -0
  379. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +7 -0
  380. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -0
  381. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +46 -0
  382. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -0
  383. package/dist/components/Textarea/Textarea.d.ts +1 -1
  384. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  385. package/dist/components/Textarea/Textarea.js +13 -3
  386. package/dist/components/Textarea/Textarea.js.map +1 -1
  387. package/dist/components/Textarea/useResizeTextarea.d.ts +1 -1
  388. package/dist/components/Textarea/useResizeTextarea.d.ts.map +1 -1
  389. package/dist/components/Textarea/useResizeTextarea.js +2 -2
  390. package/dist/components/Textarea/useResizeTextarea.js.map +1 -1
  391. package/dist/components/View/View.d.ts.map +1 -1
  392. package/dist/components/View/View.js +2 -4
  393. package/dist/components/View/View.js.map +1 -1
  394. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  395. package/dist/components/View/ViewInfinite.js +1 -3
  396. package/dist/components/View/ViewInfinite.js.map +1 -1
  397. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  398. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  399. package/dist/components/VisuallyHidden/VisuallyHidden.js +4 -3
  400. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  401. package/dist/components.css +2 -2
  402. package/dist/components.css.map +1 -1
  403. package/dist/components.js.tmp +1584 -1013
  404. package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -1
  405. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  406. package/dist/cssm/components/ActionSheet/ActionSheetContext.d.ts +1 -0
  407. package/dist/cssm/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
  408. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  409. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  410. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +38 -13
  411. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  412. package/dist/cssm/components/ActionSheetItem/helpers.d.ts +10 -0
  413. package/dist/cssm/components/ActionSheetItem/helpers.d.ts.map +1 -0
  414. package/dist/cssm/components/ActionSheetItem/helpers.js +12 -0
  415. package/dist/cssm/components/ActionSheetItem/helpers.js.map +1 -0
  416. package/dist/cssm/components/Alert/Alert.js +1 -1
  417. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  418. package/dist/cssm/components/Avatar/Avatar.d.ts +0 -1
  419. package/dist/cssm/components/Avatar/Avatar.d.ts.map +1 -1
  420. package/dist/cssm/components/Avatar/Avatar.js +1 -1
  421. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  422. package/dist/cssm/components/Avatar/AvatarBadge/icons.d.ts +8 -3
  423. package/dist/cssm/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
  424. package/dist/cssm/components/Avatar/AvatarBadge/icons.js +2 -2
  425. package/dist/cssm/components/Avatar/AvatarBadge/icons.js.map +1 -1
  426. package/dist/cssm/components/BaseGallery/BaseGallery.d.ts.map +1 -1
  427. package/dist/cssm/components/BaseGallery/BaseGallery.js +0 -2
  428. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
  429. package/dist/cssm/components/Calendar/Calendar.js +1 -1
  430. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  431. package/dist/cssm/components/CalendarDays/CalendarDays.js +1 -1
  432. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  433. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +1 -1
  434. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  435. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  436. package/dist/cssm/components/CalendarRange/CalendarRange.js +6 -4
  437. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  438. package/dist/cssm/components/CalendarTime/CalendarTime.js +1 -1
  439. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  440. package/dist/cssm/components/Cell/Cell.d.ts.map +1 -1
  441. package/dist/cssm/components/Cell/Cell.js +2 -2
  442. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  443. package/dist/cssm/components/Cell/Cell.module.css +12 -0
  444. package/dist/cssm/components/CellButton/CellButton.module.css +2 -2
  445. package/dist/cssm/components/Checkbox/Checkbox.d.ts +7 -5
  446. package/dist/cssm/components/Checkbox/Checkbox.d.ts.map +1 -1
  447. package/dist/cssm/components/Checkbox/Checkbox.js +28 -141
  448. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  449. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +8 -0
  450. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -0
  451. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js +113 -0
  452. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -0
  453. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.module.css +30 -0
  454. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +3 -0
  455. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -0
  456. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js +30 -0
  457. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -0
  458. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +28 -0
  459. package/dist/cssm/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  460. package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -2
  461. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  462. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +1 -1
  463. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  464. package/dist/cssm/components/ChipsInputBase/helpers.d.ts.map +1 -1
  465. package/dist/cssm/components/ChipsInputBase/helpers.js +0 -3
  466. package/dist/cssm/components/ChipsInputBase/helpers.js.map +1 -1
  467. package/dist/cssm/components/ChipsInputBase/types.d.ts +1 -1
  468. package/dist/cssm/components/ChipsInputBase/types.d.ts.map +1 -1
  469. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  470. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  471. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +1 -7
  472. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  473. package/dist/cssm/components/Clickable/useState.d.ts +0 -5
  474. package/dist/cssm/components/Clickable/useState.d.ts.map +1 -1
  475. package/dist/cssm/components/Clickable/useState.js +2 -2
  476. package/dist/cssm/components/Clickable/useState.js.map +1 -1
  477. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts +10 -1
  478. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  479. package/dist/cssm/components/CustomScrollView/CustomScrollView.js +39 -131
  480. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  481. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +52 -13
  482. package/dist/cssm/components/CustomScrollView/ScrollX.d.ts +3 -0
  483. package/dist/cssm/components/CustomScrollView/ScrollX.d.ts.map +1 -0
  484. package/dist/cssm/components/CustomScrollView/ScrollX.js +32 -0
  485. package/dist/cssm/components/CustomScrollView/ScrollX.js.map +1 -0
  486. package/dist/cssm/components/CustomScrollView/ScrollY.d.ts +3 -0
  487. package/dist/cssm/components/CustomScrollView/ScrollY.d.ts.map +1 -0
  488. package/dist/cssm/components/CustomScrollView/ScrollY.js +32 -0
  489. package/dist/cssm/components/CustomScrollView/ScrollY.js.map +1 -0
  490. package/dist/cssm/components/CustomScrollView/types.d.ts +21 -0
  491. package/dist/cssm/components/CustomScrollView/types.d.ts.map +1 -0
  492. package/dist/cssm/components/CustomScrollView/types.js +3 -0
  493. package/dist/cssm/components/CustomScrollView/types.js.map +1 -0
  494. package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.d.ts +8 -0
  495. package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.d.ts.map +1 -0
  496. package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.js +22 -0
  497. package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.js.map +1 -0
  498. package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.d.ts +6 -0
  499. package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.d.ts.map +1 -0
  500. package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.js +20 -0
  501. package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.js.map +1 -0
  502. package/dist/cssm/components/CustomScrollView/useDragAndDrop.d.ts +5 -0
  503. package/dist/cssm/components/CustomScrollView/useDragAndDrop.d.ts.map +1 -0
  504. package/dist/cssm/components/CustomScrollView/useDragAndDrop.js +46 -0
  505. package/dist/cssm/components/CustomScrollView/useDragAndDrop.js.map +1 -0
  506. package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.d.ts +4 -0
  507. package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.d.ts.map +1 -0
  508. package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.js +91 -0
  509. package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.js.map +1 -0
  510. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  511. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js +5 -0
  512. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  513. package/dist/cssm/components/CustomScrollView/useVerticalScrollController.d.ts +4 -0
  514. package/dist/cssm/components/CustomScrollView/useVerticalScrollController.d.ts.map +1 -0
  515. package/dist/cssm/components/CustomScrollView/useVerticalScrollController.js +91 -0
  516. package/dist/cssm/components/CustomScrollView/useVerticalScrollController.js.map +1 -0
  517. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  518. package/dist/cssm/components/CustomSelect/CustomSelect.js +3 -4
  519. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  520. package/dist/cssm/components/DateInput/DateInput.js +2 -2
  521. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  522. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  523. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -3
  524. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  525. package/dist/cssm/components/FixedLayout/FixedLayout.d.ts +2 -2
  526. package/dist/cssm/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  527. package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -1
  528. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  529. package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts +3 -3
  530. package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  531. package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
  532. package/dist/cssm/components/FocusTrap/FocusTrap.js +1 -1
  533. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  534. package/dist/cssm/components/FormField/FormField.module.css +0 -3
  535. package/dist/cssm/components/GridAvatar/GridAvatar.d.ts +0 -1
  536. package/dist/cssm/components/GridAvatar/GridAvatar.d.ts.map +1 -1
  537. package/dist/cssm/components/GridAvatar/GridAvatar.js +1 -1
  538. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  539. package/dist/cssm/components/Group/Group.d.ts +1 -1
  540. package/dist/cssm/components/Group/Group.d.ts.map +1 -1
  541. package/dist/cssm/components/Group/Group.js +17 -12
  542. package/dist/cssm/components/Group/Group.js.map +1 -1
  543. package/dist/cssm/components/Group/Group.module.css +166 -139
  544. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  545. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +7 -10
  546. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  547. package/dist/cssm/components/Image/Image.d.ts +0 -1
  548. package/dist/cssm/components/Image/Image.d.ts.map +1 -1
  549. package/dist/cssm/components/Image/Image.js +1 -1
  550. package/dist/cssm/components/Image/Image.js.map +1 -1
  551. package/dist/cssm/components/ImageBase/validators.js +1 -1
  552. package/dist/cssm/components/ImageBase/validators.js.map +1 -1
  553. package/dist/cssm/components/List/List.module.css +1 -0
  554. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  555. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +18 -16
  556. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  557. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  558. package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -28
  559. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  560. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +2 -2
  561. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  562. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js +2 -2
  563. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  564. package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  565. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -3
  566. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  567. package/dist/cssm/components/Radio/Radio.d.ts +5 -1
  568. package/dist/cssm/components/Radio/Radio.d.ts.map +1 -1
  569. package/dist/cssm/components/Radio/Radio.js +13 -76
  570. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  571. package/dist/cssm/components/Radio/Radio.module.css +0 -145
  572. package/dist/cssm/components/Radio/RadioInput/RadioInput.d.ts +6 -0
  573. package/dist/cssm/components/Radio/RadioInput/RadioInput.d.ts.map +1 -0
  574. package/dist/cssm/components/Radio/RadioInput/RadioInput.js +86 -0
  575. package/dist/cssm/components/Radio/RadioInput/RadioInput.js.map +1 -0
  576. package/dist/cssm/components/Radio/RadioInput/RadioInput.module.css +20 -0
  577. package/dist/cssm/components/Search/Search.module.css +3 -1
  578. package/dist/cssm/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  579. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +1 -2
  580. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  581. package/dist/cssm/components/SelectionControl/SelectionControl.d.ts +14 -0
  582. package/dist/cssm/components/SelectionControl/SelectionControl.d.ts.map +1 -0
  583. package/dist/cssm/components/SelectionControl/SelectionControl.js +28 -0
  584. package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -0
  585. package/dist/cssm/components/SelectionControl/SelectionControl.module.css +35 -0
  586. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +7 -0
  587. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -0
  588. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +39 -0
  589. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -0
  590. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +48 -0
  591. package/dist/cssm/components/Textarea/Textarea.d.ts +1 -1
  592. package/dist/cssm/components/Textarea/Textarea.d.ts.map +1 -1
  593. package/dist/cssm/components/Textarea/Textarea.js +11 -2
  594. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  595. package/dist/cssm/components/Textarea/Textarea.module.css +3 -3
  596. package/dist/cssm/components/Textarea/useResizeTextarea.d.ts +1 -1
  597. package/dist/cssm/components/Textarea/useResizeTextarea.d.ts.map +1 -1
  598. package/dist/cssm/components/Textarea/useResizeTextarea.js +2 -2
  599. package/dist/cssm/components/Textarea/useResizeTextarea.js.map +1 -1
  600. package/dist/cssm/components/View/View.d.ts.map +1 -1
  601. package/dist/cssm/components/View/View.js +2 -4
  602. package/dist/cssm/components/View/View.js.map +1 -1
  603. package/dist/cssm/components/View/ViewInfinite.d.ts.map +1 -1
  604. package/dist/cssm/components/View/ViewInfinite.js +1 -3
  605. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  606. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  607. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  608. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +2 -2
  609. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  610. package/dist/cssm/components/WriteBar/WriteBar.module.css +2 -0
  611. package/dist/cssm/hooks/useCalendar.d.ts.map +1 -1
  612. package/dist/cssm/hooks/useCalendar.js +1 -1
  613. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  614. package/dist/cssm/hooks/useTodayDate.js +2 -2
  615. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  616. package/dist/cssm/index.d.ts +3 -0
  617. package/dist/cssm/index.d.ts.map +1 -1
  618. package/dist/cssm/index.js +2 -0
  619. package/dist/cssm/index.js.map +1 -1
  620. package/dist/cssm/lib/calendar.d.ts.map +1 -1
  621. package/dist/cssm/lib/calendar.js +15 -4
  622. package/dist/cssm/lib/calendar.js.map +1 -1
  623. package/dist/cssm/lib/date.d.ts +1 -28
  624. package/dist/cssm/lib/date.d.ts.map +1 -1
  625. package/dist/cssm/lib/date.js +8 -105
  626. package/dist/cssm/lib/date.js.map +1 -1
  627. package/dist/cssm/styles/themes.css +63 -19
  628. package/dist/hooks/useCalendar.d.ts.map +1 -1
  629. package/dist/hooks/useCalendar.js +1 -1
  630. package/dist/hooks/useCalendar.js.map +1 -1
  631. package/dist/hooks/useTodayDate.js +2 -2
  632. package/dist/hooks/useTodayDate.js.map +1 -1
  633. package/dist/index.d.ts +3 -0
  634. package/dist/index.d.ts.map +1 -1
  635. package/dist/index.js +2 -0
  636. package/dist/index.js.map +1 -1
  637. package/dist/lib/calendar.d.ts.map +1 -1
  638. package/dist/lib/calendar.js +15 -4
  639. package/dist/lib/calendar.js.map +1 -1
  640. package/dist/lib/date.d.ts +1 -28
  641. package/dist/lib/date.d.ts.map +1 -1
  642. package/dist/lib/date.js +8 -105
  643. package/dist/lib/date.js.map +1 -1
  644. package/dist/vkui.css +3 -3
  645. package/dist/vkui.css.map +1 -1
  646. package/dist/vkui.js.tmp +1586 -1012
  647. package/package.json +3 -4
  648. package/src/components/ActionSheet/ActionSheet.tsx +1 -1
  649. package/src/components/ActionSheet/ActionSheetContext.ts +1 -0
  650. package/src/components/ActionSheetItem/ActionSheetItem.tsx +43 -18
  651. package/src/components/ActionSheetItem/helpers.ts +11 -0
  652. package/src/components/Alert/Alert.tsx +1 -1
  653. package/src/components/Avatar/Avatar.tsx +1 -1
  654. package/src/components/Avatar/AvatarBadge/icons.tsx +9 -8
  655. package/src/components/BaseGallery/BaseGallery.tsx +0 -4
  656. package/src/components/Calendar/Calendar.tsx +1 -1
  657. package/src/components/CalendarDays/CalendarDays.tsx +1 -1
  658. package/src/components/CalendarHeader/CalendarHeader.tsx +1 -1
  659. package/src/components/CalendarRange/CalendarRange.tsx +5 -6
  660. package/src/components/CalendarTime/CalendarTime.tsx +1 -1
  661. package/src/components/Cell/Cell.module.css +10 -0
  662. package/src/components/Cell/Cell.tsx +13 -2
  663. package/src/components/CellButton/CellButton.module.css +2 -2
  664. package/src/components/Checkbox/Checkbox.tsx +30 -166
  665. package/src/components/Checkbox/CheckboxInput/CheckboxInput.module.css +30 -0
  666. package/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx +174 -0
  667. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +28 -0
  668. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.tsx +49 -0
  669. package/src/components/ChipsInput/ChipsInput.tsx +3 -8
  670. package/src/components/ChipsInputBase/ChipsInputBase.tsx +1 -1
  671. package/src/components/ChipsInputBase/helpers.ts +0 -3
  672. package/src/components/ChipsInputBase/types.ts +1 -1
  673. package/src/components/ChipsSelect/ChipsSelect.tsx +1 -9
  674. package/src/components/Clickable/useState.tsx +2 -2
  675. package/src/components/CustomScrollView/CustomScrollView.module.css +49 -11
  676. package/src/components/CustomScrollView/CustomScrollView.tsx +56 -164
  677. package/src/components/CustomScrollView/ScrollX.tsx +57 -0
  678. package/src/components/CustomScrollView/ScrollY.tsx +57 -0
  679. package/src/components/CustomScrollView/types.ts +23 -0
  680. package/src/components/CustomScrollView/useCustomScrollViewResize.ts +32 -0
  681. package/src/components/CustomScrollView/useDetectScrollDirection.ts +21 -0
  682. package/src/components/CustomScrollView/useDragAndDrop.tsx +55 -0
  683. package/src/components/CustomScrollView/useHorizontalScrollController.tsx +120 -0
  684. package/src/components/CustomScrollView/useTrackerVisibility.ts +4 -0
  685. package/src/components/CustomScrollView/useVerticalScrollController.tsx +122 -0
  686. package/src/components/CustomSelect/CustomSelect.tsx +3 -5
  687. package/src/components/DateInput/DateInput.tsx +2 -2
  688. package/src/components/DateRangeInput/DateRangeInput.tsx +5 -4
  689. package/src/components/FixedLayout/FixedLayout.tsx +4 -4
  690. package/src/components/Flex/FlexItem/FlexItem.tsx +3 -3
  691. package/src/components/FocusTrap/FocusTrap.tsx +1 -1
  692. package/src/components/FormField/FormField.module.css +0 -3
  693. package/src/components/GridAvatar/GridAvatar.tsx +1 -1
  694. package/src/components/Group/Group.module.css +155 -132
  695. package/src/components/Group/Group.tsx +25 -19
  696. package/src/components/HorizontalScroll/HorizontalScroll.tsx +7 -12
  697. package/src/components/Image/Image.tsx +1 -1
  698. package/src/components/ImageBase/validators.ts +1 -1
  699. package/src/components/List/List.module.css +1 -0
  700. package/src/components/ModalPageHeader/ModalPageHeader.tsx +24 -22
  701. package/src/components/ModalRoot/ModalRoot.tsx +4 -32
  702. package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +4 -3
  703. package/src/components/PullToRefresh/PullToRefresh.tsx +0 -2
  704. package/src/components/Radio/Radio.module.css +0 -131
  705. package/src/components/Radio/Radio.tsx +14 -53
  706. package/src/components/Radio/RadioInput/RadioInput.module.css +20 -0
  707. package/src/components/Radio/RadioInput/RadioInput.tsx +58 -0
  708. package/src/components/Search/Search.module.css +1 -1
  709. package/src/components/SegmentedControl/SegmentedControl.tsx +0 -1
  710. package/src/components/SelectionControl/SelectionControl.module.css +33 -0
  711. package/src/components/SelectionControl/SelectionControl.tsx +44 -0
  712. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +44 -0
  713. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +43 -0
  714. package/src/components/Textarea/Textarea.module.css +3 -3
  715. package/src/components/Textarea/Textarea.tsx +9 -1
  716. package/src/components/Textarea/useResizeTextarea.ts +2 -1
  717. package/src/components/View/View.tsx +0 -2
  718. package/src/components/View/ViewInfinite.tsx +0 -2
  719. package/src/components/VisuallyHidden/VisuallyHidden.tsx +2 -0
  720. package/src/components/WriteBar/WriteBar.module.css +1 -1
  721. package/src/hooks/useCalendar.ts +1 -9
  722. package/src/hooks/useTodayDate.ts +2 -2
  723. package/src/index.ts +3 -0
  724. package/src/lib/calendar.ts +8 -7
  725. package/src/lib/date.ts +9 -140
  726. package/dist/cjs/lib/styles.d.ts +0 -2
  727. package/dist/cjs/lib/styles.d.ts.map +0 -1
  728. package/dist/cjs/lib/styles.js +0 -20
  729. package/dist/cjs/lib/styles.js.map +0 -1
  730. package/dist/cssm/components/Checkbox/Checkbox.module.css +0 -183
  731. package/dist/cssm/lib/styles.d.ts +0 -2
  732. package/dist/cssm/lib/styles.d.ts.map +0 -1
  733. package/dist/cssm/lib/styles.js +0 -10
  734. package/dist/cssm/lib/styles.js.map +0 -1
  735. package/dist/lib/styles.d.ts +0 -2
  736. package/dist/lib/styles.d.ts.map +0 -1
  737. package/dist/lib/styles.js +0 -10
  738. package/dist/lib/styles.js.map +0 -1
  739. package/src/components/Checkbox/Checkbox.module.css +0 -170
  740. package/src/lib/styles.ts +0 -12
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/BaseGallery/BaseGallery.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { useDOM } from '../../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { ScrollArrow } from '../ScrollArrow/ScrollArrow';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { calcMax, calcMin } from './helpers';\nimport { BaseGalleryProps, GallerySlidesState, LayoutState, ShiftingState } from './types';\nimport styles from './BaseGallery.module.css';\n\nconst ANIMATION_DURATION = 0.24;\n\nconst LAYOUT_DEFAULT_STATE = {\n containerWidth: 0,\n viewportOffsetWidth: 0,\n layerWidth: 0,\n min: 0,\n max: 0,\n slides: [],\n isFullyVisible: true,\n};\n\nconst SHIFT_DEFAULT_STATE = {\n animation: undefined,\n shiftX: 0,\n dragging: false,\n deltaX: 0,\n indent: 0,\n};\n\nconst stylesBullets = {\n dark: styles['BaseGallery__bullets--dark'],\n light: styles['BaseGallery__bullets--light'],\n};\nexport const BaseGallery = ({\n bullets = false,\n getRootRef,\n children,\n slideWidth = '100%',\n slideIndex = 0,\n dragDisabled = false,\n onDragStart,\n onDragEnd,\n onChange,\n onPrevClick,\n onNextClick,\n align = 'left',\n showArrows,\n getRef,\n arrowSize = 'l',\n ...restProps\n}: BaseGalleryProps): React.ReactNode => {\n const slidesStore = React.useRef<Record<string, HTMLDivElement | null>>({});\n const layoutState = React.useRef<LayoutState>(LAYOUT_DEFAULT_STATE);\n const [shiftState, setShiftState] = React.useState<ShiftingState>(SHIFT_DEFAULT_STATE);\n\n const rootRef = useExternRef(getRootRef);\n const viewportRef = useExternRef(getRef);\n\n const { window } = useDOM();\n const hasPointer = useAdaptivityHasPointer();\n\n const isCenterWithCustomWidth = slideWidth === 'custom' && align === 'center';\n\n const validateIndent = (value: number) => {\n const localMax = layoutState.current.max ?? 0;\n const localMin = layoutState.current.min ?? 0;\n\n if (value < localMin) {\n return localMin;\n } else if (value > localMax) {\n return localMax;\n }\n\n return value;\n };\n\n /*\n * Считает отступ слоя галереи\n */\n const calculateIndent = (targetIndex: number) => {\n if (layoutState.current.isFullyVisible) {\n return 0;\n }\n\n const targetSlide = layoutState.current.slides?.length\n ? layoutState.current.slides[targetIndex]\n : null;\n\n if (targetSlide) {\n const { coordX, width } = targetSlide;\n\n if (isCenterWithCustomWidth) {\n const viewportWidth = layoutState.current.viewportOffsetWidth ?? 0;\n return viewportWidth / 2 - coordX - width / 2;\n }\n\n return validateIndent(-1 * coordX);\n }\n\n return 0;\n };\n\n /*\n * Считает отступ слоя галереи во время драга\n */\n const calculateDragIndent = () => {\n const localMax = layoutState.current.max ?? 0;\n const localMin = layoutState.current.min ?? 0;\n const indent = shiftState.shiftX + shiftState.deltaX;\n\n if (indent > localMax) {\n return localMax + Number((indent - localMax) / 3);\n } else if (indent < localMin) {\n return localMin + Number((indent - localMin) / 3);\n }\n\n return indent;\n };\n\n const initializeSlides = (options: { animation?: boolean } = {}) => {\n const localSlides =\n React.Children.map(children, (_item: React.ReactNode, i: number): GallerySlidesState => {\n const elem = slidesStore.current[`slide-${i}`];\n return {\n coordX: elem?.offsetLeft ?? 0,\n width: elem?.offsetWidth ?? 0,\n };\n }) ?? [];\n\n const localContainerWidth = rootRef.current?.offsetWidth ?? 0;\n const localViewportOffsetWidth = viewportRef.current?.offsetWidth ?? 0;\n const localLayerWidth = localSlides.reduce(\n (val: number, slide: GallerySlidesState) => slide.width + val,\n 0,\n );\n const adjustShiftX =\n localSlides.length <= layoutState.current.slides.length ||\n layoutState.current.slides[slideIndex]?.coordX !== localSlides[slideIndex]?.coordX;\n\n layoutState.current = {\n containerWidth: localContainerWidth,\n viewportOffsetWidth: localViewportOffsetWidth,\n layerWidth: localLayerWidth,\n max: calcMax({\n slides: localSlides,\n viewportOffsetWidth: localViewportOffsetWidth,\n isCenterWithCustomWidth,\n }),\n min: calcMin({\n containerWidth: localContainerWidth,\n layerWidth: localLayerWidth,\n slides: localSlides,\n viewportOffsetWidth: localViewportOffsetWidth,\n isCenterWithCustomWidth,\n align,\n }),\n slides: localSlides,\n isFullyVisible: localLayerWidth <= localContainerWidth,\n };\n\n setShiftState((prevState) => ({\n ...prevState,\n shiftX: adjustShiftX ? calculateIndent(slideIndex) : prevState.shiftX,\n animation: options.animation ?? prevState.shiftX === validateIndent(prevState.shiftX),\n }));\n };\n\n const onResize = () => {\n if (shiftState.animation !== undefined) {\n initializeSlides({ animation: false });\n }\n };\n\n useGlobalEventListener(window, 'resize', onResize);\n\n useIsomorphicLayoutEffect(() => {\n initializeSlides({ animation: false });\n }, [children, align, slideWidth]);\n\n useIsomorphicLayoutEffect(() => {\n if (shiftState.animation !== undefined) {\n setShiftState((prevState) => ({\n ...prevState,\n animation: true,\n deltaX: 0,\n shiftX: calculateIndent(slideIndex ?? 0),\n }));\n }\n }, [slideIndex]);\n\n const slideLeft = (event: React.MouseEvent) => {\n onChange?.(slideIndex - 1);\n onPrevClick?.(event);\n };\n\n const slideRight = (event: React.MouseEvent) => {\n onChange?.(slideIndex + 1);\n onNextClick?.(event);\n };\n\n /*\n * Получает индекс слайда, к которому будет осуществлен переход\n */\n const getTarget = (e: TouchEvent) => {\n const expectDeltaX = (shiftState.deltaX / e.duration) * 240 * 0.6;\n const shift =\n shiftState.shiftX + shiftState.deltaX + expectDeltaX - (layoutState.current.max ?? 0);\n const direction = shiftState.deltaX < 0 ? 1 : -1;\n\n // Находим ближайшую границу слайда к текущему отступу\n let targetIndex = layoutState.current.slides.reduce(\n (val: number, item: GallerySlidesState, index: number) => {\n const previousValue = Math.abs(layoutState.current.slides[val].coordX + shift);\n const currentValue = Math.abs(item.coordX + shift);\n\n return previousValue < currentValue ? val : index;\n },\n slideIndex,\n );\n\n if (targetIndex === slideIndex) {\n let targetSlide = slideIndex + direction;\n\n if (targetSlide >= 0 && targetSlide < layoutState.current.slides.length) {\n if (Math.abs(shiftState.deltaX) > layoutState.current.slides[targetSlide].width * 0.05) {\n targetIndex = targetSlide;\n }\n }\n }\n\n return targetIndex;\n };\n\n const isDraggable = !dragDisabled && !layoutState.current.isFullyVisible;\n\n const onStart = (e: TouchEvent) => {\n e.originalEvent.stopPropagation();\n if (isDraggable) {\n onDragStart?.(e);\n setShiftState((prevState) => ({ ...prevState, animation: false }));\n }\n };\n\n const onMoveX = (e: TouchEvent) => {\n if (isDraggable) {\n e.originalEvent.preventDefault();\n\n if (e.isSlideX) {\n if (shiftState.deltaX !== e.shiftX) {\n setShiftState((prevState) => ({\n ...prevState,\n deltaX: e.shiftX,\n dragging: e.isSlideX,\n }));\n }\n }\n }\n };\n\n const onEnd = (e: TouchEvent) => {\n if (isDraggable) {\n const targetIndex = e.isSlide ? getTarget(e) : slideIndex ?? 0;\n onDragEnd?.(e, targetIndex);\n\n const nextShiftState: Partial<ShiftingState> = {\n animation: true,\n dragging: false,\n deltaX: 0,\n };\n\n const shiftXStick = calculateDragIndent();\n if (targetIndex !== slideIndex) {\n // Сохраняем сдвиг слайда в том положении, в каком его оставили после драга (fix issue #2185)\n nextShiftState.shiftX = shiftXStick;\n }\n\n setShiftState((prevState) => ({ ...prevState, ...nextShiftState }));\n if (targetIndex !== slideIndex) {\n onChange?.(targetIndex);\n }\n }\n };\n\n const indent = shiftState.dragging ? calculateDragIndent() : shiftState.shiftX;\n\n const layerStyle = {\n WebkitTransform: `translateX(${indent}px)`,\n transform: `translateX(${indent}px)`,\n WebkitTransition: shiftState.animation\n ? `-webkit-transform ${ANIMATION_DURATION}s cubic-bezier(.1, 0, .25, 1)`\n : 'none',\n transition: shiftState.animation\n ? `transform ${ANIMATION_DURATION}s cubic-bezier(.1, 0, .25, 1)`\n : 'none',\n };\n\n const setSlideRef = (slideRef: HTMLDivElement | null, slideIndex: number) => {\n slidesStore.current[`slide-${slideIndex}`] = slideRef;\n };\n\n // shiftX is negative number <= 0, we can swipe back only if it is < 0\n const canSlideLeft = !layoutState.current.isFullyVisible && shiftState.shiftX < 0;\n\n const canSlideRight =\n !layoutState.current.isFullyVisible &&\n // we can't move right when gallery layer fully scrolled right, if gallery aligned by left side\n ((align === 'left' &&\n layoutState.current.containerWidth - shiftState.shiftX <\n (layoutState.current.layerWidth ?? 0)) ||\n // otherwise we need to check current slide index (align = right or align = center)\n (align !== 'left' && slideIndex < layoutState.current.slides.length - 1));\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles['BaseGallery'],\n align === 'center' && styles['BaseGallery--align-center'],\n slideWidth === 'custom' && styles['BaseGallery--custom-width'],\n isDraggable && styles['BaseGallery--draggable'],\n )}\n getRootRef={rootRef}\n >\n <Touch\n className={styles['BaseGallery__viewport']}\n onStartX={onStart}\n onMoveX={onMoveX}\n onEnd={onEnd}\n style={{ width: slideWidth === 'custom' ? '100%' : slideWidth }}\n getRootRef={viewportRef}\n noSlideClick\n >\n <div className={styles['BaseGallery__layer']} style={layerStyle}>\n {React.Children.map(children, (item: React.ReactNode, i: number) => (\n <div\n className={styles['BaseGallery__slide']}\n key={`slide-${i}`}\n ref={(el) => setSlideRef(el, i)}\n >\n {item}\n </div>\n ))}\n </div>\n </Touch>\n\n {bullets && (\n <div\n aria-hidden\n className={classNames(styles['BaseGallery__bullets'], stylesBullets[bullets])}\n >\n {React.Children.map(children, (_item: React.ReactNode, index: number) => (\n <div\n className={classNames(\n styles['BaseGallery__bullet'],\n index === slideIndex && styles['BaseGallery__bullet--active'],\n )}\n key={index}\n />\n ))}\n </div>\n )}\n\n {showArrows && hasPointer && canSlideLeft && (\n <ScrollArrow\n className={styles['BaseGallery__arrow']}\n direction=\"left\"\n onClick={slideLeft}\n size={arrowSize}\n />\n )}\n {showArrows && hasPointer && canSlideRight && (\n <ScrollArrow\n className={styles['BaseGallery__arrow']}\n direction=\"right\"\n onClick={slideRight}\n size={arrowSize}\n />\n )}\n </RootComponent>\n );\n};\n"],"names":["BaseGallery","ANIMATION_DURATION","LAYOUT_DEFAULT_STATE","containerWidth","viewportOffsetWidth","layerWidth","min","max","slides","isFullyVisible","SHIFT_DEFAULT_STATE","animation","undefined","shiftX","dragging","deltaX","indent","stylesBullets","dark","light","bullets","getRootRef","children","slideWidth","slideIndex","dragDisabled","onDragStart","onDragEnd","onChange","onPrevClick","onNextClick","align","showArrows","getRef","arrowSize","restProps","slidesStore","React","useRef","layoutState","shiftState","setShiftState","useState","rootRef","useExternRef","viewportRef","window","useDOM","hasPointer","useAdaptivityHasPointer","isCenterWithCustomWidth","validateIndent","value","localMax","current","localMin","calculateIndent","targetIndex","targetSlide","length","coordX","width","viewportWidth","calculateDragIndent","Number","initializeSlides","options","localSlides","Children","map","_item","i","elem","offsetLeft","offsetWidth","localContainerWidth","localViewportOffsetWidth","localLayerWidth","reduce","val","slide","adjustShiftX","calcMax","calcMin","prevState","onResize","useGlobalEventListener","useIsomorphicLayoutEffect","slideLeft","event","slideRight","getTarget","e","expectDeltaX","duration","shift","direction","item","index","previousValue","Math","abs","currentValue","isDraggable","onStart","originalEvent","stopPropagation","onMoveX","preventDefault","isSlideX","onEnd","isSlide","nextShiftState","shiftXStick","layerStyle","WebkitTransform","transform","WebkitTransition","transition","setSlideRef","slideRef","canSlideLeft","canSlideRight","RootComponent","baseClassName","classNames","Touch","className","onStartX","style","noSlideClick","div","ref","el","aria-hidden","ScrollArrow","onClick","size"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/BaseGallery/BaseGallery.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { useDOM } from '../../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { ScrollArrow } from '../ScrollArrow/ScrollArrow';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { calcMax, calcMin } from './helpers';\nimport { BaseGalleryProps, GallerySlidesState, LayoutState, ShiftingState } from './types';\nimport styles from './BaseGallery.module.css';\n\nconst ANIMATION_DURATION = 0.24;\n\nconst LAYOUT_DEFAULT_STATE = {\n containerWidth: 0,\n viewportOffsetWidth: 0,\n layerWidth: 0,\n min: 0,\n max: 0,\n slides: [],\n isFullyVisible: true,\n};\n\nconst SHIFT_DEFAULT_STATE = {\n animation: undefined,\n shiftX: 0,\n dragging: false,\n deltaX: 0,\n indent: 0,\n};\n\nconst stylesBullets = {\n dark: styles['BaseGallery__bullets--dark'],\n light: styles['BaseGallery__bullets--light'],\n};\nexport const BaseGallery = ({\n bullets = false,\n getRootRef,\n children,\n slideWidth = '100%',\n slideIndex = 0,\n dragDisabled = false,\n onDragStart,\n onDragEnd,\n onChange,\n onPrevClick,\n onNextClick,\n align = 'left',\n showArrows,\n getRef,\n arrowSize = 'l',\n ...restProps\n}: BaseGalleryProps): React.ReactNode => {\n const slidesStore = React.useRef<Record<string, HTMLDivElement | null>>({});\n const layoutState = React.useRef<LayoutState>(LAYOUT_DEFAULT_STATE);\n const [shiftState, setShiftState] = React.useState<ShiftingState>(SHIFT_DEFAULT_STATE);\n\n const rootRef = useExternRef(getRootRef);\n const viewportRef = useExternRef(getRef);\n\n const { window } = useDOM();\n const hasPointer = useAdaptivityHasPointer();\n\n const isCenterWithCustomWidth = slideWidth === 'custom' && align === 'center';\n\n const validateIndent = (value: number) => {\n const localMax = layoutState.current.max ?? 0;\n const localMin = layoutState.current.min ?? 0;\n\n if (value < localMin) {\n return localMin;\n } else if (value > localMax) {\n return localMax;\n }\n\n return value;\n };\n\n /*\n * Считает отступ слоя галереи\n */\n const calculateIndent = (targetIndex: number) => {\n if (layoutState.current.isFullyVisible) {\n return 0;\n }\n\n const targetSlide = layoutState.current.slides?.length\n ? layoutState.current.slides[targetIndex]\n : null;\n\n if (targetSlide) {\n const { coordX, width } = targetSlide;\n\n if (isCenterWithCustomWidth) {\n const viewportWidth = layoutState.current.viewportOffsetWidth ?? 0;\n return viewportWidth / 2 - coordX - width / 2;\n }\n\n return validateIndent(-1 * coordX);\n }\n\n return 0;\n };\n\n /*\n * Считает отступ слоя галереи во время драга\n */\n const calculateDragIndent = () => {\n const localMax = layoutState.current.max ?? 0;\n const localMin = layoutState.current.min ?? 0;\n const indent = shiftState.shiftX + shiftState.deltaX;\n\n if (indent > localMax) {\n return localMax + Number((indent - localMax) / 3);\n } else if (indent < localMin) {\n return localMin + Number((indent - localMin) / 3);\n }\n\n return indent;\n };\n\n const initializeSlides = (options: { animation?: boolean } = {}) => {\n const localSlides =\n React.Children.map(children, (_item: React.ReactNode, i: number): GallerySlidesState => {\n const elem = slidesStore.current[`slide-${i}`];\n return {\n coordX: elem?.offsetLeft ?? 0,\n width: elem?.offsetWidth ?? 0,\n };\n }) ?? [];\n\n const localContainerWidth = rootRef.current?.offsetWidth ?? 0;\n const localViewportOffsetWidth = viewportRef.current?.offsetWidth ?? 0;\n const localLayerWidth = localSlides.reduce(\n (val: number, slide: GallerySlidesState) => slide.width + val,\n 0,\n );\n const adjustShiftX =\n localSlides.length <= layoutState.current.slides.length ||\n layoutState.current.slides[slideIndex]?.coordX !== localSlides[slideIndex]?.coordX;\n\n layoutState.current = {\n containerWidth: localContainerWidth,\n viewportOffsetWidth: localViewportOffsetWidth,\n layerWidth: localLayerWidth,\n max: calcMax({\n slides: localSlides,\n viewportOffsetWidth: localViewportOffsetWidth,\n isCenterWithCustomWidth,\n }),\n min: calcMin({\n containerWidth: localContainerWidth,\n layerWidth: localLayerWidth,\n slides: localSlides,\n viewportOffsetWidth: localViewportOffsetWidth,\n isCenterWithCustomWidth,\n align,\n }),\n slides: localSlides,\n isFullyVisible: localLayerWidth <= localContainerWidth,\n };\n\n setShiftState((prevState) => ({\n ...prevState,\n shiftX: adjustShiftX ? calculateIndent(slideIndex) : prevState.shiftX,\n animation: options.animation ?? prevState.shiftX === validateIndent(prevState.shiftX),\n }));\n };\n\n const onResize = () => {\n if (shiftState.animation !== undefined) {\n initializeSlides({ animation: false });\n }\n };\n\n useGlobalEventListener(window, 'resize', onResize);\n\n useIsomorphicLayoutEffect(() => {\n initializeSlides({ animation: false });\n }, [children, align, slideWidth]);\n\n useIsomorphicLayoutEffect(() => {\n if (shiftState.animation !== undefined) {\n setShiftState((prevState) => ({\n ...prevState,\n animation: true,\n deltaX: 0,\n shiftX: calculateIndent(slideIndex ?? 0),\n }));\n }\n }, [slideIndex]);\n\n const slideLeft = (event: React.MouseEvent) => {\n onChange?.(slideIndex - 1);\n onPrevClick?.(event);\n };\n\n const slideRight = (event: React.MouseEvent) => {\n onChange?.(slideIndex + 1);\n onNextClick?.(event);\n };\n\n /*\n * Получает индекс слайда, к которому будет осуществлен переход\n */\n const getTarget = (e: TouchEvent) => {\n const expectDeltaX = (shiftState.deltaX / e.duration) * 240 * 0.6;\n const shift =\n shiftState.shiftX + shiftState.deltaX + expectDeltaX - (layoutState.current.max ?? 0);\n const direction = shiftState.deltaX < 0 ? 1 : -1;\n\n // Находим ближайшую границу слайда к текущему отступу\n let targetIndex = layoutState.current.slides.reduce(\n (val: number, item: GallerySlidesState, index: number) => {\n const previousValue = Math.abs(layoutState.current.slides[val].coordX + shift);\n const currentValue = Math.abs(item.coordX + shift);\n\n return previousValue < currentValue ? val : index;\n },\n slideIndex,\n );\n\n if (targetIndex === slideIndex) {\n let targetSlide = slideIndex + direction;\n\n if (targetSlide >= 0 && targetSlide < layoutState.current.slides.length) {\n if (Math.abs(shiftState.deltaX) > layoutState.current.slides[targetSlide].width * 0.05) {\n targetIndex = targetSlide;\n }\n }\n }\n\n return targetIndex;\n };\n\n const isDraggable = !dragDisabled && !layoutState.current.isFullyVisible;\n\n const onStart = (e: TouchEvent) => {\n e.originalEvent.stopPropagation();\n if (isDraggable) {\n onDragStart?.(e);\n setShiftState((prevState) => ({ ...prevState, animation: false }));\n }\n };\n\n const onMoveX = (e: TouchEvent) => {\n if (isDraggable) {\n e.originalEvent.preventDefault();\n\n if (e.isSlideX) {\n if (shiftState.deltaX !== e.shiftX) {\n setShiftState((prevState) => ({\n ...prevState,\n deltaX: e.shiftX,\n dragging: e.isSlideX,\n }));\n }\n }\n }\n };\n\n const onEnd = (e: TouchEvent) => {\n if (isDraggable) {\n const targetIndex = e.isSlide ? getTarget(e) : slideIndex ?? 0;\n onDragEnd?.(e, targetIndex);\n\n const nextShiftState: Partial<ShiftingState> = {\n animation: true,\n dragging: false,\n deltaX: 0,\n };\n\n const shiftXStick = calculateDragIndent();\n if (targetIndex !== slideIndex) {\n // Сохраняем сдвиг слайда в том положении, в каком его оставили после драга (fix issue #2185)\n nextShiftState.shiftX = shiftXStick;\n }\n\n setShiftState((prevState) => ({ ...prevState, ...nextShiftState }));\n if (targetIndex !== slideIndex) {\n onChange?.(targetIndex);\n }\n }\n };\n\n const indent = shiftState.dragging ? calculateDragIndent() : shiftState.shiftX;\n\n const layerStyle = {\n transform: `translateX(${indent}px)`,\n transition: shiftState.animation\n ? `transform ${ANIMATION_DURATION}s cubic-bezier(.1, 0, .25, 1)`\n : 'none',\n };\n\n const setSlideRef = (slideRef: HTMLDivElement | null, slideIndex: number) => {\n slidesStore.current[`slide-${slideIndex}`] = slideRef;\n };\n\n // shiftX is negative number <= 0, we can swipe back only if it is < 0\n const canSlideLeft = !layoutState.current.isFullyVisible && shiftState.shiftX < 0;\n\n const canSlideRight =\n !layoutState.current.isFullyVisible &&\n // we can't move right when gallery layer fully scrolled right, if gallery aligned by left side\n ((align === 'left' &&\n layoutState.current.containerWidth - shiftState.shiftX <\n (layoutState.current.layerWidth ?? 0)) ||\n // otherwise we need to check current slide index (align = right or align = center)\n (align !== 'left' && slideIndex < layoutState.current.slides.length - 1));\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles['BaseGallery'],\n align === 'center' && styles['BaseGallery--align-center'],\n slideWidth === 'custom' && styles['BaseGallery--custom-width'],\n isDraggable && styles['BaseGallery--draggable'],\n )}\n getRootRef={rootRef}\n >\n <Touch\n className={styles['BaseGallery__viewport']}\n onStartX={onStart}\n onMoveX={onMoveX}\n onEnd={onEnd}\n style={{ width: slideWidth === 'custom' ? '100%' : slideWidth }}\n getRootRef={viewportRef}\n noSlideClick\n >\n <div className={styles['BaseGallery__layer']} style={layerStyle}>\n {React.Children.map(children, (item: React.ReactNode, i: number) => (\n <div\n className={styles['BaseGallery__slide']}\n key={`slide-${i}`}\n ref={(el) => setSlideRef(el, i)}\n >\n {item}\n </div>\n ))}\n </div>\n </Touch>\n\n {bullets && (\n <div\n aria-hidden\n className={classNames(styles['BaseGallery__bullets'], stylesBullets[bullets])}\n >\n {React.Children.map(children, (_item: React.ReactNode, index: number) => (\n <div\n className={classNames(\n styles['BaseGallery__bullet'],\n index === slideIndex && styles['BaseGallery__bullet--active'],\n )}\n key={index}\n />\n ))}\n </div>\n )}\n\n {showArrows && hasPointer && canSlideLeft && (\n <ScrollArrow\n className={styles['BaseGallery__arrow']}\n direction=\"left\"\n onClick={slideLeft}\n size={arrowSize}\n />\n )}\n {showArrows && hasPointer && canSlideRight && (\n <ScrollArrow\n className={styles['BaseGallery__arrow']}\n direction=\"right\"\n onClick={slideRight}\n size={arrowSize}\n />\n )}\n </RootComponent>\n );\n};\n"],"names":["BaseGallery","ANIMATION_DURATION","LAYOUT_DEFAULT_STATE","containerWidth","viewportOffsetWidth","layerWidth","min","max","slides","isFullyVisible","SHIFT_DEFAULT_STATE","animation","undefined","shiftX","dragging","deltaX","indent","stylesBullets","dark","light","bullets","getRootRef","children","slideWidth","slideIndex","dragDisabled","onDragStart","onDragEnd","onChange","onPrevClick","onNextClick","align","showArrows","getRef","arrowSize","restProps","slidesStore","React","useRef","layoutState","shiftState","setShiftState","useState","rootRef","useExternRef","viewportRef","window","useDOM","hasPointer","useAdaptivityHasPointer","isCenterWithCustomWidth","validateIndent","value","localMax","current","localMin","calculateIndent","targetIndex","targetSlide","length","coordX","width","viewportWidth","calculateDragIndent","Number","initializeSlides","options","localSlides","Children","map","_item","i","elem","offsetLeft","offsetWidth","localContainerWidth","localViewportOffsetWidth","localLayerWidth","reduce","val","slide","adjustShiftX","calcMax","calcMin","prevState","onResize","useGlobalEventListener","useIsomorphicLayoutEffect","slideLeft","event","slideRight","getTarget","e","expectDeltaX","duration","shift","direction","item","index","previousValue","Math","abs","currentValue","isDraggable","onStart","originalEvent","stopPropagation","onMoveX","preventDefault","isSlideX","onEnd","isSlide","nextShiftState","shiftXStick","layerStyle","transform","transition","setSlideRef","slideRef","canSlideLeft","canSlideRight","RootComponent","baseClassName","classNames","Touch","className","onStartX","style","noSlideClick","div","ref","el","aria-hidden","ScrollArrow","onClick","size"],"mappings":"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"}
@@ -15,9 +15,9 @@ const _object_without_properties = require("@swc/helpers/_/_object_without_prope
15
15
  const _jsxruntime = require("react/jsx-runtime");
16
16
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
17
17
  const _vkjs = require("@vkontakte/vkjs");
18
+ const _datefns = require("date-fns");
18
19
  const _useCalendar = require("../../hooks/useCalendar");
19
20
  const _calendar = require("../../lib/calendar");
20
- const _date = require("../../lib/date");
21
21
  const _useIsomorphicLayoutEffect = require("../../lib/useIsomorphicLayoutEffect");
22
22
  const _warnOnce = require("../../lib/warnOnce");
23
23
  const _CalendarDays = require("../CalendarDays/CalendarDays");
@@ -93,7 +93,7 @@ const Calendar = (_param)=>{
93
93
  event.preventDefault();
94
94
  }
95
95
  const newFocusedDay = (0, _calendar.navigateDate)(focusedDay !== null && focusedDay !== void 0 ? focusedDay : value, event.key);
96
- if (newFocusedDay && !(0, _date.isSameMonth)(newFocusedDay, viewDate)) {
96
+ if (newFocusedDay && !(0, _datefns.isSameMonth)(newFocusedDay, viewDate)) {
97
97
  setViewDate(newFocusedDay);
98
98
  }
99
99
  setFocusedDay(newFocusedDay);
@@ -119,7 +119,7 @@ const Calendar = (_param)=>{
119
119
  maxDateTime,
120
120
  minDateTime
121
121
  ]);
122
- const isDayActive = _react.useCallback((day)=>Boolean(value && (0, _date.isSameDay)(day, value)), [
122
+ const isDayActive = _react.useCallback((day)=>Boolean(value && (0, _datefns.isSameDay)(day, value)), [
123
123
  value
124
124
  ]);
125
125
  return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_RootComponent.RootComponent, _object_spread_props._(_object_spread._({}, props), {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { clamp, isFirstDay, isLastDay, navigateDate, setTimeEqual } from '../../lib/calendar';\nimport { isSameDay, isSameMonth } from '../../lib/date';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { CalendarDays, CalendarDaysProps } from '../CalendarDays/CalendarDays';\nimport { CalendarHeader, CalendarHeaderProps } from '../CalendarHeader/CalendarHeader';\nimport { CalendarTime, CalendarTimeProps } from '../CalendarTime/CalendarTime';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Calendar.module.css';\n\nexport interface CalendarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<CalendarTimeProps, 'changeHoursLabel' | 'changeMinutesLabel'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'onNextMonth'\n | 'onPrevMonth'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n | 'prevMonthProps'\n | 'nextMonthProps'\n >,\n Pick<CalendarDaysProps, 'dayProps' | 'listenDayChangesForUpdate'> {\n value?: Date;\n /**\n * Запрещает выбор даты в прошлом.\n * Применяется, если не заданы `shouldDisableDate` и `disableFuture`.\n */\n disablePast?: boolean;\n /**\n * Запрещает выбор даты в будущем.\n * Применяется, если не задано `shouldDisableDate`.\n */\n disableFuture?: boolean;\n enableTime?: boolean;\n disablePickers?: boolean;\n doneButtonText?: string;\n changeDayLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n showNeighboringMonth?: boolean;\n size?: 's' | 'm';\n onChange?: (value?: Date) => void;\n /**\n * Позволяет запретить выбор даты.\n */\n shouldDisableDate?: (value: Date) => boolean;\n onClose?: () => void;\n /**\n * Дата отображаемого месяца.\n * При использовании обновление даты должно происходить вне компонента.\n */\n viewDate?: Date;\n /**\n * Изменение даты в шапке календаря.\n */\n onHeaderChange?: (value: Date) => void;\n /**\n * Минимальные дата и время, которые можно выбрать\n * Применяется, если не заданы `shouldDisableDate` и `disablePast`/`disableFuture`.\n */\n minDateTime?: Date;\n /**\n * Максимальные дата и время, которые можно выбрать.\n * Применяется, если не заданы `shouldDisableDate` и `disablePast`/`disableFuture`.\n */\n maxDateTime?: Date;\n}\n\nconst warn = warnOnce('Calendar');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Calendar\n */\nexport const Calendar = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n enableTime = false,\n doneButtonText,\n weekStartsOn = 1,\n disablePickers,\n changeHoursLabel = 'Изменить час',\n changeMinutesLabel = 'Изменить минуту',\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n showNeighboringMonth,\n changeDayLabel = 'Изменить день',\n size = 'm',\n viewDate: externalViewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n prevMonthIcon,\n nextMonthIcon,\n prevMonthProps,\n nextMonthProps,\n dayProps,\n listenDayChangesForUpdate,\n minDateTime,\n maxDateTime,\n ...props\n}: CalendarProps): React.ReactNode => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n isMonthDisabled,\n isYearDisabled,\n } = useCalendar({\n value,\n disableFuture,\n disablePast,\n shouldDisableDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n minDateTime,\n maxDateTime,\n });\n\n useIsomorphicLayoutEffect(() => {\n if (value) {\n setViewDate(value);\n }\n }, [value]);\n\n if (process.env.NODE_ENV === 'development' && !disablePickers && size === 's') {\n warn(\"Нельзя включить селекты выбора месяца/года, если размер календаря 's'\", 'error');\n }\n\n if (process.env.NODE_ENV === 'development' && enableTime && size === 's') {\n warn(\"Нельзя включить выбор времени, если размер календаря 's'\", 'error');\n }\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value, event.key);\n\n if (newFocusedDay && !isSameMonth(newFocusedDay, viewDate)) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate],\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n let actualDate = setTimeEqual(date, value);\n if (minDateTime || maxDateTime) {\n actualDate = clamp(actualDate, { min: minDateTime, max: maxDateTime });\n }\n onChange?.(actualDate);\n },\n [value, onChange, maxDateTime, minDateTime],\n );\n\n const isDayActive = React.useCallback(\n (day: Date) => Boolean(value && isSameDay(day, value)),\n [value],\n );\n\n return (\n <RootComponent\n {...props}\n baseClassName={classNames(styles['Calendar'], size === 's' && styles['Calendar--size-s'])}\n >\n <CalendarHeader\n viewDate={externalViewDate || viewDate}\n onChange={setViewDate}\n onNextMonth={setNextMonth}\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers || size === 's'}\n className={styles['Calendar__header']}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n prevMonthProps={prevMonthProps}\n nextMonthProps={nextMonthProps}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n />\n <CalendarDays\n viewDate={externalViewDate || viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n isDayFocused={isDayFocused}\n tabIndex={0}\n aria-label={changeDayLabel}\n onKeyDown={handleKeyDown}\n onDayChange={onDayChange}\n isDayActive={isDayActive}\n isDaySelectionStart={isFirstDay}\n isDaySelectionEnd={isLastDay}\n isDayDisabled={isDayDisabled}\n onBlur={resetSelectedDay}\n showNeighboringMonth={showNeighboringMonth}\n size={size}\n dayProps={dayProps}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n />\n {enableTime && value && size !== 's' && (\n <div className={styles['Calendar__time']}>\n <CalendarTime\n value={value}\n onChange={onChange}\n onClose={onClose}\n doneButtonText={doneButtonText}\n changeHoursLabel={changeHoursLabel}\n changeMinutesLabel={changeMinutesLabel}\n isDayDisabled={minDateTime || maxDateTime ? isDayDisabled : undefined}\n />\n </div>\n )}\n </RootComponent>\n );\n};\n"],"names":["Calendar","warn","warnOnce","value","onChange","disablePast","disableFuture","shouldDisableDate","onClose","enableTime","doneButtonText","weekStartsOn","disablePickers","changeHoursLabel","changeMinutesLabel","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","showNeighboringMonth","changeDayLabel","size","viewDate","externalViewDate","onHeaderChange","onNextMonth","onPrevMonth","prevMonthIcon","nextMonthIcon","prevMonthProps","nextMonthProps","dayProps","listenDayChangesForUpdate","minDateTime","maxDateTime","props","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","isMonthDisabled","isYearDisabled","useCalendar","useIsomorphicLayoutEffect","process","env","NODE_ENV","handleKeyDown","React","useCallback","event","includes","key","preventDefault","newFocusedDay","navigateDate","isSameMonth","onDayChange","date","actualDate","setTimeEqual","clamp","min","max","isDayActive","day","Boolean","isSameDay","RootComponent","baseClassName","classNames","CalendarHeader","className","CalendarDays","tabIndex","aria-label","onKeyDown","isDaySelectionStart","isFirstDay","isDaySelectionEnd","isLastDay","onBlur","div","CalendarTime","undefined"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { isSameDay, isSameMonth } from 'date-fns';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { clamp, isFirstDay, isLastDay, navigateDate, setTimeEqual } from '../../lib/calendar';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { CalendarDays, CalendarDaysProps } from '../CalendarDays/CalendarDays';\nimport { CalendarHeader, CalendarHeaderProps } from '../CalendarHeader/CalendarHeader';\nimport { CalendarTime, CalendarTimeProps } from '../CalendarTime/CalendarTime';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Calendar.module.css';\n\nexport interface CalendarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<CalendarTimeProps, 'changeHoursLabel' | 'changeMinutesLabel'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'onNextMonth'\n | 'onPrevMonth'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n | 'prevMonthProps'\n | 'nextMonthProps'\n >,\n Pick<CalendarDaysProps, 'dayProps' | 'listenDayChangesForUpdate'> {\n value?: Date;\n /**\n * Запрещает выбор даты в прошлом.\n * Применяется, если не заданы `shouldDisableDate` и `disableFuture`.\n */\n disablePast?: boolean;\n /**\n * Запрещает выбор даты в будущем.\n * Применяется, если не задано `shouldDisableDate`.\n */\n disableFuture?: boolean;\n enableTime?: boolean;\n disablePickers?: boolean;\n doneButtonText?: string;\n changeDayLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n showNeighboringMonth?: boolean;\n size?: 's' | 'm';\n onChange?: (value?: Date) => void;\n /**\n * Позволяет запретить выбор даты.\n */\n shouldDisableDate?: (value: Date) => boolean;\n onClose?: () => void;\n /**\n * Дата отображаемого месяца.\n * При использовании обновление даты должно происходить вне компонента.\n */\n viewDate?: Date;\n /**\n * Изменение даты в шапке календаря.\n */\n onHeaderChange?: (value: Date) => void;\n /**\n * Минимальные дата и время, которые можно выбрать\n * Применяется, если не заданы `shouldDisableDate` и `disablePast`/`disableFuture`.\n */\n minDateTime?: Date;\n /**\n * Максимальные дата и время, которые можно выбрать.\n * Применяется, если не заданы `shouldDisableDate` и `disablePast`/`disableFuture`.\n */\n maxDateTime?: Date;\n}\n\nconst warn = warnOnce('Calendar');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Calendar\n */\nexport const Calendar = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n enableTime = false,\n doneButtonText,\n weekStartsOn = 1,\n disablePickers,\n changeHoursLabel = 'Изменить час',\n changeMinutesLabel = 'Изменить минуту',\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n showNeighboringMonth,\n changeDayLabel = 'Изменить день',\n size = 'm',\n viewDate: externalViewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n prevMonthIcon,\n nextMonthIcon,\n prevMonthProps,\n nextMonthProps,\n dayProps,\n listenDayChangesForUpdate,\n minDateTime,\n maxDateTime,\n ...props\n}: CalendarProps): React.ReactNode => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n isMonthDisabled,\n isYearDisabled,\n } = useCalendar({\n value,\n disableFuture,\n disablePast,\n shouldDisableDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n minDateTime,\n maxDateTime,\n });\n\n useIsomorphicLayoutEffect(() => {\n if (value) {\n setViewDate(value);\n }\n }, [value]);\n\n if (process.env.NODE_ENV === 'development' && !disablePickers && size === 's') {\n warn(\"Нельзя включить селекты выбора месяца/года, если размер календаря 's'\", 'error');\n }\n\n if (process.env.NODE_ENV === 'development' && enableTime && size === 's') {\n warn(\"Нельзя включить выбор времени, если размер календаря 's'\", 'error');\n }\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value, event.key);\n\n if (newFocusedDay && !isSameMonth(newFocusedDay, viewDate)) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate],\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n let actualDate = setTimeEqual(date, value);\n if (minDateTime || maxDateTime) {\n actualDate = clamp(actualDate, { min: minDateTime, max: maxDateTime });\n }\n onChange?.(actualDate);\n },\n [value, onChange, maxDateTime, minDateTime],\n );\n\n const isDayActive = React.useCallback(\n (day: Date) => Boolean(value && isSameDay(day, value)),\n [value],\n );\n\n return (\n <RootComponent\n {...props}\n baseClassName={classNames(styles['Calendar'], size === 's' && styles['Calendar--size-s'])}\n >\n <CalendarHeader\n viewDate={externalViewDate || viewDate}\n onChange={setViewDate}\n onNextMonth={setNextMonth}\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers || size === 's'}\n className={styles['Calendar__header']}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n prevMonthProps={prevMonthProps}\n nextMonthProps={nextMonthProps}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n />\n <CalendarDays\n viewDate={externalViewDate || viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n isDayFocused={isDayFocused}\n tabIndex={0}\n aria-label={changeDayLabel}\n onKeyDown={handleKeyDown}\n onDayChange={onDayChange}\n isDayActive={isDayActive}\n isDaySelectionStart={isFirstDay}\n isDaySelectionEnd={isLastDay}\n isDayDisabled={isDayDisabled}\n onBlur={resetSelectedDay}\n showNeighboringMonth={showNeighboringMonth}\n size={size}\n dayProps={dayProps}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n />\n {enableTime && value && size !== 's' && (\n <div className={styles['Calendar__time']}>\n <CalendarTime\n value={value}\n onChange={onChange}\n onClose={onClose}\n doneButtonText={doneButtonText}\n changeHoursLabel={changeHoursLabel}\n changeMinutesLabel={changeMinutesLabel}\n isDayDisabled={minDateTime || maxDateTime ? isDayDisabled : undefined}\n />\n </div>\n )}\n </RootComponent>\n );\n};\n"],"names":["Calendar","warn","warnOnce","value","onChange","disablePast","disableFuture","shouldDisableDate","onClose","enableTime","doneButtonText","weekStartsOn","disablePickers","changeHoursLabel","changeMinutesLabel","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","showNeighboringMonth","changeDayLabel","size","viewDate","externalViewDate","onHeaderChange","onNextMonth","onPrevMonth","prevMonthIcon","nextMonthIcon","prevMonthProps","nextMonthProps","dayProps","listenDayChangesForUpdate","minDateTime","maxDateTime","props","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","isMonthDisabled","isYearDisabled","useCalendar","useIsomorphicLayoutEffect","process","env","NODE_ENV","handleKeyDown","React","useCallback","event","includes","key","preventDefault","newFocusedDay","navigateDate","isSameMonth","onDayChange","date","actualDate","setTimeEqual","clamp","min","max","isDayActive","day","Boolean","isSameDay","RootComponent","baseClassName","classNames","CalendarHeader","className","CalendarDays","tabIndex","aria-label","onKeyDown","isDaySelectionStart","isFirstDay","isDaySelectionEnd","isLastDay","onBlur","div","CalendarTime","undefined"],"mappings":"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"}
@@ -15,10 +15,10 @@ const _object_without_properties = require("@swc/helpers/_/_object_without_prope
15
15
  const _jsxruntime = require("react/jsx-runtime");
16
16
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
17
17
  const _vkjs = require("@vkontakte/vkjs");
18
+ const _datefns = require("date-fns");
18
19
  const _useExternRef = require("../../hooks/useExternRef");
19
20
  const _useTodayDate = require("../../hooks/useTodayDate");
20
21
  const _calendar = require("../../lib/calendar");
21
- const _date = require("../../lib/date");
22
22
  const _CalendarDay = require("../CalendarDay/CalendarDay");
23
23
  const _ConfigProviderContext = require("../ConfigProvider/ConfigProviderContext");
24
24
  const _RootComponent = require("../RootComponent/RootComponent");
@@ -80,10 +80,10 @@ const CalendarDays = (_param)=>{
80
80
  weeks.map((week, i)=>/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
81
81
  className: (0, _vkjs.classNames)("vkuiCalendarDays__row", size === 's' && "vkuiCalendarDays__row--size-s"),
82
82
  children: week.map((day, i)=>{
83
- const sameMonth = (0, _date.isSameMonth)(day, viewDate);
83
+ const sameMonth = (0, _datefns.isSameMonth)(day, viewDate);
84
84
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_CalendarDay.CalendarDay, _object_spread._({
85
85
  day: day,
86
- today: (0, _date.isSameDay)(day, now),
86
+ today: (0, _datefns.isSameDay)(day, now),
87
87
  active: isDayActive(day),
88
88
  onChange: handleDayChange,
89
89
  hidden: !showNeighboringMonth && !sameMonth,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CalendarDays/CalendarDays.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useTodayDate } from '../../hooks/useTodayDate';\nimport { getDaysNames, getWeeks } from '../../lib/calendar';\nimport { isSameDay, isSameMonth } from '../../lib/date';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { CalendarDay, CalendarDayElementProps } from '../CalendarDay/CalendarDay';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './CalendarDays.module.css';\n\nexport interface CalendarDaysProps\n extends Omit<HTMLAttributesWithRootRef<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 dayProps?: CalendarDayElementProps;\n listenDayChangesForUpdate?: boolean;\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 = ({\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 dayProps,\n listenDayChangesForUpdate = false,\n getRootRef,\n ...props\n}: CalendarDaysProps): React.ReactNode => {\n const { locale } = useConfigProvider();\n const ref = useExternRef(getRootRef);\n const now = useTodayDate(listenDayChangesForUpdate);\n\n const weeks = React.useMemo(() => getWeeks(viewDate, weekStartsOn), [weekStartsOn, viewDate]);\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, ref],\n );\n\n return (\n <RootComponent {...props} baseClassName={styles['CalendarDays']} getRootRef={ref}>\n <div\n className={classNames(\n styles['CalendarDays__row'],\n size === 's' && styles['CalendarDays__row--size-s'],\n )}\n >\n {daysNames.map((dayName) => (\n <Footnote key={dayName} className={styles['CalendarDays__weekday']}>\n {dayName}\n </Footnote>\n ))}\n </div>\n\n {weeks.map((week, i) => (\n <div\n className={classNames(\n styles['CalendarDays__row'],\n size === 's' && styles['CalendarDays__row--size-s'],\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 {...dayProps}\n />\n );\n })}\n </div>\n ))}\n </RootComponent>\n );\n};\n"],"names":["CalendarDays","viewDate","value","weekStartsOn","onDayChange","isDaySelected","isDayActive","isDaySelectionEnd","isDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","isHintedDaySelectionStart","isHintedDaySelectionEnd","isDayFocused","isDayDisabled","size","showNeighboringMonth","dayProps","listenDayChangesForUpdate","getRootRef","props","locale","useConfigProvider","ref","useExternRef","now","useTodayDate","weeks","React","useMemo","getWeeks","daysNames","getDaysNames","handleDayChange","useCallback","date","current","focus","RootComponent","baseClassName","div","className","classNames","map","dayName","Footnote","week","i","day","sameMonth","isSameMonth","CalendarDay","today","isSameDay","active","onChange","hidden","disabled","selectionStart","selectionEnd","hintedSelectionStart","hintedSelectionEnd","selected","focused","onEnter","onLeave","hinted","toISOString"],"mappings":";;;;+BAoCaA;;;eAAAA;;;;;;;;iEApCU;sBACI;8BACE;8BACA;0BACU;sBACA;6BAEc;uCACnB;+BACJ;0BACL;AA0BlB,MAAMA,eAAe;QAAC,EAC3BC,QAAQ,EACRC,KAAK,EACLC,YAAY,EACZC,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,iBAAiB,EACjBC,mBAAmB,EACnBC,UAAU,EACVC,UAAU,EACVC,WAAW,EACXC,yBAAyB,EACzBC,uBAAuB,EACvBC,YAAY,EACZC,aAAa,EACbC,IAAI,EACJC,uBAAuB,KAAK,EAC5BC,QAAQ,EACRC,4BAA4B,KAAK,EACjCC,UAAU,EAEQ,WADfC;QApBHpB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,MAAM,EAAE,GAAGC,IAAAA,wCAAiB;IACpC,MAAMC,MAAMC,IAAAA,0BAAY,EAACL;IACzB,MAAMM,MAAMC,IAAAA,0BAAY,EAACR;IAEzB,MAAMS,QAAQC,OAAMC,OAAO,CAAC,IAAMC,IAAAA,kBAAQ,EAAC9B,UAAUE,eAAe;QAACA;QAAcF;KAAS;IAE5F,MAAM+B,YAAYH,OAAMC,OAAO,CAC7B,IAAMG,IAAAA,sBAAY,EAACP,KAAKvB,cAAcmB,SACtC;QAACA;QAAQI;QAAKvB;KAAa;IAG7B,MAAM+B,kBAAkBL,OAAMM,WAAW,CACvC,CAACC;YAGCZ;QAFApB,YAAYgC;SAEZZ,eAAAA,IAAIa,OAAO,cAAXb,mCAAAA,aAAac,KAAK;IACpB,GACA;QAAClC;QAAaoB;KAAI;IAGpB,qBACE,sBAACe,4BAAa,8CAAKlB;QAAOmB,aAAa;QAA0BpB,YAAYI;;0BAC3E,qBAACiB;gBACCC,WAAWC,IAAAA,gBAAU,2BAEnB3B,SAAS;0BAGVgB,UAAUY,GAAG,CAAC,CAACC,wBACd,qBAACC,kBAAQ;wBAAeJ,SAAS;kCAC9BG;uBADYA;;YAMlBjB,MAAMgB,GAAG,CAAC,CAACG,MAAMC,kBAChB,qBAACP;oBACCC,WAAWC,IAAAA,gBAAU,2BAEnB3B,SAAS;8BAIV+B,KAAKH,GAAG,CAAC,CAACK,KAAKD;wBACd,MAAME,YAAYC,IAAAA,iBAAW,EAACF,KAAKhD;wBACnC,qBACE,qBAACmD,wBAAW;4BAEVH,KAAKA;4BACLI,OAAOC,IAAAA,eAAS,EAACL,KAAKvB;4BACtB6B,QAAQjD,YAAY2C;4BACpBO,UAAUtB;4BACVuB,QAAQ,CAACxC,wBAAwB,CAACiC;4BAClCQ,UAAU3C,cAAckC;4BACxBU,gBAAgBnD,oBAAoByC,KAAKD;4BACzCY,cAAcrD,kBAAkB0C,KAAKD;4BACrCa,oBAAoB,EAAEjD,sCAAAA,gDAAAA,0BAA4BqC,KAAKD;4BACvDc,kBAAkB,EAAEjD,oCAAAA,8CAAAA,wBAA0BoC,KAAKD;4BACnDe,QAAQ,EAAE1D,0BAAAA,oCAAAA,cAAgB4C;4BAC1Be,SAASlD,aAAamC;4BACtBgB,SAASxD;4BACTyD,SAASxD;4BACTyD,MAAM,EAAExD,wBAAAA,kCAAAA,YAAcsC;4BACtBC,WAAWA;4BACXlC,MAAMA;2BACFE,WAlBC+B,IAAImB,WAAW;oBAqB1B;mBA3BKpB;;;AAgCf"}
1
+ {"version":3,"sources":["../../../../src/components/CalendarDays/CalendarDays.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { isSameDay, isSameMonth } from 'date-fns';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useTodayDate } from '../../hooks/useTodayDate';\nimport { getDaysNames, getWeeks } from '../../lib/calendar';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { CalendarDay, CalendarDayElementProps } from '../CalendarDay/CalendarDay';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './CalendarDays.module.css';\n\nexport interface CalendarDaysProps\n extends Omit<HTMLAttributesWithRootRef<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 dayProps?: CalendarDayElementProps;\n listenDayChangesForUpdate?: boolean;\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 = ({\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 dayProps,\n listenDayChangesForUpdate = false,\n getRootRef,\n ...props\n}: CalendarDaysProps): React.ReactNode => {\n const { locale } = useConfigProvider();\n const ref = useExternRef(getRootRef);\n const now = useTodayDate(listenDayChangesForUpdate);\n\n const weeks = React.useMemo(() => getWeeks(viewDate, weekStartsOn), [weekStartsOn, viewDate]);\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, ref],\n );\n\n return (\n <RootComponent {...props} baseClassName={styles['CalendarDays']} getRootRef={ref}>\n <div\n className={classNames(\n styles['CalendarDays__row'],\n size === 's' && styles['CalendarDays__row--size-s'],\n )}\n >\n {daysNames.map((dayName) => (\n <Footnote key={dayName} className={styles['CalendarDays__weekday']}>\n {dayName}\n </Footnote>\n ))}\n </div>\n\n {weeks.map((week, i) => (\n <div\n className={classNames(\n styles['CalendarDays__row'],\n size === 's' && styles['CalendarDays__row--size-s'],\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 {...dayProps}\n />\n );\n })}\n </div>\n ))}\n </RootComponent>\n );\n};\n"],"names":["CalendarDays","viewDate","value","weekStartsOn","onDayChange","isDaySelected","isDayActive","isDaySelectionEnd","isDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","isHintedDaySelectionStart","isHintedDaySelectionEnd","isDayFocused","isDayDisabled","size","showNeighboringMonth","dayProps","listenDayChangesForUpdate","getRootRef","props","locale","useConfigProvider","ref","useExternRef","now","useTodayDate","weeks","React","useMemo","getWeeks","daysNames","getDaysNames","handleDayChange","useCallback","date","current","focus","RootComponent","baseClassName","div","className","classNames","map","dayName","Footnote","week","i","day","sameMonth","isSameMonth","CalendarDay","today","isSameDay","active","onChange","hidden","disabled","selectionStart","selectionEnd","hintedSelectionStart","hintedSelectionEnd","selected","focused","onEnter","onLeave","hinted","toISOString"],"mappings":";;;;+BAoCaA;;;eAAAA;;;;;;;;iEApCU;sBACI;yBACY;8BACV;8BACA;0BACU;6BAEc;uCACnB;+BACJ;0BACL;AA0BlB,MAAMA,eAAe;QAAC,EAC3BC,QAAQ,EACRC,KAAK,EACLC,YAAY,EACZC,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,iBAAiB,EACjBC,mBAAmB,EACnBC,UAAU,EACVC,UAAU,EACVC,WAAW,EACXC,yBAAyB,EACzBC,uBAAuB,EACvBC,YAAY,EACZC,aAAa,EACbC,IAAI,EACJC,uBAAuB,KAAK,EAC5BC,QAAQ,EACRC,4BAA4B,KAAK,EACjCC,UAAU,EAEQ,WADfC;QApBHpB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,MAAM,EAAE,GAAGC,IAAAA,wCAAiB;IACpC,MAAMC,MAAMC,IAAAA,0BAAY,EAACL;IACzB,MAAMM,MAAMC,IAAAA,0BAAY,EAACR;IAEzB,MAAMS,QAAQC,OAAMC,OAAO,CAAC,IAAMC,IAAAA,kBAAQ,EAAC9B,UAAUE,eAAe;QAACA;QAAcF;KAAS;IAE5F,MAAM+B,YAAYH,OAAMC,OAAO,CAC7B,IAAMG,IAAAA,sBAAY,EAACP,KAAKvB,cAAcmB,SACtC;QAACA;QAAQI;QAAKvB;KAAa;IAG7B,MAAM+B,kBAAkBL,OAAMM,WAAW,CACvC,CAACC;YAGCZ;QAFApB,YAAYgC;SAEZZ,eAAAA,IAAIa,OAAO,cAAXb,mCAAAA,aAAac,KAAK;IACpB,GACA;QAAClC;QAAaoB;KAAI;IAGpB,qBACE,sBAACe,4BAAa,8CAAKlB;QAAOmB,aAAa;QAA0BpB,YAAYI;;0BAC3E,qBAACiB;gBACCC,WAAWC,IAAAA,gBAAU,2BAEnB3B,SAAS;0BAGVgB,UAAUY,GAAG,CAAC,CAACC,wBACd,qBAACC,kBAAQ;wBAAeJ,SAAS;kCAC9BG;uBADYA;;YAMlBjB,MAAMgB,GAAG,CAAC,CAACG,MAAMC,kBAChB,qBAACP;oBACCC,WAAWC,IAAAA,gBAAU,2BAEnB3B,SAAS;8BAIV+B,KAAKH,GAAG,CAAC,CAACK,KAAKD;wBACd,MAAME,YAAYC,IAAAA,oBAAW,EAACF,KAAKhD;wBACnC,qBACE,qBAACmD,wBAAW;4BAEVH,KAAKA;4BACLI,OAAOC,IAAAA,kBAAS,EAACL,KAAKvB;4BACtB6B,QAAQjD,YAAY2C;4BACpBO,UAAUtB;4BACVuB,QAAQ,CAACxC,wBAAwB,CAACiC;4BAClCQ,UAAU3C,cAAckC;4BACxBU,gBAAgBnD,oBAAoByC,KAAKD;4BACzCY,cAAcrD,kBAAkB0C,KAAKD;4BACrCa,oBAAoB,EAAEjD,sCAAAA,gDAAAA,0BAA4BqC,KAAKD;4BACvDc,kBAAkB,EAAEjD,oCAAAA,8CAAAA,wBAA0BoC,KAAKD;4BACnDe,QAAQ,EAAE1D,0BAAAA,oCAAAA,cAAgB4C;4BAC1Be,SAASlD,aAAamC;4BACtBgB,SAASxD;4BACTyD,SAASxD;4BACTyD,MAAM,EAAExD,wBAAAA,kCAAAA,YAAcsC;4BACtBC,WAAWA;4BACXlC,MAAMA;2BACFE,WAlBC+B,IAAImB,WAAW;oBAqB1B;mBA3BKpB;;;AAgCf"}
@@ -16,8 +16,8 @@ const _jsxruntime = require("react/jsx-runtime");
16
16
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
17
17
  const _icons = require("@vkontakte/icons");
18
18
  const _vkjs = require("@vkontakte/vkjs");
19
+ const _datefns = require("date-fns");
19
20
  const _calendar = require("../../lib/calendar");
20
- const _date = require("../../lib/date");
21
21
  const _AdaptivityProvider = require("../AdaptivityProvider/AdaptivityProvider");
22
22
  const _ConfigProviderContext = require("../ConfigProvider/ConfigProviderContext");
23
23
  const _CustomSelect = require("../CustomSelect/CustomSelect");
@@ -54,11 +54,11 @@ const CalendarHeader = (_param)=>{
54
54
  "isYearDisabled"
55
55
  ]);
56
56
  const { locale } = (0, _ConfigProviderContext.useConfigProvider)();
57
- const onMonthsChange = _react.useCallback((event)=>onChange((0, _date.setMonth)(viewDate, Number(event.target.value))), [
57
+ const onMonthsChange = _react.useCallback((event)=>onChange((0, _datefns.setMonth)(viewDate, Number(event.target.value))), [
58
58
  onChange,
59
59
  viewDate
60
60
  ]);
61
- const onYearChange = _react.useCallback((event)=>onChange((0, _date.setYear)(viewDate, Number(event.target.value))), [
61
+ const onYearChange = _react.useCallback((event)=>onChange((0, _datefns.setYear)(viewDate, Number(event.target.value))), [
62
62
  onChange,
63
63
  viewDate
64
64
  ]);
@@ -114,7 +114,7 @@ const CalendarHeader = (_param)=>{
114
114
  children: [
115
115
  prevMonthLabel,
116
116
  ", ",
117
- formatter.format((0, _date.subMonths)(viewDate, 1))
117
+ formatter.format((0, _datefns.subMonths)(viewDate, 1))
118
118
  ]
119
119
  }),
120
120
  prevMonthIcon
@@ -179,7 +179,7 @@ const CalendarHeader = (_param)=>{
179
179
  children: [
180
180
  nextMonthLabel,
181
181
  ", ",
182
- formatter.format((0, _date.addMonths)(viewDate, 1))
182
+ formatter.format((0, _datefns.addMonths)(viewDate, 1))
183
183
  ]
184
184
  }),
185
185
  nextMonthIcon
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CalendarHeader/CalendarHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon12Dropdown,\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, getMonths, getYears } from '../../lib/calendar';\nimport { addMonths, setMonth, setYear, subMonths } from '../../lib/date';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { CustomSelect } from '../CustomSelect/CustomSelect';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarHeader.module.css';\n\ntype ArrowMonthProps = Omit<React.AllHTMLAttributes<HTMLElement>, 'onClick' | 'aria-label'>;\n\nexport interface CalendarHeaderProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'> {\n viewDate: Date;\n /**\n * Скрывает иконку для переключения на предыдущий месяц\n */\n prevMonthHidden?: boolean;\n /**\n * Скрывает иконку для переключения на следующий месяц\n */\n nextMonthHidden?: boolean;\n disablePickers?: boolean;\n prevMonthLabel?: string;\n nextMonthLabel?: string;\n changeMonthLabel?: string;\n changeYearLabel?: string;\n prevMonthIcon?: React.ReactNode;\n nextMonthIcon?: React.ReactNode;\n prevMonthProps?: ArrowMonthProps;\n nextMonthProps?: ArrowMonthProps;\n isMonthDisabled?: (monthNumber: number, year?: number) => boolean;\n isYearDisabled?: (yearNumber: number) => boolean;\n onChange: (viewDate: Date) => void;\n /**\n * Нажатие на кнопку переключения на следующий месяц.\n */\n onNextMonth?: () => void;\n /**\n * Нажатие на кнопку переключения на предыдущий месяц.\n */\n onPrevMonth?: () => void;\n}\n\nexport const CalendarHeader = ({\n viewDate,\n onChange,\n prevMonthHidden: prevMonthHiddenProp = false,\n nextMonthHidden: nextMonthHiddenProp = false,\n disablePickers = false,\n onNextMonth,\n onPrevMonth,\n prevMonthProps = {},\n nextMonthProps = {},\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n prevMonthIcon = (\n <Icon20ChevronLeftOutline\n className={styles['CalendarHeader__nav-icon--accent']}\n width={30}\n height={30}\n />\n ),\n nextMonthIcon = (\n <Icon20ChevronRightOutline\n className={styles['CalendarHeader__nav-icon--accent']}\n width={30}\n height={30}\n />\n ),\n isMonthDisabled,\n isYearDisabled,\n ...restProps\n}: CalendarHeaderProps): React.ReactNode => {\n const { locale } = useConfigProvider();\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 currentYear = viewDate.getFullYear();\n const currentMonth = viewDate.getMonth();\n\n const months = React.useMemo(\n () =>\n getMonths(locale).map(({ value, label }) => ({\n value,\n label: <span className={styles['CalendarHeader__month']}>{label}</span>,\n disabled: isMonthDisabled && isMonthDisabled(value),\n })),\n [locale, isMonthDisabled],\n );\n\n const years = React.useMemo(\n () =>\n getYears(currentYear, 100).map((year) => ({\n ...year,\n disabled: isYearDisabled && isYearDisabled(year.value),\n })),\n [currentYear, isYearDisabled],\n );\n\n const formatter = new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n });\n\n const { className: prevMonthClassName, ...restPrevMonthProps } = prevMonthProps;\n const { className: nextMonthClassName, ...restNextMonthProps } = nextMonthProps;\n\n let nextMonthHidden =\n nextMonthHiddenProp || (currentMonth === 11 && currentYear === DEFAULT_MAX_YEAR);\n if (isMonthDisabled && !nextMonthHidden) {\n nextMonthHidden = isMonthDisabled(\n currentMonth === 11 ? 0 : currentMonth + 1,\n currentMonth === 11 ? Math.min(currentYear + 1, DEFAULT_MAX_YEAR) : currentYear,\n );\n }\n\n let prevMonthHidden =\n prevMonthHiddenProp || (currentMonth === 0 && currentYear === DEFAULT_MIN_YEAR);\n if (isMonthDisabled && !prevMonthHidden) {\n prevMonthHidden = isMonthDisabled(\n currentMonth === 0 ? 11 : currentMonth - 1,\n currentMonth === 0 ? Math.max(currentYear - 1, DEFAULT_MIN_YEAR) : currentYear,\n );\n }\n\n return (\n <RootComponent baseClassName={styles['CalendarHeader']} {...restProps}>\n {!prevMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n className={classNames(\n styles['CalendarHeader__nav-icon'],\n styles['CalendarHeader__nav-icon-prev'],\n prevMonthClassName,\n )}\n onClick={onPrevMonth}\n {...restPrevMonthProps}\n >\n <VisuallyHidden>\n {prevMonthLabel}, {formatter.format(subMonths(viewDate, 1))}\n </VisuallyHidden>\n {prevMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n {disablePickers ? (\n <Paragraph\n className={classNames(\n styles['CalendarHeader__pickers'],\n 'vkuiInternalCalendarHeader__pickers',\n )}\n weight=\"2\"\n >\n <span className={styles['CalendarHeader__month']}>\n {new Intl.DateTimeFormat(locale, {\n month: 'long',\n }).format(viewDate)}\n </span>\n &nbsp;\n {new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n }).format(viewDate)}\n </Paragraph>\n ) : (\n <AdaptivityProvider sizeY=\"compact\">\n <div\n className={classNames(\n styles['CalendarHeader__pickers'],\n 'vkuiInternalCalendarHeader__pickers',\n )}\n >\n <CustomSelect\n className={classNames(\n styles['CalendarHeader__picker'],\n 'vkuiInternalCalendarHeader__picker',\n )}\n value={currentMonth}\n options={months}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeMonthLabel}\n />\n <CustomSelect\n className={classNames(\n styles['CalendarHeader__picker'],\n 'vkuiInternalCalendarHeader__picker',\n )}\n value={currentYear}\n options={years}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeYearLabel}\n />\n </div>\n </AdaptivityProvider>\n )}\n {!nextMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n className={classNames(\n styles['CalendarHeader__nav-icon'],\n styles['CalendarHeader__nav-icon-next'],\n nextMonthClassName,\n )}\n onClick={onNextMonth}\n {...restNextMonthProps}\n >\n <VisuallyHidden>\n {nextMonthLabel}, {formatter.format(addMonths(viewDate, 1))}\n </VisuallyHidden>\n {nextMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n </RootComponent>\n );\n};\n"],"names":["CalendarHeader","viewDate","onChange","prevMonthHidden","prevMonthHiddenProp","nextMonthHidden","nextMonthHiddenProp","disablePickers","onNextMonth","onPrevMonth","prevMonthProps","nextMonthProps","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","prevMonthIcon","Icon20ChevronLeftOutline","className","width","height","nextMonthIcon","Icon20ChevronRightOutline","isMonthDisabled","isYearDisabled","restProps","locale","useConfigProvider","onMonthsChange","React","useCallback","event","setMonth","Number","target","value","onYearChange","setYear","currentYear","getFullYear","currentMonth","getMonth","months","useMemo","getMonths","map","label","span","disabled","years","getYears","year","formatter","Intl","DateTimeFormat","month","prevMonthClassName","restPrevMonthProps","nextMonthClassName","restNextMonthProps","DEFAULT_MAX_YEAR","Math","min","DEFAULT_MIN_YEAR","max","RootComponent","baseClassName","AdaptivityProvider","sizeX","Tappable","classNames","onClick","VisuallyHidden","format","subMonths","Paragraph","weight","sizeY","div","CustomSelect","options","dropdownOffsetDistance","dropdownAutoWidth","icon","Icon12Dropdown","forceDropdownPortal","selectType","aria-label","addMonths"],"mappings":";;;;+BAsDaA;;;eAAAA;;;;;;;;iEAtDU;uBAKhB;sBACoB;0BAC6C;sBAChB;oCAErB;uCACD;8BACL;+BACC;0BACL;2BACC;gCACK;AAsCxB,MAAMA,iBAAiB;QAAC,EAC7BC,QAAQ,EACRC,QAAQ,EACRC,iBAAiBC,sBAAsB,KAAK,EAC5CC,iBAAiBC,sBAAsB,KAAK,EAC5CC,iBAAiB,KAAK,EACtBC,WAAW,EACXC,WAAW,EACXC,iBAAiB,CAAC,CAAC,EACnBC,iBAAiB,CAAC,CAAC,EACnBC,iBAAiB,kBAAkB,EACnCC,iBAAiB,iBAAiB,EAClCC,mBAAmB,gBAAgB,EACnCC,kBAAkB,cAAc,EAChCC,8BACE,qBAACC,+BAAwB;QACvBC,SAAS;QACTC,OAAO;QACPC,QAAQ;MAEX,EACDC,8BACE,qBAACC,gCAAyB;QACxBJ,SAAS;QACTC,OAAO;QACPC,QAAQ;MAEX,EACDG,eAAe,EACfC,cAAc,EAEM,WADjBC;QA7BHxB;QACAC;QACAC;QACAE;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QAOAK;QAOAE;QACAC;;IAGA,MAAM,EAAEE,MAAM,EAAE,GAAGC,IAAAA,wCAAiB;IACpC,MAAMC,iBAAiBC,OAAMC,WAAW,CACtC,CAACC,QACC7B,SAAS8B,IAAAA,cAAQ,EAAC/B,UAAUgC,OAAOF,MAAMG,MAAM,CAACC,KAAK,KACvD;QAACjC;QAAUD;KAAS;IAEtB,MAAMmC,eAAeP,OAAMC,WAAW,CACpC,CAACC,QACC7B,SAASmC,IAAAA,aAAO,EAACpC,UAAUgC,OAAOF,MAAMG,MAAM,CAACC,KAAK,KACtD;QAACjC;QAAUD;KAAS;IAGtB,MAAMqC,cAAcrC,SAASsC,WAAW;IACxC,MAAMC,eAAevC,SAASwC,QAAQ;IAEtC,MAAMC,SAASb,OAAMc,OAAO,CAC1B,IACEC,IAAAA,mBAAS,EAAClB,QAAQmB,GAAG,CAAC,CAAC,EAAEV,KAAK,EAAEW,KAAK,EAAE,GAAM,CAAA;gBAC3CX;gBACAW,qBAAO,qBAACC;oBAAK7B,SAAS;8BAAoC4B;;gBAC1DE,UAAUzB,mBAAmBA,gBAAgBY;YAC/C,CAAA,IACF;QAACT;QAAQH;KAAgB;IAG3B,MAAM0B,QAAQpB,OAAMc,OAAO,CACzB,IACEO,IAAAA,kBAAQ,EAACZ,aAAa,KAAKO,GAAG,CAAC,CAACM,OAAU,4CACrCA;gBACHH,UAAUxB,kBAAkBA,eAAe2B,KAAKhB,KAAK;iBAEzD;QAACG;QAAad;KAAe;IAG/B,MAAM4B,YAAY,IAAIC,KAAKC,cAAc,CAAC5B,QAAQ;QAChDyB,MAAM;QACNI,OAAO;IACT;IAEA,MAAM,EAAErC,WAAWsC,kBAAkB,EAAyB,GAAG9C,gBAAvB+C,kDAAuB/C;QAAzDQ;;IACR,MAAM,EAAEA,WAAWwC,kBAAkB,EAAyB,GAAG/C,gBAAvBgD,kDAAuBhD;QAAzDO;;IAER,IAAIb,kBACFC,uBAAwBkC,iBAAiB,MAAMF,gBAAgBsB,0BAAgB;IACjF,IAAIrC,mBAAmB,CAAClB,iBAAiB;QACvCA,kBAAkBkB,gBAChBiB,iBAAiB,KAAK,IAAIA,eAAe,GACzCA,iBAAiB,KAAKqB,KAAKC,GAAG,CAACxB,cAAc,GAAGsB,0BAAgB,IAAItB;IAExE;IAEA,IAAInC,kBACFC,uBAAwBoC,iBAAiB,KAAKF,gBAAgByB,0BAAgB;IAChF,IAAIxC,mBAAmB,CAACpB,iBAAiB;QACvCA,kBAAkBoB,gBAChBiB,iBAAiB,IAAI,KAAKA,eAAe,GACzCA,iBAAiB,IAAIqB,KAAKG,GAAG,CAAC1B,cAAc,GAAGyB,0BAAgB,IAAIzB;IAEvE;IAEA,qBACE,sBAAC2B,4BAAa;QAACC,aAAa;OAAgCzC;;YACzD,CAACtB,iCACA,qBAACgE,sCAAkB;gBAACC,OAAM;0BACxB,cAAA,sBAACC,kBAAQ;oBACPnD,WAAWoD,IAAAA,gBAAU,uEAGnBd;oBAEFe,SAAS9D;mBACLgD;;sCAEJ,sBAACe,8BAAc;;gCACZ5D;gCAAe;gCAAGwC,UAAUqB,MAAM,CAACC,IAAAA,eAAS,EAACzE,UAAU;;;wBAEzDe;;;;YAINT,+BACC,sBAACoE,oBAAS;gBACRzD,WAAWoD,IAAAA,gBAAU,iCAEnB;gBAEFM,QAAO;;kCAEP,qBAAC7B;wBAAK7B,SAAS;kCACZ,IAAImC,KAAKC,cAAc,CAAC5B,QAAQ;4BAC/B6B,OAAO;wBACT,GAAGkB,MAAM,CAACxE;;oBACL;oBAEN,IAAIoD,KAAKC,cAAc,CAAC5B,QAAQ;wBAC/ByB,MAAM;oBACR,GAAGsB,MAAM,CAACxE;;+BAGZ,qBAACkE,sCAAkB;gBAACU,OAAM;0BACxB,cAAA,sBAACC;oBACC5D,WAAWoD,IAAAA,gBAAU,iCAEnB;;sCAGF,qBAACS,0BAAY;4BACX7D,WAAWoD,IAAAA,gBAAU,gCAEnB;4BAEFnC,OAAOK;4BACPwC,SAAStC;4BACTuC,wBAAwB;4BACxBC,iBAAiB;4BACjBC,oBAAM,qBAACC,qBAAc;4BACrBlF,UAAU0B;4BACVyD,qBAAqB;4BACrBC,YAAW;4BACXC,cAAYzE;;sCAEd,qBAACiE,0BAAY;4BACX7D,WAAWoD,IAAAA,gBAAU,gCAEnB;4BAEFnC,OAAOG;4BACP0C,SAAS/B;4BACTgC,wBAAwB;4BACxBC,iBAAiB;4BACjBC,oBAAM,qBAACC,qBAAc;4BACrBlF,UAAUkC;4BACViD,qBAAqB;4BACrBC,YAAW;4BACXC,cAAYxE;;;;;YAKnB,CAACV,iCACA,qBAAC8D,sCAAkB;gBAACC,OAAM;0BACxB,cAAA,sBAACC,kBAAQ;oBACPnD,WAAWoD,IAAAA,gBAAU,uEAGnBZ;oBAEFa,SAAS/D;mBACLmD;;sCAEJ,sBAACa,8BAAc;;gCACZ3D;gCAAe;gCAAGuC,UAAUqB,MAAM,CAACe,IAAAA,eAAS,EAACvF,UAAU;;;wBAEzDoB;;;;;;AAMb"}
1
+ {"version":3,"sources":["../../../../src/components/CalendarHeader/CalendarHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon12Dropdown,\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { addMonths, setMonth, setYear, subMonths } from 'date-fns';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, getMonths, getYears } from '../../lib/calendar';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { CustomSelect } from '../CustomSelect/CustomSelect';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarHeader.module.css';\n\ntype ArrowMonthProps = Omit<React.AllHTMLAttributes<HTMLElement>, 'onClick' | 'aria-label'>;\n\nexport interface CalendarHeaderProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'> {\n viewDate: Date;\n /**\n * Скрывает иконку для переключения на предыдущий месяц\n */\n prevMonthHidden?: boolean;\n /**\n * Скрывает иконку для переключения на следующий месяц\n */\n nextMonthHidden?: boolean;\n disablePickers?: boolean;\n prevMonthLabel?: string;\n nextMonthLabel?: string;\n changeMonthLabel?: string;\n changeYearLabel?: string;\n prevMonthIcon?: React.ReactNode;\n nextMonthIcon?: React.ReactNode;\n prevMonthProps?: ArrowMonthProps;\n nextMonthProps?: ArrowMonthProps;\n isMonthDisabled?: (monthNumber: number, year?: number) => boolean;\n isYearDisabled?: (yearNumber: number) => boolean;\n onChange: (viewDate: Date) => void;\n /**\n * Нажатие на кнопку переключения на следующий месяц.\n */\n onNextMonth?: () => void;\n /**\n * Нажатие на кнопку переключения на предыдущий месяц.\n */\n onPrevMonth?: () => void;\n}\n\nexport const CalendarHeader = ({\n viewDate,\n onChange,\n prevMonthHidden: prevMonthHiddenProp = false,\n nextMonthHidden: nextMonthHiddenProp = false,\n disablePickers = false,\n onNextMonth,\n onPrevMonth,\n prevMonthProps = {},\n nextMonthProps = {},\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n prevMonthIcon = (\n <Icon20ChevronLeftOutline\n className={styles['CalendarHeader__nav-icon--accent']}\n width={30}\n height={30}\n />\n ),\n nextMonthIcon = (\n <Icon20ChevronRightOutline\n className={styles['CalendarHeader__nav-icon--accent']}\n width={30}\n height={30}\n />\n ),\n isMonthDisabled,\n isYearDisabled,\n ...restProps\n}: CalendarHeaderProps): React.ReactNode => {\n const { locale } = useConfigProvider();\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 currentYear = viewDate.getFullYear();\n const currentMonth = viewDate.getMonth();\n\n const months = React.useMemo(\n () =>\n getMonths(locale).map(({ value, label }) => ({\n value,\n label: <span className={styles['CalendarHeader__month']}>{label}</span>,\n disabled: isMonthDisabled && isMonthDisabled(value),\n })),\n [locale, isMonthDisabled],\n );\n\n const years = React.useMemo(\n () =>\n getYears(currentYear, 100).map((year) => ({\n ...year,\n disabled: isYearDisabled && isYearDisabled(year.value),\n })),\n [currentYear, isYearDisabled],\n );\n\n const formatter = new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n });\n\n const { className: prevMonthClassName, ...restPrevMonthProps } = prevMonthProps;\n const { className: nextMonthClassName, ...restNextMonthProps } = nextMonthProps;\n\n let nextMonthHidden =\n nextMonthHiddenProp || (currentMonth === 11 && currentYear === DEFAULT_MAX_YEAR);\n if (isMonthDisabled && !nextMonthHidden) {\n nextMonthHidden = isMonthDisabled(\n currentMonth === 11 ? 0 : currentMonth + 1,\n currentMonth === 11 ? Math.min(currentYear + 1, DEFAULT_MAX_YEAR) : currentYear,\n );\n }\n\n let prevMonthHidden =\n prevMonthHiddenProp || (currentMonth === 0 && currentYear === DEFAULT_MIN_YEAR);\n if (isMonthDisabled && !prevMonthHidden) {\n prevMonthHidden = isMonthDisabled(\n currentMonth === 0 ? 11 : currentMonth - 1,\n currentMonth === 0 ? Math.max(currentYear - 1, DEFAULT_MIN_YEAR) : currentYear,\n );\n }\n\n return (\n <RootComponent baseClassName={styles['CalendarHeader']} {...restProps}>\n {!prevMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n className={classNames(\n styles['CalendarHeader__nav-icon'],\n styles['CalendarHeader__nav-icon-prev'],\n prevMonthClassName,\n )}\n onClick={onPrevMonth}\n {...restPrevMonthProps}\n >\n <VisuallyHidden>\n {prevMonthLabel}, {formatter.format(subMonths(viewDate, 1))}\n </VisuallyHidden>\n {prevMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n {disablePickers ? (\n <Paragraph\n className={classNames(\n styles['CalendarHeader__pickers'],\n 'vkuiInternalCalendarHeader__pickers',\n )}\n weight=\"2\"\n >\n <span className={styles['CalendarHeader__month']}>\n {new Intl.DateTimeFormat(locale, {\n month: 'long',\n }).format(viewDate)}\n </span>\n &nbsp;\n {new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n }).format(viewDate)}\n </Paragraph>\n ) : (\n <AdaptivityProvider sizeY=\"compact\">\n <div\n className={classNames(\n styles['CalendarHeader__pickers'],\n 'vkuiInternalCalendarHeader__pickers',\n )}\n >\n <CustomSelect\n className={classNames(\n styles['CalendarHeader__picker'],\n 'vkuiInternalCalendarHeader__picker',\n )}\n value={currentMonth}\n options={months}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeMonthLabel}\n />\n <CustomSelect\n className={classNames(\n styles['CalendarHeader__picker'],\n 'vkuiInternalCalendarHeader__picker',\n )}\n value={currentYear}\n options={years}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeYearLabel}\n />\n </div>\n </AdaptivityProvider>\n )}\n {!nextMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n className={classNames(\n styles['CalendarHeader__nav-icon'],\n styles['CalendarHeader__nav-icon-next'],\n nextMonthClassName,\n )}\n onClick={onNextMonth}\n {...restNextMonthProps}\n >\n <VisuallyHidden>\n {nextMonthLabel}, {formatter.format(addMonths(viewDate, 1))}\n </VisuallyHidden>\n {nextMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n </RootComponent>\n );\n};\n"],"names":["CalendarHeader","viewDate","onChange","prevMonthHidden","prevMonthHiddenProp","nextMonthHidden","nextMonthHiddenProp","disablePickers","onNextMonth","onPrevMonth","prevMonthProps","nextMonthProps","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","prevMonthIcon","Icon20ChevronLeftOutline","className","width","height","nextMonthIcon","Icon20ChevronRightOutline","isMonthDisabled","isYearDisabled","restProps","locale","useConfigProvider","onMonthsChange","React","useCallback","event","setMonth","Number","target","value","onYearChange","setYear","currentYear","getFullYear","currentMonth","getMonth","months","useMemo","getMonths","map","label","span","disabled","years","getYears","year","formatter","Intl","DateTimeFormat","month","prevMonthClassName","restPrevMonthProps","nextMonthClassName","restNextMonthProps","DEFAULT_MAX_YEAR","Math","min","DEFAULT_MIN_YEAR","max","RootComponent","baseClassName","AdaptivityProvider","sizeX","Tappable","classNames","onClick","VisuallyHidden","format","subMonths","Paragraph","weight","sizeY","div","CustomSelect","options","dropdownOffsetDistance","dropdownAutoWidth","icon","Icon12Dropdown","forceDropdownPortal","selectType","aria-label","addMonths"],"mappings":";;;;+BAsDaA;;;eAAAA;;;;;;;;iEAtDU;uBAKhB;sBACoB;yBAC6B;0BACgB;oCAErC;uCACD;8BACL;+BACC;0BACL;2BACC;gCACK;AAsCxB,MAAMA,iBAAiB;QAAC,EAC7BC,QAAQ,EACRC,QAAQ,EACRC,iBAAiBC,sBAAsB,KAAK,EAC5CC,iBAAiBC,sBAAsB,KAAK,EAC5CC,iBAAiB,KAAK,EACtBC,WAAW,EACXC,WAAW,EACXC,iBAAiB,CAAC,CAAC,EACnBC,iBAAiB,CAAC,CAAC,EACnBC,iBAAiB,kBAAkB,EACnCC,iBAAiB,iBAAiB,EAClCC,mBAAmB,gBAAgB,EACnCC,kBAAkB,cAAc,EAChCC,8BACE,qBAACC,+BAAwB;QACvBC,SAAS;QACTC,OAAO;QACPC,QAAQ;MAEX,EACDC,8BACE,qBAACC,gCAAyB;QACxBJ,SAAS;QACTC,OAAO;QACPC,QAAQ;MAEX,EACDG,eAAe,EACfC,cAAc,EAEM,WADjBC;QA7BHxB;QACAC;QACAC;QACAE;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QAOAK;QAOAE;QACAC;;IAGA,MAAM,EAAEE,MAAM,EAAE,GAAGC,IAAAA,wCAAiB;IACpC,MAAMC,iBAAiBC,OAAMC,WAAW,CACtC,CAACC,QACC7B,SAAS8B,IAAAA,iBAAQ,EAAC/B,UAAUgC,OAAOF,MAAMG,MAAM,CAACC,KAAK,KACvD;QAACjC;QAAUD;KAAS;IAEtB,MAAMmC,eAAeP,OAAMC,WAAW,CACpC,CAACC,QACC7B,SAASmC,IAAAA,gBAAO,EAACpC,UAAUgC,OAAOF,MAAMG,MAAM,CAACC,KAAK,KACtD;QAACjC;QAAUD;KAAS;IAGtB,MAAMqC,cAAcrC,SAASsC,WAAW;IACxC,MAAMC,eAAevC,SAASwC,QAAQ;IAEtC,MAAMC,SAASb,OAAMc,OAAO,CAC1B,IACEC,IAAAA,mBAAS,EAAClB,QAAQmB,GAAG,CAAC,CAAC,EAAEV,KAAK,EAAEW,KAAK,EAAE,GAAM,CAAA;gBAC3CX;gBACAW,qBAAO,qBAACC;oBAAK7B,SAAS;8BAAoC4B;;gBAC1DE,UAAUzB,mBAAmBA,gBAAgBY;YAC/C,CAAA,IACF;QAACT;QAAQH;KAAgB;IAG3B,MAAM0B,QAAQpB,OAAMc,OAAO,CACzB,IACEO,IAAAA,kBAAQ,EAACZ,aAAa,KAAKO,GAAG,CAAC,CAACM,OAAU,4CACrCA;gBACHH,UAAUxB,kBAAkBA,eAAe2B,KAAKhB,KAAK;iBAEzD;QAACG;QAAad;KAAe;IAG/B,MAAM4B,YAAY,IAAIC,KAAKC,cAAc,CAAC5B,QAAQ;QAChDyB,MAAM;QACNI,OAAO;IACT;IAEA,MAAM,EAAErC,WAAWsC,kBAAkB,EAAyB,GAAG9C,gBAAvB+C,kDAAuB/C;QAAzDQ;;IACR,MAAM,EAAEA,WAAWwC,kBAAkB,EAAyB,GAAG/C,gBAAvBgD,kDAAuBhD;QAAzDO;;IAER,IAAIb,kBACFC,uBAAwBkC,iBAAiB,MAAMF,gBAAgBsB,0BAAgB;IACjF,IAAIrC,mBAAmB,CAAClB,iBAAiB;QACvCA,kBAAkBkB,gBAChBiB,iBAAiB,KAAK,IAAIA,eAAe,GACzCA,iBAAiB,KAAKqB,KAAKC,GAAG,CAACxB,cAAc,GAAGsB,0BAAgB,IAAItB;IAExE;IAEA,IAAInC,kBACFC,uBAAwBoC,iBAAiB,KAAKF,gBAAgByB,0BAAgB;IAChF,IAAIxC,mBAAmB,CAACpB,iBAAiB;QACvCA,kBAAkBoB,gBAChBiB,iBAAiB,IAAI,KAAKA,eAAe,GACzCA,iBAAiB,IAAIqB,KAAKG,GAAG,CAAC1B,cAAc,GAAGyB,0BAAgB,IAAIzB;IAEvE;IAEA,qBACE,sBAAC2B,4BAAa;QAACC,aAAa;OAAgCzC;;YACzD,CAACtB,iCACA,qBAACgE,sCAAkB;gBAACC,OAAM;0BACxB,cAAA,sBAACC,kBAAQ;oBACPnD,WAAWoD,IAAAA,gBAAU,uEAGnBd;oBAEFe,SAAS9D;mBACLgD;;sCAEJ,sBAACe,8BAAc;;gCACZ5D;gCAAe;gCAAGwC,UAAUqB,MAAM,CAACC,IAAAA,kBAAS,EAACzE,UAAU;;;wBAEzDe;;;;YAINT,+BACC,sBAACoE,oBAAS;gBACRzD,WAAWoD,IAAAA,gBAAU,iCAEnB;gBAEFM,QAAO;;kCAEP,qBAAC7B;wBAAK7B,SAAS;kCACZ,IAAImC,KAAKC,cAAc,CAAC5B,QAAQ;4BAC/B6B,OAAO;wBACT,GAAGkB,MAAM,CAACxE;;oBACL;oBAEN,IAAIoD,KAAKC,cAAc,CAAC5B,QAAQ;wBAC/ByB,MAAM;oBACR,GAAGsB,MAAM,CAACxE;;+BAGZ,qBAACkE,sCAAkB;gBAACU,OAAM;0BACxB,cAAA,sBAACC;oBACC5D,WAAWoD,IAAAA,gBAAU,iCAEnB;;sCAGF,qBAACS,0BAAY;4BACX7D,WAAWoD,IAAAA,gBAAU,gCAEnB;4BAEFnC,OAAOK;4BACPwC,SAAStC;4BACTuC,wBAAwB;4BACxBC,iBAAiB;4BACjBC,oBAAM,qBAACC,qBAAc;4BACrBlF,UAAU0B;4BACVyD,qBAAqB;4BACrBC,YAAW;4BACXC,cAAYzE;;sCAEd,qBAACiE,0BAAY;4BACX7D,WAAWoD,IAAAA,gBAAU,gCAEnB;4BAEFnC,OAAOG;4BACP0C,SAAS/B;4BACTgC,wBAAwB;4BACxBC,iBAAiB;4BACjBC,oBAAM,qBAACC,qBAAc;4BACrBlF,UAAUkC;4BACViD,qBAAqB;4BACrBC,YAAW;4BACXC,cAAYxE;;;;;YAKnB,CAACV,iCACA,qBAAC8D,sCAAkB;gBAACC,OAAM;0BACxB,cAAA,sBAACC,kBAAQ;oBACPnD,WAAWoD,IAAAA,gBAAU,uEAGnBZ;oBAEFa,SAAS/D;mBACLmD;;sCAEJ,sBAACa,8BAAc;;gCACZ3D;gCAAe;gCAAGuC,UAAUqB,MAAM,CAACe,IAAAA,kBAAS,EAACvF,UAAU;;;wBAEzDoB;;;;;;AAMb"}
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarRange.d.ts","sourceRoot":"","sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAkB,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAIvF,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAEvD,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACjE,IAAI,CACF,mBAAmB,EACjB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,eAAe,GACf,eAAe,CAClB,EACD,IAAI,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;IACtD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAUD;;GAEG;AACH,eAAO,MAAM,aAAa,oQAkBvB,kBAAkB,KAAG,KAAK,CAAC,SAoM7B,CAAC"}
1
+ {"version":3,"file":"CalendarRange.d.ts","sourceRoot":"","sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAkB,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAIvF,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAEvD,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACjE,IAAI,CACF,mBAAmB,EACjB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,eAAe,GACf,eAAe,CAClB,EACD,IAAI,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;IACtD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAUD;;GAEG;AACH,eAAO,MAAM,aAAa,oQAkBvB,kBAAkB,KAAG,KAAK,CAAC,SAmM7B,CAAC"}
@@ -14,9 +14,9 @@ const _object_spread_props = require("@swc/helpers/_/_object_spread_props");
14
14
  const _object_without_properties = require("@swc/helpers/_/_object_without_properties");
15
15
  const _jsxruntime = require("react/jsx-runtime");
16
16
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
17
+ const _datefns = require("date-fns");
17
18
  const _useCalendar = require("../../hooks/useCalendar");
18
19
  const _calendar = require("../../lib/calendar");
19
- const _date = require("../../lib/date");
20
20
  const _CalendarDays = require("../CalendarDays/CalendarDays");
21
21
  const _CalendarHeader = require("../CalendarHeader/CalendarHeader");
22
22
  const _RootComponent = require("../RootComponent/RootComponent");
@@ -24,7 +24,10 @@ const getIsDaySelected = (day, value)=>{
24
24
  if (!(value === null || value === void 0 ? void 0 : value[0]) || !value[1]) {
25
25
  return false;
26
26
  }
27
- return Boolean((0, _date.isWithinInterval)(day, (0, _date.startOfDay)(value[0]), (0, _date.endOfDay)(value[1])));
27
+ return (0, _datefns.isWithinInterval)(day, {
28
+ start: (0, _datefns.startOfDay)(value[0]),
29
+ end: (0, _datefns.endOfDay)(value[1])
30
+ });
28
31
  };
29
32
  const CalendarRange = (_param)=>{
30
33
  var { value, onChange, disablePast, disableFuture, shouldDisableDate, onClose, weekStartsOn = 1, disablePickers, prevMonthLabel = 'Предыдущий месяц', nextMonthLabel = 'Следующий месяц', changeMonthLabel = 'Изменить месяц', changeYearLabel = 'Изменить год', changeDayLabel = 'Изменить день', prevMonthIcon, nextMonthIcon, listenDayChangesForUpdate } = _param, props = _object_without_properties._(_param, [
@@ -52,7 +55,7 @@ const CalendarRange = (_param)=>{
52
55
  shouldDisableDate
53
56
  });
54
57
  const [hintedDate, setHintedDate] = _react.useState();
55
- const secondViewDate = (0, _date.addMonths)(viewDate, 1);
58
+ const secondViewDate = (0, _datefns.addMonths)(viewDate, 1);
56
59
  const handleKeyDown = _react.useCallback((event)=>{
57
60
  if ([
58
61
  'ArrowUp',
@@ -63,7 +66,7 @@ const CalendarRange = (_param)=>{
63
66
  event.preventDefault();
64
67
  }
65
68
  const newFocusedDay = (0, _calendar.navigateDate)(focusedDay !== null && focusedDay !== void 0 ? focusedDay : value === null || value === void 0 ? void 0 : value[1], event.key);
66
- if (newFocusedDay && !(0, _date.isSameMonth)(newFocusedDay, viewDate) && !(0, _date.isSameMonth)(newFocusedDay, (0, _date.addMonths)(viewDate, 1))) {
69
+ if (newFocusedDay && !(0, _datefns.isSameMonth)(newFocusedDay, viewDate) && !(0, _datefns.isSameMonth)(newFocusedDay, (0, _datefns.addMonths)(viewDate, 1))) {
67
70
  setViewDate(newFocusedDay);
68
71
  }
69
72
  setFocusedDay(newFocusedDay);
@@ -82,19 +85,18 @@ const CalendarRange = (_param)=>{
82
85
  null
83
86
  ];
84
87
  }
85
- const start = value[0];
86
- const end = value[1];
87
- if (start && (0, _date.isSameDay)(date, start) || end && (0, _date.isSameDay)(date, end)) {
88
+ const [start, end] = value;
89
+ if (start && (0, _datefns.isSameDay)(date, start) || end && (0, _datefns.isSameDay)(date, end)) {
88
90
  return [
89
91
  (0, _calendar.setTimeEqual)(date, start),
90
92
  (0, _calendar.setTimeEqual)(date, end)
91
93
  ];
92
- } else if (start && (0, _date.isBefore)(date, start)) {
94
+ } else if (start && (0, _datefns.isBefore)(date, start)) {
93
95
  return [
94
96
  (0, _calendar.setTimeEqual)(date, start),
95
97
  end
96
98
  ];
97
- } else if (start && (0, _date.isAfter)(date, start)) {
99
+ } else if (start && (0, _datefns.isAfter)(date, start)) {
98
100
  return [
99
101
  start,
100
102
  (0, _calendar.setTimeEqual)(date, end)
@@ -114,19 +116,19 @@ const CalendarRange = (_param)=>{
114
116
  const isDaySelected = _react.useCallback((day)=>getIsDaySelected(day, value), [
115
117
  value
116
118
  ]);
117
- const isDayActive = _react.useCallback((day)=>Boolean((value === null || value === void 0 ? void 0 : value[0]) && (0, _date.isSameDay)(day, value[0]) || (value === null || value === void 0 ? void 0 : value[1]) && (0, _date.isSameDay)(day, value[1])), [
119
+ const isDayActive = _react.useCallback((day)=>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])), [
118
120
  value
119
121
  ]);
120
- const isDaySelectionEnd = _react.useCallback((day, dayOfWeek)=>Boolean((0, _calendar.isLastDay)(day, dayOfWeek) || (value === null || value === void 0 ? void 0 : value[1]) && (0, _date.isSameDay)(day, value[1])), [
122
+ const isDaySelectionEnd = _react.useCallback((day, dayOfWeek)=>Boolean((0, _calendar.isLastDay)(day, dayOfWeek) || (value === null || value === void 0 ? void 0 : value[1]) && (0, _datefns.isSameDay)(day, value[1])), [
121
123
  value
122
124
  ]);
123
- const isHintedDaySelectionEnd = _react.useCallback((day, dayOfWeek)=>Boolean((0, _calendar.isLastDay)(day, dayOfWeek) || (hintedDate === null || hintedDate === void 0 ? void 0 : hintedDate[1]) && (0, _date.isSameDay)(day, hintedDate[1])), [
125
+ const isHintedDaySelectionEnd = _react.useCallback((day, dayOfWeek)=>Boolean((0, _calendar.isLastDay)(day, dayOfWeek) || (hintedDate === null || hintedDate === void 0 ? void 0 : hintedDate[1]) && (0, _datefns.isSameDay)(day, hintedDate[1])), [
124
126
  hintedDate
125
127
  ]);
126
- const isDaySelectionStart = _react.useCallback((day, dayOfWeek)=>Boolean((0, _calendar.isFirstDay)(day, dayOfWeek) || (value === null || value === void 0 ? void 0 : value[0]) && (0, _date.isSameDay)(day, value[0])), [
128
+ const isDaySelectionStart = _react.useCallback((day, dayOfWeek)=>Boolean((0, _calendar.isFirstDay)(day, dayOfWeek) || (value === null || value === void 0 ? void 0 : value[0]) && (0, _datefns.isSameDay)(day, value[0])), [
127
129
  value
128
130
  ]);
129
- const isHintedDaySelectionStart = _react.useCallback((day, dayOfWeek)=>Boolean((0, _calendar.isFirstDay)(day, dayOfWeek) || (hintedDate === null || hintedDate === void 0 ? void 0 : hintedDate[0]) && (0, _date.isSameDay)(day, hintedDate[0])), [
131
+ const isHintedDaySelectionStart = _react.useCallback((day, dayOfWeek)=>Boolean((0, _calendar.isFirstDay)(day, dayOfWeek) || (hintedDate === null || hintedDate === void 0 ? void 0 : hintedDate[0]) && (0, _datefns.isSameDay)(day, hintedDate[0])), [
130
132
  hintedDate
131
133
  ]);
132
134
  const onDayEnter = _react.useCallback((date)=>setHintedDate(getNewValue(date)), [
@@ -139,7 +141,7 @@ const CalendarRange = (_param)=>{
139
141
  const isDayHinted = _react.useCallback((day)=>getIsDaySelected(day, hintedDate), [
140
142
  hintedDate
141
143
  ]);
142
- const onRightPartViewDateChange = _react.useCallback((newDate)=>setViewDate((0, _date.subMonths)(newDate, 1)), [
144
+ const onRightPartViewDateChange = _react.useCallback((newDate)=>setViewDate((0, _datefns.subMonths)(newDate, 1)), [
143
145
  setViewDate
144
146
  ]);
145
147
  return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_RootComponent.RootComponent, _object_spread_props._(_object_spread._({}, props), {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { isFirstDay, isLastDay, navigateDate, setTimeEqual } from '../../lib/calendar';\nimport {\n addMonths,\n endOfDay,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfDay,\n subMonths,\n} from '../../lib/date';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { CalendarDays, CalendarDaysProps } from '../CalendarDays/CalendarDays';\nimport { CalendarHeader, CalendarHeaderProps } from '../CalendarHeader/CalendarHeader';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CalendarRange.module.css';\n\nexport type DateRangeType = [Date | null, Date | null];\n\nexport interface CalendarRangeProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n >,\n Pick<CalendarDaysProps, 'listenDayChangesForUpdate'> {\n value?: DateRangeType;\n disablePast?: boolean;\n disableFuture?: boolean;\n disablePickers?: boolean;\n changeDayLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n onChange?: (value: DateRangeType | undefined) => void;\n shouldDisableDate?: (value: Date) => boolean;\n onClose?: () => void;\n}\n\nconst getIsDaySelected = (day: Date, value?: DateRangeType) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return Boolean(isWithinInterval(day, startOfDay(value[0]), endOfDay(value[1])));\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CalendarRange\n */\nexport const CalendarRange = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n weekStartsOn = 1,\n disablePickers,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n changeDayLabel = 'Изменить день',\n prevMonthIcon,\n nextMonthIcon,\n listenDayChangesForUpdate,\n ...props\n}: CalendarRangeProps): React.ReactNode => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n isMonthDisabled,\n isYearDisabled,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n const [hintedDate, setHintedDate] = React.useState<DateRangeType>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {\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): DateRangeType => {\n const isValueEmpty = !value || (value[0] === null && value[1] === null);\n if (isValueEmpty) {\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((day: Date) => getIsDaySelected(day, value), [value]);\n\n const isDayActive = React.useCallback(\n (day: Date) =>\n Boolean((value?.[0] && isSameDay(day, value[0])) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (hintedDate?.[1] && isSameDay(day, hintedDate[1]))),\n [hintedDate],\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDay(day, value[0]))),\n [value],\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (hintedDate?.[0] && isSameDay(day, hintedDate[0]))),\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(() => setHintedDate(undefined), [setHintedDate]);\n\n const isDayHinted = React.useCallback(\n (day: Date) => getIsDaySelected(day, hintedDate),\n [hintedDate],\n );\n\n const onRightPartViewDateChange = React.useCallback(\n (newDate: Date) => setViewDate(subMonths(newDate, 1)),\n [setViewDate],\n );\n\n return (\n <RootComponent {...props} baseClassName={styles['CalendarRange']}>\n <div className={styles['CalendarRange__inner']}>\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonthHidden\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n className={styles['CalendarRange__header']}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\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 listenDayChangesForUpdate={listenDayChangesForUpdate}\n aria-label={changeDayLabel}\n />\n </div>\n <div className={styles['CalendarRange__inner']}>\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={onRightPartViewDateChange}\n prevMonthHidden\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n className={styles['CalendarRange__header']}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n nextMonthIcon={nextMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n aria-label={changeDayLabel}\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 listenDayChangesForUpdate={listenDayChangesForUpdate}\n tabIndex={0}\n onBlur={resetSelectedDay}\n />\n </div>\n </RootComponent>\n );\n};\n"],"names":["CalendarRange","getIsDaySelected","day","value","Boolean","isWithinInterval","startOfDay","endOfDay","onChange","disablePast","disableFuture","shouldDisableDate","onClose","weekStartsOn","disablePickers","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","changeDayLabel","prevMonthIcon","nextMonthIcon","listenDayChangesForUpdate","props","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","isMonthDisabled","isYearDisabled","useCalendar","hintedDate","setHintedDate","React","useState","secondViewDate","addMonths","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","navigateDate","isSameMonth","getNewValue","date","isValueEmpty","start","end","isSameDay","setTimeEqual","isBefore","isAfter","onDayChange","undefined","isDaySelected","isDayActive","isDaySelectionEnd","dayOfWeek","isLastDay","isHintedDaySelectionEnd","isDaySelectionStart","isFirstDay","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","onRightPartViewDateChange","newDate","subMonths","RootComponent","baseClassName","div","className","CalendarHeader","nextMonthHidden","onPrevMonth","CalendarDays","onKeyDown","aria-label","prevMonthHidden","onNextMonth","tabIndex","onBlur"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n addMonths,\n endOfDay,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfDay,\n subMonths,\n} from 'date-fns';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { isFirstDay, isLastDay, navigateDate, setTimeEqual } from '../../lib/calendar';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { CalendarDays, CalendarDaysProps } from '../CalendarDays/CalendarDays';\nimport { CalendarHeader, CalendarHeaderProps } from '../CalendarHeader/CalendarHeader';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CalendarRange.module.css';\n\nexport type DateRangeType = [Date | null, Date | null];\n\nexport interface CalendarRangeProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n >,\n Pick<CalendarDaysProps, 'listenDayChangesForUpdate'> {\n value?: DateRangeType;\n disablePast?: boolean;\n disableFuture?: boolean;\n disablePickers?: boolean;\n changeDayLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n onChange?: (value: DateRangeType | undefined) => void;\n shouldDisableDate?: (value: Date) => boolean;\n onClose?: () => void;\n}\n\nconst getIsDaySelected = (day: Date, value?: DateRangeType) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return isWithinInterval(day, { start: startOfDay(value[0]), end: endOfDay(value[1]) });\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CalendarRange\n */\nexport const CalendarRange = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n weekStartsOn = 1,\n disablePickers,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n changeDayLabel = 'Изменить день',\n prevMonthIcon,\n nextMonthIcon,\n listenDayChangesForUpdate,\n ...props\n}: CalendarRangeProps): React.ReactNode => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n isMonthDisabled,\n isYearDisabled,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n const [hintedDate, setHintedDate] = React.useState<DateRangeType>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {\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): DateRangeType => {\n const isValueEmpty = !value || (value[0] === null && value[1] === null);\n if (isValueEmpty) {\n return [date, null];\n }\n\n const [start, end] = value;\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((day: Date) => getIsDaySelected(day, value), [value]);\n\n const isDayActive = React.useCallback(\n (day: Date) =>\n Boolean((value?.[0] && isSameDay(day, value[0])) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (hintedDate?.[1] && isSameDay(day, hintedDate[1]))),\n [hintedDate],\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDay(day, value[0]))),\n [value],\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (hintedDate?.[0] && isSameDay(day, hintedDate[0]))),\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(() => setHintedDate(undefined), [setHintedDate]);\n\n const isDayHinted = React.useCallback(\n (day: Date) => getIsDaySelected(day, hintedDate),\n [hintedDate],\n );\n\n const onRightPartViewDateChange = React.useCallback(\n (newDate: Date) => setViewDate(subMonths(newDate, 1)),\n [setViewDate],\n );\n\n return (\n <RootComponent {...props} baseClassName={styles['CalendarRange']}>\n <div className={styles['CalendarRange__inner']}>\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonthHidden\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n className={styles['CalendarRange__header']}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\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 listenDayChangesForUpdate={listenDayChangesForUpdate}\n aria-label={changeDayLabel}\n />\n </div>\n <div className={styles['CalendarRange__inner']}>\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={onRightPartViewDateChange}\n prevMonthHidden\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n className={styles['CalendarRange__header']}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n nextMonthIcon={nextMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n aria-label={changeDayLabel}\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 listenDayChangesForUpdate={listenDayChangesForUpdate}\n tabIndex={0}\n onBlur={resetSelectedDay}\n />\n </div>\n </RootComponent>\n );\n};\n"],"names":["CalendarRange","getIsDaySelected","day","value","isWithinInterval","start","startOfDay","end","endOfDay","onChange","disablePast","disableFuture","shouldDisableDate","onClose","weekStartsOn","disablePickers","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","changeDayLabel","prevMonthIcon","nextMonthIcon","listenDayChangesForUpdate","props","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","isMonthDisabled","isYearDisabled","useCalendar","hintedDate","setHintedDate","React","useState","secondViewDate","addMonths","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","navigateDate","isSameMonth","getNewValue","date","isValueEmpty","isSameDay","setTimeEqual","isBefore","isAfter","onDayChange","undefined","isDaySelected","isDayActive","Boolean","isDaySelectionEnd","dayOfWeek","isLastDay","isHintedDaySelectionEnd","isDaySelectionStart","isFirstDay","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","onRightPartViewDateChange","newDate","subMonths","RootComponent","baseClassName","div","className","CalendarHeader","nextMonthHidden","onPrevMonth","CalendarDays","onKeyDown","aria-label","prevMonthHidden","onNextMonth","tabIndex","onBlur"],"mappings":";;;;+BAwDaA;;;eAAAA;;;;;;;;iEAxDU;yBAWhB;6BACqB;0BACsC;8BAElB;gCACI;+BACtB;AA4B9B,MAAMC,mBAAmB,CAACC,KAAWC;IACnC,IAAI,EAACA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,KAAI,CAACA,KAAK,CAAC,EAAE,EAAE;QAC5B,OAAO;IACT;IAEA,OAAOC,IAAAA,yBAAgB,EAACF,KAAK;QAAEG,OAAOC,IAAAA,mBAAU,EAACH,KAAK,CAAC,EAAE;QAAGI,KAAKC,IAAAA,iBAAQ,EAACL,KAAK,CAAC,EAAE;IAAE;AACtF;AAKO,MAAMH,gBAAgB;QAAC,EAC5BG,KAAK,EACLM,QAAQ,EACRC,WAAW,EACXC,aAAa,EACbC,iBAAiB,EACjBC,OAAO,EACPC,eAAe,CAAC,EAChBC,cAAc,EACdC,iBAAiB,kBAAkB,EACnCC,iBAAiB,iBAAiB,EAClCC,mBAAmB,gBAAgB,EACnCC,kBAAkB,cAAc,EAChCC,iBAAiB,eAAe,EAChCC,aAAa,EACbC,aAAa,EACbC,yBAAyB,EAEN,WADhBC;QAhBHrB;QACAM;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EACJE,QAAQ,EACRC,WAAW,EACXC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACf,GAAGC,IAAAA,wBAAW,EAAC;QAAEjC;QAAOQ;QAAeD;QAAaE;IAAkB;IACvE,MAAM,CAACyB,YAAYC,cAAc,GAAGC,OAAMC,QAAQ;IAClD,MAAMC,iBAAiBC,IAAAA,kBAAS,EAACjB,UAAU;IAE3C,MAAMkB,gBAAgBJ,OAAMK,WAAW,CACrC,CAACC;QACC,IAAI;YAAC;YAAW;YAAa;YAAa;SAAa,CAACC,QAAQ,CAACD,MAAME,GAAG,GAAG;YAC3EF,MAAMG,cAAc;QACtB;QAEA,MAAMC,gBAAgBC,IAAAA,sBAAY,EAACrB,uBAAAA,wBAAAA,aAAc1B,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,EAAE0C,MAAME,GAAG;QAEtE,IACEE,iBACA,CAACE,IAAAA,oBAAW,EAACF,eAAexB,aAC5B,CAAC0B,IAAAA,oBAAW,EAACF,eAAeP,IAAAA,kBAAS,EAACjB,UAAU,KAChD;YACAC,YAAYuB;QACd;QACAnB,cAAcmB;IAChB,GACA;QAACpB;QAAYC;QAAeJ;QAAavB;QAAOsB;KAAS;IAG3D,MAAM2B,cAAcb,OAAMK,WAAW,CACnC,CAACS;QACC,MAAMC,eAAe,CAACnD,SAAUA,KAAK,CAAC,EAAE,KAAK,QAAQA,KAAK,CAAC,EAAE,KAAK;QAClE,IAAImD,cAAc;YAChB,OAAO;gBAACD;gBAAM;aAAK;QACrB;QAEA,MAAM,CAAChD,OAAOE,IAAI,GAAGJ;QACrB,IAAI,AAACE,SAASkD,IAAAA,kBAAS,EAACF,MAAMhD,UAAYE,OAAOgD,IAAAA,kBAAS,EAACF,MAAM9C,MAAO;YACtE,OAAO;gBAACiD,IAAAA,sBAAY,EAACH,MAAMhD;gBAAQmD,IAAAA,sBAAY,EAACH,MAAM9C;aAAK;QAC7D,OAAO,IAAIF,SAASoD,IAAAA,iBAAQ,EAACJ,MAAMhD,QAAQ;YACzC,OAAO;gBAACmD,IAAAA,sBAAY,EAACH,MAAMhD;gBAAQE;aAAI;QACzC,OAAO,IAAIF,SAASqD,IAAAA,gBAAO,EAACL,MAAMhD,QAAQ;YACxC,OAAO;gBAACA;gBAAOmD,IAAAA,sBAAY,EAACH,MAAM9C;aAAK;QACzC;QAEA,OAAOJ;IACT,GACA;QAACA;KAAM;IAGT,MAAMwD,cAAcpB,OAAMK,WAAW,CACnC,CAACS;QACC5C,qBAAAA,+BAAAA,SAAW2C,YAAYC;QACvBf,cAAcsB;IAChB,GACA;QAACnD;QAAU2C;KAAY;IAGzB,MAAMS,gBAAgBtB,OAAMK,WAAW,CAAC,CAAC1C,MAAcD,iBAAiBC,KAAKC,QAAQ;QAACA;KAAM;IAE5F,MAAM2D,cAAcvB,OAAMK,WAAW,CACnC,CAAC1C,MACC6D,QAAQ,CAAC5D,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,KAAIoD,IAAAA,kBAAS,EAACrD,KAAKC,KAAK,CAAC,EAAE,KAAOA,CAAAA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,KAAIoD,IAAAA,kBAAS,EAACrD,KAAKC,KAAK,CAAC,EAAE,IAC5F;QAACA;KAAM;IAGT,MAAM6D,oBAAoBzB,OAAMK,WAAW,CACzC,CAAC1C,KAAW+D,YACVF,QAAQG,IAAAA,mBAAS,EAAChE,KAAK+D,cAAe9D,CAAAA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,KAAIoD,IAAAA,kBAAS,EAACrD,KAAKC,KAAK,CAAC,EAAE,IAC7E;QAACA;KAAM;IAGT,MAAMgE,0BAA0B5B,OAAMK,WAAW,CAC/C,CAAC1C,KAAW+D,YACVF,QAAQG,IAAAA,mBAAS,EAAChE,KAAK+D,cAAe5B,CAAAA,uBAAAA,iCAAAA,UAAY,CAAC,EAAE,KAAIkB,IAAAA,kBAAS,EAACrD,KAAKmC,UAAU,CAAC,EAAE,IACvF;QAACA;KAAW;IAGd,MAAM+B,sBAAsB7B,OAAMK,WAAW,CAC3C,CAAC1C,KAAW+D,YACVF,QAAQM,IAAAA,oBAAU,EAACnE,KAAK+D,cAAe9D,CAAAA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,KAAIoD,IAAAA,kBAAS,EAACrD,KAAKC,KAAK,CAAC,EAAE,IAC9E;QAACA;KAAM;IAGT,MAAMmE,4BAA4B/B,OAAMK,WAAW,CACjD,CAAC1C,KAAW+D,YACVF,QAAQM,IAAAA,oBAAU,EAACnE,KAAK+D,cAAe5B,CAAAA,uBAAAA,iCAAAA,UAAY,CAAC,EAAE,KAAIkB,IAAAA,kBAAS,EAACrD,KAAKmC,UAAU,CAAC,EAAE,IACxF;QAACA;KAAW;IAGd,MAAMkC,aAAahC,OAAMK,WAAW,CAClC,CAACS,OAAef,cAAcc,YAAYC,QAC1C;QAACf;QAAec;KAAY;IAG9B,MAAMoB,aAAajC,OAAMK,WAAW,CAAC,IAAMN,cAAcsB,YAAY;QAACtB;KAAc;IAEpF,MAAMmC,cAAclC,OAAMK,WAAW,CACnC,CAAC1C,MAAcD,iBAAiBC,KAAKmC,aACrC;QAACA;KAAW;IAGd,MAAMqC,4BAA4BnC,OAAMK,WAAW,CACjD,CAAC+B,UAAkBjD,YAAYkD,IAAAA,kBAAS,EAACD,SAAS,KAClD;QAACjD;KAAY;IAGf,qBACE,sBAACmD,4BAAa,8CAAKrD;QAAOsD,aAAa;;0BACrC,sBAACC;gBAAIC,SAAS;;kCACZ,qBAACC,8BAAc;wBACbxD,UAAUA;wBACVhB,UAAUiB;wBACVwD,eAAe;wBACfC,aAAaxD;wBACbZ,gBAAgBA;wBAChBiE,SAAS;wBACThE,gBAAgBA;wBAChBC,gBAAgBA;wBAChBC,kBAAkBA;wBAClBC,iBAAiBA;wBACjBE,eAAeA;wBACfa,iBAAiBA;wBACjBC,gBAAgBA;;kCAElB,qBAACiD,0BAAY;wBACX3D,UAAUA;wBACVtB,OAAOA;wBACPW,cAAcA;wBACduE,WAAW1C;wBACXZ,cAAcA;wBACd4B,aAAaA;wBACbE,eAAeA;wBACfC,aAAaA;wBACbE,mBAAmBA;wBACnBI,qBAAqBA;wBACrBK,aAAaA;wBACbF,YAAYA;wBACZC,YAAYA;wBACZL,yBAAyBA;wBACzBG,2BAA2BA;wBAC3BtC,eAAeA;wBACfT,2BAA2BA;wBAC3B+D,cAAYlE;;;;0BAGhB,sBAAC2D;gBAAIC,SAAS;;kCACZ,qBAACC,8BAAc;wBACbxD,UAAUgB;wBACVhC,UAAUiE;wBACVa,eAAe;wBACfC,aAAa5D;wBACbb,gBAAgBA;wBAChBiE,SAAS;wBACThE,gBAAgBA;wBAChBC,gBAAgBA;wBAChBC,kBAAkBA;wBAClBC,iBAAiBA;wBACjBG,eAAeA;wBACfY,iBAAiBA;wBACjBC,gBAAgBA;;kCAElB,qBAACiD,0BAAY;wBACX3D,UAAUgB;wBACVtC,OAAOA;wBACPW,cAAcA;wBACdwE,cAAYlE;wBACZiE,WAAW1C;wBACXZ,cAAcA;wBACd4B,aAAaA;wBACbE,eAAeA;wBACfC,aAAaA;wBACbE,mBAAmBA;wBACnBI,qBAAqBA;wBACrBK,aAAaA;wBACbF,YAAYA;wBACZC,YAAYA;wBACZL,yBAAyBA;wBACzBG,2BAA2BA;wBAC3BtC,eAAeA;wBACfT,2BAA2BA;wBAC3BkE,UAAU;wBACVC,QAAQzD;;;;;;AAKlB"}