@vkontakte/vkui 8.0.1 → 8.1.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 (1368) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +8 -6
  2. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  3. package/dist/components/Accordion/Accordion.js +3 -0
  4. package/dist/components/Accordion/Accordion.js.map +1 -1
  5. package/dist/components/Accordion/AccordionIcon.d.ts +14 -0
  6. package/dist/components/Accordion/AccordionIcon.d.ts.map +1 -0
  7. package/dist/components/Accordion/AccordionIcon.js +16 -0
  8. package/dist/components/Accordion/AccordionIcon.js.map +1 -0
  9. package/dist/components/Accordion/AccordionSummary.d.ts +3 -3
  10. package/dist/components/Accordion/AccordionSummary.d.ts.map +1 -1
  11. package/dist/components/Accordion/AccordionSummary.js +4 -6
  12. package/dist/components/Accordion/AccordionSummary.js.map +1 -1
  13. package/dist/components/ActionSheet/ActionSheet.d.ts +9 -9
  14. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  15. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  16. package/dist/components/ActionSheet/ActionSheetContext.d.ts +3 -3
  17. package/dist/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
  18. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  19. package/dist/components/ActionSheet/types.d.ts +8 -8
  20. package/dist/components/ActionSheet/types.d.ts.map +1 -1
  21. package/dist/components/ActionSheet/types.js.map +1 -1
  22. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +15 -15
  23. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  24. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  25. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts +1 -1
  26. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts.map +1 -1
  27. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.js.map +1 -1
  28. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts +7 -7
  29. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts.map +1 -1
  30. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  31. package/dist/components/Alert/Alert.d.ts +18 -18
  32. package/dist/components/Alert/Alert.d.ts.map +1 -1
  33. package/dist/components/Alert/Alert.js.map +1 -1
  34. package/dist/components/Alert/AlertBase.d.ts +2 -2
  35. package/dist/components/Alert/AlertBase.d.ts.map +1 -1
  36. package/dist/components/Alert/AlertBase.js.map +1 -1
  37. package/dist/components/Alert/AlertTypography.d.ts +1 -1
  38. package/dist/components/Alert/AlertTypography.d.ts.map +1 -1
  39. package/dist/components/Alert/AlertTypography.js.map +1 -1
  40. package/dist/components/AppRoot/AppRoot.d.ts +9 -9
  41. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  42. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  43. package/dist/components/AppRoot/AppRootContext.d.ts +4 -4
  44. package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
  45. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  46. package/dist/components/AppRoot/AppRootPortal.d.ts +2 -2
  47. package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
  48. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  49. package/dist/components/AppRoot/ScrollContext.d.ts +4 -4
  50. package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
  51. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  52. package/dist/components/AppRoot/types.d.ts +4 -4
  53. package/dist/components/AppRoot/types.d.ts.map +1 -1
  54. package/dist/components/AppRoot/types.js.map +1 -1
  55. package/dist/components/AspectRatio/AspectRatio.d.ts +2 -2
  56. package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -1
  57. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  58. package/dist/components/Avatar/Avatar.d.ts +2 -2
  59. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  60. package/dist/components/Avatar/Avatar.js.map +1 -1
  61. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts +1 -1
  62. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts.map +1 -1
  63. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  64. package/dist/components/Badge/Badge.d.ts +1 -1
  65. package/dist/components/Badge/Badge.d.ts.map +1 -1
  66. package/dist/components/Badge/Badge.js.map +1 -1
  67. package/dist/components/Banner/Banner.d.ts +12 -12
  68. package/dist/components/Banner/Banner.d.ts.map +1 -1
  69. package/dist/components/Banner/Banner.js.map +1 -1
  70. package/dist/components/Box/Box.d.ts +1 -1
  71. package/dist/components/Box/Box.d.ts.map +1 -1
  72. package/dist/components/Box/Box.js.map +1 -1
  73. package/dist/components/Button/Button.d.ts +11 -11
  74. package/dist/components/Button/Button.d.ts.map +1 -1
  75. package/dist/components/Button/Button.js +1 -1
  76. package/dist/components/Button/Button.js.map +1 -1
  77. package/dist/components/ButtonGroup/ButtonGroup.d.ts +4 -4
  78. package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  79. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  80. package/dist/components/Calendar/Calendar.d.ts +17 -17
  81. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  82. package/dist/components/Calendar/Calendar.js.map +1 -1
  83. package/dist/components/CalendarDay/CalendarDay.d.ts +18 -18
  84. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  85. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  86. package/dist/components/CalendarDays/CalendarDays.d.ts +14 -14
  87. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  88. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  89. package/dist/components/CalendarHeader/CalendarHeader.d.ts +19 -19
  90. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  91. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  92. package/dist/components/CalendarRange/CalendarRange.d.ts +12 -12
  93. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  94. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  95. package/dist/components/CalendarTime/CalendarTime.d.ts +14 -14
  96. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  97. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  98. package/dist/components/CalendarTime/CalendarTimePicker.d.ts +3 -3
  99. package/dist/components/CalendarTime/CalendarTimePicker.d.ts.map +1 -1
  100. package/dist/components/CalendarTime/CalendarTimePicker.js.map +1 -1
  101. package/dist/components/Card/Card.d.ts +1 -1
  102. package/dist/components/Card/Card.d.ts.map +1 -1
  103. package/dist/components/Card/Card.js.map +1 -1
  104. package/dist/components/CardGrid/CardGrid.d.ts +2 -2
  105. package/dist/components/CardGrid/CardGrid.d.ts.map +1 -1
  106. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  107. package/dist/components/CardScroll/CardScroll.d.ts +3 -3
  108. package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
  109. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  110. package/dist/components/CarouselBase/Bullets.d.ts +1 -1
  111. package/dist/components/CarouselBase/Bullets.d.ts.map +1 -1
  112. package/dist/components/CarouselBase/Bullets.js.map +1 -1
  113. package/dist/components/CarouselBase/CarouselViewPort.d.ts +1 -1
  114. package/dist/components/CarouselBase/CarouselViewPort.d.ts.map +1 -1
  115. package/dist/components/CarouselBase/CarouselViewPort.js.map +1 -1
  116. package/dist/components/CarouselBase/ScrollArrows.d.ts +2 -2
  117. package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -1
  118. package/dist/components/CarouselBase/ScrollArrows.js.map +1 -1
  119. package/dist/components/CarouselBase/helpers.d.ts +4 -4
  120. package/dist/components/CarouselBase/helpers.d.ts.map +1 -1
  121. package/dist/components/CarouselBase/helpers.js.map +1 -1
  122. package/dist/components/CarouselBase/types.d.ts +23 -23
  123. package/dist/components/CarouselBase/types.d.ts.map +1 -1
  124. package/dist/components/CarouselBase/types.js.map +1 -1
  125. package/dist/components/Cell/Cell.d.ts +8 -8
  126. package/dist/components/Cell/Cell.d.ts.map +1 -1
  127. package/dist/components/Cell/Cell.js.map +1 -1
  128. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +1 -1
  129. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts.map +1 -1
  130. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  131. package/dist/components/Cell/CellDragger/CellDragger.d.ts +2 -2
  132. package/dist/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  133. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  134. package/dist/components/CellButton/CellButton.d.ts +16 -16
  135. package/dist/components/CellButton/CellButton.d.ts.map +1 -1
  136. package/dist/components/CellButton/CellButton.js.map +1 -1
  137. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +2 -2
  138. package/dist/components/Checkbox/Checkbox.d.ts +6 -6
  139. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  140. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  141. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +11 -11
  142. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  143. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -1
  144. package/dist/components/ChipsInput/ChipsInput.d.ts +1 -1
  145. package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  146. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  147. package/dist/components/ChipsInput/useChipsInput.d.ts +3 -3
  148. package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  149. package/dist/components/ChipsInput/useChipsInput.js.map +1 -1
  150. package/dist/components/ChipsInputBase/Chip/Chip.d.ts +9 -9
  151. package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
  152. package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  153. package/dist/components/ChipsInputBase/types.d.ts +19 -19
  154. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  155. package/dist/components/ChipsInputBase/types.js.map +1 -1
  156. package/dist/components/ChipsSelect/ChipsSelect.d.ts +13 -13
  157. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  158. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  159. package/dist/components/ChipsSelect/useChipsSelect.d.ts +8 -8
  160. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  161. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  162. package/dist/components/Clickable/Clickable.d.ts +1 -1
  163. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  164. package/dist/components/Clickable/Clickable.js.map +1 -1
  165. package/dist/components/Clickable/useState.d.ts +13 -13
  166. package/dist/components/Clickable/useState.d.ts.map +1 -1
  167. package/dist/components/Clickable/useState.js.map +1 -1
  168. package/dist/components/ConfigProvider/ConfigProvider.d.ts +2 -1
  169. package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
  170. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  171. package/dist/components/ContentBadge/ContentBadge.d.ts +4 -4
  172. package/dist/components/ContentBadge/ContentBadge.d.ts.map +1 -1
  173. package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
  174. package/dist/components/ContentCard/ContentCard.d.ts +8 -8
  175. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
  176. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  177. package/dist/components/Counter/Counter.d.ts +4 -4
  178. package/dist/components/Counter/Counter.d.ts.map +1 -1
  179. package/dist/components/Counter/Counter.js.map +1 -1
  180. package/dist/components/CustomScrollView/CustomScrollView.d.ts +6 -6
  181. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  182. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  183. package/dist/components/CustomSelect/CustomSelect.d.ts +36 -27
  184. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  185. package/dist/components/CustomSelect/CustomSelect.js +2 -2
  186. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  187. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts +2 -2
  188. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  189. package/dist/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  190. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts +9 -9
  191. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
  192. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  193. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts +2 -2
  194. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts.map +1 -1
  195. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -1
  196. package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts +1 -1
  197. package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts.map +1 -1
  198. package/dist/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -1
  199. package/dist/components/CustomSelect/types.d.ts +1 -1
  200. package/dist/components/CustomSelect/types.d.ts.map +1 -1
  201. package/dist/components/CustomSelect/types.js.map +1 -1
  202. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +8 -8
  203. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  204. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  205. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +9 -9
  206. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts.map +1 -1
  207. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  208. package/dist/components/DateInput/DateInput.d.ts +23 -23
  209. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  210. package/dist/components/DateInput/DateInput.js +3 -12
  211. package/dist/components/DateInput/DateInput.js.map +1 -1
  212. package/dist/components/DateInput/hooks.d.ts +4 -4
  213. package/dist/components/DateInput/hooks.d.ts.map +1 -1
  214. package/dist/components/DateInput/hooks.js.map +1 -1
  215. package/dist/components/DateRangeInput/DateRangeInput.d.ts +25 -25
  216. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  217. package/dist/components/DateRangeInput/DateRangeInput.js +2 -11
  218. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  219. package/dist/components/DropZone/DropZone.d.ts +2 -2
  220. package/dist/components/DropZone/DropZone.d.ts.map +1 -1
  221. package/dist/components/DropZone/DropZone.js +1 -1
  222. package/dist/components/DropZone/DropZone.js.map +1 -1
  223. package/dist/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.d.ts +1 -1
  224. package/dist/components/DropZone/DropZoneGrid/DropZoneGrid.d.ts.map +1 -0
  225. package/dist/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.js +3 -3
  226. package/dist/components/DropZone/DropZoneGrid/DropZoneGrid.js.map +1 -0
  227. package/dist/components/DropdownIcon/DropdownIcon.d.ts +1 -1
  228. package/dist/components/DropdownIcon/DropdownIcon.d.ts.map +1 -1
  229. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  230. package/dist/components/Epic/Epic.d.ts +1 -1
  231. package/dist/components/Epic/Epic.d.ts.map +1 -1
  232. package/dist/components/Epic/Epic.js.map +1 -1
  233. package/dist/components/Epic/ScrollSaver.d.ts +1 -1
  234. package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
  235. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  236. package/dist/components/File/File.d.ts +4 -4
  237. package/dist/components/File/File.d.ts.map +1 -1
  238. package/dist/components/File/File.js.map +1 -1
  239. package/dist/components/FixedLayout/FixedLayout.d.ts +3 -3
  240. package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  241. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  242. package/dist/components/Flex/Flex.d.ts +8 -8
  243. package/dist/components/Flex/Flex.d.ts.map +1 -1
  244. package/dist/components/Flex/Flex.js.map +1 -1
  245. package/dist/components/Flex/FlexItem/FlexItem.d.ts +1 -1
  246. package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  247. package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
  248. package/dist/components/FloatingArrow/FloatingArrow.d.ts +9 -9
  249. package/dist/components/FloatingArrow/FloatingArrow.d.ts.map +1 -1
  250. package/dist/components/FloatingArrow/FloatingArrow.js.map +1 -1
  251. package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
  252. package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  253. package/dist/components/FocusTrap/FocusTrap.js +2 -4
  254. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  255. package/dist/components/FormField/FormField.d.ts +8 -8
  256. package/dist/components/FormField/FormField.d.ts.map +1 -1
  257. package/dist/components/FormField/FormField.js.map +1 -1
  258. package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts +2 -2
  259. package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts.map +1 -1
  260. package/dist/components/FormFieldClearButton/FormFieldClearButton.js.map +1 -1
  261. package/dist/components/FormItem/FormItem.d.ts +10 -10
  262. package/dist/components/FormItem/FormItem.d.ts.map +1 -1
  263. package/dist/components/FormItem/FormItem.js.map +1 -1
  264. package/dist/components/FormItem/context.d.ts +2 -2
  265. package/dist/components/FormItem/context.d.ts.map +1 -1
  266. package/dist/components/FormItem/context.js.map +1 -1
  267. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +4 -4
  268. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
  269. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  270. package/dist/components/FormStatus/FormStatus.d.ts +2 -2
  271. package/dist/components/FormStatus/FormStatus.d.ts.map +1 -1
  272. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  273. package/dist/components/Gallery/Gallery.d.ts +2 -2
  274. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  275. package/dist/components/Gallery/Gallery.js.map +1 -1
  276. package/dist/components/Gradient/Gradient.d.ts +2 -2
  277. package/dist/components/Gradient/Gradient.d.ts.map +1 -1
  278. package/dist/components/Gradient/Gradient.js.map +1 -1
  279. package/dist/components/GridAvatar/GridAvatar.d.ts +1 -1
  280. package/dist/components/GridAvatar/GridAvatar.d.ts.map +1 -1
  281. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  282. package/dist/components/Group/Group.d.ts +2 -2
  283. package/dist/components/Group/Group.d.ts.map +1 -1
  284. package/dist/components/Group/Group.js.map +1 -1
  285. package/dist/components/Group/GroupContainer.d.ts +3 -3
  286. package/dist/components/Group/GroupContainer.d.ts.map +1 -1
  287. package/dist/components/Group/GroupContainer.js.map +1 -1
  288. package/dist/components/Group/GroupExpandedContent.d.ts +1 -1
  289. package/dist/components/Group/GroupExpandedContent.d.ts.map +1 -1
  290. package/dist/components/Group/GroupExpandedContent.js.map +1 -1
  291. package/dist/components/Header/Header.d.ts +11 -11
  292. package/dist/components/Header/Header.d.ts.map +1 -1
  293. package/dist/components/Header/Header.js.map +1 -1
  294. package/dist/components/HorizontalCell/HorizontalCell.d.ts +7 -7
  295. package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
  296. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  297. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +4 -4
  298. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
  299. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
  300. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +30 -15
  301. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  302. package/dist/components/HorizontalScroll/HorizontalScroll.js +20 -6
  303. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  304. package/dist/components/IconButton/IconButton.d.ts +1 -1
  305. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  306. package/dist/components/IconButton/IconButton.js.map +1 -1
  307. package/dist/components/Image/Image.d.ts +5 -5
  308. package/dist/components/Image/Image.d.ts.map +1 -1
  309. package/dist/components/Image/Image.js.map +1 -1
  310. package/dist/components/ImageBase/ImageBase.d.ts +17 -15
  311. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  312. package/dist/components/ImageBase/ImageBase.js +9 -5
  313. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  314. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +1 -1
  315. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts.map +1 -1
  316. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  317. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts +3 -3
  318. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts.map +1 -1
  319. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
  320. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts +3 -3
  321. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts.map +1 -1
  322. package/dist/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  323. package/dist/components/ImageBase/types.d.ts +3 -3
  324. package/dist/components/ImageBase/types.d.ts.map +1 -1
  325. package/dist/components/ImageBase/types.js.map +1 -1
  326. package/dist/components/Input/Input.d.ts +4 -4
  327. package/dist/components/Input/Input.d.ts.map +1 -1
  328. package/dist/components/Input/Input.js.map +1 -1
  329. package/dist/components/InputLike/InputLike.d.ts +3 -3
  330. package/dist/components/InputLike/InputLike.d.ts.map +1 -1
  331. package/dist/components/InputLike/InputLike.js.map +1 -1
  332. package/dist/components/Link/Link.d.ts +4 -4
  333. package/dist/components/Link/Link.d.ts.map +1 -1
  334. package/dist/components/Link/Link.js.map +1 -1
  335. package/dist/components/List/List.d.ts +1 -1
  336. package/dist/components/List/List.d.ts.map +1 -1
  337. package/dist/components/List/List.js.map +1 -1
  338. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +5 -5
  339. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
  340. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  341. package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
  342. package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
  343. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
  344. package/dist/components/ModalCard/types.d.ts +13 -13
  345. package/dist/components/ModalCard/types.d.ts.map +1 -1
  346. package/dist/components/ModalCard/types.js.map +1 -1
  347. package/dist/components/ModalCardBase/ModalCardBase.d.ts +14 -14
  348. package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
  349. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  350. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
  351. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
  352. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  353. package/dist/components/ModalOutlet/ModalOutlet.d.ts +3 -3
  354. package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
  355. package/dist/components/ModalOutlet/ModalOutlet.js.map +1 -1
  356. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +1 -1
  357. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts.map +1 -1
  358. package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
  359. package/dist/components/ModalOverlay/ModalOverlay.d.ts +7 -7
  360. package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -1
  361. package/dist/components/ModalOverlay/ModalOverlay.js.map +1 -1
  362. package/dist/components/ModalPage/ModalPageBase.d.ts +2 -2
  363. package/dist/components/ModalPage/ModalPageBase.d.ts.map +1 -1
  364. package/dist/components/ModalPage/ModalPageBase.js.map +1 -1
  365. package/dist/components/ModalPage/ModalPageInternal.d.ts +2 -2
  366. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
  367. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
  368. package/dist/components/ModalPage/types.d.ts +27 -27
  369. package/dist/components/ModalPage/types.d.ts.map +1 -1
  370. package/dist/components/ModalPage/types.js.map +1 -1
  371. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts +2 -2
  372. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -1
  373. package/dist/components/ModalPageFooter/ModalPageFooter.js.map +1 -1
  374. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts +1 -1
  375. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  376. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  377. package/dist/components/ModalRoot/types.d.ts +15 -15
  378. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  379. package/dist/components/ModalRoot/types.js.map +1 -1
  380. package/dist/components/ModalRoot/useModalRootManager.d.ts +19 -19
  381. package/dist/components/ModalRoot/useModalRootManager.d.ts.map +1 -1
  382. package/dist/components/ModalRoot/useModalRootManager.js.map +1 -1
  383. package/dist/components/NativeSelect/NativeSelect.d.ts +11 -11
  384. package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
  385. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  386. package/dist/components/NumberInputLike/NumberInputLike.d.ts +3 -3
  387. package/dist/components/NumberInputLike/NumberInputLike.d.ts.map +1 -1
  388. package/dist/components/NumberInputLike/NumberInputLike.js.map +1 -1
  389. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +6 -6
  390. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  391. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +12 -3
  392. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  393. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +1 -1
  394. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  395. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  396. package/dist/components/Pagination/Pagination.d.ts +19 -19
  397. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  398. package/dist/components/Pagination/Pagination.js +14 -6
  399. package/dist/components/Pagination/Pagination.js.map +1 -1
  400. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts +3 -3
  401. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
  402. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  403. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts +3 -3
  404. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts.map +1 -1
  405. package/dist/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
  406. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts +1 -1
  407. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts.map +1 -1
  408. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -1
  409. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts +3 -3
  410. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts.map +1 -1
  411. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -1
  412. package/dist/components/Panel/Panel.d.ts +3 -3
  413. package/dist/components/Panel/Panel.d.ts.map +1 -1
  414. package/dist/components/Panel/Panel.js.map +1 -1
  415. package/dist/components/PanelHeader/PanelHeader.d.ts +8 -8
  416. package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
  417. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  418. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +2 -2
  419. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
  420. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  421. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts +2 -2
  422. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  423. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  424. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts +3 -3
  425. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts.map +1 -1
  426. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  427. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +3 -3
  428. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
  429. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  430. package/dist/components/PanelSpinner/PanelSpinner.d.ts +1 -1
  431. package/dist/components/PanelSpinner/PanelSpinner.d.ts.map +1 -1
  432. package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
  433. package/dist/components/Placeholder/Placeholder.d.ts +5 -5
  434. package/dist/components/Placeholder/Placeholder.d.ts.map +1 -1
  435. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  436. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +6 -6
  437. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
  438. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  439. package/dist/components/Popover/Popover.d.ts +5 -5
  440. package/dist/components/Popover/Popover.d.ts.map +1 -1
  441. package/dist/components/Popover/Popover.js.map +1 -1
  442. package/dist/components/Popper/Popper.d.ts +4 -4
  443. package/dist/components/Popper/Popper.d.ts.map +1 -1
  444. package/dist/components/Popper/Popper.js +13 -7
  445. package/dist/components/Popper/Popper.js.map +1 -1
  446. package/dist/components/Progress/Progress.d.ts +4 -4
  447. package/dist/components/Progress/Progress.d.ts.map +1 -1
  448. package/dist/components/Progress/Progress.js.map +1 -1
  449. package/dist/components/PullToRefresh/PullToRefresh.d.ts +2 -2
  450. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  451. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  452. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts +4 -4
  453. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts.map +1 -1
  454. package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  455. package/dist/components/Radio/Radio.d.ts +7 -7
  456. package/dist/components/Radio/Radio.d.ts.map +1 -1
  457. package/dist/components/Radio/Radio.js +2 -2
  458. package/dist/components/Radio/Radio.js.map +1 -1
  459. package/dist/components/Radio/RadioInput/RadioInput.d.ts +4 -4
  460. package/dist/components/Radio/RadioInput/RadioInput.d.ts.map +1 -1
  461. package/dist/components/Radio/RadioInput/RadioInput.js.map +1 -1
  462. package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
  463. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  464. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  465. package/dist/components/Removable/Removable.d.ts +9 -9
  466. package/dist/components/Removable/Removable.d.ts.map +1 -1
  467. package/dist/components/Removable/Removable.js.map +1 -1
  468. package/dist/components/Removable/RemovableIos.d.ts +3 -3
  469. package/dist/components/Removable/RemovableIos.d.ts.map +1 -1
  470. package/dist/components/Removable/RemovableIos.js.map +1 -1
  471. package/dist/components/RichCell/RichCell.d.ts +15 -15
  472. package/dist/components/RichCell/RichCell.d.ts.map +1 -1
  473. package/dist/components/RichCell/RichCell.js.map +1 -1
  474. package/dist/components/Root/Root.d.ts +4 -4
  475. package/dist/components/Root/Root.d.ts.map +1 -1
  476. package/dist/components/Root/Root.js.map +1 -1
  477. package/dist/components/RootComponent/RootComponent.d.ts +2 -2
  478. package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
  479. package/dist/components/RootComponent/RootComponent.js.map +1 -1
  480. package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.d.ts +1 -1
  481. package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.d.ts.map +1 -1
  482. package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.js.map +1 -1
  483. package/dist/components/ScreenSpinner/context.d.ts +2 -2
  484. package/dist/components/ScreenSpinner/context.d.ts.map +1 -1
  485. package/dist/components/ScreenSpinner/context.js.map +1 -1
  486. package/dist/components/ScreenSpinner/types.d.ts +5 -5
  487. package/dist/components/ScreenSpinner/types.d.ts.map +1 -1
  488. package/dist/components/ScreenSpinner/types.js.map +1 -1
  489. package/dist/components/ScrollArrow/ScrollArrow.d.ts +10 -4
  490. package/dist/components/ScrollArrow/ScrollArrow.d.ts.map +1 -1
  491. package/dist/components/ScrollArrow/ScrollArrow.js +14 -4
  492. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  493. package/dist/components/Search/Search.d.ts +17 -17
  494. package/dist/components/Search/Search.d.ts.map +1 -1
  495. package/dist/components/Search/Search.js.map +1 -1
  496. package/dist/components/SegmentedControl/SegmentedControl.d.ts +6 -6
  497. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  498. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  499. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
  500. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  501. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  502. package/dist/components/SelectMimicry/SelectMimicry.d.ts +3 -3
  503. package/dist/components/SelectMimicry/SelectMimicry.d.ts.map +1 -1
  504. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  505. package/dist/components/SelectTypography/SelectTypography.d.ts +1 -1
  506. package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  507. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  508. package/dist/components/SelectionControl/SelectionControl.d.ts +1 -1
  509. package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -1
  510. package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
  511. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +2 -2
  512. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -1
  513. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  514. package/dist/components/Separator/Separator.d.ts +5 -5
  515. package/dist/components/Separator/Separator.d.ts.map +1 -1
  516. package/dist/components/Separator/Separator.js.map +1 -1
  517. package/dist/components/SimpleCell/Chevron/Chevron.d.ts +1 -1
  518. package/dist/components/SimpleCell/Chevron/Chevron.d.ts.map +1 -1
  519. package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -1
  520. package/dist/components/SimpleCell/SimpleCell.d.ts +14 -14
  521. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  522. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  523. package/dist/components/SimpleGrid/SimpleGrid.d.ts +6 -6
  524. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  525. package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
  526. package/dist/components/Skeleton/Skeleton.d.ts +5 -5
  527. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  528. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  529. package/dist/components/Slider/Slider.d.ts +17 -17
  530. package/dist/components/Slider/Slider.d.ts.map +1 -1
  531. package/dist/components/Slider/Slider.js.map +1 -1
  532. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts +5 -5
  533. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts.map +1 -1
  534. package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  535. package/dist/components/Snackbar/Snackbar.d.ts +10 -10
  536. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
  537. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  538. package/dist/components/Snackbar/subcomponents/Basic/Basic.d.ts +6 -6
  539. package/dist/components/Snackbar/subcomponents/Basic/Basic.d.ts.map +1 -1
  540. package/dist/components/Snackbar/subcomponents/Basic/Basic.js.map +1 -1
  541. package/dist/components/Snackbar/utils.d.ts +1 -1
  542. package/dist/components/Snackbar/utils.d.ts.map +1 -1
  543. package/dist/components/Snackbar/utils.js.map +1 -1
  544. package/dist/components/Spacing/Spacing.d.ts +2 -2
  545. package/dist/components/Spacing/Spacing.d.ts.map +1 -1
  546. package/dist/components/Spacing/Spacing.js.map +1 -1
  547. package/dist/components/Spinner/Spinner.d.ts +4 -4
  548. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  549. package/dist/components/Spinner/Spinner.js.map +1 -1
  550. package/dist/components/SplitCol/SplitCol.d.ts +7 -7
  551. package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
  552. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  553. package/dist/components/SplitLayout/SplitLayout.d.ts +8 -8
  554. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  555. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  556. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -2
  557. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts.map +1 -1
  558. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  559. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +8 -8
  560. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
  561. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  562. package/dist/components/Switch/Switch.d.ts +4 -4
  563. package/dist/components/Switch/Switch.d.ts.map +1 -1
  564. package/dist/components/Switch/Switch.js.map +1 -1
  565. package/dist/components/Tabbar/Tabbar.d.ts +2 -2
  566. package/dist/components/Tabbar/Tabbar.d.ts.map +1 -1
  567. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  568. package/dist/components/TabbarItem/TabbarItem.d.ts +3 -3
  569. package/dist/components/TabbarItem/TabbarItem.d.ts.map +1 -1
  570. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  571. package/dist/components/Tabs/Tabs.d.ts +7 -7
  572. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  573. package/dist/components/Tabs/Tabs.js.map +1 -1
  574. package/dist/components/Tabs/TabsModeContext.d.ts +1 -1
  575. package/dist/components/Tabs/TabsModeContext.d.ts.map +1 -1
  576. package/dist/components/Tabs/TabsModeContext.js.map +1 -1
  577. package/dist/components/TabsItem/TabsItem.d.ts +5 -5
  578. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  579. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  580. package/dist/components/Tappable/Tappable.d.ts +3 -3
  581. package/dist/components/Tappable/Tappable.d.ts.map +1 -1
  582. package/dist/components/Tappable/Tappable.js.map +1 -1
  583. package/dist/components/Tappable/state.d.ts +2 -2
  584. package/dist/components/Tappable/state.d.ts.map +1 -1
  585. package/dist/components/Tappable/state.js.map +1 -1
  586. package/dist/components/Textarea/Textarea.d.ts +6 -6
  587. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  588. package/dist/components/Textarea/Textarea.js.map +1 -1
  589. package/dist/components/ToolButton/ToolButton.d.ts +4 -4
  590. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  591. package/dist/components/ToolButton/ToolButton.js.map +1 -1
  592. package/dist/components/Tooltip/Tooltip.d.ts +6 -6
  593. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  594. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  595. package/dist/components/TooltipBase/TooltipBase.d.ts +10 -10
  596. package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
  597. package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
  598. package/dist/components/Touch/Touch.d.ts +16 -16
  599. package/dist/components/Touch/Touch.d.ts.map +1 -1
  600. package/dist/components/Touch/Touch.js.map +1 -1
  601. package/dist/components/Typography/Caption/Caption.d.ts +1 -1
  602. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  603. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  604. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts +1 -1
  605. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  606. package/dist/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  607. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts +3 -3
  608. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts.map +1 -1
  609. package/dist/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
  610. package/dist/components/Typography/Headline/Headline.d.ts +1 -1
  611. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  612. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  613. package/dist/components/Typography/Title/Title.d.ts +1 -1
  614. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  615. package/dist/components/Typography/Title/Title.js.map +1 -1
  616. package/dist/components/Typography/Typography.d.ts +6 -6
  617. package/dist/components/Typography/Typography.d.ts.map +1 -1
  618. package/dist/components/Typography/Typography.js.map +1 -1
  619. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts +1 -1
  620. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
  621. package/dist/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
  622. package/dist/components/UsersStack/UsersStack.d.ts +6 -6
  623. package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
  624. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  625. package/dist/components/View/View.d.ts +4 -4
  626. package/dist/components/View/View.d.ts.map +1 -1
  627. package/dist/components/View/View.js.map +1 -1
  628. package/dist/components/View/ViewInfinite.d.ts +12 -12
  629. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  630. package/dist/components/View/ViewInfinite.js.map +1 -1
  631. package/dist/components/WriteBar/WriteBar.d.ts +10 -10
  632. package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
  633. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  634. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts +3 -3
  635. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
  636. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  637. package/dist/components.css +1 -1
  638. package/dist/components.css.map +1 -1
  639. package/dist/cssm/components/Accordion/Accordion.js +3 -0
  640. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  641. package/dist/cssm/components/Accordion/AccordionIcon.js +17 -0
  642. package/dist/cssm/components/Accordion/AccordionIcon.js.map +1 -0
  643. package/dist/cssm/components/Accordion/AccordionSummary.js +4 -7
  644. package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
  645. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  646. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  647. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  648. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  649. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +0 -1
  650. package/dist/cssm/components/ActionSheetItem/subcomponents/Radio/Radio.js.map +1 -1
  651. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  652. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  653. package/dist/cssm/components/Alert/AlertBase.js.map +1 -1
  654. package/dist/cssm/components/Alert/AlertTypography.js.map +1 -1
  655. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  656. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  657. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  658. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  659. package/dist/cssm/components/AppRoot/types.js.map +1 -1
  660. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  661. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  662. package/dist/cssm/components/Avatar/Avatar.module.css +0 -5
  663. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  664. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  665. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  666. package/dist/cssm/components/Box/Box.js.map +1 -1
  667. package/dist/cssm/components/Button/Button.js +1 -1
  668. package/dist/cssm/components/Button/Button.js.map +1 -1
  669. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  670. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  671. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  672. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  673. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  674. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  675. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  676. package/dist/cssm/components/CalendarTime/CalendarTimePicker.js.map +1 -1
  677. package/dist/cssm/components/Card/Card.js.map +1 -1
  678. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  679. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  680. package/dist/cssm/components/CarouselBase/Bullets.js.map +1 -1
  681. package/dist/cssm/components/CarouselBase/CarouselViewPort.js.map +1 -1
  682. package/dist/cssm/components/CarouselBase/ScrollArrows.js.map +1 -1
  683. package/dist/cssm/components/CarouselBase/helpers.js.map +1 -1
  684. package/dist/cssm/components/CarouselBase/types.js.map +1 -1
  685. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  686. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  687. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  688. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  689. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  690. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -1
  691. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  692. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +1 -1
  693. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  694. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  695. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  696. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  697. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  698. package/dist/cssm/components/Clickable/useState.js.map +1 -1
  699. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  700. package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
  701. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  702. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  703. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  704. package/dist/cssm/components/CustomSelect/CustomSelect.js +2 -2
  705. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  706. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +0 -6
  707. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  708. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  709. package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -1
  710. package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -1
  711. package/dist/cssm/components/CustomSelect/types.js.map +1 -1
  712. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  713. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  714. package/dist/cssm/components/DateInput/DateInput.js +3 -12
  715. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  716. package/dist/cssm/components/DateInput/hooks.js.map +1 -1
  717. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +2 -11
  718. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  719. package/dist/cssm/components/DropZone/DropZone.js +1 -1
  720. package/dist/cssm/components/DropZone/DropZone.js.map +1 -1
  721. package/dist/cssm/components/DropZone/DropZoneGrid/DropZoneGrid.js.map +1 -0
  722. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  723. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  724. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  725. package/dist/cssm/components/File/File.js.map +1 -1
  726. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  727. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  728. package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
  729. package/dist/cssm/components/FloatingArrow/FloatingArrow.js.map +1 -1
  730. package/dist/cssm/components/FocusTrap/FocusTrap.js +2 -4
  731. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  732. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  733. package/dist/cssm/components/FormFieldClearButton/FormFieldClearButton.js.map +1 -1
  734. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  735. package/dist/cssm/components/FormItem/FormItem.module.css +1 -2
  736. package/dist/cssm/components/FormItem/context.js.map +1 -1
  737. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  738. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  739. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  740. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  741. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  742. package/dist/cssm/components/Group/Group.js.map +1 -1
  743. package/dist/cssm/components/Group/GroupContainer.js.map +1 -1
  744. package/dist/cssm/components/Group/GroupExpandedContent.js.map +1 -1
  745. package/dist/cssm/components/Header/Header.js.map +1 -1
  746. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  747. package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
  748. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +20 -6
  749. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  750. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  751. package/dist/cssm/components/Image/Image.js.map +1 -1
  752. package/dist/cssm/components/ImageBase/ImageBase.js +9 -5
  753. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  754. package/dist/cssm/components/ImageBase/ImageBase.module.css +11 -3
  755. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  756. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
  757. package/dist/cssm/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  758. package/dist/cssm/components/ImageBase/types.js.map +1 -1
  759. package/dist/cssm/components/Input/Input.js.map +1 -1
  760. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  761. package/dist/cssm/components/Link/Link.js.map +1 -1
  762. package/dist/cssm/components/List/List.js.map +1 -1
  763. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  764. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  765. package/dist/cssm/components/ModalCard/types.js.map +1 -1
  766. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  767. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +0 -4
  768. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  769. package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -1
  770. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
  771. package/dist/cssm/components/ModalOverlay/ModalOverlay.js.map +1 -1
  772. package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -1
  773. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  774. package/dist/cssm/components/ModalPage/types.js.map +1 -1
  775. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.js.map +1 -1
  776. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  777. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  778. package/dist/cssm/components/ModalRoot/useModalRootManager.js.map +1 -1
  779. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  780. package/dist/cssm/components/NumberInputLike/NumberInputLike.js.map +1 -1
  781. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +12 -3
  782. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  783. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  784. package/dist/cssm/components/Pagination/Pagination.js +14 -6
  785. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  786. package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  787. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
  788. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -1
  789. package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -1
  790. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  791. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  792. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +0 -5
  793. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  794. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  795. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  796. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  797. package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
  798. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  799. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  800. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  801. package/dist/cssm/components/Popper/Popper.js +13 -7
  802. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  803. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  804. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  805. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  806. package/dist/cssm/components/Radio/Radio.js +2 -2
  807. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  808. package/dist/cssm/components/Radio/RadioInput/RadioInput.js.map +1 -1
  809. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  810. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  811. package/dist/cssm/components/Removable/Removable.module.css +0 -4
  812. package/dist/cssm/components/Removable/RemovableIos.js.map +1 -1
  813. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  814. package/dist/cssm/components/Root/Root.js.map +1 -1
  815. package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -1
  816. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerSwapIcon.js.map +1 -1
  817. package/dist/cssm/components/ScreenSpinner/context.js.map +1 -1
  818. package/dist/cssm/components/ScreenSpinner/types.js.map +1 -1
  819. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +14 -4
  820. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  821. package/dist/cssm/components/Search/Search.js.map +1 -1
  822. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  823. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  824. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  825. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  826. package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -1
  827. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  828. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  829. package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -1
  830. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  831. package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
  832. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  833. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  834. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  835. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  836. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.js.map +1 -1
  837. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +2 -4
  838. package/dist/cssm/components/Snackbar/utils.js.map +1 -1
  839. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  840. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  841. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  842. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  843. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  844. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  845. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  846. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  847. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  848. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  849. package/dist/cssm/components/Tabs/TabsModeContext.js.map +1 -1
  850. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  851. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  852. package/dist/cssm/components/Tappable/state.js.map +1 -1
  853. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  854. package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
  855. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  856. package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
  857. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  858. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  859. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  860. package/dist/cssm/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
  861. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  862. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  863. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  864. package/dist/cssm/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
  865. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  866. package/dist/cssm/components/View/View.js.map +1 -1
  867. package/dist/cssm/components/View/View.module.css +1 -3
  868. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  869. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  870. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  871. package/dist/cssm/helpers/math.js.map +1 -1
  872. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  873. package/dist/cssm/hooks/useAutoDetectColorScheme.js +8 -27
  874. package/dist/cssm/hooks/useAutoDetectColorScheme.js.map +1 -1
  875. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  876. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  877. package/dist/cssm/hooks/useDraggableWithDomApi/types.js.map +1 -1
  878. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  879. package/dist/cssm/hooks/useFloatingElement.js.map +1 -1
  880. package/dist/cssm/hooks/useFocusTrap/FocusGuard.js.map +1 -1
  881. package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js +10 -2
  882. package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  883. package/dist/cssm/hooks/useFocusVisibleClassName.js.map +1 -1
  884. package/dist/cssm/hooks/useGlobalEscKeyDown.js.map +1 -1
  885. package/dist/cssm/hooks/useMediaQueryMatch.js +25 -0
  886. package/dist/cssm/hooks/useMediaQueryMatch.js.map +1 -0
  887. package/dist/cssm/hooks/useMergeProps.js.map +1 -1
  888. package/dist/cssm/hooks/useModalManager/types.js.map +1 -1
  889. package/dist/cssm/hooks/usePagination.js.map +1 -1
  890. package/dist/cssm/hooks/usePatchChildren.js.map +1 -1
  891. package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.js → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js} +2 -2
  892. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js.map +1 -0
  893. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarHolder.js +5 -2
  894. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarHolder.js.map +1 -1
  895. package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarsContainer.js → SnackbarsContainer/SnackbarsContainer.js} +3 -3
  896. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.js.map +1 -0
  897. package/dist/cssm/hooks/useSnackbarManager/types.js.map +1 -1
  898. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  899. package/dist/cssm/index.js +1 -1
  900. package/dist/cssm/index.js.map +1 -1
  901. package/dist/cssm/lib/SSR.js.map +1 -1
  902. package/dist/cssm/lib/accessibility.js.map +1 -1
  903. package/dist/cssm/lib/adaptivity/functions.js +6 -0
  904. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  905. package/dist/cssm/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
  906. package/dist/cssm/lib/animation/useCSSTransition.js +4 -2
  907. package/dist/cssm/lib/animation/useCSSTransition.js.map +1 -1
  908. package/dist/cssm/lib/animation/useReducedMotion.js +2 -20
  909. package/dist/cssm/lib/animation/useReducedMotion.js.map +1 -1
  910. package/dist/cssm/lib/calendar.js.map +1 -1
  911. package/dist/cssm/lib/date.js.map +1 -1
  912. package/dist/cssm/lib/dom.js.map +1 -1
  913. package/dist/cssm/lib/floating/functions.js.map +1 -1
  914. package/dist/cssm/lib/floating/types/component.js.map +1 -1
  915. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +6 -4
  916. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  917. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  918. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -2
  919. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  920. package/dist/cssm/lib/getNavId.js.map +1 -1
  921. package/dist/cssm/lib/layouts/resolveLayoutProps.js.map +1 -1
  922. package/dist/cssm/lib/layouts/types.js.map +1 -1
  923. package/dist/cssm/lib/select.js.map +1 -1
  924. package/dist/cssm/lib/sheet/useBottomSheet.js.map +1 -1
  925. package/dist/cssm/lib/tokens/TokensClassProvider.js.map +1 -1
  926. package/dist/cssm/lib/tokens/types.js.map +1 -1
  927. package/dist/cssm/lib/utils.js +3 -0
  928. package/dist/cssm/lib/utils.js.map +1 -1
  929. package/dist/cssm/types.js +4 -1
  930. package/dist/cssm/types.js.map +1 -1
  931. package/dist/helpers/math.d.ts +1 -1
  932. package/dist/helpers/math.d.ts.map +1 -1
  933. package/dist/helpers/math.js.map +1 -1
  934. package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts +5 -1
  935. package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts.map +1 -1
  936. package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  937. package/dist/hooks/useAutoDetectColorScheme.d.ts.map +1 -1
  938. package/dist/hooks/useAutoDetectColorScheme.js +8 -27
  939. package/dist/hooks/useAutoDetectColorScheme.js.map +1 -1
  940. package/dist/hooks/useCalendar.d.ts +1 -1
  941. package/dist/hooks/useCalendar.d.ts.map +1 -1
  942. package/dist/hooks/useCalendar.js.map +1 -1
  943. package/dist/hooks/useDateInput.d.ts +5 -5
  944. package/dist/hooks/useDateInput.d.ts.map +1 -1
  945. package/dist/hooks/useDateInput.js.map +1 -1
  946. package/dist/hooks/useDraggableWithDomApi/types.d.ts +1 -1
  947. package/dist/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  948. package/dist/hooks/useDraggableWithDomApi/types.js.map +1 -1
  949. package/dist/hooks/useEnsuredControl.d.ts +4 -4
  950. package/dist/hooks/useEnsuredControl.d.ts.map +1 -1
  951. package/dist/hooks/useEnsuredControl.js.map +1 -1
  952. package/dist/hooks/useFloatingElement.d.ts +4 -4
  953. package/dist/hooks/useFloatingElement.d.ts.map +1 -1
  954. package/dist/hooks/useFloatingElement.js.map +1 -1
  955. package/dist/hooks/useFocusTrap/FocusGuard.d.ts +1 -1
  956. package/dist/hooks/useFocusTrap/FocusGuard.d.ts.map +1 -1
  957. package/dist/hooks/useFocusTrap/FocusGuard.js.map +1 -1
  958. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts +6 -10
  959. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts.map +1 -1
  960. package/dist/hooks/useFocusTrap/useFocusTrap.js +10 -2
  961. package/dist/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  962. package/dist/hooks/useFocusVisibleClassName.d.ts +3 -3
  963. package/dist/hooks/useFocusVisibleClassName.d.ts.map +1 -1
  964. package/dist/hooks/useFocusVisibleClassName.js.map +1 -1
  965. package/dist/hooks/useGlobalEscKeyDown.d.ts +1 -1
  966. package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
  967. package/dist/hooks/useGlobalEscKeyDown.js.map +1 -1
  968. package/dist/hooks/useMediaQueryMatch.d.ts +6 -0
  969. package/dist/hooks/useMediaQueryMatch.d.ts.map +1 -0
  970. package/dist/hooks/useMediaQueryMatch.js +25 -0
  971. package/dist/hooks/useMediaQueryMatch.js.map +1 -0
  972. package/dist/hooks/useMergeProps.d.ts +1 -1
  973. package/dist/hooks/useMergeProps.d.ts.map +1 -1
  974. package/dist/hooks/useMergeProps.js.map +1 -1
  975. package/dist/hooks/useModalManager/types.d.ts +8 -8
  976. package/dist/hooks/useModalManager/types.d.ts.map +1 -1
  977. package/dist/hooks/useModalManager/types.js.map +1 -1
  978. package/dist/hooks/usePagination.d.ts +4 -4
  979. package/dist/hooks/usePagination.d.ts.map +1 -1
  980. package/dist/hooks/usePagination.js.map +1 -1
  981. package/dist/hooks/usePatchChildren.d.ts +1 -1
  982. package/dist/hooks/usePatchChildren.d.ts.map +1 -1
  983. package/dist/hooks/usePatchChildren.js.map +1 -1
  984. package/dist/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.d.ts → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.d.ts} +1 -1
  985. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.d.ts.map +1 -0
  986. package/dist/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.js → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js} +10 -10
  987. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js.map +1 -0
  988. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.d.ts.map +1 -1
  989. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.js +5 -2
  990. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.js.map +1 -1
  991. package/dist/hooks/useSnackbarManager/components/{SnackbarsContainer.d.ts → SnackbarsContainer/SnackbarsContainer.d.ts} +2 -2
  992. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.d.ts.map +1 -0
  993. package/dist/hooks/useSnackbarManager/components/{SnackbarsContainer.js → SnackbarsContainer/SnackbarsContainer.js} +10 -10
  994. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.js.map +1 -0
  995. package/dist/hooks/useSnackbarManager/types.d.ts +11 -11
  996. package/dist/hooks/useSnackbarManager/types.d.ts.map +1 -1
  997. package/dist/hooks/useSnackbarManager/types.js.map +1 -1
  998. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +1 -1
  999. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
  1000. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  1001. package/dist/index.d.ts +3 -2
  1002. package/dist/index.d.ts.map +1 -1
  1003. package/dist/index.js +1 -1
  1004. package/dist/index.js.map +1 -1
  1005. package/dist/lib/SSR.d.ts +4 -4
  1006. package/dist/lib/SSR.d.ts.map +1 -1
  1007. package/dist/lib/SSR.js.map +1 -1
  1008. package/dist/lib/accessibility.d.ts +1 -1
  1009. package/dist/lib/accessibility.d.ts.map +1 -1
  1010. package/dist/lib/accessibility.js.map +1 -1
  1011. package/dist/lib/adaptivity/functions.d.ts.map +1 -1
  1012. package/dist/lib/adaptivity/functions.js +6 -0
  1013. package/dist/lib/adaptivity/functions.js.map +1 -1
  1014. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts +6 -6
  1015. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
  1016. package/dist/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
  1017. package/dist/lib/animation/useCSSTransition.d.ts +11 -11
  1018. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  1019. package/dist/lib/animation/useCSSTransition.js +4 -2
  1020. package/dist/lib/animation/useCSSTransition.js.map +1 -1
  1021. package/dist/lib/animation/useReducedMotion.d.ts.map +1 -1
  1022. package/dist/lib/animation/useReducedMotion.js +2 -20
  1023. package/dist/lib/animation/useReducedMotion.js.map +1 -1
  1024. package/dist/lib/calendar.d.ts +5 -5
  1025. package/dist/lib/calendar.d.ts.map +1 -1
  1026. package/dist/lib/calendar.js.map +1 -1
  1027. package/dist/lib/date.d.ts +10 -10
  1028. package/dist/lib/date.d.ts.map +1 -1
  1029. package/dist/lib/date.js.map +1 -1
  1030. package/dist/lib/dom.d.ts +2 -2
  1031. package/dist/lib/dom.d.ts.map +1 -1
  1032. package/dist/lib/dom.js.map +1 -1
  1033. package/dist/lib/floating/functions.d.ts +2 -2
  1034. package/dist/lib/floating/functions.d.ts.map +1 -1
  1035. package/dist/lib/floating/functions.js.map +1 -1
  1036. package/dist/lib/floating/types/component.d.ts +9 -9
  1037. package/dist/lib/floating/types/component.d.ts.map +1 -1
  1038. package/dist/lib/floating/types/component.js.map +1 -1
  1039. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +14 -14
  1040. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  1041. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +6 -4
  1042. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  1043. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +15 -15
  1044. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  1045. package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  1046. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -2
  1047. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  1048. package/dist/lib/getNavId.d.ts +2 -2
  1049. package/dist/lib/getNavId.d.ts.map +1 -1
  1050. package/dist/lib/getNavId.js.map +1 -1
  1051. package/dist/lib/layouts/resolveLayoutProps.d.ts +6 -6
  1052. package/dist/lib/layouts/resolveLayoutProps.d.ts.map +1 -1
  1053. package/dist/lib/layouts/resolveLayoutProps.js.map +1 -1
  1054. package/dist/lib/layouts/types.d.ts +29 -29
  1055. package/dist/lib/layouts/types.d.ts.map +1 -1
  1056. package/dist/lib/layouts/types.js.map +1 -1
  1057. package/dist/lib/select.d.ts +2 -2
  1058. package/dist/lib/select.d.ts.map +1 -1
  1059. package/dist/lib/select.js.map +1 -1
  1060. package/dist/lib/sheet/useBottomSheet.d.ts +4 -4
  1061. package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
  1062. package/dist/lib/sheet/useBottomSheet.js.map +1 -1
  1063. package/dist/lib/tokens/TokensClassProvider.js.map +1 -1
  1064. package/dist/lib/tokens/types.d.ts +2 -2
  1065. package/dist/lib/tokens/types.d.ts.map +1 -1
  1066. package/dist/lib/tokens/types.js.map +1 -1
  1067. package/dist/lib/utils.d.ts +3 -3
  1068. package/dist/lib/utils.d.ts.map +1 -1
  1069. package/dist/lib/utils.js +3 -0
  1070. package/dist/lib/utils.js.map +1 -1
  1071. package/dist/types.d.ts +17 -10
  1072. package/dist/types.d.ts.map +1 -1
  1073. package/dist/types.js +4 -1
  1074. package/dist/types.js.map +1 -1
  1075. package/dist/vkui.css +1 -1
  1076. package/dist/vkui.css.map +1 -1
  1077. package/package.json +3 -3
  1078. package/src/components/Accordion/Accordion.tsx +10 -6
  1079. package/src/components/Accordion/AccordionIcon.tsx +31 -0
  1080. package/src/components/Accordion/AccordionSummary.tsx +5 -9
  1081. package/src/components/ActionSheet/ActionSheet.tsx +14 -10
  1082. package/src/components/ActionSheet/ActionSheetContext.ts +3 -3
  1083. package/src/components/ActionSheet/types.ts +8 -8
  1084. package/src/components/ActionSheetItem/ActionSheetItem.module.css +0 -1
  1085. package/src/components/ActionSheetItem/ActionSheetItem.module.css.d.ts.map +1 -1
  1086. package/src/components/ActionSheetItem/ActionSheetItem.tsx +15 -15
  1087. package/src/components/ActionSheetItem/subcomponents/Radio/Radio.tsx +1 -1
  1088. package/src/components/AdaptivityProvider/AdaptivityContext.tsx +7 -7
  1089. package/src/components/Alert/Alert.tsx +17 -17
  1090. package/src/components/Alert/AlertBase.tsx +2 -2
  1091. package/src/components/Alert/AlertTypography.tsx +1 -1
  1092. package/src/components/AppRoot/AppRoot.tsx +9 -9
  1093. package/src/components/AppRoot/AppRootContext.ts +4 -4
  1094. package/src/components/AppRoot/AppRootPortal.tsx +2 -2
  1095. package/src/components/AppRoot/ScrollContext.tsx +5 -5
  1096. package/src/components/AppRoot/types.ts +4 -4
  1097. package/src/components/AspectRatio/AspectRatio.tsx +2 -2
  1098. package/src/components/Avatar/Avatar.module.css +0 -5
  1099. package/src/components/Avatar/Avatar.module.css.d.ts.map +1 -1
  1100. package/src/components/Avatar/Avatar.tsx +6 -2
  1101. package/src/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.tsx +1 -1
  1102. package/src/components/Badge/Badge.tsx +1 -1
  1103. package/src/components/Banner/Banner.tsx +12 -12
  1104. package/src/components/Box/Box.tsx +1 -1
  1105. package/src/components/Button/Button.tsx +19 -12
  1106. package/src/components/ButtonGroup/ButtonGroup.tsx +4 -4
  1107. package/src/components/Calendar/Calendar.tsx +17 -17
  1108. package/src/components/CalendarDay/CalendarDay.tsx +18 -18
  1109. package/src/components/CalendarDays/CalendarDays.tsx +14 -14
  1110. package/src/components/CalendarHeader/CalendarHeader.tsx +19 -19
  1111. package/src/components/CalendarRange/CalendarRange.tsx +12 -12
  1112. package/src/components/CalendarTime/CalendarTime.tsx +14 -14
  1113. package/src/components/CalendarTime/CalendarTimePicker.tsx +3 -3
  1114. package/src/components/Card/Card.tsx +1 -1
  1115. package/src/components/CardGrid/CardGrid.tsx +2 -2
  1116. package/src/components/CardScroll/CardScroll.tsx +3 -3
  1117. package/src/components/CarouselBase/Bullets.tsx +1 -1
  1118. package/src/components/CarouselBase/CarouselViewPort.tsx +1 -1
  1119. package/src/components/CarouselBase/ScrollArrows.tsx +2 -2
  1120. package/src/components/CarouselBase/helpers.ts +4 -4
  1121. package/src/components/CarouselBase/types.ts +23 -23
  1122. package/src/components/Cell/Cell.tsx +8 -8
  1123. package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +1 -1
  1124. package/src/components/Cell/CellDragger/CellDragger.tsx +2 -2
  1125. package/src/components/CellButton/CellButton.tsx +16 -16
  1126. package/src/components/Checkbox/Checkbox.tsx +16 -9
  1127. package/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx +20 -14
  1128. package/src/components/ChipsInput/ChipsInput.tsx +1 -1
  1129. package/src/components/ChipsInput/useChipsInput.ts +3 -3
  1130. package/src/components/ChipsInputBase/Chip/Chip.tsx +9 -9
  1131. package/src/components/ChipsInputBase/types.ts +28 -22
  1132. package/src/components/ChipsSelect/ChipsSelect.tsx +13 -13
  1133. package/src/components/ChipsSelect/useChipsSelect.ts +22 -21
  1134. package/src/components/Clickable/Clickable.tsx +1 -1
  1135. package/src/components/Clickable/useState.tsx +13 -13
  1136. package/src/components/ConfigProvider/ConfigProvider.tsx +2 -1
  1137. package/src/components/ContentBadge/ContentBadge.tsx +4 -4
  1138. package/src/components/ContentCard/ContentCard.tsx +8 -8
  1139. package/src/components/Counter/Counter.tsx +4 -4
  1140. package/src/components/CustomScrollView/CustomScrollView.tsx +6 -6
  1141. package/src/components/CustomSelect/CustomSelect.module.css +0 -6
  1142. package/src/components/CustomSelect/CustomSelect.module.css.d.ts.map +1 -1
  1143. package/src/components/CustomSelect/CustomSelect.tsx +45 -31
  1144. package/src/components/CustomSelect/CustomSelectClearButton.tsx +2 -2
  1145. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx +20 -14
  1146. package/src/components/CustomSelect/hooks/useDropdownOpenedController.ts +2 -2
  1147. package/src/components/CustomSelect/hooks/useSelectedOptionController.ts +1 -1
  1148. package/src/components/CustomSelect/types.ts +1 -1
  1149. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +8 -8
  1150. package/src/components/CustomSelectOption/CustomSelectOption.tsx +9 -9
  1151. package/src/components/DateInput/DateInput.tsx +27 -35
  1152. package/src/components/DateInput/hooks.ts +7 -7
  1153. package/src/components/DateRangeInput/DateRangeInput.tsx +28 -36
  1154. package/src/components/DropZone/DropZone.tsx +5 -2
  1155. package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.tsx +1 -1
  1156. package/src/components/DropdownIcon/DropdownIcon.tsx +1 -1
  1157. package/src/components/Epic/Epic.tsx +1 -1
  1158. package/src/components/Epic/ScrollSaver.tsx +1 -1
  1159. package/src/components/File/File.tsx +15 -9
  1160. package/src/components/FixedLayout/FixedLayout.tsx +3 -3
  1161. package/src/components/Flex/Flex.tsx +8 -8
  1162. package/src/components/Flex/FlexItem/FlexItem.tsx +1 -1
  1163. package/src/components/FloatingArrow/FloatingArrow.tsx +9 -9
  1164. package/src/components/FocusTrap/FocusTrap.tsx +0 -3
  1165. package/src/components/FormField/FormField.tsx +8 -8
  1166. package/src/components/FormFieldClearButton/FormFieldClearButton.tsx +2 -2
  1167. package/src/components/FormItem/FormItem.module.css +1 -2
  1168. package/src/components/FormItem/FormItem.module.css.d.ts.map +1 -1
  1169. package/src/components/FormItem/FormItem.tsx +10 -10
  1170. package/src/components/FormItem/context.ts +2 -2
  1171. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +4 -4
  1172. package/src/components/FormStatus/FormStatus.tsx +2 -2
  1173. package/src/components/Gallery/Gallery.tsx +2 -2
  1174. package/src/components/Gradient/Gradient.tsx +2 -2
  1175. package/src/components/GridAvatar/GridAvatar.tsx +1 -1
  1176. package/src/components/Group/Group.tsx +2 -2
  1177. package/src/components/Group/GroupContainer.tsx +3 -3
  1178. package/src/components/Group/GroupExpandedContent.tsx +1 -1
  1179. package/src/components/Header/Header.tsx +11 -11
  1180. package/src/components/HorizontalCell/HorizontalCell.tsx +7 -7
  1181. package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.tsx +4 -4
  1182. package/src/components/HorizontalScroll/HorizontalScroll.tsx +63 -18
  1183. package/src/components/IconButton/IconButton.tsx +1 -1
  1184. package/src/components/Image/Image.tsx +5 -5
  1185. package/src/components/ImageBase/ImageBase.module.css +11 -3
  1186. package/src/components/ImageBase/ImageBase.module.css.d.ts.map +1 -1
  1187. package/src/components/ImageBase/ImageBase.tsx +27 -17
  1188. package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.tsx +1 -1
  1189. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx +3 -3
  1190. package/src/components/ImageBase/ImageBaseOverlay/types.ts +3 -3
  1191. package/src/components/ImageBase/types.ts +3 -3
  1192. package/src/components/Input/Input.tsx +13 -7
  1193. package/src/components/InputLike/InputLike.tsx +3 -3
  1194. package/src/components/Link/Link.tsx +4 -4
  1195. package/src/components/List/List.tsx +1 -1
  1196. package/src/components/MiniInfoCell/MiniInfoCell.tsx +5 -5
  1197. package/src/components/ModalCard/ModalCardInternal.tsx +1 -1
  1198. package/src/components/ModalCard/types.ts +13 -13
  1199. package/src/components/ModalCardBase/ModalCardBase.module.css +0 -4
  1200. package/src/components/ModalCardBase/ModalCardBase.module.css.d.ts.map +1 -1
  1201. package/src/components/ModalCardBase/ModalCardBase.tsx +14 -14
  1202. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -1
  1203. package/src/components/ModalOutlet/ModalOutlet.tsx +3 -3
  1204. package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +1 -1
  1205. package/src/components/ModalOverlay/ModalOverlay.tsx +7 -7
  1206. package/src/components/ModalPage/ModalPageBase.tsx +2 -2
  1207. package/src/components/ModalPage/ModalPageInternal.tsx +2 -2
  1208. package/src/components/ModalPage/types.ts +27 -27
  1209. package/src/components/ModalPageFooter/ModalPageFooter.tsx +2 -2
  1210. package/src/components/ModalPageHeader/ModalPageHeader.tsx +1 -1
  1211. package/src/components/ModalRoot/types.ts +15 -15
  1212. package/src/components/ModalRoot/useModalRootManager.tsx +19 -19
  1213. package/src/components/NativeSelect/NativeSelect.tsx +20 -14
  1214. package/src/components/NumberInputLike/NumberInputLike.tsx +3 -3
  1215. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +16 -8
  1216. package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +1 -1
  1217. package/src/components/Pagination/Pagination.tsx +27 -25
  1218. package/src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx +5 -3
  1219. package/src/components/Pagination/PaginationPage/PaginationPageButton.tsx +3 -3
  1220. package/src/components/Pagination/PaginationPage/PaginationPageEllipsis.tsx +1 -1
  1221. package/src/components/Pagination/PaginationPage/usePaginationPageClasses.ts +3 -3
  1222. package/src/components/Panel/Panel.tsx +3 -3
  1223. package/src/components/PanelHeader/PanelHeader.module.css +0 -5
  1224. package/src/components/PanelHeader/PanelHeader.module.css.d.ts.map +1 -1
  1225. package/src/components/PanelHeader/PanelHeader.tsx +14 -12
  1226. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +2 -2
  1227. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +3 -3
  1228. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +3 -3
  1229. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +3 -3
  1230. package/src/components/PanelSpinner/PanelSpinner.tsx +1 -1
  1231. package/src/components/Placeholder/Placeholder.tsx +5 -5
  1232. package/src/components/PopoutWrapper/PopoutWrapper.tsx +6 -6
  1233. package/src/components/Popover/Popover.tsx +5 -5
  1234. package/src/components/Popper/Popper.tsx +17 -15
  1235. package/src/components/Progress/Progress.tsx +4 -4
  1236. package/src/components/PullToRefresh/PullToRefresh.tsx +2 -2
  1237. package/src/components/PullToRefresh/PullToRefreshSpinner.tsx +4 -4
  1238. package/src/components/Radio/Radio.tsx +18 -12
  1239. package/src/components/Radio/RadioInput/RadioInput.tsx +15 -9
  1240. package/src/components/RadioGroup/RadioGroup.tsx +1 -1
  1241. package/src/components/Removable/Removable.module.css +0 -4
  1242. package/src/components/Removable/Removable.module.css.d.ts.map +1 -1
  1243. package/src/components/Removable/Removable.tsx +13 -10
  1244. package/src/components/Removable/RemovableIos.tsx +6 -3
  1245. package/src/components/RichCell/RichCell.tsx +15 -15
  1246. package/src/components/Root/Root.tsx +3 -3
  1247. package/src/components/RootComponent/RootComponent.tsx +2 -2
  1248. package/src/components/ScreenSpinner/ScreenSpinnerSwapIcon.tsx +1 -1
  1249. package/src/components/ScreenSpinner/context.ts +2 -2
  1250. package/src/components/ScreenSpinner/types.tsx +5 -5
  1251. package/src/components/ScrollArrow/ScrollArrow.tsx +27 -4
  1252. package/src/components/Search/Search.tsx +28 -22
  1253. package/src/components/SegmentedControl/SegmentedControl.tsx +6 -6
  1254. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +3 -3
  1255. package/src/components/SelectMimicry/SelectMimicry.tsx +3 -3
  1256. package/src/components/SelectTypography/SelectTypography.tsx +1 -1
  1257. package/src/components/SelectionControl/SelectionControl.tsx +1 -1
  1258. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +2 -2
  1259. package/src/components/Separator/Separator.tsx +5 -5
  1260. package/src/components/SimpleCell/Chevron/Chevron.tsx +1 -1
  1261. package/src/components/SimpleCell/SimpleCell.tsx +14 -14
  1262. package/src/components/SimpleGrid/SimpleGrid.tsx +6 -6
  1263. package/src/components/Skeleton/Skeleton.tsx +5 -5
  1264. package/src/components/Slider/Slider.tsx +19 -17
  1265. package/src/components/Slider/SliderThumb/SliderThumb.tsx +9 -7
  1266. package/src/components/Snackbar/Snackbar.tsx +19 -13
  1267. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +2 -4
  1268. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css.d.ts.map +1 -1
  1269. package/src/components/Snackbar/subcomponents/Basic/Basic.tsx +6 -6
  1270. package/src/components/Snackbar/utils.ts +1 -1
  1271. package/src/components/Spacing/Spacing.tsx +2 -2
  1272. package/src/components/Spinner/Spinner.tsx +4 -4
  1273. package/src/components/SplitCol/SplitCol.tsx +7 -7
  1274. package/src/components/SplitLayout/SplitLayout.tsx +15 -9
  1275. package/src/components/SubnavigationBar/SubnavigationBar.tsx +2 -2
  1276. package/src/components/SubnavigationButton/SubnavigationButton.tsx +8 -8
  1277. package/src/components/Switch/Switch.tsx +15 -9
  1278. package/src/components/Tabbar/Tabbar.tsx +2 -2
  1279. package/src/components/TabbarItem/TabbarItem.tsx +3 -3
  1280. package/src/components/Tabs/Tabs.tsx +7 -7
  1281. package/src/components/Tabs/TabsModeContext.ts +1 -1
  1282. package/src/components/TabsItem/TabsItem.tsx +5 -5
  1283. package/src/components/Tappable/Tappable.tsx +3 -3
  1284. package/src/components/Tappable/state.tsx +2 -2
  1285. package/src/components/Textarea/Textarea.tsx +14 -10
  1286. package/src/components/ToolButton/ToolButton.tsx +4 -4
  1287. package/src/components/Tooltip/Tooltip.tsx +6 -6
  1288. package/src/components/TooltipBase/TooltipBase.tsx +10 -10
  1289. package/src/components/Touch/Touch.tsx +16 -16
  1290. package/src/components/Typography/Caption/Caption.tsx +1 -1
  1291. package/src/components/Typography/DisplayTitle/DisplayTitle.tsx +1 -1
  1292. package/src/components/Typography/EllipsisText/EllipsisText.tsx +3 -3
  1293. package/src/components/Typography/Headline/Headline.tsx +1 -1
  1294. package/src/components/Typography/Title/Title.tsx +1 -1
  1295. package/src/components/Typography/Typography.tsx +6 -6
  1296. package/src/components/UnstyledTextField/UnstyledTextField.tsx +1 -1
  1297. package/src/components/UsersStack/UsersStack.tsx +6 -6
  1298. package/src/components/View/View.module.css +1 -3
  1299. package/src/components/View/View.module.css.d.ts.map +1 -1
  1300. package/src/components/View/View.tsx +4 -4
  1301. package/src/components/View/ViewInfinite.tsx +11 -11
  1302. package/src/components/WriteBar/WriteBar.tsx +21 -15
  1303. package/src/components/WriteBarIcon/WriteBarIcon.tsx +3 -3
  1304. package/src/helpers/math.ts +1 -1
  1305. package/src/hooks/useAdaptivityWithJSMediaQueries.ts +3 -1
  1306. package/src/hooks/useAutoDetectColorScheme.ts +8 -30
  1307. package/src/hooks/useCalendar.ts +2 -2
  1308. package/src/hooks/useDateInput.ts +5 -5
  1309. package/src/hooks/useDraggableWithDomApi/types.ts +1 -1
  1310. package/src/hooks/useEnsuredControl.ts +4 -4
  1311. package/src/hooks/useFloatingElement.tsx +4 -4
  1312. package/src/hooks/useFocusTrap/FocusGuard.tsx +1 -1
  1313. package/src/hooks/useFocusTrap/useFocusTrap.tsx +17 -15
  1314. package/src/hooks/useFocusVisibleClassName.ts +3 -3
  1315. package/src/hooks/useGlobalEscKeyDown.ts +2 -2
  1316. package/src/hooks/useMediaQueryMatch.ts +34 -0
  1317. package/src/hooks/useMergeProps.ts +2 -2
  1318. package/src/hooks/useModalManager/types.ts +8 -8
  1319. package/src/hooks/usePagination.ts +4 -4
  1320. package/src/hooks/usePatchChildren.ts +1 -1
  1321. package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.tsx → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.tsx} +3 -3
  1322. package/src/hooks/useSnackbarManager/components/SnackbarHolder.tsx +6 -2
  1323. package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.tsx → SnackbarsContainer/SnackbarsContainer.tsx} +6 -6
  1324. package/src/hooks/useSnackbarManager/types.ts +11 -11
  1325. package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +1 -1
  1326. package/src/index.ts +6 -2
  1327. package/src/lib/SSR.tsx +4 -4
  1328. package/src/lib/accessibility.ts +1 -1
  1329. package/src/lib/adaptivity/functions.ts +10 -1
  1330. package/src/lib/animation/useCSSKeyframesAnimationController.ts +6 -6
  1331. package/src/lib/animation/useCSSTransition.ts +15 -13
  1332. package/src/lib/animation/useReducedMotion.ts +2 -25
  1333. package/src/lib/calendar.ts +5 -2
  1334. package/src/lib/date.ts +11 -11
  1335. package/src/lib/dom.tsx +2 -2
  1336. package/src/lib/floating/functions.ts +2 -2
  1337. package/src/lib/floating/types/component.ts +9 -9
  1338. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +26 -19
  1339. package/src/lib/floating/useFloatingWithInteractions/types.ts +15 -15
  1340. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +2 -2
  1341. package/src/lib/getNavId.ts +2 -2
  1342. package/src/lib/layouts/resolveLayoutProps.ts +3 -3
  1343. package/src/lib/layouts/types.ts +29 -29
  1344. package/src/lib/select.ts +2 -2
  1345. package/src/lib/sheet/useBottomSheet.ts +4 -4
  1346. package/src/lib/tokens/TokensClassProvider.tsx +1 -1
  1347. package/src/lib/tokens/types.ts +2 -2
  1348. package/src/lib/utils.ts +8 -3
  1349. package/src/types.ts +18 -10
  1350. package/dist/components/DropZone/components/DropZoneGrid.d.ts.map +0 -1
  1351. package/dist/components/DropZone/components/DropZoneGrid.js.map +0 -1
  1352. package/dist/cssm/components/DropZone/components/DropZoneGrid.js.map +0 -1
  1353. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.js.map +0 -1
  1354. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarsContainer.js.map +0 -1
  1355. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.d.ts.map +0 -1
  1356. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.js.map +0 -1
  1357. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer.d.ts.map +0 -1
  1358. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer.js.map +0 -1
  1359. /package/dist/cssm/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.js +0 -0
  1360. /package/dist/cssm/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css +0 -0
  1361. /package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css} +0 -0
  1362. /package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css → SnackbarsContainer/SnackbarsContainer.module.css} +0 -0
  1363. /package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css +0 -0
  1364. /package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css.d.ts.map +0 -0
  1365. /package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css} +0 -0
  1366. /package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css.d.ts.map → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css.d.ts.map} +0 -0
  1367. /package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css → SnackbarsContainer/SnackbarsContainer.module.css} +0 -0
  1368. /package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css.d.ts.map → SnackbarsContainer/SnackbarsContainer.module.css.d.ts.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CalendarDays/CalendarDays.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, isSameDate } from '@vkontakte/vkjs';\nimport { useTodayDate } from '../../hooks/useTodayDate';\nimport { getDaysNames, getWeeks } from '../../lib/calendar';\nimport { isSameMonth } from '../../lib/date';\nimport { cacheDateTimeFormat } from '../../lib/intlCache';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport {\n CalendarDay,\n type CalendarDayElementProps,\n type CalendarDayProps,\n type CalendarDayTestsProps,\n} from '../CalendarDay/CalendarDay';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarDays.module.css';\n\nconst labelDateTimeFormatOptions = {\n year: 'numeric',\n month: 'long',\n} as const;\n\nconst labelDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nexport type CalendarDaysTestsProps = {\n /**\n * Передает атрибут `data-testid` для дня в календаре.\n */\n dayTestId?: CalendarDayTestsProps['testId'];\n};\n\nexport interface CalendarDaysProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<CalendarDayProps, 'renderDayContent'>,\n CalendarDaysTestsProps {\n /**\n * Выбранная дата или диапазон дат.\n */\n value?: Date | Array<Date | null> | null;\n /**\n * Дата, определяющая отображаемый месяц.\n */\n viewDate: Date;\n /**\n * День недели, с которого начинается неделя (0 - воскресенье, 6 - суббота).\n */\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * Показывать дни соседних месяцев.\n */\n showNeighboringMonth?: boolean;\n /**\n * Размер календаря.\n */\n size?: 's' | 'm';\n /**\n * Дополнительные свойства для элементов дней.\n */\n dayProps?: CalendarDayElementProps;\n /**\n * Следить за изменениями дней для обновления UI.\n */\n listenDayChangesForUpdate?: boolean;\n /**\n * Обработчик изменения выбранного дня.\n */\n onDayChange: (value: Date) => void;\n /**\n * Проверяет, заблокирован ли день для выбора.\n */\n isDayDisabled: (value: Date) => boolean;\n /**\n * Определяет, является ли день началом выделенного диапазона.\n */\n isDaySelectionStart: (value: Date, dayOfWeek: number) => boolean;\n /**\n * Определяет, является ли день концом выделенного диапазона.\n */\n isDaySelectionEnd: (value: Date, dayOfWeek: number) => boolean;\n /**\n * Определяет начало диапазона при наведении (подсветка).\n */\n isHintedDaySelectionStart?: (value: Date, dayOfWeek: number) => boolean;\n /**\n * Определяет конец диапазона при наведении (подсветка).\n */\n isHintedDaySelectionEnd?: (value: Date, dayOfWeek: number) => boolean;\n /**\n * Проверяет, является ли день активным (текущая дата).\n */\n isDayActive: (value: Date) => boolean;\n /**\n * Проверяет, подсвечен ли день (при наведении).\n */\n isDayHinted?: (value: Date) => boolean;\n /**\n * Проверяет, возможно ли сфокусироваться на дне с клавиатуры.\n */\n isDayFocusable?: (value: Date) => boolean;\n /**\n * Проверяет, выбран ли день.\n */\n isDaySelected?: (value: Date) => boolean;\n /**\n * Проверяет, находится ли день в фокусе.\n */\n isDayFocused: (value: Date) => boolean;\n /**\n * Обработчик события 'pointerenter' на элементе дня.\n */\n onDayEnter?: (value: Date) => void;\n /**\n * Обработчик события 'pointerleave' на элементе дня.\n */\n onDayLeave?: (value: Date) => void;\n /**\n * Обработчик события `focus` на элементе дня.\n */\n onDayFocus?: (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 onDayFocus,\n isDayHinted,\n isHintedDaySelectionStart,\n isHintedDaySelectionEnd,\n isDayFocused,\n isDayFocusable,\n isDayDisabled,\n size,\n showNeighboringMonth = false,\n dayProps,\n listenDayChangesForUpdate = false,\n getRootRef,\n renderDayContent,\n dayTestId,\n ...props\n}: CalendarDaysProps): React.ReactNode => {\n const { locale } = useConfigProvider();\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 [onDayChange],\n );\n\n const viewDateLabelId = React.useId();\n const currentMonthLabel = value\n ? labelDateTimeFormat(locale, labelDateTimeFormatOptions).format(viewDate)\n : null;\n\n return (\n <React.Fragment>\n {/*\n * Нельзя помещать текст currentMonthLabel внутрь role=\"grid\" или с помощью aria-label,\n * иначе пользователи NVDA не смогут ходить по таблице\n * с помощью горячих клавиш <Ctrl+Alt+стрелочки>.\n * Имеется ввиду связка (применение которой визуально не видно):\n * - из заголовка календаря прыжок в таблицу с помощью клавиши <T>\n * - переход по ячейкам с помощью <Ctrl+Alrt+стрелочки>\n * NVDA будет говорить, что пользователь вне ячейки таблицы.\n * Также важно оставить aria-live=\"polite\". Так NVDA зачитывает текущий\n * месяц и год при переключении месяца и года в заголовке календаря.\n */}\n <VisuallyHidden aria-live=\"polite\" id={viewDateLabelId}>\n {currentMonthLabel}\n </VisuallyHidden>\n <RootComponent\n role=\"grid\"\n {...props}\n baseClassName={styles.host}\n aria-labelledby={viewDateLabelId}\n >\n <div\n role=\"row\"\n aria-rowindex={1}\n className={classNames(styles.row, size === 's' && styles.rowSizeS)}\n >\n {daysNames.map(({ short: shortDayName, long: longDayName }) => (\n <Footnote\n role=\"columnheader\"\n aria-label={longDayName}\n key={shortDayName}\n className={styles.weekday}\n >\n {shortDayName}\n </Footnote>\n ))}\n </div>\n\n {weeks.map((week, i) => (\n <div\n role=\"row\"\n aria-rowindex={i + 2}\n className={classNames(styles.row, size === 's' && styles.rowSizeS)}\n key={i}\n >\n {week.map((day, i) => {\n const sameMonth = isSameMonth(day, viewDate);\n const isHidden = !showNeighboringMonth && !sameMonth;\n const isToday = isSameDate(day, now);\n const isActive = isDayActive(day);\n const isFocused = isDayFocused(day);\n return (\n <CalendarDay\n role=\"gridcell\"\n aria-current={isToday ? 'date' : undefined}\n aria-selected={isActive ? 'true' : 'false'}\n aria-colindex={i + 1}\n tabIndex={isDayFocusable?.(day) ? 0 : -1}\n key={day.toISOString()}\n day={day}\n today={isToday}\n active={isActive}\n onChange={handleDayChange}\n hidden={isHidden}\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={isFocused}\n onEnter={onDayEnter}\n onLeave={onDayLeave}\n onFocus={onDayFocus}\n hinted={isDayHinted?.(day)}\n sameMonth={sameMonth}\n size={size}\n renderDayContent={renderDayContent}\n testId={dayTestId}\n {...dayProps}\n className={classNames(dayProps?.className, styles.rowDay)}\n />\n );\n })}\n </div>\n ))}\n </RootComponent>\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","isSameDate","useTodayDate","getDaysNames","getWeeks","isSameMonth","cacheDateTimeFormat","CalendarDay","useConfigProvider","RootComponent","Footnote","VisuallyHidden","styles","labelDateTimeFormatOptions","year","month","labelDateTimeFormat","CalendarDays","viewDate","value","weekStartsOn","onDayChange","isDaySelected","isDayActive","isDaySelectionEnd","isDaySelectionStart","onDayEnter","onDayLeave","onDayFocus","isDayHinted","isHintedDaySelectionStart","isHintedDaySelectionEnd","isDayFocused","isDayFocusable","isDayDisabled","size","showNeighboringMonth","dayProps","listenDayChangesForUpdate","getRootRef","renderDayContent","dayTestId","props","locale","now","weeks","useMemo","daysNames","handleDayChange","useCallback","date","viewDateLabelId","useId","currentMonthLabel","format","Fragment","aria-live","id","role","baseClassName","host","aria-labelledby","div","aria-rowindex","className","row","rowSizeS","map","short","shortDayName","long","longDayName","aria-label","weekday","week","i","day","sameMonth","isHidden","isToday","isActive","isFocused","aria-current","undefined","aria-selected","aria-colindex","tabIndex","today","active","onChange","hidden","disabled","selectionStart","selectionEnd","hintedSelectionStart","hintedSelectionEnd","selected","focused","onEnter","onLeave","onFocus","hinted","testId","rowDay","toISOString"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/CalendarDays/CalendarDays.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, isSameDate } from '@vkontakte/vkjs';\nimport { useTodayDate } from '../../hooks/useTodayDate';\nimport { getDaysNames, getWeeks } from '../../lib/calendar';\nimport { isSameMonth } from '../../lib/date';\nimport { cacheDateTimeFormat } from '../../lib/intlCache';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport {\n CalendarDay,\n type CalendarDayElementProps,\n type CalendarDayProps,\n type CalendarDayTestsProps,\n} from '../CalendarDay/CalendarDay';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarDays.module.css';\n\nconst labelDateTimeFormatOptions = {\n year: 'numeric',\n month: 'long',\n} as const;\n\nconst labelDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nexport type CalendarDaysTestsProps = {\n /**\n * Передает атрибут `data-testid` для дня в календаре.\n */\n dayTestId?: CalendarDayTestsProps['testId'] | undefined;\n};\n\nexport interface CalendarDaysProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<CalendarDayProps, 'renderDayContent'>,\n CalendarDaysTestsProps {\n /**\n * Выбранная дата или диапазон дат.\n */\n value?: Date | Array<Date | null> | null | undefined;\n /**\n * Дата, определяющая отображаемый месяц.\n */\n viewDate: Date;\n /**\n * День недели, с которого начинается неделя (0 - воскресенье, 6 - суббота).\n */\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * Показывать дни соседних месяцев.\n */\n showNeighboringMonth?: boolean | undefined;\n /**\n * Размер календаря.\n */\n size?: 's' | 'm' | undefined;\n /**\n * Дополнительные свойства для элементов дней.\n */\n dayProps?: CalendarDayElementProps | undefined;\n /**\n * Следить за изменениями дней для обновления UI.\n */\n listenDayChangesForUpdate?: boolean | undefined;\n /**\n * Обработчик изменения выбранного дня.\n */\n onDayChange: (value: Date) => void;\n /**\n * Проверяет, заблокирован ли день для выбора.\n */\n isDayDisabled: (value: Date) => boolean;\n /**\n * Определяет, является ли день началом выделенного диапазона.\n */\n isDaySelectionStart: (value: Date, dayOfWeek: number) => boolean;\n /**\n * Определяет, является ли день концом выделенного диапазона.\n */\n isDaySelectionEnd: (value: Date, dayOfWeek: number) => boolean;\n /**\n * Определяет начало диапазона при наведении (подсветка).\n */\n isHintedDaySelectionStart?: ((value: Date, dayOfWeek: number) => boolean) | undefined;\n /**\n * Определяет конец диапазона при наведении (подсветка).\n */\n isHintedDaySelectionEnd?: ((value: Date, dayOfWeek: number) => boolean) | undefined;\n /**\n * Проверяет, является ли день активным (текущая дата).\n */\n isDayActive: (value: Date) => boolean;\n /**\n * Проверяет, подсвечен ли день (при наведении).\n */\n isDayHinted?: ((value: Date) => boolean) | undefined;\n /**\n * Проверяет, возможно ли сфокусироваться на дне с клавиатуры.\n */\n isDayFocusable?: ((value: Date) => boolean) | undefined;\n /**\n * Проверяет, выбран ли день.\n */\n isDaySelected?: ((value: Date) => boolean) | undefined;\n /**\n * Проверяет, находится ли день в фокусе.\n */\n isDayFocused: (value: Date) => boolean;\n /**\n * Обработчик события 'pointerenter' на элементе дня.\n */\n onDayEnter?: ((value: Date) => void) | undefined;\n /**\n * Обработчик события 'pointerleave' на элементе дня.\n */\n onDayLeave?: ((value: Date) => void) | undefined;\n /**\n * Обработчик события `focus` на элементе дня.\n */\n onDayFocus?: ((value: Date) => void) | undefined;\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 onDayFocus,\n isDayHinted,\n isHintedDaySelectionStart,\n isHintedDaySelectionEnd,\n isDayFocused,\n isDayFocusable,\n isDayDisabled,\n size,\n showNeighboringMonth = false,\n dayProps,\n listenDayChangesForUpdate = false,\n getRootRef,\n renderDayContent,\n dayTestId,\n ...props\n}: CalendarDaysProps): React.ReactNode => {\n const { locale } = useConfigProvider();\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 [onDayChange],\n );\n\n const viewDateLabelId = React.useId();\n const currentMonthLabel = value\n ? labelDateTimeFormat(locale, labelDateTimeFormatOptions).format(viewDate)\n : null;\n\n return (\n <React.Fragment>\n {/*\n * Нельзя помещать текст currentMonthLabel внутрь role=\"grid\" или с помощью aria-label,\n * иначе пользователи NVDA не смогут ходить по таблице\n * с помощью горячих клавиш <Ctrl+Alt+стрелочки>.\n * Имеется ввиду связка (применение которой визуально не видно):\n * - из заголовка календаря прыжок в таблицу с помощью клавиши <T>\n * - переход по ячейкам с помощью <Ctrl+Alrt+стрелочки>\n * NVDA будет говорить, что пользователь вне ячейки таблицы.\n * Также важно оставить aria-live=\"polite\". Так NVDA зачитывает текущий\n * месяц и год при переключении месяца и года в заголовке календаря.\n */}\n <VisuallyHidden aria-live=\"polite\" id={viewDateLabelId}>\n {currentMonthLabel}\n </VisuallyHidden>\n <RootComponent\n role=\"grid\"\n {...props}\n baseClassName={styles.host}\n aria-labelledby={viewDateLabelId}\n >\n <div\n role=\"row\"\n aria-rowindex={1}\n className={classNames(styles.row, size === 's' && styles.rowSizeS)}\n >\n {daysNames.map(({ short: shortDayName, long: longDayName }) => (\n <Footnote\n role=\"columnheader\"\n aria-label={longDayName}\n key={shortDayName}\n className={styles.weekday}\n >\n {shortDayName}\n </Footnote>\n ))}\n </div>\n\n {weeks.map((week, i) => (\n <div\n role=\"row\"\n aria-rowindex={i + 2}\n className={classNames(styles.row, size === 's' && styles.rowSizeS)}\n key={i}\n >\n {week.map((day, i) => {\n const sameMonth = isSameMonth(day, viewDate);\n const isHidden = !showNeighboringMonth && !sameMonth;\n const isToday = isSameDate(day, now);\n const isActive = isDayActive(day);\n const isFocused = isDayFocused(day);\n return (\n <CalendarDay\n role=\"gridcell\"\n aria-current={isToday ? 'date' : undefined}\n aria-selected={isActive ? 'true' : 'false'}\n aria-colindex={i + 1}\n tabIndex={isDayFocusable?.(day) ? 0 : -1}\n key={day.toISOString()}\n day={day}\n today={isToday}\n active={isActive}\n onChange={handleDayChange}\n hidden={isHidden}\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={isFocused}\n onEnter={onDayEnter}\n onLeave={onDayLeave}\n onFocus={onDayFocus}\n hinted={isDayHinted?.(day)}\n sameMonth={sameMonth}\n size={size}\n renderDayContent={renderDayContent}\n testId={dayTestId}\n {...dayProps}\n className={classNames(dayProps?.className, styles.rowDay)}\n />\n );\n })}\n </div>\n ))}\n </RootComponent>\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","isSameDate","useTodayDate","getDaysNames","getWeeks","isSameMonth","cacheDateTimeFormat","CalendarDay","useConfigProvider","RootComponent","Footnote","VisuallyHidden","styles","labelDateTimeFormatOptions","year","month","labelDateTimeFormat","CalendarDays","viewDate","value","weekStartsOn","onDayChange","isDaySelected","isDayActive","isDaySelectionEnd","isDaySelectionStart","onDayEnter","onDayLeave","onDayFocus","isDayHinted","isHintedDaySelectionStart","isHintedDaySelectionEnd","isDayFocused","isDayFocusable","isDayDisabled","size","showNeighboringMonth","dayProps","listenDayChangesForUpdate","getRootRef","renderDayContent","dayTestId","props","locale","now","weeks","useMemo","daysNames","handleDayChange","useCallback","date","viewDateLabelId","useId","currentMonthLabel","format","Fragment","aria-live","id","role","baseClassName","host","aria-labelledby","div","aria-rowindex","className","row","rowSizeS","map","short","shortDayName","long","longDayName","aria-label","weekday","week","i","day","sameMonth","isHidden","isToday","isActive","isFocused","aria-current","undefined","aria-selected","aria-colindex","tabIndex","today","active","onChange","hidden","disabled","selectionStart","selectionEnd","hintedSelectionStart","hintedSelectionEnd","selected","focused","onEnter","onLeave","onFocus","hinted","testId","rowDay","toISOString"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CalendarHeader/CalendarHeader.tsx"],"sourcesContent":["'use client';\n\nimport type { ChangeEvent } from 'react';\nimport * as React from 'react';\nimport {\n Icon12Dropdown,\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ViewWidth } from '../../lib/adaptivity';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, getMonths, getYears } from '../../lib/calendar';\nimport { addMonths, setMonth, setYear, subMonths } from '../../lib/date';\nimport { cacheDateTimeFormat } from '../../lib/intlCache';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { CustomSelect, type SelectProps } 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\nconst formatterDateTimeFormatOptions = {\n year: 'numeric',\n month: 'long',\n} as const;\n\nconst formatterDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nconst monthDateTimeFormatOptions = {\n month: 'long',\n} as const;\n\nconst monthDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nconst yearDateTimeFormatOptions = {\n year: 'numeric',\n} as const;\n\nconst yearDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\ntype ArrowMonthProps = Omit<React.AllHTMLAttributes<HTMLElement>, 'onClick' | 'aria-label'>;\n\nexport type CalendarHeaderTestsProps = {\n /**\n * Передает атрибут `data-testid` для дропдауна выбора месяца в заголовке календаря.\n */\n monthDropdownTestId?: string | ((monthIndex: number) => string);\n /**\n * Передает атрибут `data-testid` для дропдауна выбора года в заголовке календаря.\n */\n yearDropdownTestId?: string | ((year: number) => string);\n /**\n * Передает атрибут `data-testid` для кнопки перехода к следующему месяцу в заголовке календаря.\n */\n nextMonthButtonTestId?: string;\n /**\n * Передает атрибут `data-testid` для кнопки перехода к предыдущему месяцу в заголовке календаря.\n */\n prevMonthButtonTestId?: string;\n};\n\nexport interface CalendarHeaderProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n CalendarHeaderTestsProps {\n /**\n * Отображаемая дата.\n */\n viewDate: Date;\n /**\n * Скрывает иконку для переключения на предыдущий месяц.\n */\n prevMonthHidden?: boolean;\n /**\n * Скрывает иконку для переключения на следующий месяц.\n */\n nextMonthHidden?: boolean;\n /**\n * Отключает селекторы выбора месяца/года.\n */\n disablePickers?: boolean;\n /**\n * `aria-label` для кнопки предыдущего месяца.\n */\n prevMonthLabel?: string;\n /**\n * `aria-label` для кнопки следующего месяца.\n */\n nextMonthLabel?: string;\n /**\n * `aria-label` для селектора месяца.\n */\n changeMonthLabel?: string;\n /**\n * `aria-label` для селектора года.\n */\n changeYearLabel?: string;\n /**\n * Кастомная иконка для кнопки предыдущего месяца.\n */\n prevMonthIcon?: React.ReactNode;\n /**\n * Кастомная иконка для кнопки следующего месяца.\n */\n nextMonthIcon?: React.ReactNode;\n /**\n * Дополнительные свойства для кнопки предыдущего месяца.\n */\n prevMonthProps?: ArrowMonthProps;\n /**\n * Дополнительные свойства для кнопки следующего месяца.\n */\n nextMonthProps?: ArrowMonthProps;\n /**\n * Функция для проверки блокировки месяца.\n */\n isMonthDisabled?: (monthNumber: number, year?: number) => boolean;\n /**\n * Функция для проверки блокировки года.\n */\n isYearDisabled?: (yearNumber: number) => boolean;\n /**\n * Обработчик изменения отображаемой даты.\n */\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 className={styles.navIconAccent} width={30} height={30} />\n ),\n nextMonthIcon = (\n <Icon20ChevronRightOutline className={styles.navIconAccent} width={30} height={30} />\n ),\n isMonthDisabled,\n isYearDisabled,\n monthDropdownTestId,\n yearDropdownTestId,\n prevMonthButtonTestId,\n nextMonthButtonTestId,\n ...restProps\n}: CalendarHeaderProps): React.ReactNode => {\n const { locale, direction } = useConfigProvider();\n\n const onMonthsChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setMonth(viewDate, Number(newValue))),\n [onChange, viewDate],\n );\n const onYearChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setYear(viewDate, Number(newValue))),\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.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 = formatterDateTimeFormat(locale, formatterDateTimeFormatOptions);\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 const stopPropogationOfEscapeKeyboardEventWhenSelectIsOpen = React.useCallback(\n (event: React.KeyboardEvent, isOpen: boolean) => {\n if (isOpen && event.key === 'Escape') {\n event.stopPropagation();\n }\n },\n [],\n );\n\n return (\n <RootComponent baseClassName={styles.host} {...restProps}>\n {!prevMonthHidden && (\n <AdaptivityProvider viewWidth={ViewWidth.SMALL_TABLET}>\n <Tappable\n baseClassName={classNames(styles.navIcon, styles.navIconPrev, prevMonthClassName)}\n onClick={onPrevMonth}\n data-testid={prevMonthButtonTestId}\n {...restPrevMonthProps}\n >\n <VisuallyHidden>\n {prevMonthLabel}, {formatter.format(subMonths(viewDate, 1))}\n </VisuallyHidden>\n {direction === 'ltr' ? prevMonthIcon : nextMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n {disablePickers ? (\n <Paragraph\n className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}\n weight=\"2\"\n >\n <span className={styles.month}>\n {monthDateTimeFormat(locale, monthDateTimeFormatOptions).format(viewDate)}\n </span>\n &nbsp;\n {yearDateTimeFormat(locale, yearDateTimeFormatOptions).format(viewDate)}\n </Paragraph>\n ) : (\n <AdaptivityProvider density=\"compact\">\n <div className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}>\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentMonth}\n options={months}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n onInputKeyDown={stopPropogationOfEscapeKeyboardEventWhenSelectIsOpen}\n slotProps={{\n input: {\n 'aria-label': changeMonthLabel,\n 'data-testid':\n typeof monthDropdownTestId === 'string'\n ? monthDropdownTestId\n : monthDropdownTestId?.(currentMonth),\n },\n }}\n />\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentYear}\n options={years}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n onInputKeyDown={stopPropogationOfEscapeKeyboardEventWhenSelectIsOpen}\n slotProps={{\n input: {\n 'aria-label': changeYearLabel,\n 'data-testid':\n typeof yearDropdownTestId === 'string'\n ? yearDropdownTestId\n : yearDropdownTestId?.(currentYear),\n },\n }}\n />\n </div>\n </AdaptivityProvider>\n )}\n {!nextMonthHidden && (\n <AdaptivityProvider viewWidth={ViewWidth.SMALL_TABLET}>\n <Tappable\n baseClassName={classNames(styles.navIcon, styles.navIconNext, nextMonthClassName)}\n onClick={onNextMonth}\n data-testid={nextMonthButtonTestId}\n {...restNextMonthProps}\n >\n <VisuallyHidden>\n {nextMonthLabel}, {formatter.format(addMonths(viewDate, 1))}\n </VisuallyHidden>\n {direction === 'ltr' ? nextMonthIcon : prevMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon12Dropdown","Icon20ChevronLeftOutline","Icon20ChevronRightOutline","classNames","ViewWidth","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","getMonths","getYears","addMonths","setMonth","setYear","subMonths","cacheDateTimeFormat","AdaptivityProvider","useConfigProvider","CustomSelect","RootComponent","Tappable","Paragraph","VisuallyHidden","styles","formatterDateTimeFormatOptions","year","month","formatterDateTimeFormat","monthDateTimeFormatOptions","monthDateTimeFormat","yearDateTimeFormatOptions","yearDateTimeFormat","CalendarHeader","viewDate","onChange","prevMonthHidden","prevMonthHiddenProp","nextMonthHidden","nextMonthHiddenProp","disablePickers","onNextMonth","onPrevMonth","prevMonthProps","nextMonthProps","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","prevMonthIcon","className","navIconAccent","width","height","nextMonthIcon","isMonthDisabled","isYearDisabled","monthDropdownTestId","yearDropdownTestId","prevMonthButtonTestId","nextMonthButtonTestId","restProps","locale","direction","onMonthsChange","useCallback","_","newValue","Number","onYearChange","currentYear","getFullYear","currentMonth","getMonth","months","useMemo","map","value","label","span","disabled","years","formatter","prevMonthClassName","restPrevMonthProps","nextMonthClassName","restNextMonthProps","Math","min","max","stopPropogationOfEscapeKeyboardEventWhenSelectIsOpen","event","isOpen","key","stopPropagation","baseClassName","host","viewWidth","SMALL_TABLET","navIcon","navIconPrev","onClick","data-testid","format","pickers","weight","density","div","picker","options","dropdownOffsetDistance","dropdownAutoWidth","icon","forceDropdownPortal","selectType","onInputKeyDown","slotProps","input","navIconNext"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/CalendarHeader/CalendarHeader.tsx"],"sourcesContent":["'use client';\n\nimport type { ChangeEvent } from 'react';\nimport * as React from 'react';\nimport {\n Icon12Dropdown,\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ViewWidth } from '../../lib/adaptivity';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, getMonths, getYears } from '../../lib/calendar';\nimport { addMonths, setMonth, setYear, subMonths } from '../../lib/date';\nimport { cacheDateTimeFormat } from '../../lib/intlCache';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { CustomSelect, type SelectProps } 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\nconst formatterDateTimeFormatOptions = {\n year: 'numeric',\n month: 'long',\n} as const;\n\nconst formatterDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nconst monthDateTimeFormatOptions = {\n month: 'long',\n} as const;\n\nconst monthDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nconst yearDateTimeFormatOptions = {\n year: 'numeric',\n} as const;\n\nconst yearDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\ntype ArrowMonthProps = Omit<React.AllHTMLAttributes<HTMLElement>, 'onClick' | 'aria-label'>;\n\nexport type CalendarHeaderTestsProps = {\n /**\n * Передает атрибут `data-testid` для дропдауна выбора месяца в заголовке календаря.\n */\n monthDropdownTestId?: string | ((monthIndex: number) => string) | undefined;\n /**\n * Передает атрибут `data-testid` для дропдауна выбора года в заголовке календаря.\n */\n yearDropdownTestId?: string | ((year: number) => string) | undefined;\n /**\n * Передает атрибут `data-testid` для кнопки перехода к следующему месяцу в заголовке календаря.\n */\n nextMonthButtonTestId?: string | undefined;\n /**\n * Передает атрибут `data-testid` для кнопки перехода к предыдущему месяцу в заголовке календаря.\n */\n prevMonthButtonTestId?: string | undefined;\n};\n\nexport interface CalendarHeaderProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n CalendarHeaderTestsProps {\n /**\n * Отображаемая дата.\n */\n viewDate: Date;\n /**\n * Скрывает иконку для переключения на предыдущий месяц.\n */\n prevMonthHidden?: boolean | undefined;\n /**\n * Скрывает иконку для переключения на следующий месяц.\n */\n nextMonthHidden?: boolean | undefined;\n /**\n * Отключает селекторы выбора месяца/года.\n */\n disablePickers?: boolean | undefined;\n /**\n * `aria-label` для кнопки предыдущего месяца.\n */\n prevMonthLabel?: string | undefined;\n /**\n * `aria-label` для кнопки следующего месяца.\n */\n nextMonthLabel?: string | undefined;\n /**\n * `aria-label` для селектора месяца.\n */\n changeMonthLabel?: string | undefined;\n /**\n * `aria-label` для селектора года.\n */\n changeYearLabel?: string | undefined;\n /**\n * Кастомная иконка для кнопки предыдущего месяца.\n */\n prevMonthIcon?: React.ReactNode | undefined;\n /**\n * Кастомная иконка для кнопки следующего месяца.\n */\n nextMonthIcon?: React.ReactNode | undefined;\n /**\n * Дополнительные свойства для кнопки предыдущего месяца.\n */\n prevMonthProps?: ArrowMonthProps | undefined;\n /**\n * Дополнительные свойства для кнопки следующего месяца.\n */\n nextMonthProps?: ArrowMonthProps | undefined;\n /**\n * Функция для проверки блокировки месяца.\n */\n isMonthDisabled?: ((monthNumber: number, year?: number) => boolean) | undefined;\n /**\n * Функция для проверки блокировки года.\n */\n isYearDisabled?: ((yearNumber: number) => boolean) | undefined;\n /**\n * Обработчик изменения отображаемой даты.\n */\n onChange: (viewDate: Date) => void;\n /**\n * Нажатие на кнопку переключения на следующий месяц.\n */\n onNextMonth?: (() => void) | undefined;\n /**\n * Нажатие на кнопку переключения на предыдущий месяц.\n */\n onPrevMonth?: (() => void) | undefined;\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 className={styles.navIconAccent} width={30} height={30} />\n ),\n nextMonthIcon = (\n <Icon20ChevronRightOutline className={styles.navIconAccent} width={30} height={30} />\n ),\n isMonthDisabled,\n isYearDisabled,\n monthDropdownTestId,\n yearDropdownTestId,\n prevMonthButtonTestId,\n nextMonthButtonTestId,\n ...restProps\n}: CalendarHeaderProps): React.ReactNode => {\n const { locale, direction } = useConfigProvider();\n\n const onMonthsChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setMonth(viewDate, Number(newValue))),\n [onChange, viewDate],\n );\n const onYearChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setYear(viewDate, Number(newValue))),\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.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 = formatterDateTimeFormat(locale, formatterDateTimeFormatOptions);\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 const stopPropogationOfEscapeKeyboardEventWhenSelectIsOpen = React.useCallback(\n (event: React.KeyboardEvent, isOpen: boolean) => {\n if (isOpen && event.key === 'Escape') {\n event.stopPropagation();\n }\n },\n [],\n );\n\n return (\n <RootComponent baseClassName={styles.host} {...restProps}>\n {!prevMonthHidden && (\n <AdaptivityProvider viewWidth={ViewWidth.SMALL_TABLET}>\n <Tappable\n baseClassName={classNames(styles.navIcon, styles.navIconPrev, prevMonthClassName)}\n onClick={onPrevMonth}\n data-testid={prevMonthButtonTestId}\n {...restPrevMonthProps}\n >\n <VisuallyHidden>\n {prevMonthLabel}, {formatter.format(subMonths(viewDate, 1))}\n </VisuallyHidden>\n {direction === 'ltr' ? prevMonthIcon : nextMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n {disablePickers ? (\n <Paragraph\n className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}\n weight=\"2\"\n >\n <span className={styles.month}>\n {monthDateTimeFormat(locale, monthDateTimeFormatOptions).format(viewDate)}\n </span>\n &nbsp;\n {yearDateTimeFormat(locale, yearDateTimeFormatOptions).format(viewDate)}\n </Paragraph>\n ) : (\n <AdaptivityProvider density=\"compact\">\n <div className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}>\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentMonth}\n options={months}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n onInputKeyDown={stopPropogationOfEscapeKeyboardEventWhenSelectIsOpen}\n slotProps={{\n input: {\n 'aria-label': changeMonthLabel,\n 'data-testid':\n typeof monthDropdownTestId === 'string'\n ? monthDropdownTestId\n : monthDropdownTestId?.(currentMonth),\n },\n }}\n />\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentYear}\n options={years}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n onInputKeyDown={stopPropogationOfEscapeKeyboardEventWhenSelectIsOpen}\n slotProps={{\n input: {\n 'aria-label': changeYearLabel,\n 'data-testid':\n typeof yearDropdownTestId === 'string'\n ? yearDropdownTestId\n : yearDropdownTestId?.(currentYear),\n },\n }}\n />\n </div>\n </AdaptivityProvider>\n )}\n {!nextMonthHidden && (\n <AdaptivityProvider viewWidth={ViewWidth.SMALL_TABLET}>\n <Tappable\n baseClassName={classNames(styles.navIcon, styles.navIconNext, nextMonthClassName)}\n onClick={onNextMonth}\n data-testid={nextMonthButtonTestId}\n {...restNextMonthProps}\n >\n <VisuallyHidden>\n {nextMonthLabel}, {formatter.format(addMonths(viewDate, 1))}\n </VisuallyHidden>\n {direction === 'ltr' ? nextMonthIcon : prevMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon12Dropdown","Icon20ChevronLeftOutline","Icon20ChevronRightOutline","classNames","ViewWidth","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","getMonths","getYears","addMonths","setMonth","setYear","subMonths","cacheDateTimeFormat","AdaptivityProvider","useConfigProvider","CustomSelect","RootComponent","Tappable","Paragraph","VisuallyHidden","styles","formatterDateTimeFormatOptions","year","month","formatterDateTimeFormat","monthDateTimeFormatOptions","monthDateTimeFormat","yearDateTimeFormatOptions","yearDateTimeFormat","CalendarHeader","viewDate","onChange","prevMonthHidden","prevMonthHiddenProp","nextMonthHidden","nextMonthHiddenProp","disablePickers","onNextMonth","onPrevMonth","prevMonthProps","nextMonthProps","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","prevMonthIcon","className","navIconAccent","width","height","nextMonthIcon","isMonthDisabled","isYearDisabled","monthDropdownTestId","yearDropdownTestId","prevMonthButtonTestId","nextMonthButtonTestId","restProps","locale","direction","onMonthsChange","useCallback","_","newValue","Number","onYearChange","currentYear","getFullYear","currentMonth","getMonth","months","useMemo","map","value","label","span","disabled","years","formatter","prevMonthClassName","restPrevMonthProps","nextMonthClassName","restNextMonthProps","Math","min","max","stopPropogationOfEscapeKeyboardEventWhenSelectIsOpen","event","isOpen","key","stopPropagation","baseClassName","host","viewWidth","SMALL_TABLET","navIcon","navIconPrev","onClick","data-testid","format","pickers","weight","density","div","picker","options","dropdownOffsetDistance","dropdownAutoWidth","icon","forceDropdownPortal","selectType","onInputKeyDown","slotProps","input","navIconNext"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { isSameDate } from '@vkontakte/vkjs';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { useCustomEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { isFirstDay, isLastDay } from '../../lib/calendar';\nimport {\n addMonths,\n endOfDay,\n isWithinInterval,\n MONDAY,\n startOfDay,\n subMonths,\n} from '../../lib/date';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport {\n CalendarDays,\n type CalendarDaysProps,\n type CalendarDaysTestsProps,\n} from '../CalendarDays/CalendarDays';\nimport {\n CalendarHeader,\n type CalendarHeaderProps,\n type CalendarHeaderTestsProps,\n} from '../CalendarHeader/CalendarHeader';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport type { DateRangeType } from './types';\nimport { useCalendarKeyboardNavigation, useIsDayFocusable } from './utils';\nimport styles from './CalendarRange.module.css';\n\nexport type { DateRangeType };\n\nexport type CalendarRangeTestsProps = CalendarDaysTestsProps & {\n /**\n * Передает атрибуты `data-testid` для интерактивных элементов в заголовке календаря в левой части.\n */\n leftPartHeaderTestsData?: CalendarHeaderTestsProps;\n /**\n * Передает атрибуты `data-testid` для интерактивных элементов в заголовке календаря в правой части.\n */\n rightPartHeaderTestsData?: CalendarHeaderTestsProps;\n};\n\nexport interface CalendarRangeProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange' | 'defaultValue'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n >,\n Pick<CalendarDaysProps, 'listenDayChangesForUpdate' | 'renderDayContent'>,\n CalendarRangeTestsProps {\n /**\n * Текущий выбранный промежуток.\n */\n value?: DateRangeType | null;\n /**\n * Начальный промежуток при монтировании.\n */\n defaultValue?: DateRangeType | null;\n /**\n * Запрещает выбор даты в прошлом.\n * Применяется, если не заданы `shouldDisableDate` и `disableFuture`.\n */\n disablePast?: boolean;\n /**\n * Запрещает выбор даты в будущем.\n * Применяется, если не задано `shouldDisableDate`.\n */\n disableFuture?: boolean;\n /**\n * Отключает селекторы выбора месяца/года.\n */\n disablePickers?: boolean;\n /**\n * `aria-label` для изменения дня.\n *\n * @deprecated Since 7.4.0. Будет удалeно в **VKUI v9**.\n *\n * Использовалось для задания aria-label для контейнера дней в календаре.\n * Теперь этот контейнер является таблицей (с помощью role=\"grid\") и\n * в aria-label рендерится текущий открытый в календаре месяц и год.\n */\n changeDayLabel?: string; // TODO [>=9]: удалить неиспользуемое свойство\n /**\n * День недели, с которого начинается неделя.\n */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * Обработчик изменения выбранного промежутка.\n */\n onChange?: (value: DateRangeType) => void;\n /**\n * Функция для проверки запрета выбора даты.\n */\n shouldDisableDate?: (value: Date) => boolean;\n /**\n * @deprecated Since 7.3.0. Будет удалeно в **VKUI v9**.\n */\n onClose?: () => void; // TODO [>=9]: удалить неиспользуемое свойство\n}\n\nconst getIsDaySelected = (day: Date, value?: DateRangeType | null) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return isWithinInterval(day, [startOfDay(value[0]), endOfDay(value[1])]);\n};\n\n/**\n * @see https://vkui.io/components/calendar-range\n */\nexport const CalendarRange = ({\n 'value': valueProp,\n defaultValue,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n weekStartsOn = MONDAY,\n disablePickers,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n 'aria-label': ariaLabel = 'Календарь',\n prevMonthIcon,\n nextMonthIcon,\n listenDayChangesForUpdate,\n renderDayContent,\n dayTestId,\n leftPartHeaderTestsData,\n rightPartHeaderTestsData,\n getRootRef,\n ...props\n}: CalendarRangeProps): React.ReactNode => {\n const _onChange = (newRange: DateRangeType | null) => {\n if (newRange && onChange) {\n onChange(newRange);\n }\n };\n\n const [value, updateValue] = useCustomEnsuredControl<DateRangeType | null>({\n value: valueProp,\n defaultValue: defaultValue as DateRangeType | null,\n onChange: _onChange,\n });\n\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n isMonthDisabled,\n isYearDisabled,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n\n const [hintedDate, setHintedDate] = React.useState<DateRangeType>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const {\n focusableDayOnFirstCalendar,\n focusableDayOnSecondCalendar,\n handleFirstCalendarKeyDown,\n handleSecondCalendarKeyDown,\n handleDayFocus,\n } = useCalendarKeyboardNavigation({\n focusedDay,\n setFocusedDay,\n value,\n viewDates: [viewDate, secondViewDate],\n setViewDate,\n });\n\n const getNewValue = React.useCallback(\n (date: Date): DateRangeType => {\n const isValueEmpty = !value || (value[0] === null && value[1] === null);\n const isRangeSelected = value && !!value[0] && !!value[1];\n if (isValueEmpty || isRangeSelected) {\n return [date, null];\n }\n\n const [start] = value;\n if (start && isSameDate(date, start)) {\n return [startOfDay(start), endOfDay(start)];\n } else if (start && date < start) {\n return [startOfDay(date), endOfDay(start)];\n } else if (start && date > start) {\n return [start, endOfDay(date)];\n }\n return value;\n },\n [value],\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n updateValue(getNewValue(date));\n setHintedDate(undefined);\n },\n [updateValue, 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(\n (value?.[0] && isSameDate(day, value[0])) || (value?.[1] && isSameDate(day, value[1])),\n ),\n [value],\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (value?.[1] && isSameDate(day, value[1]))),\n [value],\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (hintedDate?.[1] && isSameDate(day, hintedDate[1]))),\n [hintedDate],\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDate(day, value[0]))),\n [value],\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (hintedDate?.[0] && isSameDate(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 const isDayFocusableInFirstCalendar = useIsDayFocusable({\n value,\n focusableDayOnFirstCalendar,\n focusableDayOnSecondCalendar,\n viewDate,\n isDayActive,\n });\n\n const isDayFocusableInSecondCalendar = useIsDayFocusable({\n value,\n focusableDayOnFirstCalendar,\n focusableDayOnSecondCalendar,\n viewDate: secondViewDate,\n isDayActive,\n });\n\n const onDayFocus = React.useCallback(\n (date: Date) => {\n if (focusedDay && isSameDate(focusedDay, date)) {\n return;\n }\n\n setFocusedDay(date);\n handleDayFocus(date);\n },\n [focusedDay, handleDayFocus, setFocusedDay],\n );\n\n return (\n <RootComponent\n aria-label={ariaLabel}\n {...props}\n baseClassName={styles.host}\n getRootRef={getRootRef}\n >\n <div className={styles.inner}>\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonthHidden\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n className={styles.header}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n {...leftPartHeaderTestsData}\n />\n <CalendarDays\n viewDate={viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleFirstCalendarKeyDown}\n onDayFocus={onDayFocus}\n isDayFocused={isDayFocused}\n isDayFocusable={isDayFocusableInFirstCalendar}\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 renderDayContent={renderDayContent}\n dayTestId={dayTestId}\n />\n </div>\n <div className={styles.inner}>\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={onRightPartViewDateChange}\n prevMonthHidden\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n className={styles.header}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n nextMonthIcon={nextMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n {...rightPartHeaderTestsData}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleSecondCalendarKeyDown}\n onDayFocus={onDayFocus}\n isDayFocused={isDayFocused}\n isDayFocusable={isDayFocusableInSecondCalendar}\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 renderDayContent={renderDayContent}\n dayTestId={dayTestId}\n />\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","isSameDate","useCalendar","useCustomEnsuredControl","isFirstDay","isLastDay","addMonths","endOfDay","isWithinInterval","MONDAY","startOfDay","subMonths","CalendarDays","CalendarHeader","RootComponent","useCalendarKeyboardNavigation","useIsDayFocusable","styles","getIsDaySelected","day","value","CalendarRange","valueProp","defaultValue","onChange","disablePast","disableFuture","shouldDisableDate","weekStartsOn","disablePickers","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","ariaLabel","prevMonthIcon","nextMonthIcon","listenDayChangesForUpdate","renderDayContent","dayTestId","leftPartHeaderTestsData","rightPartHeaderTestsData","getRootRef","props","_onChange","newRange","updateValue","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","isMonthDisabled","isYearDisabled","hintedDate","setHintedDate","useState","secondViewDate","focusableDayOnFirstCalendar","focusableDayOnSecondCalendar","handleFirstCalendarKeyDown","handleSecondCalendarKeyDown","handleDayFocus","viewDates","getNewValue","useCallback","date","isValueEmpty","isRangeSelected","start","onDayChange","undefined","isDaySelected","isDayActive","Boolean","isDaySelectionEnd","dayOfWeek","isHintedDaySelectionEnd","isDaySelectionStart","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","onRightPartViewDateChange","newDate","isDayFocusableInFirstCalendar","isDayFocusableInSecondCalendar","onDayFocus","aria-label","baseClassName","host","div","className","inner","nextMonthHidden","onPrevMonth","header","onKeyDown","isDayFocusable","prevMonthHidden","onNextMonth"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { isSameDate } from '@vkontakte/vkjs';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { useCustomEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { isFirstDay, isLastDay } from '../../lib/calendar';\nimport {\n addMonths,\n endOfDay,\n isWithinInterval,\n MONDAY,\n startOfDay,\n subMonths,\n} from '../../lib/date';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport {\n CalendarDays,\n type CalendarDaysProps,\n type CalendarDaysTestsProps,\n} from '../CalendarDays/CalendarDays';\nimport {\n CalendarHeader,\n type CalendarHeaderProps,\n type CalendarHeaderTestsProps,\n} from '../CalendarHeader/CalendarHeader';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport type { DateRangeType } from './types';\nimport { useCalendarKeyboardNavigation, useIsDayFocusable } from './utils';\nimport styles from './CalendarRange.module.css';\n\nexport type { DateRangeType };\n\nexport type CalendarRangeTestsProps = CalendarDaysTestsProps & {\n /**\n * Передает атрибуты `data-testid` для интерактивных элементов в заголовке календаря в левой части.\n */\n leftPartHeaderTestsData?: CalendarHeaderTestsProps | undefined;\n /**\n * Передает атрибуты `data-testid` для интерактивных элементов в заголовке календаря в правой части.\n */\n rightPartHeaderTestsData?: CalendarHeaderTestsProps | undefined;\n};\n\nexport interface CalendarRangeProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange' | 'defaultValue'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n >,\n Pick<CalendarDaysProps, 'listenDayChangesForUpdate' | 'renderDayContent'>,\n CalendarRangeTestsProps {\n /**\n * Текущий выбранный промежуток.\n */\n value?: DateRangeType | null | undefined;\n /**\n * Начальный промежуток при монтировании.\n */\n defaultValue?: DateRangeType | null | undefined;\n /**\n * Запрещает выбор даты в прошлом.\n * Применяется, если не заданы `shouldDisableDate` и `disableFuture`.\n */\n disablePast?: boolean | undefined;\n /**\n * Запрещает выбор даты в будущем.\n * Применяется, если не задано `shouldDisableDate`.\n */\n disableFuture?: boolean | undefined;\n /**\n * Отключает селекторы выбора месяца/года.\n */\n disablePickers?: boolean | undefined;\n /**\n * `aria-label` для изменения дня.\n *\n * @deprecated Since 7.4.0. Будет удалeно в **VKUI v9**.\n *\n * Использовалось для задания aria-label для контейнера дней в календаре.\n * Теперь этот контейнер является таблицей (с помощью role=\"grid\") и\n * в aria-label рендерится текущий открытый в календаре месяц и год.\n */\n changeDayLabel?: string | undefined; // TODO [>=9]: удалить неиспользуемое свойство\n /**\n * День недели, с которого начинается неделя.\n */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined;\n /**\n * Обработчик изменения выбранного промежутка.\n */\n onChange?: ((value: DateRangeType) => void) | undefined;\n /**\n * Функция для проверки запрета выбора даты.\n */\n shouldDisableDate?: ((value: Date) => boolean) | undefined;\n /**\n * @deprecated Since 7.3.0. Будет удалeно в **VKUI v9**.\n */\n onClose?: (() => void) | undefined; // TODO [>=9]: удалить неиспользуемое свойство\n}\n\nconst getIsDaySelected = (day: Date, value?: DateRangeType | null) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return isWithinInterval(day, [startOfDay(value[0]), endOfDay(value[1])]);\n};\n\n/**\n * @see https://vkui.io/components/calendar-range\n */\nexport const CalendarRange = ({\n 'value': valueProp,\n defaultValue,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n weekStartsOn = MONDAY,\n disablePickers,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n 'aria-label': ariaLabel = 'Календарь',\n prevMonthIcon,\n nextMonthIcon,\n listenDayChangesForUpdate,\n renderDayContent,\n dayTestId,\n leftPartHeaderTestsData,\n rightPartHeaderTestsData,\n getRootRef,\n ...props\n}: CalendarRangeProps): React.ReactNode => {\n const _onChange = (newRange: DateRangeType | null) => {\n if (newRange && onChange) {\n onChange(newRange);\n }\n };\n\n const [value, updateValue] = useCustomEnsuredControl<DateRangeType | null>({\n value: valueProp,\n defaultValue: defaultValue as DateRangeType | null,\n onChange: _onChange,\n });\n\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n isMonthDisabled,\n isYearDisabled,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n\n const [hintedDate, setHintedDate] = React.useState<DateRangeType>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const {\n focusableDayOnFirstCalendar,\n focusableDayOnSecondCalendar,\n handleFirstCalendarKeyDown,\n handleSecondCalendarKeyDown,\n handleDayFocus,\n } = useCalendarKeyboardNavigation({\n focusedDay,\n setFocusedDay,\n value,\n viewDates: [viewDate, secondViewDate],\n setViewDate,\n });\n\n const getNewValue = React.useCallback(\n (date: Date): DateRangeType => {\n const isValueEmpty = !value || (value[0] === null && value[1] === null);\n const isRangeSelected = value && !!value[0] && !!value[1];\n if (isValueEmpty || isRangeSelected) {\n return [date, null];\n }\n\n const [start] = value;\n if (start && isSameDate(date, start)) {\n return [startOfDay(start), endOfDay(start)];\n } else if (start && date < start) {\n return [startOfDay(date), endOfDay(start)];\n } else if (start && date > start) {\n return [start, endOfDay(date)];\n }\n return value;\n },\n [value],\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n updateValue(getNewValue(date));\n setHintedDate(undefined);\n },\n [updateValue, 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(\n (value?.[0] && isSameDate(day, value[0])) || (value?.[1] && isSameDate(day, value[1])),\n ),\n [value],\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (value?.[1] && isSameDate(day, value[1]))),\n [value],\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (hintedDate?.[1] && isSameDate(day, hintedDate[1]))),\n [hintedDate],\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDate(day, value[0]))),\n [value],\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (hintedDate?.[0] && isSameDate(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 const isDayFocusableInFirstCalendar = useIsDayFocusable({\n value,\n focusableDayOnFirstCalendar,\n focusableDayOnSecondCalendar,\n viewDate,\n isDayActive,\n });\n\n const isDayFocusableInSecondCalendar = useIsDayFocusable({\n value,\n focusableDayOnFirstCalendar,\n focusableDayOnSecondCalendar,\n viewDate: secondViewDate,\n isDayActive,\n });\n\n const onDayFocus = React.useCallback(\n (date: Date) => {\n if (focusedDay && isSameDate(focusedDay, date)) {\n return;\n }\n\n setFocusedDay(date);\n handleDayFocus(date);\n },\n [focusedDay, handleDayFocus, setFocusedDay],\n );\n\n return (\n <RootComponent\n aria-label={ariaLabel}\n {...props}\n baseClassName={styles.host}\n getRootRef={getRootRef}\n >\n <div className={styles.inner}>\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonthHidden\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n className={styles.header}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n {...leftPartHeaderTestsData}\n />\n <CalendarDays\n viewDate={viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleFirstCalendarKeyDown}\n onDayFocus={onDayFocus}\n isDayFocused={isDayFocused}\n isDayFocusable={isDayFocusableInFirstCalendar}\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 renderDayContent={renderDayContent}\n dayTestId={dayTestId}\n />\n </div>\n <div className={styles.inner}>\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={onRightPartViewDateChange}\n prevMonthHidden\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n className={styles.header}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n nextMonthIcon={nextMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n {...rightPartHeaderTestsData}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleSecondCalendarKeyDown}\n onDayFocus={onDayFocus}\n isDayFocused={isDayFocused}\n isDayFocusable={isDayFocusableInSecondCalendar}\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 renderDayContent={renderDayContent}\n dayTestId={dayTestId}\n />\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","isSameDate","useCalendar","useCustomEnsuredControl","isFirstDay","isLastDay","addMonths","endOfDay","isWithinInterval","MONDAY","startOfDay","subMonths","CalendarDays","CalendarHeader","RootComponent","useCalendarKeyboardNavigation","useIsDayFocusable","styles","getIsDaySelected","day","value","CalendarRange","valueProp","defaultValue","onChange","disablePast","disableFuture","shouldDisableDate","weekStartsOn","disablePickers","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","ariaLabel","prevMonthIcon","nextMonthIcon","listenDayChangesForUpdate","renderDayContent","dayTestId","leftPartHeaderTestsData","rightPartHeaderTestsData","getRootRef","props","_onChange","newRange","updateValue","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","isMonthDisabled","isYearDisabled","hintedDate","setHintedDate","useState","secondViewDate","focusableDayOnFirstCalendar","focusableDayOnSecondCalendar","handleFirstCalendarKeyDown","handleSecondCalendarKeyDown","handleDayFocus","viewDates","getNewValue","useCallback","date","isValueEmpty","isRangeSelected","start","onDayChange","undefined","isDaySelected","isDayActive","Boolean","isDaySelectionEnd","dayOfWeek","isHintedDaySelectionEnd","isDaySelectionStart","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","onRightPartViewDateChange","newDate","isDayFocusableInFirstCalendar","isDayFocusableInSecondCalendar","onDayFocus","aria-label","baseClassName","host","div","className","inner","nextMonthHidden","onPrevMonth","header","onKeyDown","isDayFocusable","prevMonthHidden","onNextMonth"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CalendarTime/CalendarTime.tsx"],"sourcesContent":["'use client';\n\nimport { useRef } from 'react';\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Keys, pressedKey } from '../../lib/accessibility';\nimport { setHours, setMinutes } from '../../lib/date';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { Button, type ButtonProps } from '../Button/Button';\nimport { CalendarTimePicker } from './CalendarTimePicker';\nimport styles from './CalendarTime.module.css';\n\nexport type CalendarTimeTestsProps = {\n /**\n * Передает атрибут `data-testid` для дропдауна выбора часа в календаре.\n */\n hoursTestId?: string;\n /**\n * Передает атрибут `data-testid` для дропдауна выбора минут в календаре.\n */\n minutesTestId?: string;\n /**\n * Передает атрибут `data-testid` для кнопки \"Готово\" в календаре.\n */\n doneButtonTestId?: string;\n};\n\nexport type CalendarDoneButtonProps = {\n /**\n * Кастомное отображение кнопки `\"Done\"`.\n */\n DoneButton?: React.ComponentType<ButtonProps>;\n /**\n * Текст отображаемый в кнопке `\"Done\"`.\n */\n doneButtonText?: string;\n /**\n * Управление отображением кнопки `\"Done\"`.\n */\n doneButtonShow?: boolean;\n /**\n * Блокировка взаимодействия с кнопкой \"Done\".\n */\n doneButtonDisabled?: boolean;\n /**\n * Обработки нажатия на кнопку `\"Done\"`.\n */\n onDoneButtonClick?: () => void;\n};\n\nexport interface CalendarTimeProps extends CalendarTimeTestsProps, CalendarDoneButtonProps {\n /**\n * Отображаемая дата.\n */\n value: Date;\n /**\n * Текст выпадающего списка с выбором часов. Делает его доступным для ассистивных технологий.\n */\n changeHoursLabel?: string;\n /**\n * Текст выпадающего списка с выбором минут. Делает его доступным для ассистивных технологий.\n */\n changeMinutesLabel?: string;\n /**\n * Обработчик изменения времени.\n */\n onChange?: (value: Date) => void;\n /**\n * Функция установки часа (для таймзонно-зависимого календаря).\n */\n setHours?: (date: Date, hours: number) => Date;\n /**\n * Функция установки минут (для таймзонно-зависимого календаря).\n */\n setMinutes?: (date: Date, minutes: number) => Date;\n /**\n * Функция для проверки блокировки выбора даты и времени.\n */\n isDayDisabled?: (day: Date, withTime?: boolean) => boolean;\n}\n\nconst hours: Array<{\n value: number;\n label: string;\n}> = [];\nfor (let i = 0; i < 24; i += 1) {\n hours.push({ value: i, label: String(i).padStart(2, '0') });\n}\n\nconst minutes: Array<{\n value: number;\n label: string;\n}> = [];\nfor (let i = 0; i < 60; i += 1) {\n minutes.push({ value: i, label: String(i).padStart(2, '0') });\n}\n\nexport const CalendarTime = ({\n value,\n onChange,\n onDoneButtonClick,\n changeHoursLabel,\n changeMinutesLabel,\n setHours: setHoursFn = setHours,\n setMinutes: setMinutesFn = setMinutes,\n isDayDisabled,\n doneButtonText = 'Готово',\n doneButtonDisabled = false,\n doneButtonShow = true,\n minutesTestId,\n hoursTestId,\n doneButtonTestId,\n DoneButton,\n}: CalendarTimeProps): React.ReactNode => {\n const hoursInputRef = useRef<HTMLInputElement | null>(null);\n const minutesInputRef = useRef<HTMLInputElement | null>(null);\n const doneButtonRef = useRef<HTMLButtonElement | null>(null);\n\n const localHours = isDayDisabled\n ? hours.map((hour) => {\n return { ...hour, disabled: isDayDisabled(setHoursFn(value, hour.value), true) };\n })\n : hours;\n\n const localMinutes = isDayDisabled\n ? minutes.map((minute) => {\n return { ...minute, disabled: isDayDisabled(setMinutesFn(value, minute.value), true) };\n })\n : minutes;\n\n const onPickerKeyDown = (e: React.KeyboardEvent) => {\n const key = pressedKey(e);\n /* Мы хотим иметь возможность быстро, по Enter перемещаться между\n * селектами с часами и минутами, также как мы это делаем по нажатию на Tab */\n if (key !== Keys.ENTER) {\n return;\n }\n\n const steps = [hoursInputRef, minutesInputRef, doneButtonRef].filter((ref) =>\n Boolean(ref.current),\n );\n const currentStepIndex = steps.findIndex((step) => step.current === e.target);\n const nextStepIndex = currentStepIndex + 1;\n if (nextStepIndex >= steps.length) {\n return;\n }\n const nextStep = steps[nextStepIndex];\n\n if (nextStep.current) {\n e.preventDefault();\n nextStep.current?.focus();\n }\n };\n\n const stopPropagationOfEscapeKeyboardEventWhenSelectIsOpen = React.useCallback(\n (event: React.KeyboardEvent, isOpen: boolean) => {\n if (isOpen && event.key === 'Escape') {\n event.stopPropagation();\n }\n },\n [],\n );\n\n const onSelectInputKeyDown = (e: React.KeyboardEvent, isOpen: boolean) => {\n onPickerKeyDown(e);\n stopPropagationOfEscapeKeyboardEventWhenSelectIsOpen(e, isOpen);\n };\n\n const renderDoneButton = () => {\n const ButtonComponent = DoneButton ?? Button;\n return (\n <ButtonComponent\n mode=\"secondary\"\n onClick={onDoneButtonClick}\n size=\"l\"\n getRootRef={doneButtonRef}\n onKeyDown={onPickerKeyDown}\n disabled={doneButtonDisabled}\n data-testid={doneButtonTestId}\n >\n {doneButtonText}\n </ButtonComponent>\n );\n };\n\n return (\n <div className={classNames(styles.host, !doneButtonShow && styles.host__withoutDone)}>\n <CalendarTimePicker\n value={value}\n getNumericValue={(v) => v.getHours()}\n onChange={onChange}\n options={localHours}\n setTime={setHoursFn}\n onInputKeyDown={onSelectInputKeyDown}\n inputRef={hoursInputRef}\n inputLabel={changeHoursLabel}\n inputTestId={hoursTestId}\n />\n <div className={styles.divider}>:</div>\n <CalendarTimePicker\n value={value}\n getNumericValue={(v) => v.getMinutes()}\n onChange={onChange}\n options={localMinutes}\n setTime={setMinutesFn}\n onInputKeyDown={onSelectInputKeyDown}\n inputRef={minutesInputRef}\n inputLabel={changeMinutesLabel}\n inputTestId={minutesTestId}\n />\n {doneButtonShow && (\n <div className={styles.button}>\n <AdaptivityProvider density=\"compact\">{renderDoneButton()}</AdaptivityProvider>\n </div>\n )}\n </div>\n );\n};\n"],"names":["useRef","React","classNames","Keys","pressedKey","setHours","setMinutes","AdaptivityProvider","Button","CalendarTimePicker","styles","hours","i","push","value","label","String","padStart","minutes","CalendarTime","onChange","onDoneButtonClick","changeHoursLabel","changeMinutesLabel","setHoursFn","setMinutesFn","isDayDisabled","doneButtonText","doneButtonDisabled","doneButtonShow","minutesTestId","hoursTestId","doneButtonTestId","DoneButton","hoursInputRef","minutesInputRef","doneButtonRef","localHours","map","hour","disabled","localMinutes","minute","onPickerKeyDown","e","key","ENTER","steps","filter","ref","Boolean","current","currentStepIndex","findIndex","step","target","nextStepIndex","length","nextStep","preventDefault","focus","stopPropagationOfEscapeKeyboardEventWhenSelectIsOpen","useCallback","event","isOpen","stopPropagation","onSelectInputKeyDown","renderDoneButton","ButtonComponent","mode","onClick","size","getRootRef","onKeyDown","data-testid","div","className","host","host__withoutDone","getNumericValue","v","getHours","options","setTime","onInputKeyDown","inputRef","inputLabel","inputTestId","divider","getMinutes","button","density"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/CalendarTime/CalendarTime.tsx"],"sourcesContent":["'use client';\n\nimport { useRef } from 'react';\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Keys, pressedKey } from '../../lib/accessibility';\nimport { setHours, setMinutes } from '../../lib/date';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { Button, type ButtonProps } from '../Button/Button';\nimport { CalendarTimePicker } from './CalendarTimePicker';\nimport styles from './CalendarTime.module.css';\n\nexport type CalendarTimeTestsProps = {\n /**\n * Передает атрибут `data-testid` для дропдауна выбора часа в календаре.\n */\n hoursTestId?: string | undefined;\n /**\n * Передает атрибут `data-testid` для дропдауна выбора минут в календаре.\n */\n minutesTestId?: string | undefined;\n /**\n * Передает атрибут `data-testid` для кнопки \"Готово\" в календаре.\n */\n doneButtonTestId?: string | undefined;\n};\n\nexport type CalendarDoneButtonProps = {\n /**\n * Кастомное отображение кнопки `\"Done\"`.\n */\n DoneButton?: React.ComponentType<ButtonProps> | undefined;\n /**\n * Текст отображаемый в кнопке `\"Done\"`.\n */\n doneButtonText?: string | undefined;\n /**\n * Управление отображением кнопки `\"Done\"`.\n */\n doneButtonShow?: boolean | undefined;\n /**\n * Блокировка взаимодействия с кнопкой \"Done\".\n */\n doneButtonDisabled?: boolean | undefined;\n /**\n * Обработки нажатия на кнопку `\"Done\"`.\n */\n onDoneButtonClick?: (() => void) | undefined;\n};\n\nexport interface CalendarTimeProps extends CalendarTimeTestsProps, CalendarDoneButtonProps {\n /**\n * Отображаемая дата.\n */\n value: Date;\n /**\n * Текст выпадающего списка с выбором часов. Делает его доступным для ассистивных технологий.\n */\n changeHoursLabel?: string | undefined;\n /**\n * Текст выпадающего списка с выбором минут. Делает его доступным для ассистивных технологий.\n */\n changeMinutesLabel?: string | undefined;\n /**\n * Обработчик изменения времени.\n */\n onChange?: ((value: Date) => void) | undefined;\n /**\n * Функция установки часа (для таймзонно-зависимого календаря).\n */\n setHours?: ((date: Date, hours: number) => Date) | undefined;\n /**\n * Функция установки минут (для таймзонно-зависимого календаря).\n */\n setMinutes?: ((date: Date, minutes: number) => Date) | undefined;\n /**\n * Функция для проверки блокировки выбора даты и времени.\n */\n isDayDisabled?: ((day: Date, withTime?: boolean) => boolean) | undefined;\n}\n\nconst hours: Array<{\n value: number;\n label: string;\n}> = [];\nfor (let i = 0; i < 24; i += 1) {\n hours.push({ value: i, label: String(i).padStart(2, '0') });\n}\n\nconst minutes: Array<{\n value: number;\n label: string;\n}> = [];\nfor (let i = 0; i < 60; i += 1) {\n minutes.push({ value: i, label: String(i).padStart(2, '0') });\n}\n\nexport const CalendarTime = ({\n value,\n onChange,\n onDoneButtonClick,\n changeHoursLabel,\n changeMinutesLabel,\n setHours: setHoursFn = setHours,\n setMinutes: setMinutesFn = setMinutes,\n isDayDisabled,\n doneButtonText = 'Готово',\n doneButtonDisabled = false,\n doneButtonShow = true,\n minutesTestId,\n hoursTestId,\n doneButtonTestId,\n DoneButton,\n}: CalendarTimeProps): React.ReactNode => {\n const hoursInputRef = useRef<HTMLInputElement | null>(null);\n const minutesInputRef = useRef<HTMLInputElement | null>(null);\n const doneButtonRef = useRef<HTMLButtonElement | null>(null);\n\n const localHours = isDayDisabled\n ? hours.map((hour) => {\n return { ...hour, disabled: isDayDisabled(setHoursFn(value, hour.value), true) };\n })\n : hours;\n\n const localMinutes = isDayDisabled\n ? minutes.map((minute) => {\n return { ...minute, disabled: isDayDisabled(setMinutesFn(value, minute.value), true) };\n })\n : minutes;\n\n const onPickerKeyDown = (e: React.KeyboardEvent) => {\n const key = pressedKey(e);\n /* Мы хотим иметь возможность быстро, по Enter перемещаться между\n * селектами с часами и минутами, также как мы это делаем по нажатию на Tab */\n if (key !== Keys.ENTER) {\n return;\n }\n\n const steps = [hoursInputRef, minutesInputRef, doneButtonRef].filter((ref) =>\n Boolean(ref.current),\n );\n const currentStepIndex = steps.findIndex((step) => step.current === e.target);\n const nextStepIndex = currentStepIndex + 1;\n if (nextStepIndex >= steps.length) {\n return;\n }\n const nextStep = steps[nextStepIndex];\n\n if (nextStep.current) {\n e.preventDefault();\n nextStep.current?.focus();\n }\n };\n\n const stopPropagationOfEscapeKeyboardEventWhenSelectIsOpen = React.useCallback(\n (event: React.KeyboardEvent, isOpen: boolean) => {\n if (isOpen && event.key === 'Escape') {\n event.stopPropagation();\n }\n },\n [],\n );\n\n const onSelectInputKeyDown = (e: React.KeyboardEvent, isOpen: boolean) => {\n onPickerKeyDown(e);\n stopPropagationOfEscapeKeyboardEventWhenSelectIsOpen(e, isOpen);\n };\n\n const renderDoneButton = () => {\n const ButtonComponent = DoneButton ?? Button;\n return (\n <ButtonComponent\n mode=\"secondary\"\n onClick={onDoneButtonClick}\n size=\"l\"\n getRootRef={doneButtonRef}\n onKeyDown={onPickerKeyDown}\n disabled={doneButtonDisabled}\n data-testid={doneButtonTestId}\n >\n {doneButtonText}\n </ButtonComponent>\n );\n };\n\n return (\n <div className={classNames(styles.host, !doneButtonShow && styles.host__withoutDone)}>\n <CalendarTimePicker\n value={value}\n getNumericValue={(v) => v.getHours()}\n onChange={onChange}\n options={localHours}\n setTime={setHoursFn}\n onInputKeyDown={onSelectInputKeyDown}\n inputRef={hoursInputRef}\n inputLabel={changeHoursLabel}\n inputTestId={hoursTestId}\n />\n <div className={styles.divider}>:</div>\n <CalendarTimePicker\n value={value}\n getNumericValue={(v) => v.getMinutes()}\n onChange={onChange}\n options={localMinutes}\n setTime={setMinutesFn}\n onInputKeyDown={onSelectInputKeyDown}\n inputRef={minutesInputRef}\n inputLabel={changeMinutesLabel}\n inputTestId={minutesTestId}\n />\n {doneButtonShow && (\n <div className={styles.button}>\n <AdaptivityProvider density=\"compact\">{renderDoneButton()}</AdaptivityProvider>\n </div>\n )}\n </div>\n );\n};\n"],"names":["useRef","React","classNames","Keys","pressedKey","setHours","setMinutes","AdaptivityProvider","Button","CalendarTimePicker","styles","hours","i","push","value","label","String","padStart","minutes","CalendarTime","onChange","onDoneButtonClick","changeHoursLabel","changeMinutesLabel","setHoursFn","setMinutesFn","isDayDisabled","doneButtonText","doneButtonDisabled","doneButtonShow","minutesTestId","hoursTestId","doneButtonTestId","DoneButton","hoursInputRef","minutesInputRef","doneButtonRef","localHours","map","hour","disabled","localMinutes","minute","onPickerKeyDown","e","key","ENTER","steps","filter","ref","Boolean","current","currentStepIndex","findIndex","step","target","nextStepIndex","length","nextStep","preventDefault","focus","stopPropagationOfEscapeKeyboardEventWhenSelectIsOpen","useCallback","event","isOpen","stopPropagation","onSelectInputKeyDown","renderDoneButton","ButtonComponent","mode","onClick","size","getRootRef","onKeyDown","data-testid","div","className","host","host__withoutDone","getNumericValue","v","getHours","options","setTime","onInputKeyDown","inputRef","inputLabel","inputTestId","divider","getMinutes","button","density"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CalendarTime/CalendarTimePicker.tsx"],"sourcesContent":["'use client';\n\nimport { type ChangeEvent, useState } from 'react';\nimport * as React from 'react';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { CustomSelect, type SelectProps } from '../CustomSelect/CustomSelect';\nimport { CustomSelectOption } from '../CustomSelectOption/CustomSelectOption';\nimport styles from './CalendarTime.module.css';\n\nconst selectFilterFn = () => true;\n\nconst validateValue = (\n value: string,\n validValues: Array<{\n value: number;\n label: string;\n }>,\n): boolean => {\n const numValue = Number(value);\n return !isNaN(numValue) && validValues.some((v) => v.value === numValue);\n};\n\n/* eslint-disable jsdoc/require-jsdoc */\ninterface CalendarTimePickerProps extends Pick<SelectProps, 'onInputKeyDown'> {\n value: Date;\n getNumericValue: (date: Date) => number;\n options: Array<{\n value: number;\n label: string;\n }>;\n onChange?: (value: Date) => void;\n setTime: (value: Date, time: number) => Date;\n inputRef: React.Ref<HTMLInputElement>;\n inputLabel?: string;\n inputTestId?: string;\n}\n/* eslint-enable jsdoc/require-jsdoc */\n\nexport const CalendarTimePicker = ({\n value,\n getNumericValue,\n options,\n onChange,\n setTime,\n inputRef,\n inputLabel,\n inputTestId,\n onInputKeyDown,\n}: CalendarTimePickerProps) => {\n const [inputValue, setInputValue] = useState<string | undefined>(undefined);\n\n const onBlur = React.useCallback(() => {\n setInputValue(undefined);\n }, []);\n\n const _onChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange?.(setTime(value, Number(newValue))),\n [onChange, setTime, value],\n );\n\n const onPickerValueChange = (e: ChangeEvent<HTMLInputElement>) => {\n const numericValue = e.target.value.replace(/\\D/g, '');\n setInputValue(numericValue);\n if (validateValue(numericValue, options)) {\n onChange?.(setTime(value, Number(numericValue)));\n }\n };\n\n return (\n <div className={styles.picker}>\n <AdaptivityProvider density=\"compact\">\n <CustomSelect\n value={getNumericValue(value)}\n options={options}\n onChange={_onChange}\n forceDropdownPortal={false}\n searchable\n filterFn={selectFilterFn}\n onInputChange={onPickerValueChange}\n onInputKeyDown={onInputKeyDown}\n renderOption={({ children: optionChildren, ...optionProps }) => (\n <CustomSelectOption {...optionProps} textNoWrap>\n {optionChildren}\n </CustomSelectOption>\n )}\n slotProps={{\n input: {\n 'aria-label': inputLabel,\n 'data-testid': inputTestId,\n 'value': inputValue,\n 'getRootRef': inputRef,\n onBlur,\n },\n }}\n />\n </AdaptivityProvider>\n </div>\n );\n};\n"],"names":["useState","React","AdaptivityProvider","CustomSelect","CustomSelectOption","styles","selectFilterFn","validateValue","value","validValues","numValue","Number","isNaN","some","v","CalendarTimePicker","getNumericValue","options","onChange","setTime","inputRef","inputLabel","inputTestId","onInputKeyDown","inputValue","setInputValue","undefined","onBlur","useCallback","_onChange","_","newValue","onPickerValueChange","e","numericValue","target","replace","div","className","picker","density","forceDropdownPortal","searchable","filterFn","onInputChange","renderOption","children","optionChildren","optionProps","textNoWrap","slotProps","input"],"mappings":"AAAA;;AAEA,SAA2BA,QAAQ,QAAQ,QAAQ;AACnD,YAAYC,WAAW,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ,8CAA2C;AAC9E,SAASC,YAAY,QAA0B,kCAA+B;AAC9E,SAASC,kBAAkB,QAAQ,8CAA2C;AAC9E,OAAOC,YAAY,4BAA4B;AAE/C,MAAMC,iBAAiB,IAAM;AAE7B,MAAMC,gBAAgB,CACpBC,OACAC;IAKA,MAAMC,WAAWC,OAAOH;IACxB,OAAO,CAACI,MAAMF,aAAaD,YAAYI,IAAI,CAAC,CAACC,IAAMA,EAAEN,KAAK,KAAKE;AACjE;AAgBA,qCAAqC,GAErC,OAAO,MAAMK,qBAAqB,CAAC,EACjCP,KAAK,EACLQ,eAAe,EACfC,OAAO,EACPC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,cAAc,EACU;IACxB,MAAM,CAACC,YAAYC,cAAc,GAAGzB,SAA6B0B;IAEjE,MAAMC,SAAS1B,MAAM2B,WAAW,CAAC;QAC/BH,cAAcC;IAChB,GAAG,EAAE;IAEL,MAAMG,YAAY5B,MAAM2B,WAAW,CACjC,CAACE,GAAmCC,WAClCb,WAAWC,QAAQX,OAAOG,OAAOoB,aACnC;QAACb;QAAUC;QAASX;KAAM;IAG5B,MAAMwB,sBAAsB,CAACC;QAC3B,MAAMC,eAAeD,EAAEE,MAAM,CAAC3B,KAAK,CAAC4B,OAAO,CAAC,OAAO;QACnDX,cAAcS;QACd,IAAI3B,cAAc2B,cAAcjB,UAAU;YACxCC,WAAWC,QAAQX,OAAOG,OAAOuB;QACnC;IACF;IAEA,qBACE,KAACG;QAAIC,WAAWjC,OAAOkC,MAAM;kBAC3B,cAAA,KAACrC;YAAmBsC,SAAQ;sBAC1B,cAAA,KAACrC;gBACCK,OAAOQ,gBAAgBR;gBACvBS,SAASA;gBACTC,UAAUW;gBACVY,qBAAqB;gBACrBC,UAAU;gBACVC,UAAUrC;gBACVsC,eAAeZ;gBACfT,gBAAgBA;gBAChBsB,cAAc,CAAC,EAAEC,UAAUC,cAAc,EAAE,GAAGC,aAAa,iBACzD,KAAC5C;wBAAoB,GAAG4C,WAAW;wBAAEC,UAAU;kCAC5CF;;gBAGLG,WAAW;oBACTC,OAAO;wBACL,cAAc9B;wBACd,eAAeC;wBACf,SAASE;wBACT,cAAcJ;wBACdO;oBACF;gBACF;;;;AAKV,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/CalendarTime/CalendarTimePicker.tsx"],"sourcesContent":["'use client';\n\nimport { type ChangeEvent, useState } from 'react';\nimport * as React from 'react';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { CustomSelect, type SelectProps } from '../CustomSelect/CustomSelect';\nimport { CustomSelectOption } from '../CustomSelectOption/CustomSelectOption';\nimport styles from './CalendarTime.module.css';\n\nconst selectFilterFn = () => true;\n\nconst validateValue = (\n value: string,\n validValues: Array<{\n value: number;\n label: string;\n }>,\n): boolean => {\n const numValue = Number(value);\n return !isNaN(numValue) && validValues.some((v) => v.value === numValue);\n};\n\n/* eslint-disable jsdoc/require-jsdoc */\ninterface CalendarTimePickerProps extends Pick<SelectProps, 'onInputKeyDown'> {\n value: Date;\n getNumericValue: (date: Date) => number;\n options: Array<{\n value: number;\n label: string;\n }>;\n onChange?: ((value: Date) => void) | undefined;\n setTime: (value: Date, time: number) => Date;\n inputRef: React.Ref<HTMLInputElement>;\n inputLabel?: string | undefined;\n inputTestId?: string | undefined;\n}\n/* eslint-enable jsdoc/require-jsdoc */\n\nexport const CalendarTimePicker = ({\n value,\n getNumericValue,\n options,\n onChange,\n setTime,\n inputRef,\n inputLabel,\n inputTestId,\n onInputKeyDown,\n}: CalendarTimePickerProps) => {\n const [inputValue, setInputValue] = useState<string | undefined>(undefined);\n\n const onBlur = React.useCallback(() => {\n setInputValue(undefined);\n }, []);\n\n const _onChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange?.(setTime(value, Number(newValue))),\n [onChange, setTime, value],\n );\n\n const onPickerValueChange = (e: ChangeEvent<HTMLInputElement>) => {\n const numericValue = e.target.value.replace(/\\D/g, '');\n setInputValue(numericValue);\n if (validateValue(numericValue, options)) {\n onChange?.(setTime(value, Number(numericValue)));\n }\n };\n\n return (\n <div className={styles.picker}>\n <AdaptivityProvider density=\"compact\">\n <CustomSelect\n value={getNumericValue(value)}\n options={options}\n onChange={_onChange}\n forceDropdownPortal={false}\n searchable\n filterFn={selectFilterFn}\n onInputChange={onPickerValueChange}\n onInputKeyDown={onInputKeyDown}\n renderOption={({ children: optionChildren, ...optionProps }) => (\n <CustomSelectOption {...optionProps} textNoWrap>\n {optionChildren}\n </CustomSelectOption>\n )}\n slotProps={{\n input: {\n 'aria-label': inputLabel,\n 'data-testid': inputTestId,\n 'value': inputValue,\n 'getRootRef': inputRef,\n onBlur,\n },\n }}\n />\n </AdaptivityProvider>\n </div>\n );\n};\n"],"names":["useState","React","AdaptivityProvider","CustomSelect","CustomSelectOption","styles","selectFilterFn","validateValue","value","validValues","numValue","Number","isNaN","some","v","CalendarTimePicker","getNumericValue","options","onChange","setTime","inputRef","inputLabel","inputTestId","onInputKeyDown","inputValue","setInputValue","undefined","onBlur","useCallback","_onChange","_","newValue","onPickerValueChange","e","numericValue","target","replace","div","className","picker","density","forceDropdownPortal","searchable","filterFn","onInputChange","renderOption","children","optionChildren","optionProps","textNoWrap","slotProps","input"],"mappings":"AAAA;;AAEA,SAA2BA,QAAQ,QAAQ,QAAQ;AACnD,YAAYC,WAAW,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ,8CAA2C;AAC9E,SAASC,YAAY,QAA0B,kCAA+B;AAC9E,SAASC,kBAAkB,QAAQ,8CAA2C;AAC9E,OAAOC,YAAY,4BAA4B;AAE/C,MAAMC,iBAAiB,IAAM;AAE7B,MAAMC,gBAAgB,CACpBC,OACAC;IAKA,MAAMC,WAAWC,OAAOH;IACxB,OAAO,CAACI,MAAMF,aAAaD,YAAYI,IAAI,CAAC,CAACC,IAAMA,EAAEN,KAAK,KAAKE;AACjE;AAgBA,qCAAqC,GAErC,OAAO,MAAMK,qBAAqB,CAAC,EACjCP,KAAK,EACLQ,eAAe,EACfC,OAAO,EACPC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,cAAc,EACU;IACxB,MAAM,CAACC,YAAYC,cAAc,GAAGzB,SAA6B0B;IAEjE,MAAMC,SAAS1B,MAAM2B,WAAW,CAAC;QAC/BH,cAAcC;IAChB,GAAG,EAAE;IAEL,MAAMG,YAAY5B,MAAM2B,WAAW,CACjC,CAACE,GAAmCC,WAClCb,WAAWC,QAAQX,OAAOG,OAAOoB,aACnC;QAACb;QAAUC;QAASX;KAAM;IAG5B,MAAMwB,sBAAsB,CAACC;QAC3B,MAAMC,eAAeD,EAAEE,MAAM,CAAC3B,KAAK,CAAC4B,OAAO,CAAC,OAAO;QACnDX,cAAcS;QACd,IAAI3B,cAAc2B,cAAcjB,UAAU;YACxCC,WAAWC,QAAQX,OAAOG,OAAOuB;QACnC;IACF;IAEA,qBACE,KAACG;QAAIC,WAAWjC,OAAOkC,MAAM;kBAC3B,cAAA,KAACrC;YAAmBsC,SAAQ;sBAC1B,cAAA,KAACrC;gBACCK,OAAOQ,gBAAgBR;gBACvBS,SAASA;gBACTC,UAAUW;gBACVY,qBAAqB;gBACrBC,UAAU;gBACVC,UAAUrC;gBACVsC,eAAeZ;gBACfT,gBAAgBA;gBAChBsB,cAAc,CAAC,EAAEC,UAAUC,cAAc,EAAE,GAAGC,aAAa,iBACzD,KAAC5C;wBAAoB,GAAG4C,WAAW;wBAAEC,UAAU;kCAC5CF;;gBAGLG,WAAW;oBACTC,OAAO;wBACL,cAAc9B;wBACd,eAAeC;wBACf,SAASE;wBACT,cAAcJ;wBACdO;oBACF;gBACF;;;;AAKV,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Card.module.css';\n\nexport interface CardProps extends HTMLAttributesWithRootRef<HTMLDivElement>, HasComponent {\n /**\n * Внешний вид карточки.\n */\n mode?: 'tint' | 'shadow' | 'outline' | 'outline-tint' | 'plain';\n}\n\n/**\n * @see https://vkui.io/components/card\n */\nexport const Card = ({\n mode = 'tint',\n Component = 'li',\n ...restProps\n}: CardProps): React.ReactNode => {\n const withBorder = mode === 'outline' || mode === 'outline-tint';\n return (\n <RootComponent\n {...restProps}\n Component={Component}\n baseClassName={classNames(\n styles.host,\n mode === 'outline' && styles.modeOutline,\n mode === 'shadow' && styles.modeShadow,\n mode === 'plain' && styles.modePlain,\n withBorder && styles.withBorder,\n )}\n />\n );\n};\n"],"names":["classNames","RootComponent","styles","Card","mode","Component","restProps","withBorder","baseClassName","host","modeOutline","modeShadow","modePlain"],"mappings":";AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,oBAAoB;AASvC;;CAEC,GACD,OAAO,MAAMC,OAAO,CAAC,EACnBC,OAAO,MAAM,EACbC,YAAY,IAAI,EAChB,GAAGC,WACO;IACV,MAAMC,aAAaH,SAAS,aAAaA,SAAS;IAClD,qBACE,KAACH;QACE,GAAGK,SAAS;QACbD,WAAWA;QACXG,eAAeR,WACbE,OAAOO,IAAI,EACXL,SAAS,aAAaF,OAAOQ,WAAW,EACxCN,SAAS,YAAYF,OAAOS,UAAU,EACtCP,SAAS,WAAWF,OAAOU,SAAS,EACpCL,cAAcL,OAAOK,UAAU;;AAIvC,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Card.module.css';\n\nexport interface CardProps extends HTMLAttributesWithRootRef<HTMLDivElement>, HasComponent {\n /**\n * Внешний вид карточки.\n */\n mode?: 'tint' | 'shadow' | 'outline' | 'outline-tint' | 'plain' | undefined;\n}\n\n/**\n * @see https://vkui.io/components/card\n */\nexport const Card = ({\n mode = 'tint',\n Component = 'li',\n ...restProps\n}: CardProps): React.ReactNode => {\n const withBorder = mode === 'outline' || mode === 'outline-tint';\n return (\n <RootComponent\n {...restProps}\n Component={Component}\n baseClassName={classNames(\n styles.host,\n mode === 'outline' && styles.modeOutline,\n mode === 'shadow' && styles.modeShadow,\n mode === 'plain' && styles.modePlain,\n withBorder && styles.withBorder,\n )}\n />\n );\n};\n"],"names":["classNames","RootComponent","styles","Card","mode","Component","restProps","withBorder","baseClassName","host","modeOutline","modeShadow","modePlain"],"mappings":";AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,oBAAoB;AASvC;;CAEC,GACD,OAAO,MAAMC,OAAO,CAAC,EACnBC,OAAO,MAAM,EACbC,YAAY,IAAI,EAChB,GAAGC,WACO;IACV,MAAMC,aAAaH,SAAS,aAAaA,SAAS;IAClD,qBACE,KAACH;QACE,GAAGK,SAAS;QACbD,WAAWA;QACXG,eAAeR,WACbE,OAAOO,IAAI,EACXL,SAAS,aAAaF,OAAOQ,WAAW,EACxCN,SAAS,YAAYF,OAAOS,UAAU,EACtCP,SAAS,WAAWF,OAAOU,SAAS,EACpCL,cAAcL,OAAOK,UAAU;;AAIvC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CardGrid/CardGrid.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { type SizeTypeValues, ViewWidth, type ViewWidthType } from '../../lib/adaptivity';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CardGrid.module.css';\n\nfunction getViewWidthClassName(\n viewWidth: ViewWidthType | 'none',\n legacySizeX: SizeTypeValues | undefined,\n) {\n // TODO [>=10]: #9015 Удалить это условие\n if (legacySizeX !== undefined && legacySizeX === 'compact') {\n return styles.viewWidthNone;\n }\n if (viewWidth === 'none') {\n return styles.viewWidthSmallTabletMinus;\n }\n if (viewWidth < ViewWidth.SMALL_TABLET) {\n return styles.viewWidthNone;\n }\n return;\n}\n\nconst stylesSize = {\n s: 'vkuiInternalCardGrid--size-s',\n m: 'vkuiInternalCardGrid--size-m',\n l: 'vkuiInternalCardGrid--size-l',\n};\n\nexport interface CardGridProps extends HTMLAttributesWithRootRef<HTMLDivElement>, HasComponent {\n /**\n * Размер карточек.\n */\n size?: 's' | 'm' | 'l';\n /**\n * Если true, то вокруг компонента присутствуют стандартные отсупы сверху/снизу и слева/справа.\n */\n padding?: boolean;\n}\n\n/**\n * @see https://vkui.io/components/card-grid\n */\nexport const CardGrid = ({\n size = 's',\n padding = false,\n Component = 'ul',\n ...restProps\n}: CardGridProps): React.ReactNode => {\n const { sizeX: legacySizeX, viewWidth = 'none' } = useAdaptivity();\n\n return (\n <RootComponent\n {...restProps}\n Component={Component}\n baseClassName={classNames(\n styles.host,\n 'vkuiInternalCardGrid',\n padding && styles.padding,\n stylesSize[size],\n getViewWidthClassName(viewWidth, legacySizeX),\n )}\n />\n );\n};\n"],"names":["classNames","useAdaptivity","ViewWidth","RootComponent","styles","getViewWidthClassName","viewWidth","legacySizeX","undefined","viewWidthNone","viewWidthSmallTabletMinus","SMALL_TABLET","stylesSize","s","m","l","CardGrid","size","padding","Component","restProps","sizeX","baseClassName","host"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAA8BC,SAAS,QAA4B,gCAAuB;AAE1F,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,wBAAwB;AAE3C,SAASC,sBACPC,SAAiC,EACjCC,WAAuC;IAEvC,yCAAyC;IACzC,IAAIA,gBAAgBC,aAAaD,gBAAgB,WAAW;QAC1D,OAAOH,OAAOK,aAAa;IAC7B;IACA,IAAIH,cAAc,QAAQ;QACxB,OAAOF,OAAOM,yBAAyB;IACzC;IACA,IAAIJ,YAAYJ,UAAUS,YAAY,EAAE;QACtC,OAAOP,OAAOK,aAAa;IAC7B;IACA;AACF;AAEA,MAAMG,aAAa;IACjBC,GAAG;IACHC,GAAG;IACHC,GAAG;AACL;AAaA;;CAEC,GACD,OAAO,MAAMC,WAAW,CAAC,EACvBC,OAAO,GAAG,EACVC,UAAU,KAAK,EACfC,YAAY,IAAI,EAChB,GAAGC,WACW;IACd,MAAM,EAAEC,OAAOd,WAAW,EAAED,YAAY,MAAM,EAAE,GAAGL;IAEnD,qBACE,KAACE;QACE,GAAGiB,SAAS;QACbD,WAAWA;QACXG,eAAetB,WACbI,OAAOmB,IAAI,EACX,wBACAL,WAAWd,OAAOc,OAAO,EACzBN,UAAU,CAACK,KAAK,EAChBZ,sBAAsBC,WAAWC;;AAIzC,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/CardGrid/CardGrid.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { type SizeTypeValues, ViewWidth, type ViewWidthType } from '../../lib/adaptivity';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CardGrid.module.css';\n\nfunction getViewWidthClassName(\n viewWidth: ViewWidthType | 'none',\n legacySizeX: SizeTypeValues | undefined,\n) {\n // TODO [>=10]: #9015 Удалить это условие\n if (legacySizeX !== undefined && legacySizeX === 'compact') {\n return styles.viewWidthNone;\n }\n if (viewWidth === 'none') {\n return styles.viewWidthSmallTabletMinus;\n }\n if (viewWidth < ViewWidth.SMALL_TABLET) {\n return styles.viewWidthNone;\n }\n return;\n}\n\nconst stylesSize = {\n s: 'vkuiInternalCardGrid--size-s',\n m: 'vkuiInternalCardGrid--size-m',\n l: 'vkuiInternalCardGrid--size-l',\n};\n\nexport interface CardGridProps extends HTMLAttributesWithRootRef<HTMLDivElement>, HasComponent {\n /**\n * Размер карточек.\n */\n size?: 's' | 'm' | 'l' | undefined;\n /**\n * Если true, то вокруг компонента присутствуют стандартные отсупы сверху/снизу и слева/справа.\n */\n padding?: boolean | undefined;\n}\n\n/**\n * @see https://vkui.io/components/card-grid\n */\nexport const CardGrid = ({\n size = 's',\n padding = false,\n Component = 'ul',\n ...restProps\n}: CardGridProps): React.ReactNode => {\n const { sizeX: legacySizeX, viewWidth = 'none' } = useAdaptivity();\n\n return (\n <RootComponent\n {...restProps}\n Component={Component}\n baseClassName={classNames(\n styles.host,\n 'vkuiInternalCardGrid',\n padding && styles.padding,\n stylesSize[size],\n getViewWidthClassName(viewWidth, legacySizeX),\n )}\n />\n );\n};\n"],"names":["classNames","useAdaptivity","ViewWidth","RootComponent","styles","getViewWidthClassName","viewWidth","legacySizeX","undefined","viewWidthNone","viewWidthSmallTabletMinus","SMALL_TABLET","stylesSize","s","m","l","CardGrid","size","padding","Component","restProps","sizeX","baseClassName","host"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAA8BC,SAAS,QAA4B,gCAAuB;AAE1F,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,wBAAwB;AAE3C,SAASC,sBACPC,SAAiC,EACjCC,WAAuC;IAEvC,yCAAyC;IACzC,IAAIA,gBAAgBC,aAAaD,gBAAgB,WAAW;QAC1D,OAAOH,OAAOK,aAAa;IAC7B;IACA,IAAIH,cAAc,QAAQ;QACxB,OAAOF,OAAOM,yBAAyB;IACzC;IACA,IAAIJ,YAAYJ,UAAUS,YAAY,EAAE;QACtC,OAAOP,OAAOK,aAAa;IAC7B;IACA;AACF;AAEA,MAAMG,aAAa;IACjBC,GAAG;IACHC,GAAG;IACHC,GAAG;AACL;AAaA;;CAEC,GACD,OAAO,MAAMC,WAAW,CAAC,EACvBC,OAAO,GAAG,EACVC,UAAU,KAAK,EACfC,YAAY,IAAI,EAChB,GAAGC,WACW;IACd,MAAM,EAAEC,OAAOd,WAAW,EAAED,YAAY,MAAM,EAAE,GAAGL;IAEnD,qBACE,KAACE;QACE,GAAGiB,SAAS;QACbD,WAAWA;QACXG,eAAetB,WACbI,OAAOmB,IAAI,EACX,wBACAL,WAAWd,OAAOc,OAAO,EACzBN,UAAU,CAACK,KAAK,EAChBZ,sBAAsBC,WAAWC;;AAIzC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CardScroll/CardScroll.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useDOM } from '../../lib/dom';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { HorizontalScroll, type HorizontalScrollProps } from '../HorizontalScroll/HorizontalScroll';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CardScroll.module.css';\n\nconst stylesSize = {\n s: 'vkuiInternalCardScroll--size-s',\n m: 'vkuiInternalCardScroll--size-m',\n l: 'vkuiInternalCardScroll--size-l',\n};\n\nexport interface CardScrollProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasComponent,\n Pick<HorizontalScrollProps, 'showArrows' | 'prevButtonTestId' | 'nextButtonTestId'> {\n /**\n * При `size=false` ширина `Card` будет регулироваться контентом внутри. В остальных случаях — будет явно задана в процентах.\n */\n size?: 's' | 'm' | 'l' | false;\n /**\n * Добавляет отступы по краям слева и справа.\n */\n padding?: boolean;\n /**\n * Позволяет поменять тег используемый для обертки над карточками.\n */\n CardsListComponent?: React.ElementType;\n}\n\n/**\n * @see https://vkui.io/components/card-scroll\n */\nexport const CardScroll = ({\n children,\n size = 's',\n showArrows = true,\n padding = false,\n CardsListComponent = 'ul',\n prevButtonTestId,\n nextButtonTestId,\n ...restProps\n}: CardScrollProps): React.ReactNode => {\n const refContainer = React.useRef<HTMLDivElement>(null);\n const direction = useConfigDirection();\n\n const { window } = useDOM();\n\n const getPadding = (container: HTMLElement) => {\n return parseFloat(\n window!\n .getComputedStyle(container)\n .getPropertyValue('--vkui_internal--CardScroll_horizontal_padding'),\n );\n };\n\n const slideOffsetFromStart = (slide: HTMLElement) => {\n const containerWidth = refContainer.current?.offsetWidth || 0;\n return direction === 'rtl'\n ? containerWidth - slide.offsetLeft - slide.offsetWidth\n : slide.offsetLeft;\n };\n\n function getScrollToLeft(offset: number): number {\n if (!refContainer.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n\n const getMarginEnd = (el: HTMLElement) => {\n const computedStyles = window!.getComputedStyle(el);\n return (\n parseInt(computedStyles.marginInlineEnd) ||\n (direction === 'rtl'\n ? parseInt(computedStyles.marginLeft)\n : parseInt(computedStyles.marginRight)) ||\n 0\n );\n };\n\n const slideIndex = ([...refContainer.current.children] as HTMLElement[]).findIndex(\n (el: HTMLElement) =>\n slideOffsetFromStart(el) + el.offsetWidth + getMarginEnd(el) - offset >= 0,\n );\n\n if (slideIndex === -1) {\n return offset;\n }\n\n const slide = refContainer.current.children[slideIndex] as HTMLElement;\n const padding = getPadding(refContainer.current);\n const scrollTo = slideOffsetFromStart(slide) - (containerWidth - slide.offsetWidth) + padding;\n\n if (scrollTo <= 2 * padding) {\n return 0;\n }\n\n return scrollTo;\n }\n\n function getScrollToRight(offset: number): number {\n if (!refContainer.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n const slide = Array.prototype.find.call(refContainer.current.children, (el: HTMLElement) => {\n return slideOffsetFromStart(el) + el.offsetWidth - offset > containerWidth;\n }) as HTMLElement;\n\n if (!slide) {\n return offset;\n }\n\n const padding = getPadding(refContainer.current);\n return slideOffsetFromStart(slide) - padding;\n }\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles.host,\n 'vkuiInternalCardScroll',\n size !== false && stylesSize[size],\n padding && styles.withPaddings,\n )}\n >\n <HorizontalScroll\n getScrollToLeft={getScrollToLeft}\n getScrollToRight={getScrollToRight}\n showArrows={showArrows}\n prevButtonTestId={prevButtonTestId}\n nextButtonTestId={nextButtonTestId}\n ContentWrapperComponent={CardsListComponent}\n contentWrapperRef={refContainer}\n contentWrapperClassName={styles.in}\n >\n {children}\n </HorizontalScroll>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useConfigDirection","useDOM","HorizontalScroll","RootComponent","styles","stylesSize","s","m","l","CardScroll","children","size","showArrows","padding","CardsListComponent","prevButtonTestId","nextButtonTestId","restProps","refContainer","useRef","direction","window","getPadding","container","parseFloat","getComputedStyle","getPropertyValue","slideOffsetFromStart","slide","containerWidth","current","offsetWidth","offsetLeft","getScrollToLeft","offset","getMarginEnd","el","computedStyles","parseInt","marginInlineEnd","marginLeft","marginRight","slideIndex","findIndex","scrollTo","getScrollToRight","Array","prototype","find","call","baseClassName","host","withPaddings","ContentWrapperComponent","contentWrapperRef","contentWrapperClassName","in"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/CardScroll/CardScroll.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useDOM } from '../../lib/dom';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { HorizontalScroll, type HorizontalScrollProps } from '../HorizontalScroll/HorizontalScroll';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CardScroll.module.css';\n\nconst stylesSize = {\n s: 'vkuiInternalCardScroll--size-s',\n m: 'vkuiInternalCardScroll--size-m',\n l: 'vkuiInternalCardScroll--size-l',\n};\n\nexport interface CardScrollProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasComponent,\n Pick<HorizontalScrollProps, 'showArrows' | 'prevButtonTestId' | 'nextButtonTestId'> {\n /**\n * При `size=false` ширина `Card` будет регулироваться контентом внутри. В остальных случаях — будет явно задана в процентах.\n */\n size?: 's' | 'm' | 'l' | false | undefined;\n /**\n * Добавляет отступы по краям слева и справа.\n */\n padding?: boolean | undefined;\n /**\n * Позволяет поменять тег используемый для обертки над карточками.\n */\n CardsListComponent?: React.ElementType | undefined;\n}\n\n/**\n * @see https://vkui.io/components/card-scroll\n */\nexport const CardScroll = ({\n children,\n size = 's',\n showArrows = true,\n padding = false,\n CardsListComponent = 'ul',\n prevButtonTestId,\n nextButtonTestId,\n ...restProps\n}: CardScrollProps): React.ReactNode => {\n const refContainer = React.useRef<HTMLDivElement>(null);\n const direction = useConfigDirection();\n\n const { window } = useDOM();\n\n const getPadding = (container: HTMLElement) => {\n return parseFloat(\n window!\n .getComputedStyle(container)\n .getPropertyValue('--vkui_internal--CardScroll_horizontal_padding'),\n );\n };\n\n const slideOffsetFromStart = (slide: HTMLElement) => {\n const containerWidth = refContainer.current?.offsetWidth || 0;\n return direction === 'rtl'\n ? containerWidth - slide.offsetLeft - slide.offsetWidth\n : slide.offsetLeft;\n };\n\n function getScrollToLeft(offset: number): number {\n if (!refContainer.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n\n const getMarginEnd = (el: HTMLElement) => {\n const computedStyles = window!.getComputedStyle(el);\n return (\n parseInt(computedStyles.marginInlineEnd) ||\n (direction === 'rtl'\n ? parseInt(computedStyles.marginLeft)\n : parseInt(computedStyles.marginRight)) ||\n 0\n );\n };\n\n const slideIndex = ([...refContainer.current.children] as HTMLElement[]).findIndex(\n (el: HTMLElement) =>\n slideOffsetFromStart(el) + el.offsetWidth + getMarginEnd(el) - offset >= 0,\n );\n\n if (slideIndex === -1) {\n return offset;\n }\n\n const slide = refContainer.current.children[slideIndex] as HTMLElement;\n const padding = getPadding(refContainer.current);\n const scrollTo = slideOffsetFromStart(slide) - (containerWidth - slide.offsetWidth) + padding;\n\n if (scrollTo <= 2 * padding) {\n return 0;\n }\n\n return scrollTo;\n }\n\n function getScrollToRight(offset: number): number {\n if (!refContainer.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n const slide = Array.prototype.find.call(refContainer.current.children, (el: HTMLElement) => {\n return slideOffsetFromStart(el) + el.offsetWidth - offset > containerWidth;\n }) as HTMLElement;\n\n if (!slide) {\n return offset;\n }\n\n const padding = getPadding(refContainer.current);\n return slideOffsetFromStart(slide) - padding;\n }\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles.host,\n 'vkuiInternalCardScroll',\n size !== false && stylesSize[size],\n padding && styles.withPaddings,\n )}\n >\n <HorizontalScroll\n getScrollToLeft={getScrollToLeft}\n getScrollToRight={getScrollToRight}\n showArrows={showArrows}\n prevButtonTestId={prevButtonTestId}\n nextButtonTestId={nextButtonTestId}\n ContentWrapperComponent={CardsListComponent}\n contentWrapperRef={refContainer}\n contentWrapperClassName={styles.in}\n >\n {children}\n </HorizontalScroll>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useConfigDirection","useDOM","HorizontalScroll","RootComponent","styles","stylesSize","s","m","l","CardScroll","children","size","showArrows","padding","CardsListComponent","prevButtonTestId","nextButtonTestId","restProps","refContainer","useRef","direction","window","getPadding","container","parseFloat","getComputedStyle","getPropertyValue","slideOffsetFromStart","slide","containerWidth","current","offsetWidth","offsetLeft","getScrollToLeft","offset","getMarginEnd","el","computedStyles","parseInt","marginInlineEnd","marginLeft","marginRight","slideIndex","findIndex","scrollTo","getScrollToRight","Array","prototype","find","call","baseClassName","host","withPaddings","ContentWrapperComponent","contentWrapperRef","contentWrapperClassName","in"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CarouselBase/Bullets.tsx"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n\nimport { classNames } from '@vkontakte/vkjs';\nimport type { BaseGalleryProps } from './types';\nimport styles from './CarouselBase.module.css';\n\nexport interface BulletsTestIds {\n /**\n * Передает атрибут `data-testid` для bullets.\n */\n bulletTestId?: (index: number, active: boolean) => string;\n}\n\ninterface BulletsProps extends BulletsTestIds {\n bullets: Exclude<BaseGalleryProps['bullets'], false | undefined>;\n slideIndex: number;\n count: number;\n}\n\nconst stylesBullets = {\n dark: styles.bulletsDark,\n light: styles.bulletsLight,\n};\n\nexport const Bullets = ({ bullets, slideIndex, count, bulletTestId }: BulletsProps) => {\n return (\n <div aria-hidden className={classNames(styles.bullets, stylesBullets[bullets])}>\n {Array.from({ length: count }).map((_, index) => (\n <div\n className={classNames(styles.bullet, index === slideIndex && styles.bulletActive)}\n data-testid={bulletTestId?.(index, index === slideIndex)}\n key={index}\n />\n ))}\n </div>\n );\n};\n"],"names":["classNames","styles","stylesBullets","dark","bulletsDark","light","bulletsLight","Bullets","bullets","slideIndex","count","bulletTestId","div","aria-hidden","className","Array","from","length","map","_","index","bullet","bulletActive","data-testid"],"mappings":";AAAA,sCAAsC,GAEtC,SAASA,UAAU,QAAQ,kBAAkB;AAE7C,OAAOC,YAAY,4BAA4B;AAe/C,MAAMC,gBAAgB;IACpBC,MAAMF,OAAOG,WAAW;IACxBC,OAAOJ,OAAOK,YAAY;AAC5B;AAEA,OAAO,MAAMC,UAAU,CAAC,EAAEC,OAAO,EAAEC,UAAU,EAAEC,KAAK,EAAEC,YAAY,EAAgB;IAChF,qBACE,KAACC;QAAIC,aAAW;QAACC,WAAWd,WAAWC,OAAOO,OAAO,EAAEN,aAAa,CAACM,QAAQ;kBAC1EO,MAAMC,IAAI,CAAC;YAAEC,QAAQP;QAAM,GAAGQ,GAAG,CAAC,CAACC,GAAGC,sBACrC,KAACR;gBACCE,WAAWd,WAAWC,OAAOoB,MAAM,EAAED,UAAUX,cAAcR,OAAOqB,YAAY;gBAChFC,eAAaZ,eAAeS,OAAOA,UAAUX;eACxCW;;AAKf,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/CarouselBase/Bullets.tsx"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n\nimport { classNames } from '@vkontakte/vkjs';\nimport type { BaseGalleryProps } from './types';\nimport styles from './CarouselBase.module.css';\n\nexport interface BulletsTestIds {\n /**\n * Передает атрибут `data-testid` для bullets.\n */\n bulletTestId?: ((index: number, active: boolean) => string) | undefined;\n}\n\ninterface BulletsProps extends BulletsTestIds {\n bullets: Exclude<BaseGalleryProps['bullets'], false | undefined>;\n slideIndex: number;\n count: number;\n}\n\nconst stylesBullets = {\n dark: styles.bulletsDark,\n light: styles.bulletsLight,\n};\n\nexport const Bullets = ({ bullets, slideIndex, count, bulletTestId }: BulletsProps) => {\n return (\n <div aria-hidden className={classNames(styles.bullets, stylesBullets[bullets])}>\n {Array.from({ length: count }).map((_, index) => (\n <div\n className={classNames(styles.bullet, index === slideIndex && styles.bulletActive)}\n data-testid={bulletTestId?.(index, index === slideIndex)}\n key={index}\n />\n ))}\n </div>\n );\n};\n"],"names":["classNames","styles","stylesBullets","dark","bulletsDark","light","bulletsLight","Bullets","bullets","slideIndex","count","bulletTestId","div","aria-hidden","className","Array","from","length","map","_","index","bullet","bulletActive","data-testid"],"mappings":";AAAA,sCAAsC,GAEtC,SAASA,UAAU,QAAQ,kBAAkB;AAE7C,OAAOC,YAAY,4BAA4B;AAe/C,MAAMC,gBAAgB;IACpBC,MAAMF,OAAOG,WAAW;IACxBC,OAAOJ,OAAOK,YAAY;AAC5B;AAEA,OAAO,MAAMC,UAAU,CAAC,EAAEC,OAAO,EAAEC,UAAU,EAAEC,KAAK,EAAEC,YAAY,EAAgB;IAChF,qBACE,KAACC;QAAIC,aAAW;QAACC,WAAWd,WAAWC,OAAOO,OAAO,EAAEN,aAAa,CAACM,QAAQ;kBAC1EO,MAAMC,IAAI,CAAC;YAAEC,QAAQP;QAAM,GAAGQ,GAAG,CAAC,CAACC,GAAGC,sBACrC,KAACR;gBACCE,WAAWd,WAAWC,OAAOoB,MAAM,EAAED,UAAUX,cAAcR,OAAOqB,YAAY;gBAChFC,eAAaZ,eAAeS,OAAOA,UAAUX;eACxCW;;AAKf,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CarouselBase/CarouselViewPort.tsx"],"sourcesContent":["'use client';\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport * as React from 'react';\nimport type { HasChildren, HasRootRef } from '../../types';\nimport { type CustomTouchEvent, Touch } from '../Touch/Touch';\nimport type { BaseGalleryProps } from './types';\nimport styles from './CarouselBase.module.css';\n\ntype GalleryViewPortProps = Pick<\n BaseGalleryProps,\n 'slideWidth' | 'slideTestId' | 'slideRoleDescription' | 'slideLabel' | 'onChange'\n> &\n HasRootRef<HTMLElement> &\n HasChildren & {\n onStart: (e: CustomTouchEvent) => void;\n onMoveX: (e: CustomTouchEvent) => void;\n onEnd: (e: CustomTouchEvent) => void;\n setSlideRef: (slideRef: HTMLDivElement | null, slideIndex: number) => void;\n layerRef?: React.Ref<HTMLDivElement>;\n slidesContainerId: string;\n };\n\nconst defaultSlideLabel = (index: number, slidesCount: number) => `${index + 1} из ${slidesCount}`;\n\nexport const CarouselViewPort = ({\n slideTestId,\n slideWidth,\n slideLabel = defaultSlideLabel,\n slideRoleDescription = 'Слайд',\n onChange,\n onStart,\n onMoveX,\n onEnd,\n getRootRef,\n layerRef,\n children,\n setSlideRef,\n slidesContainerId,\n}: GalleryViewPortProps) => {\n const slidesCount = React.Children.count(children);\n\n const onSlideFocus = React.useCallback(\n (e: React.FocusEvent<HTMLDivElement>) => onChange?.(Number(e.currentTarget.dataset.index)),\n [onChange],\n );\n\n return (\n <Touch\n className={styles.viewport}\n onStartX={onStart}\n onMoveX={onMoveX}\n onEnd={onEnd}\n style={{ width: slideWidth === 'custom' ? '100%' : slideWidth }}\n noSlideClick\n getRootRef={getRootRef}\n >\n <div className={styles.layer} ref={layerRef} id={slidesContainerId}>\n {React.Children.map(children, (item: React.ReactNode, i: number) => (\n <div\n role=\"group\"\n aria-roledescription={slideRoleDescription}\n aria-label={typeof slideLabel === 'function' ? slideLabel(i, slidesCount) : slideLabel}\n className={styles.slide}\n key={`slide-${i}`}\n data-testid={slideTestId?.(i)}\n ref={(el) => setSlideRef(el, i)}\n data-index={i}\n tabIndex={0}\n onFocus={onSlideFocus}\n >\n {item}\n </div>\n ))}\n </div>\n </Touch>\n );\n};\n"],"names":["React","Touch","styles","defaultSlideLabel","index","slidesCount","CarouselViewPort","slideTestId","slideWidth","slideLabel","slideRoleDescription","onChange","onStart","onMoveX","onEnd","getRootRef","layerRef","children","setSlideRef","slidesContainerId","Children","count","onSlideFocus","useCallback","e","Number","currentTarget","dataset","className","viewport","onStartX","style","width","noSlideClick","div","layer","ref","id","map","item","i","role","aria-roledescription","aria-label","slide","data-testid","el","data-index","tabIndex","onFocus"],"mappings":"AAAA;;AACA,sCAAsC,GAEtC,YAAYA,WAAW,QAAQ;AAE/B,SAAgCC,KAAK,QAAQ,oBAAiB;AAE9D,OAAOC,YAAY,4BAA4B;AAgB/C,MAAMC,oBAAoB,CAACC,OAAeC,cAAwB,GAAGD,QAAQ,EAAE,IAAI,EAAEC,aAAa;AAElG,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,WAAW,EACXC,UAAU,EACVC,aAAaN,iBAAiB,EAC9BO,uBAAuB,OAAO,EAC9BC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,KAAK,EACLC,UAAU,EACVC,QAAQ,EACRC,QAAQ,EACRC,WAAW,EACXC,iBAAiB,EACI;IACrB,MAAMd,cAAcL,MAAMoB,QAAQ,CAACC,KAAK,CAACJ;IAEzC,MAAMK,eAAetB,MAAMuB,WAAW,CACpC,CAACC,IAAwCb,WAAWc,OAAOD,EAAEE,aAAa,CAACC,OAAO,CAACvB,KAAK,IACxF;QAACO;KAAS;IAGZ,qBACE,KAACV;QACC2B,WAAW1B,OAAO2B,QAAQ;QAC1BC,UAAUlB;QACVC,SAASA;QACTC,OAAOA;QACPiB,OAAO;YAAEC,OAAOxB,eAAe,WAAW,SAASA;QAAW;QAC9DyB,YAAY;QACZlB,YAAYA;kBAEZ,cAAA,KAACmB;YAAIN,WAAW1B,OAAOiC,KAAK;YAAEC,KAAKpB;YAAUqB,IAAIlB;sBAC9CnB,MAAMoB,QAAQ,CAACkB,GAAG,CAACrB,UAAU,CAACsB,MAAuBC,kBACpD,KAACN;oBACCO,MAAK;oBACLC,wBAAsBhC;oBACtBiC,cAAY,OAAOlC,eAAe,aAAaA,WAAW+B,GAAGnC,eAAeI;oBAC5EmB,WAAW1B,OAAO0C,KAAK;oBAEvBC,eAAatC,cAAciC;oBAC3BJ,KAAK,CAACU,KAAO5B,YAAY4B,IAAIN;oBAC7BO,cAAYP;oBACZQ,UAAU;oBACVC,SAAS3B;8BAERiB;mBAPI,CAAC,MAAM,EAAEC,GAAG;;;AAa7B,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/CarouselBase/CarouselViewPort.tsx"],"sourcesContent":["'use client';\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport * as React from 'react';\nimport type { HasChildren, HasRootRef } from '../../types';\nimport { type CustomTouchEvent, Touch } from '../Touch/Touch';\nimport type { BaseGalleryProps } from './types';\nimport styles from './CarouselBase.module.css';\n\ntype GalleryViewPortProps = Pick<\n BaseGalleryProps,\n 'slideWidth' | 'slideTestId' | 'slideRoleDescription' | 'slideLabel' | 'onChange'\n> &\n HasRootRef<HTMLElement> &\n HasChildren & {\n onStart: (e: CustomTouchEvent) => void;\n onMoveX: (e: CustomTouchEvent) => void;\n onEnd: (e: CustomTouchEvent) => void;\n setSlideRef: (slideRef: HTMLDivElement | null, slideIndex: number) => void;\n layerRef?: React.Ref<HTMLDivElement> | undefined;\n slidesContainerId: string;\n };\n\nconst defaultSlideLabel = (index: number, slidesCount: number) => `${index + 1} из ${slidesCount}`;\n\nexport const CarouselViewPort = ({\n slideTestId,\n slideWidth,\n slideLabel = defaultSlideLabel,\n slideRoleDescription = 'Слайд',\n onChange,\n onStart,\n onMoveX,\n onEnd,\n getRootRef,\n layerRef,\n children,\n setSlideRef,\n slidesContainerId,\n}: GalleryViewPortProps) => {\n const slidesCount = React.Children.count(children);\n\n const onSlideFocus = React.useCallback(\n (e: React.FocusEvent<HTMLDivElement>) => onChange?.(Number(e.currentTarget.dataset.index)),\n [onChange],\n );\n\n return (\n <Touch\n className={styles.viewport}\n onStartX={onStart}\n onMoveX={onMoveX}\n onEnd={onEnd}\n style={{ width: slideWidth === 'custom' ? '100%' : slideWidth }}\n noSlideClick\n getRootRef={getRootRef}\n >\n <div className={styles.layer} ref={layerRef} id={slidesContainerId}>\n {React.Children.map(children, (item: React.ReactNode, i: number) => (\n <div\n role=\"group\"\n aria-roledescription={slideRoleDescription}\n aria-label={typeof slideLabel === 'function' ? slideLabel(i, slidesCount) : slideLabel}\n className={styles.slide}\n key={`slide-${i}`}\n data-testid={slideTestId?.(i)}\n ref={(el) => setSlideRef(el, i)}\n data-index={i}\n tabIndex={0}\n onFocus={onSlideFocus}\n >\n {item}\n </div>\n ))}\n </div>\n </Touch>\n );\n};\n"],"names":["React","Touch","styles","defaultSlideLabel","index","slidesCount","CarouselViewPort","slideTestId","slideWidth","slideLabel","slideRoleDescription","onChange","onStart","onMoveX","onEnd","getRootRef","layerRef","children","setSlideRef","slidesContainerId","Children","count","onSlideFocus","useCallback","e","Number","currentTarget","dataset","className","viewport","onStartX","style","width","noSlideClick","div","layer","ref","id","map","item","i","role","aria-roledescription","aria-label","slide","data-testid","el","data-index","tabIndex","onFocus"],"mappings":"AAAA;;AACA,sCAAsC,GAEtC,YAAYA,WAAW,QAAQ;AAE/B,SAAgCC,KAAK,QAAQ,oBAAiB;AAE9D,OAAOC,YAAY,4BAA4B;AAgB/C,MAAMC,oBAAoB,CAACC,OAAeC,cAAwB,GAAGD,QAAQ,EAAE,IAAI,EAAEC,aAAa;AAElG,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,WAAW,EACXC,UAAU,EACVC,aAAaN,iBAAiB,EAC9BO,uBAAuB,OAAO,EAC9BC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,KAAK,EACLC,UAAU,EACVC,QAAQ,EACRC,QAAQ,EACRC,WAAW,EACXC,iBAAiB,EACI;IACrB,MAAMd,cAAcL,MAAMoB,QAAQ,CAACC,KAAK,CAACJ;IAEzC,MAAMK,eAAetB,MAAMuB,WAAW,CACpC,CAACC,IAAwCb,WAAWc,OAAOD,EAAEE,aAAa,CAACC,OAAO,CAACvB,KAAK,IACxF;QAACO;KAAS;IAGZ,qBACE,KAACV;QACC2B,WAAW1B,OAAO2B,QAAQ;QAC1BC,UAAUlB;QACVC,SAASA;QACTC,OAAOA;QACPiB,OAAO;YAAEC,OAAOxB,eAAe,WAAW,SAASA;QAAW;QAC9DyB,YAAY;QACZlB,YAAYA;kBAEZ,cAAA,KAACmB;YAAIN,WAAW1B,OAAOiC,KAAK;YAAEC,KAAKpB;YAAUqB,IAAIlB;sBAC9CnB,MAAMoB,QAAQ,CAACkB,GAAG,CAACrB,UAAU,CAACsB,MAAuBC,kBACpD,KAACN;oBACCO,MAAK;oBACLC,wBAAsBhC;oBACtBiC,cAAY,OAAOlC,eAAe,aAAaA,WAAW+B,GAAGnC,eAAeI;oBAC5EmB,WAAW1B,OAAO0C,KAAK;oBAEvBC,eAAatC,cAAciC;oBAC3BJ,KAAK,CAACU,KAAO5B,YAAY4B,IAAIN;oBAC7BO,cAAYP;oBACZQ,UAAU;oBACVC,SAAS3B;8BAERiB;mBAPI,CAAC,MAAM,EAAEC,GAAG;;;AAa7B,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CarouselBase/ScrollArrows.tsx"],"sourcesContent":["'use client';\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport { ScrollArrow } from '../ScrollArrow/ScrollArrow';\nimport type { BaseGalleryProps } from './types';\nimport styles from './CarouselBase.module.css';\n\nconst stylesArrowAreaHeight = {\n stretch: styles.arrowAreaStretch,\n fit: styles.arrowAreaFit,\n};\n\nexport const getArrowClassName = (\n side: 'start' | 'end',\n arrowAreaHeight: Exclude<BaseGalleryProps['arrowAreaHeight'], undefined>,\n focusVisible: boolean,\n) => {\n return classNames(\n styles.arrow,\n side === 'start' ? styles.arrowStart : styles.arrowEnd,\n stylesArrowAreaHeight[arrowAreaHeight],\n focusVisible && styles.arrowFocusVisible,\n );\n};\n\nexport interface ScrollArrowsTestIds {\n /**\n * Передает атрибут `data-testid` для кнопки перехода к следующему слайду.\n */\n nextArrowTestId?: string;\n /**\n * Передает атрибут `data-testid` для кнопки перехода к предыдущему слайду.\n */\n prevArrowTestId?: string;\n}\n\ninterface ScrollArrowsProps\n extends Pick<\n BaseGalleryProps,\n 'showArrows' | 'arrowSize' | 'arrowAreaHeight' | 'arrowPrevLabel' | 'arrowNextLabel'\n >,\n ScrollArrowsTestIds {\n canSlideLeft: boolean;\n canSlideRight: boolean;\n onSlideLeft: (e: React.MouseEvent) => void;\n onSlideRight: (e: React.MouseEvent) => void;\n slidesContainerId: string;\n}\n\nexport const ScrollArrows = ({\n canSlideLeft,\n canSlideRight,\n onSlideRight,\n onSlideLeft,\n showArrows = false,\n arrowSize = 'm',\n arrowAreaHeight = 'stretch',\n arrowPrevLabel,\n arrowNextLabel,\n nextArrowTestId,\n prevArrowTestId,\n slidesContainerId,\n}: ScrollArrowsProps) => {\n const { focusVisible: prevArrowFocusVisible, ...prevArrowFocusHandlers } = useFocusVisible();\n const { focusVisible: nextArrowFocusVisible, ...nextArrowFocusHandlers } = useFocusVisible();\n\n return showArrows ? (\n <>\n {canSlideLeft && (\n <ScrollArrow\n className={getArrowClassName('start', arrowAreaHeight, prevArrowFocusVisible)}\n direction=\"left\"\n onClick={onSlideLeft}\n size={arrowSize}\n data-testid={prevArrowTestId}\n label={arrowPrevLabel}\n aria-controls={slidesContainerId}\n {...prevArrowFocusHandlers}\n />\n )}\n {canSlideRight && (\n <ScrollArrow\n className={getArrowClassName('end', arrowAreaHeight, nextArrowFocusVisible)}\n direction=\"right\"\n onClick={onSlideRight}\n size={arrowSize}\n data-testid={nextArrowTestId}\n label={arrowNextLabel}\n aria-controls={slidesContainerId}\n {...nextArrowFocusHandlers}\n />\n )}\n </>\n ) : null;\n};\n"],"names":["classNames","useFocusVisible","ScrollArrow","styles","stylesArrowAreaHeight","stretch","arrowAreaStretch","fit","arrowAreaFit","getArrowClassName","side","arrowAreaHeight","focusVisible","arrow","arrowStart","arrowEnd","arrowFocusVisible","ScrollArrows","canSlideLeft","canSlideRight","onSlideRight","onSlideLeft","showArrows","arrowSize","arrowPrevLabel","arrowNextLabel","nextArrowTestId","prevArrowTestId","slidesContainerId","prevArrowFocusVisible","prevArrowFocusHandlers","nextArrowFocusVisible","nextArrowFocusHandlers","className","direction","onClick","size","data-testid","label","aria-controls"],"mappings":"AAAA;;AAIA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,WAAW,QAAQ,gCAA6B;AAEzD,OAAOC,YAAY,4BAA4B;AAE/C,MAAMC,wBAAwB;IAC5BC,SAASF,OAAOG,gBAAgB;IAChCC,KAAKJ,OAAOK,YAAY;AAC1B;AAEA,OAAO,MAAMC,oBAAoB,CAC/BC,MACAC,iBACAC;IAEA,OAAOZ,WACLG,OAAOU,KAAK,EACZH,SAAS,UAAUP,OAAOW,UAAU,GAAGX,OAAOY,QAAQ,EACtDX,qBAAqB,CAACO,gBAAgB,EACtCC,gBAAgBT,OAAOa,iBAAiB;AAE5C,EAAE;AA0BF,OAAO,MAAMC,eAAe,CAAC,EAC3BC,YAAY,EACZC,aAAa,EACbC,YAAY,EACZC,WAAW,EACXC,aAAa,KAAK,EAClBC,YAAY,GAAG,EACfZ,kBAAkB,SAAS,EAC3Ba,cAAc,EACdC,cAAc,EACdC,eAAe,EACfC,eAAe,EACfC,iBAAiB,EACC;IAClB,MAAM,EAAEhB,cAAciB,qBAAqB,EAAE,GAAGC,wBAAwB,GAAG7B;IAC3E,MAAM,EAAEW,cAAcmB,qBAAqB,EAAE,GAAGC,wBAAwB,GAAG/B;IAE3E,OAAOqB,2BACL;;YACGJ,8BACC,KAAChB;gBACC+B,WAAWxB,kBAAkB,SAASE,iBAAiBkB;gBACvDK,WAAU;gBACVC,SAASd;gBACTe,MAAMb;gBACNc,eAAaV;gBACbW,OAAOd;gBACPe,iBAAeX;gBACd,GAAGE,sBAAsB;;YAG7BX,+BACC,KAACjB;gBACC+B,WAAWxB,kBAAkB,OAAOE,iBAAiBoB;gBACrDG,WAAU;gBACVC,SAASf;gBACTgB,MAAMb;gBACNc,eAAaX;gBACbY,OAAOb;gBACPc,iBAAeX;gBACd,GAAGI,sBAAsB;;;SAI9B;AACN,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/CarouselBase/ScrollArrows.tsx"],"sourcesContent":["'use client';\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport { ScrollArrow } from '../ScrollArrow/ScrollArrow';\nimport type { BaseGalleryProps } from './types';\nimport styles from './CarouselBase.module.css';\n\nconst stylesArrowAreaHeight = {\n stretch: styles.arrowAreaStretch,\n fit: styles.arrowAreaFit,\n};\n\nexport const getArrowClassName = (\n side: 'start' | 'end',\n arrowAreaHeight: Exclude<BaseGalleryProps['arrowAreaHeight'], undefined>,\n focusVisible: boolean,\n) => {\n return classNames(\n styles.arrow,\n side === 'start' ? styles.arrowStart : styles.arrowEnd,\n stylesArrowAreaHeight[arrowAreaHeight],\n focusVisible && styles.arrowFocusVisible,\n );\n};\n\nexport interface ScrollArrowsTestIds {\n /**\n * Передает атрибут `data-testid` для кнопки перехода к следующему слайду.\n */\n nextArrowTestId?: string | undefined;\n /**\n * Передает атрибут `data-testid` для кнопки перехода к предыдущему слайду.\n */\n prevArrowTestId?: string | undefined;\n}\n\ninterface ScrollArrowsProps\n extends Pick<\n BaseGalleryProps,\n 'showArrows' | 'arrowSize' | 'arrowAreaHeight' | 'arrowPrevLabel' | 'arrowNextLabel'\n >,\n ScrollArrowsTestIds {\n canSlideLeft: boolean;\n canSlideRight: boolean;\n onSlideLeft: (e: React.MouseEvent) => void;\n onSlideRight: (e: React.MouseEvent) => void;\n slidesContainerId: string;\n}\n\nexport const ScrollArrows = ({\n canSlideLeft,\n canSlideRight,\n onSlideRight,\n onSlideLeft,\n showArrows = false,\n arrowSize = 'm',\n arrowAreaHeight = 'stretch',\n arrowPrevLabel,\n arrowNextLabel,\n nextArrowTestId,\n prevArrowTestId,\n slidesContainerId,\n}: ScrollArrowsProps) => {\n const { focusVisible: prevArrowFocusVisible, ...prevArrowFocusHandlers } = useFocusVisible();\n const { focusVisible: nextArrowFocusVisible, ...nextArrowFocusHandlers } = useFocusVisible();\n\n return showArrows ? (\n <>\n {canSlideLeft && (\n <ScrollArrow\n className={getArrowClassName('start', arrowAreaHeight, prevArrowFocusVisible)}\n direction=\"left\"\n onClick={onSlideLeft}\n size={arrowSize}\n data-testid={prevArrowTestId}\n label={arrowPrevLabel}\n aria-controls={slidesContainerId}\n {...prevArrowFocusHandlers}\n />\n )}\n {canSlideRight && (\n <ScrollArrow\n className={getArrowClassName('end', arrowAreaHeight, nextArrowFocusVisible)}\n direction=\"right\"\n onClick={onSlideRight}\n size={arrowSize}\n data-testid={nextArrowTestId}\n label={arrowNextLabel}\n aria-controls={slidesContainerId}\n {...nextArrowFocusHandlers}\n />\n )}\n </>\n ) : null;\n};\n"],"names":["classNames","useFocusVisible","ScrollArrow","styles","stylesArrowAreaHeight","stretch","arrowAreaStretch","fit","arrowAreaFit","getArrowClassName","side","arrowAreaHeight","focusVisible","arrow","arrowStart","arrowEnd","arrowFocusVisible","ScrollArrows","canSlideLeft","canSlideRight","onSlideRight","onSlideLeft","showArrows","arrowSize","arrowPrevLabel","arrowNextLabel","nextArrowTestId","prevArrowTestId","slidesContainerId","prevArrowFocusVisible","prevArrowFocusHandlers","nextArrowFocusVisible","nextArrowFocusHandlers","className","direction","onClick","size","data-testid","label","aria-controls"],"mappings":"AAAA;;AAIA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,WAAW,QAAQ,gCAA6B;AAEzD,OAAOC,YAAY,4BAA4B;AAE/C,MAAMC,wBAAwB;IAC5BC,SAASF,OAAOG,gBAAgB;IAChCC,KAAKJ,OAAOK,YAAY;AAC1B;AAEA,OAAO,MAAMC,oBAAoB,CAC/BC,MACAC,iBACAC;IAEA,OAAOZ,WACLG,OAAOU,KAAK,EACZH,SAAS,UAAUP,OAAOW,UAAU,GAAGX,OAAOY,QAAQ,EACtDX,qBAAqB,CAACO,gBAAgB,EACtCC,gBAAgBT,OAAOa,iBAAiB;AAE5C,EAAE;AA0BF,OAAO,MAAMC,eAAe,CAAC,EAC3BC,YAAY,EACZC,aAAa,EACbC,YAAY,EACZC,WAAW,EACXC,aAAa,KAAK,EAClBC,YAAY,GAAG,EACfZ,kBAAkB,SAAS,EAC3Ba,cAAc,EACdC,cAAc,EACdC,eAAe,EACfC,eAAe,EACfC,iBAAiB,EACC;IAClB,MAAM,EAAEhB,cAAciB,qBAAqB,EAAE,GAAGC,wBAAwB,GAAG7B;IAC3E,MAAM,EAAEW,cAAcmB,qBAAqB,EAAE,GAAGC,wBAAwB,GAAG/B;IAE3E,OAAOqB,2BACL;;YACGJ,8BACC,KAAChB;gBACC+B,WAAWxB,kBAAkB,SAASE,iBAAiBkB;gBACvDK,WAAU;gBACVC,SAASd;gBACTe,MAAMb;gBACNc,eAAaV;gBACbW,OAAOd;gBACPe,iBAAeX;gBACd,GAAGE,sBAAsB;;YAG7BX,+BACC,KAACjB;gBACC+B,WAAWxB,kBAAkB,OAAOE,iBAAiBoB;gBACrDG,WAAU;gBACVC,SAASf;gBACTgB,MAAMb;gBACNc,eAAaX;gBACbY,OAAOb;gBACPc,iBAAeX;gBACd,GAAGI,sBAAsB;;;SAI9B;AACN,EAAE"}