@vkontakte/vkui 7.0.1 → 7.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 (649) hide show
  1. package/dist/components/ActionSheet/types.d.ts +1 -1
  2. package/dist/components/ActionSheet/types.d.ts.map +1 -1
  3. package/dist/components/ActionSheet/types.js.map +1 -1
  4. package/dist/components/Alert/Alert.d.ts +1 -1
  5. package/dist/components/Alert/Alert.js.map +1 -1
  6. package/dist/components/AppRoot/AppRoot.d.ts +1 -1
  7. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  8. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  9. package/dist/components/AppRoot/AppRootContext.d.ts +2 -2
  10. package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
  11. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  12. package/dist/components/AppRoot/AppRootPortal.d.ts +1 -1
  13. package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
  14. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  15. package/dist/components/AppRoot/ScrollContext.d.ts +1 -1
  16. package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
  17. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  18. package/dist/components/AspectRatio/AspectRatio.d.ts +7 -3
  19. package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -1
  20. package/dist/components/AspectRatio/AspectRatio.js +1 -1
  21. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  22. package/dist/components/Calendar/Calendar.d.ts +3 -4
  23. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  24. package/dist/components/Calendar/Calendar.js +81 -64
  25. package/dist/components/Calendar/Calendar.js.map +1 -1
  26. package/dist/components/CalendarDay/CalendarDay.d.ts +3 -0
  27. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  28. package/dist/components/CalendarDay/CalendarDay.js +3 -1
  29. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  30. package/dist/components/CalendarDays/CalendarDays.d.ts +3 -0
  31. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  32. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  33. package/dist/components/CalendarHeader/CalendarHeader.d.ts +12 -0
  34. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  35. package/dist/components/CalendarHeader/CalendarHeader.js +4 -2
  36. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  37. package/dist/components/CalendarRange/CalendarRange.d.ts +7 -1
  38. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  39. package/dist/components/CalendarRange/CalendarRange.js +108 -93
  40. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  41. package/dist/components/CalendarTime/CalendarTime.d.ts +20 -4
  42. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  43. package/dist/components/CalendarTime/CalendarTime.js +68 -9
  44. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  45. package/dist/components/CardScroll/CardScroll.d.ts +2 -3
  46. package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
  47. package/dist/components/CardScroll/CardScroll.js +6 -2
  48. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  49. package/dist/components/CarouselBase/Bullets.d.ts +16 -0
  50. package/dist/components/CarouselBase/Bullets.d.ts.map +1 -0
  51. package/dist/components/CarouselBase/Bullets.js +21 -0
  52. package/dist/components/CarouselBase/Bullets.js.map +1 -0
  53. package/dist/components/CarouselBase/CarouselBase.d.ts +4 -0
  54. package/dist/components/CarouselBase/CarouselBase.d.ts.map +1 -0
  55. package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/CarouselBase.js +175 -98
  56. package/dist/components/CarouselBase/CarouselBase.js.map +1 -0
  57. package/dist/components/CarouselBase/CarouselViewPort.d.ts +14 -0
  58. package/dist/components/CarouselBase/CarouselViewPort.d.ts.map +1 -0
  59. package/dist/components/CarouselBase/CarouselViewPort.js +29 -0
  60. package/dist/components/CarouselBase/CarouselViewPort.js.map +1 -0
  61. package/dist/components/CarouselBase/ScrollArrows.d.ts +23 -0
  62. package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -0
  63. package/dist/components/CarouselBase/ScrollArrows.js +34 -0
  64. package/dist/components/CarouselBase/ScrollArrows.js.map +1 -0
  65. package/dist/components/CarouselBase/constants.d.ts.map +1 -0
  66. package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/constants.js +5 -1
  67. package/dist/components/CarouselBase/constants.js.map +1 -0
  68. package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/helpers.d.ts +13 -4
  69. package/dist/components/CarouselBase/helpers.d.ts.map +1 -0
  70. package/dist/{cssm/components/BaseGallery → components}/CarouselBase/helpers.js +41 -5
  71. package/dist/components/CarouselBase/helpers.js.map +1 -0
  72. package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.d.ts +1 -1
  73. package/dist/components/CarouselBase/hooks.d.ts.map +1 -0
  74. package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.js +2 -2
  75. package/dist/components/CarouselBase/hooks.js.map +1 -0
  76. package/dist/components/CarouselBase/types.d.ts +125 -0
  77. package/dist/components/CarouselBase/types.d.ts.map +1 -0
  78. package/dist/components/CarouselBase/types.js.map +1 -0
  79. package/dist/components/ChipsInput/ChipsInput.d.ts +1 -1
  80. package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  81. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  82. package/dist/components/ChipsInput/useChipsInput.d.ts +1 -1
  83. package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  84. package/dist/components/ChipsInput/useChipsInput.js.map +1 -1
  85. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  86. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  87. package/dist/components/ChipsSelect/useChipsSelect.d.ts +1 -1
  88. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  89. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  90. package/dist/components/Clickable/useState.js.map +1 -1
  91. package/dist/components/Clickable/useStateWithDelay.js +1 -1
  92. package/dist/components/Clickable/useStateWithDelay.js.map +1 -1
  93. package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
  94. package/dist/components/ConfigProvider/ConfigProvider.js +8 -23
  95. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  96. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  97. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts.map +1 -1
  98. package/dist/components/ConfigProvider/ConfigProviderContext.js +22 -0
  99. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  100. package/dist/components/ConfigProvider/ConfigProviderOverride.d.ts.map +1 -1
  101. package/dist/components/ConfigProvider/ConfigProviderOverride.js +2 -3
  102. package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  103. package/dist/components/CustomScrollView/CustomScrollView.d.ts +5 -1
  104. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  105. package/dist/components/CustomScrollView/CustomScrollView.js +9 -4
  106. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  107. package/dist/components/CustomSelect/CustomSelect.d.ts +6 -2
  108. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  109. package/dist/components/CustomSelect/CustomSelect.js +8 -4
  110. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  111. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  112. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  113. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  114. package/dist/components/DateInput/DateInput.d.ts +24 -2
  115. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  116. package/dist/components/DateInput/DateInput.js +41 -6
  117. package/dist/components/DateInput/DateInput.js.map +1 -1
  118. package/dist/components/DateRangeInput/DateRangeInput.d.ts +19 -1
  119. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  120. package/dist/components/DateRangeInput/DateRangeInput.js +6 -4
  121. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  122. package/dist/components/Epic/Epic.d.ts.map +1 -1
  123. package/dist/components/Epic/Epic.js.map +1 -1
  124. package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  125. package/dist/components/FixedLayout/FixedLayout.js +1 -2
  126. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  127. package/dist/components/Gallery/Gallery.d.ts +2 -3
  128. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  129. package/dist/components/Gallery/Gallery.js +3 -6
  130. package/dist/components/Gallery/Gallery.js.map +1 -1
  131. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +9 -1
  132. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  133. package/dist/components/HorizontalScroll/HorizontalScroll.js +6 -4
  134. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  135. package/dist/components/Image/Image.d.ts +1 -0
  136. package/dist/components/Image/Image.d.ts.map +1 -1
  137. package/dist/components/Image/Image.js +2 -0
  138. package/dist/components/Image/Image.js.map +1 -1
  139. package/dist/components/ImageBase/ImageBase.d.ts +8 -1
  140. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  141. package/dist/components/ImageBase/ImageBase.js +39 -11
  142. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  143. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts +29 -0
  144. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts.map +1 -0
  145. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js +96 -0
  146. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -0
  147. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts +4 -0
  148. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts.map +1 -0
  149. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.js +35 -0
  150. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.js.map +1 -0
  151. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts +1 -1
  152. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts.map +1 -1
  153. package/dist/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  154. package/dist/components/ImageBase/context.d.ts.map +1 -1
  155. package/dist/components/ImageBase/context.js +3 -1
  156. package/dist/components/ImageBase/context.js.map +1 -1
  157. package/dist/components/ImageBase/types.d.ts +2 -0
  158. package/dist/components/ImageBase/types.d.ts.map +1 -1
  159. package/dist/components/ImageBase/types.js.map +1 -1
  160. package/dist/components/ImageBase/validators.d.ts +2 -1
  161. package/dist/components/ImageBase/validators.d.ts.map +1 -1
  162. package/dist/components/ImageBase/validators.js.map +1 -1
  163. package/dist/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  164. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  165. package/dist/components/ModalRoot/ModalRootContext.d.ts +1 -1
  166. package/dist/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
  167. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  168. package/dist/components/Pagination/Pagination.d.ts +14 -1
  169. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  170. package/dist/components/Pagination/Pagination.js +13 -4
  171. package/dist/components/Pagination/Pagination.js.map +1 -1
  172. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts +2 -0
  173. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
  174. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js +2 -1
  175. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  176. package/dist/components/Popover/Popover.d.ts +2 -2
  177. package/dist/components/Popover/Popover.d.ts.map +1 -1
  178. package/dist/components/Popover/Popover.js +6 -126
  179. package/dist/components/Popover/Popover.js.map +1 -1
  180. package/dist/components/Popover/usePopover.d.ts +14 -0
  181. package/dist/components/Popover/usePopover.d.ts.map +1 -0
  182. package/dist/components/Popover/usePopover.js +138 -0
  183. package/dist/components/Popover/usePopover.js.map +1 -0
  184. package/dist/components/Popper/Popper.d.ts +1 -1
  185. package/dist/components/Popper/Popper.d.ts.map +1 -1
  186. package/dist/components/Popper/Popper.js.map +1 -1
  187. package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
  188. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  189. package/dist/components/Removable/Removable.d.ts +2 -2
  190. package/dist/components/Removable/Removable.js.map +1 -1
  191. package/dist/components/RichCell/RichCell.d.ts +11 -1
  192. package/dist/components/RichCell/RichCell.d.ts.map +1 -1
  193. package/dist/components/RichCell/RichCell.js +15 -8
  194. package/dist/components/RichCell/RichCell.js.map +1 -1
  195. package/dist/components/Root/Root.d.ts.map +1 -1
  196. package/dist/components/Root/Root.js +3 -1
  197. package/dist/components/Root/Root.js.map +1 -1
  198. package/dist/components/SegmentedControl/SegmentedControl.d.ts +2 -2
  199. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  200. package/dist/components/SegmentedControl/SegmentedControl.js +30 -10
  201. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  202. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  203. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  204. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +6 -17
  205. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  206. package/dist/components/Select/Select.d.ts.map +1 -1
  207. package/dist/components/Select/Select.js +3 -2
  208. package/dist/components/Select/Select.js.map +1 -1
  209. package/dist/components/Skeleton/Skeleton.js +2 -2
  210. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  211. package/dist/components/Slider/Slider.d.ts +9 -1
  212. package/dist/components/Slider/Slider.d.ts.map +1 -1
  213. package/dist/components/Slider/Slider.js +5 -1
  214. package/dist/components/Slider/Slider.js.map +1 -1
  215. package/dist/components/Snackbar/Snackbar.js +1 -1
  216. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  217. package/dist/components/SplitCol/SplitColContext.d.ts +1 -1
  218. package/dist/components/SplitCol/SplitColContext.d.ts.map +1 -1
  219. package/dist/components/SplitCol/SplitColContext.js.map +1 -1
  220. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  221. package/dist/components/Tabs/Tabs.js +2 -82
  222. package/dist/components/Tabs/Tabs.js.map +1 -1
  223. package/dist/components/Textarea/Textarea.js +2 -2
  224. package/dist/components/Textarea/Textarea.js.map +1 -1
  225. package/dist/components/Textarea/useResizeTextarea.d.ts +1 -1
  226. package/dist/components/Textarea/useResizeTextarea.d.ts.map +1 -1
  227. package/dist/components/Textarea/useResizeTextarea.js +1 -1
  228. package/dist/components/Textarea/useResizeTextarea.js.map +1 -1
  229. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  230. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  231. package/dist/components/Tooltip/Tooltip.js +4 -2
  232. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  233. package/dist/components/UsersStack/UsersStack.d.ts +1 -1
  234. package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
  235. package/dist/components/UsersStack/UsersStack.js +16 -5
  236. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  237. package/dist/components/View/View.d.ts.map +1 -1
  238. package/dist/components/View/View.js +3 -1
  239. package/dist/components/View/View.js.map +1 -1
  240. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  241. package/dist/components/View/ViewInfinite.js +3 -1
  242. package/dist/components/View/ViewInfinite.js.map +1 -1
  243. package/dist/components.css +1 -1
  244. package/dist/components.css.map +1 -1
  245. package/dist/context/CalendarDirectionContext.d.ts +7 -0
  246. package/dist/context/CalendarDirectionContext.d.ts.map +1 -0
  247. package/dist/context/CalendarDirectionContext.js +7 -0
  248. package/dist/context/CalendarDirectionContext.js.map +1 -0
  249. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  250. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  251. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  252. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  253. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  254. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  255. package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
  256. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  257. package/dist/cssm/components/Calendar/Calendar.js +79 -64
  258. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  259. package/dist/cssm/components/CalendarDay/CalendarDay.js +3 -1
  260. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  261. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +4 -0
  262. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  263. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +4 -2
  264. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  265. package/dist/cssm/components/CalendarRange/CalendarRange.js +108 -94
  266. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  267. package/dist/cssm/components/CalendarTime/CalendarTime.js +67 -9
  268. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  269. package/dist/cssm/components/CardScroll/CardScroll.js +3 -1
  270. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  271. package/dist/cssm/components/CarouselBase/Bullets.js +22 -0
  272. package/dist/cssm/components/CarouselBase/Bullets.js.map +1 -0
  273. package/dist/cssm/components/{BaseGallery/CarouselBase → CarouselBase}/CarouselBase.js +164 -97
  274. package/dist/cssm/components/CarouselBase/CarouselBase.js.map +1 -0
  275. package/dist/cssm/components/{BaseGallery/BaseGallery.module.css → CarouselBase/CarouselBase.module.css} +21 -1
  276. package/dist/cssm/components/CarouselBase/CarouselViewPort.js +30 -0
  277. package/dist/cssm/components/CarouselBase/CarouselViewPort.js.map +1 -0
  278. package/dist/cssm/components/CarouselBase/ScrollArrows.js +35 -0
  279. package/dist/cssm/components/CarouselBase/ScrollArrows.js.map +1 -0
  280. package/dist/cssm/components/{BaseGallery/CarouselBase → CarouselBase}/constants.js +5 -1
  281. package/dist/cssm/components/CarouselBase/constants.js.map +1 -0
  282. package/dist/{components/BaseGallery → cssm/components}/CarouselBase/helpers.js +39 -5
  283. package/dist/cssm/components/CarouselBase/helpers.js.map +1 -0
  284. package/dist/cssm/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.js +2 -2
  285. package/dist/cssm/components/CarouselBase/hooks.js.map +1 -0
  286. package/dist/cssm/components/CarouselBase/types.js.map +1 -0
  287. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  288. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +1 -1
  289. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  290. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  291. package/dist/cssm/components/Clickable/useState.js.map +1 -1
  292. package/dist/cssm/components/Clickable/useStateWithDelay.js +1 -1
  293. package/dist/cssm/components/Clickable/useStateWithDelay.js.map +1 -1
  294. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +8 -23
  295. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  296. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +22 -0
  297. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  298. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +2 -3
  299. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  300. package/dist/cssm/components/CustomScrollView/CustomScrollView.js +8 -4
  301. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  302. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +6 -2
  303. package/dist/cssm/components/CustomSelect/CustomSelect.js +6 -3
  304. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  305. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  306. package/dist/cssm/components/DateInput/DateInput.js +37 -5
  307. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  308. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -3
  309. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  310. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  311. package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -2
  312. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  313. package/dist/cssm/components/FormField/FormField.module.css +11 -11
  314. package/dist/cssm/components/Gallery/Gallery.js +3 -5
  315. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  316. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -3
  317. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  318. package/dist/cssm/components/Image/Image.js +2 -0
  319. package/dist/cssm/components/Image/Image.js.map +1 -1
  320. package/dist/cssm/components/ImageBase/ImageBase.js +35 -9
  321. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  322. package/dist/cssm/components/ImageBase/ImageBase.module.css +9 -0
  323. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js +91 -0
  324. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -0
  325. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +134 -0
  326. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/helpers.js +35 -0
  327. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/helpers.js.map +1 -0
  328. package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  329. package/dist/cssm/components/ImageBase/context.js +3 -1
  330. package/dist/cssm/components/ImageBase/context.js.map +1 -1
  331. package/dist/cssm/components/ImageBase/types.js.map +1 -1
  332. package/dist/cssm/components/ImageBase/validators.js.map +1 -1
  333. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  334. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  335. package/dist/cssm/components/Pagination/Pagination.js +10 -4
  336. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  337. package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js +2 -1
  338. package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  339. package/dist/cssm/components/Popover/Popover.js +5 -93
  340. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  341. package/dist/cssm/components/Popover/usePopover.js +102 -0
  342. package/dist/cssm/components/Popover/usePopover.js.map +1 -0
  343. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  344. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -1
  345. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  346. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  347. package/dist/cssm/components/RichCell/RichCell.js +13 -8
  348. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  349. package/dist/cssm/components/RichCell/RichCell.module.css +17 -3
  350. package/dist/cssm/components/Root/Root.js +3 -1
  351. package/dist/cssm/components/Root/Root.js.map +1 -1
  352. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +27 -7
  353. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  354. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +5 -5
  355. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  356. package/dist/cssm/components/Select/Select.js +1 -1
  357. package/dist/cssm/components/Select/Select.js.map +1 -1
  358. package/dist/cssm/components/Skeleton/Skeleton.js +2 -2
  359. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  360. package/dist/cssm/components/Slider/Slider.js +3 -1
  361. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  362. package/dist/cssm/components/Snackbar/Snackbar.js +1 -1
  363. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  364. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +12 -6
  365. package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -1
  366. package/dist/cssm/components/Tabs/Tabs.js +2 -82
  367. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  368. package/dist/cssm/components/Textarea/Textarea.js +2 -2
  369. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  370. package/dist/cssm/components/Textarea/useResizeTextarea.js +1 -1
  371. package/dist/cssm/components/Textarea/useResizeTextarea.js.map +1 -1
  372. package/dist/cssm/components/Tooltip/Tooltip.js +3 -2
  373. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  374. package/dist/cssm/components/UsersStack/UsersStack.js +15 -4
  375. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  376. package/dist/cssm/components/UsersStack/UsersStack.module.css +27 -17
  377. package/dist/cssm/components/View/View.js +3 -1
  378. package/dist/cssm/components/View/View.js.map +1 -1
  379. package/dist/cssm/components/View/ViewInfinite.js +3 -1
  380. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  381. package/dist/cssm/context/CalendarDirectionContext.js +7 -0
  382. package/dist/cssm/context/CalendarDirectionContext.js.map +1 -0
  383. package/dist/cssm/helpers/getMergedSameEventsByProps.js.map +1 -1
  384. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  385. package/dist/cssm/hooks/useDirection.js.map +1 -1
  386. package/dist/cssm/hooks/useDraggableWithDomApi/types.js.map +1 -1
  387. package/dist/cssm/hooks/useEnsuredControl.js +1 -1
  388. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  389. package/dist/cssm/hooks/useExternRef.js.map +1 -1
  390. package/dist/cssm/hooks/useFocusTrap.js.map +1 -1
  391. package/dist/cssm/hooks/useGlobalOnClickOutside.js.map +1 -1
  392. package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
  393. package/dist/cssm/hooks/useMutationObserver.js.map +1 -1
  394. package/dist/cssm/hooks/useNativeFormResetListener.js.map +1 -1
  395. package/dist/cssm/hooks/usePatchChildren.js.map +1 -1
  396. package/dist/cssm/hooks/usePrevious.js +1 -1
  397. package/dist/cssm/hooks/usePrevious.js.map +1 -1
  398. package/dist/cssm/hooks/useResizeObserver.js +20 -4
  399. package/dist/cssm/hooks/useResizeObserver.js.map +1 -1
  400. package/dist/cssm/hooks/useStateWithPrev.js.map +1 -1
  401. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  402. package/dist/cssm/hooks/useSyncHTMLWithTokens.js.map +1 -1
  403. package/dist/cssm/hooks/useTabsNavigation.js +90 -0
  404. package/dist/cssm/hooks/useTabsNavigation.js.map +1 -0
  405. package/dist/cssm/index.js +4 -0
  406. package/dist/cssm/index.js.map +1 -1
  407. package/dist/cssm/lib/animation/useCSSTransition.js.map +1 -1
  408. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -4
  409. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  410. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  411. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +10 -3
  412. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  413. package/dist/cssm/lib/utils.js.map +1 -1
  414. package/dist/cssm/styles/constants.css +1 -0
  415. package/dist/helpers/getMergedSameEventsByProps.d.ts +1 -1
  416. package/dist/helpers/getMergedSameEventsByProps.d.ts.map +1 -1
  417. package/dist/helpers/getMergedSameEventsByProps.js.map +1 -1
  418. package/dist/hooks/useDateInput.d.ts +3 -3
  419. package/dist/hooks/useDateInput.d.ts.map +1 -1
  420. package/dist/hooks/useDateInput.js.map +1 -1
  421. package/dist/hooks/useDirection.d.ts +2 -2
  422. package/dist/hooks/useDirection.d.ts.map +1 -1
  423. package/dist/hooks/useDirection.js.map +1 -1
  424. package/dist/hooks/useDraggableWithDomApi/types.d.ts +1 -1
  425. package/dist/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  426. package/dist/hooks/useDraggableWithDomApi/types.js.map +1 -1
  427. package/dist/hooks/useEnsuredControl.js +1 -1
  428. package/dist/hooks/useEnsuredControl.js.map +1 -1
  429. package/dist/hooks/useExternRef.d.ts +1 -1
  430. package/dist/hooks/useExternRef.d.ts.map +1 -1
  431. package/dist/hooks/useExternRef.js.map +1 -1
  432. package/dist/hooks/useFocusTrap.d.ts +1 -1
  433. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  434. package/dist/hooks/useFocusTrap.js.map +1 -1
  435. package/dist/hooks/useGlobalOnClickOutside.d.ts +1 -1
  436. package/dist/hooks/useGlobalOnClickOutside.d.ts.map +1 -1
  437. package/dist/hooks/useGlobalOnClickOutside.js.map +1 -1
  438. package/dist/hooks/useKeyboardInputTracker.d.ts +1 -1
  439. package/dist/hooks/useKeyboardInputTracker.d.ts.map +1 -1
  440. package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
  441. package/dist/hooks/useMutationObserver.d.ts +1 -1
  442. package/dist/hooks/useMutationObserver.d.ts.map +1 -1
  443. package/dist/hooks/useMutationObserver.js.map +1 -1
  444. package/dist/hooks/useNativeFormResetListener.d.ts +1 -1
  445. package/dist/hooks/useNativeFormResetListener.d.ts.map +1 -1
  446. package/dist/hooks/useNativeFormResetListener.js.map +1 -1
  447. package/dist/hooks/usePatchChildren.d.ts +2 -2
  448. package/dist/hooks/usePatchChildren.d.ts.map +1 -1
  449. package/dist/hooks/usePatchChildren.js.map +1 -1
  450. package/dist/hooks/usePrevious.js +1 -1
  451. package/dist/hooks/usePrevious.js.map +1 -1
  452. package/dist/hooks/useResizeObserver.d.ts +1 -1
  453. package/dist/hooks/useResizeObserver.d.ts.map +1 -1
  454. package/dist/hooks/useResizeObserver.js +20 -4
  455. package/dist/hooks/useResizeObserver.js.map +1 -1
  456. package/dist/hooks/useStateWithPrev.d.ts.map +1 -1
  457. package/dist/hooks/useStateWithPrev.js.map +1 -1
  458. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +1 -1
  459. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
  460. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  461. package/dist/hooks/useSyncHTMLWithTokens.d.ts +1 -1
  462. package/dist/hooks/useSyncHTMLWithTokens.d.ts.map +1 -1
  463. package/dist/hooks/useSyncHTMLWithTokens.js.map +1 -1
  464. package/dist/hooks/useTabsNavigation.d.ts +5 -0
  465. package/dist/hooks/useTabsNavigation.d.ts.map +1 -0
  466. package/dist/hooks/useTabsNavigation.js +90 -0
  467. package/dist/hooks/useTabsNavigation.js.map +1 -0
  468. package/dist/index.d.ts +5 -1
  469. package/dist/index.d.ts.map +1 -1
  470. package/dist/index.js +4 -0
  471. package/dist/index.js.map +1 -1
  472. package/dist/lib/animation/useCSSTransition.d.ts +1 -1
  473. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  474. package/dist/lib/animation/useCSSTransition.js.map +1 -1
  475. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +1 -1
  476. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  477. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -4
  478. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  479. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +10 -1
  480. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  481. package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  482. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts +1 -1
  483. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts.map +1 -1
  484. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +10 -3
  485. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  486. package/dist/lib/utils.d.ts +1 -1
  487. package/dist/lib/utils.d.ts.map +1 -1
  488. package/dist/lib/utils.js.map +1 -1
  489. package/dist/vkui.css +1 -1
  490. package/dist/vkui.css.map +1 -1
  491. package/package.json +6 -6
  492. package/src/components/ActionSheet/types.ts +1 -1
  493. package/src/components/Alert/Alert.tsx +1 -1
  494. package/src/components/AppRoot/AppRoot.tsx +1 -1
  495. package/src/components/AppRoot/AppRootContext.ts +2 -2
  496. package/src/components/AppRoot/AppRootPortal.tsx +1 -1
  497. package/src/components/AppRoot/ScrollContext.tsx +1 -1
  498. package/src/components/AspectRatio/AspectRatio.tsx +11 -4
  499. package/src/components/Calendar/Calendar.tsx +90 -72
  500. package/src/components/CalendarDay/CalendarDay.module.css +4 -0
  501. package/src/components/CalendarDay/CalendarDay.tsx +10 -1
  502. package/src/components/CalendarDays/CalendarDays.tsx +3 -0
  503. package/src/components/CalendarHeader/CalendarHeader.tsx +17 -2
  504. package/src/components/CalendarRange/CalendarRange.tsx +110 -84
  505. package/src/components/CalendarTime/CalendarTime.tsx +104 -16
  506. package/src/components/CardScroll/CardScroll.tsx +8 -2
  507. package/src/components/CarouselBase/Bullets.tsx +36 -0
  508. package/src/components/{BaseGallery/BaseGallery.module.css → CarouselBase/CarouselBase.module.css} +19 -1
  509. package/src/components/CarouselBase/CarouselBase.tsx +502 -0
  510. package/src/components/CarouselBase/CarouselViewPort.tsx +54 -0
  511. package/src/components/CarouselBase/ScrollArrows.tsx +80 -0
  512. package/src/components/{BaseGallery/CarouselBase → CarouselBase}/constants.ts +4 -0
  513. package/src/components/{BaseGallery/CarouselBase → CarouselBase}/helpers.ts +67 -7
  514. package/src/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.ts +2 -2
  515. package/src/components/CarouselBase/types.ts +135 -0
  516. package/src/components/ChipsInput/ChipsInput.tsx +1 -1
  517. package/src/components/ChipsInput/useChipsInput.ts +2 -2
  518. package/src/components/ChipsSelect/ChipsSelect.tsx +1 -1
  519. package/src/components/ChipsSelect/useChipsSelect.ts +1 -1
  520. package/src/components/Clickable/useState.tsx +2 -2
  521. package/src/components/Clickable/useStateWithDelay.tsx +1 -1
  522. package/src/components/ConfigProvider/ConfigProvider.tsx +8 -35
  523. package/src/components/ConfigProvider/ConfigProviderContext.tsx +36 -0
  524. package/src/components/ConfigProvider/ConfigProviderOverride.tsx +2 -5
  525. package/src/components/CustomScrollView/CustomScrollView.module.css +6 -2
  526. package/src/components/CustomScrollView/CustomScrollView.tsx +13 -2
  527. package/src/components/CustomSelect/CustomSelect.tsx +12 -4
  528. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -1
  529. package/src/components/DateInput/DateInput.tsx +62 -5
  530. package/src/components/DateRangeInput/DateRangeInput.tsx +22 -2
  531. package/src/components/Epic/Epic.tsx +5 -3
  532. package/src/components/FixedLayout/FixedLayout.tsx +1 -2
  533. package/src/components/FormField/FormField.module.css +11 -11
  534. package/src/components/Gallery/Gallery.tsx +4 -10
  535. package/src/components/HorizontalScroll/HorizontalScroll.tsx +12 -2
  536. package/src/components/Image/Image.tsx +4 -0
  537. package/src/components/ImageBase/ImageBase.module.css +9 -0
  538. package/src/components/ImageBase/ImageBase.tsx +69 -10
  539. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +134 -0
  540. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx +168 -0
  541. package/src/components/ImageBase/ImageBaseFloatElement/helpers.ts +44 -0
  542. package/src/components/ImageBase/ImageBaseOverlay/hooks.ts +1 -1
  543. package/src/components/ImageBase/context.ts +2 -0
  544. package/src/components/ImageBase/types.ts +2 -0
  545. package/src/components/ImageBase/validators.ts +5 -4
  546. package/src/components/ModalCardBase/ModalCardBase.tsx +1 -1
  547. package/src/components/ModalRoot/ModalRootContext.tsx +3 -1
  548. package/src/components/Pagination/Pagination.tsx +23 -4
  549. package/src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx +4 -2
  550. package/src/components/Popover/Popover.tsx +6 -166
  551. package/src/components/Popover/usePopover.tsx +183 -0
  552. package/src/components/Popper/Popper.tsx +1 -1
  553. package/src/components/PullToRefresh/PullToRefresh.tsx +1 -1
  554. package/src/components/Removable/Removable.tsx +2 -2
  555. package/src/components/RichCell/RichCell.module.css +17 -3
  556. package/src/components/RichCell/RichCell.tsx +28 -8
  557. package/src/components/Root/Root.tsx +4 -2
  558. package/src/components/SegmentedControl/SegmentedControl.tsx +46 -14
  559. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +14 -10
  560. package/src/components/Select/Select.tsx +1 -0
  561. package/src/components/Skeleton/Skeleton.tsx +3 -3
  562. package/src/components/Slider/Slider.tsx +12 -0
  563. package/src/components/Snackbar/Snackbar.tsx +1 -1
  564. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +12 -6
  565. package/src/components/SplitCol/SplitColContext.tsx +1 -1
  566. package/src/components/Tabs/Tabs.tsx +2 -99
  567. package/src/components/Textarea/Textarea.tsx +2 -2
  568. package/src/components/Textarea/useResizeTextarea.ts +3 -3
  569. package/src/components/Tooltip/Tooltip.tsx +3 -0
  570. package/src/components/UsersStack/UsersStack.module.css +27 -17
  571. package/src/components/UsersStack/UsersStack.tsx +24 -3
  572. package/src/components/View/View.tsx +9 -5
  573. package/src/components/View/ViewInfinite.tsx +5 -3
  574. package/src/context/CalendarDirectionContext.ts +12 -0
  575. package/src/helpers/getMergedSameEventsByProps.ts +1 -1
  576. package/src/hooks/useDateInput.ts +5 -5
  577. package/src/hooks/useDirection.ts +3 -3
  578. package/src/hooks/useDraggableWithDomApi/types.ts +1 -1
  579. package/src/hooks/useEnsuredControl.ts +1 -1
  580. package/src/hooks/useExternRef.ts +2 -2
  581. package/src/hooks/useFocusTrap.ts +1 -1
  582. package/src/hooks/useGlobalOnClickOutside.ts +1 -1
  583. package/src/hooks/useKeyboardInputTracker.ts +1 -1
  584. package/src/hooks/useMutationObserver.ts +1 -1
  585. package/src/hooks/useNativeFormResetListener.ts +1 -1
  586. package/src/hooks/usePatchChildren.ts +2 -9
  587. package/src/hooks/usePrevious.ts +1 -1
  588. package/src/hooks/useResizeObserver.ts +30 -6
  589. package/src/hooks/useStateWithPrev.ts +1 -5
  590. package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +1 -1
  591. package/src/hooks/useSyncHTMLWithTokens.ts +1 -1
  592. package/src/hooks/useTabsNavigation.ts +104 -0
  593. package/src/index.ts +7 -0
  594. package/src/lib/animation/useCSSTransition.ts +1 -1
  595. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +9 -9
  596. package/src/lib/floating/useFloatingWithInteractions/types.ts +15 -5
  597. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +7 -2
  598. package/src/lib/utils.ts +2 -2
  599. package/src/styles/constants.css +1 -0
  600. package/dist/components/BaseGallery/BaseGallery.d.ts +0 -4
  601. package/dist/components/BaseGallery/BaseGallery.d.ts.map +0 -1
  602. package/dist/components/BaseGallery/BaseGallery.js +0 -321
  603. package/dist/components/BaseGallery/BaseGallery.js.map +0 -1
  604. package/dist/components/BaseGallery/CarouselBase/CarouselBase.d.ts +0 -4
  605. package/dist/components/BaseGallery/CarouselBase/CarouselBase.d.ts.map +0 -1
  606. package/dist/components/BaseGallery/CarouselBase/CarouselBase.js.map +0 -1
  607. package/dist/components/BaseGallery/CarouselBase/constants.d.ts.map +0 -1
  608. package/dist/components/BaseGallery/CarouselBase/constants.js.map +0 -1
  609. package/dist/components/BaseGallery/CarouselBase/helpers.d.ts.map +0 -1
  610. package/dist/components/BaseGallery/CarouselBase/helpers.js.map +0 -1
  611. package/dist/components/BaseGallery/CarouselBase/hooks.d.ts.map +0 -1
  612. package/dist/components/BaseGallery/CarouselBase/hooks.js.map +0 -1
  613. package/dist/components/BaseGallery/CarouselBase/types.d.ts +0 -54
  614. package/dist/components/BaseGallery/CarouselBase/types.d.ts.map +0 -1
  615. package/dist/components/BaseGallery/CarouselBase/types.js.map +0 -1
  616. package/dist/components/BaseGallery/helpers.d.ts +0 -13
  617. package/dist/components/BaseGallery/helpers.d.ts.map +0 -1
  618. package/dist/components/BaseGallery/helpers.js +0 -24
  619. package/dist/components/BaseGallery/helpers.js.map +0 -1
  620. package/dist/components/BaseGallery/types.d.ts +0 -55
  621. package/dist/components/BaseGallery/types.d.ts.map +0 -1
  622. package/dist/components/BaseGallery/types.js.map +0 -1
  623. package/dist/cssm/components/BaseGallery/BaseGallery.js +0 -293
  624. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +0 -1
  625. package/dist/cssm/components/BaseGallery/CarouselBase/CarouselBase.js.map +0 -1
  626. package/dist/cssm/components/BaseGallery/CarouselBase/constants.js.map +0 -1
  627. package/dist/cssm/components/BaseGallery/CarouselBase/helpers.js.map +0 -1
  628. package/dist/cssm/components/BaseGallery/CarouselBase/hooks.js.map +0 -1
  629. package/dist/cssm/components/BaseGallery/CarouselBase/types.js +0 -3
  630. package/dist/cssm/components/BaseGallery/CarouselBase/types.js.map +0 -1
  631. package/dist/cssm/components/BaseGallery/helpers.js +0 -24
  632. package/dist/cssm/components/BaseGallery/helpers.js.map +0 -1
  633. package/dist/cssm/components/BaseGallery/types.js +0 -3
  634. package/dist/cssm/components/BaseGallery/types.js.map +0 -1
  635. package/dist/cssm/hooks/useObjectMemo.js +0 -15
  636. package/dist/cssm/hooks/useObjectMemo.js.map +0 -1
  637. package/dist/hooks/useObjectMemo.d.ts +0 -5
  638. package/dist/hooks/useObjectMemo.d.ts.map +0 -1
  639. package/dist/hooks/useObjectMemo.js +0 -15
  640. package/dist/hooks/useObjectMemo.js.map +0 -1
  641. package/src/components/BaseGallery/BaseGallery.tsx +0 -380
  642. package/src/components/BaseGallery/CarouselBase/CarouselBase.tsx +0 -399
  643. package/src/components/BaseGallery/CarouselBase/types.ts +0 -56
  644. package/src/components/BaseGallery/helpers.ts +0 -46
  645. package/src/components/BaseGallery/types.ts +0 -61
  646. package/src/hooks/useObjectMemo.ts +0 -16
  647. /package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/constants.d.ts +0 -0
  648. /package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/types.js +0 -0
  649. /package/dist/{components/BaseGallery → cssm/components/CarouselBase}/types.js +0 -0
@@ -0,0 +1,4 @@
1
+ import { type FloatElementIndentation } from './ImageBaseFloatElement';
2
+ export declare const resolveIndent: (indent: FloatElementIndentation | undefined, cssProperty: string, classNames: Record<string, string>) => [React.CSSProperties | undefined, string | undefined];
3
+ export declare const mutableRemoveElement: <T>(arr: T[], element: T) => void;
4
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/components/ImageBase/ImageBaseFloatElement/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAuBvE,eAAO,MAAM,aAAa,WAChB,uBAAuB,GAAG,SAAS,eAC9B,MAAM,cACP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACjC,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,CAYtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,SAE3D,CAAC"}
@@ -0,0 +1,35 @@
1
+ function isIndentSizeConstant(indent) {
2
+ return indent === '2xs' || indent === 'xs' || indent === 's' || indent === 'm' || indent === 'l' || indent === 'xl' || indent === '2xl' || indent === '3xl' || indent === '4xl';
3
+ }
4
+ function calculateIndent(indent) {
5
+ if (isIndentSizeConstant(indent)) {
6
+ return;
7
+ }
8
+ return typeof indent === 'string' ? indent : `${indent}px`;
9
+ }
10
+ export const resolveIndent = (indent, cssProperty, classNames)=>{
11
+ if (!indent) {
12
+ return [
13
+ undefined,
14
+ undefined
15
+ ];
16
+ }
17
+ const calculatedIndent = calculateIndent(indent);
18
+ if (calculatedIndent) {
19
+ return [
20
+ {
21
+ [cssProperty]: calculatedIndent
22
+ },
23
+ undefined
24
+ ];
25
+ }
26
+ return [
27
+ undefined,
28
+ classNames[indent]
29
+ ];
30
+ };
31
+ export const mutableRemoveElement = (arr, element)=>{
32
+ arr.splice(arr.indexOf(element), 1);
33
+ };
34
+
35
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ImageBase/ImageBaseFloatElement/helpers.ts"],"sourcesContent":["import { type FloatElementIndentation } from './ImageBaseFloatElement';\n\nfunction isIndentSizeConstant(indent: FloatElementIndentation) {\n return (\n indent === '2xs' ||\n indent === 'xs' ||\n indent === 's' ||\n indent === 'm' ||\n indent === 'l' ||\n indent === 'xl' ||\n indent === '2xl' ||\n indent === '3xl' ||\n indent === '4xl'\n );\n}\n\nfunction calculateIndent(indent: FloatElementIndentation) {\n if (isIndentSizeConstant(indent)) {\n return;\n }\n return typeof indent === 'string' ? indent : `${indent}px`;\n}\n\nexport const resolveIndent = (\n indent: FloatElementIndentation | undefined,\n cssProperty: string,\n classNames: Record<string, string>,\n): [React.CSSProperties | undefined, string | undefined] => {\n if (!indent) {\n return [undefined, undefined];\n }\n\n const calculatedIndent = calculateIndent(indent);\n\n if (calculatedIndent) {\n return [{ [cssProperty]: calculatedIndent }, undefined];\n }\n\n return [undefined, classNames[indent]];\n};\n\nexport const mutableRemoveElement = <T>(arr: T[], element: T) => {\n arr.splice(arr.indexOf(element), 1);\n};\n"],"names":["isIndentSizeConstant","indent","calculateIndent","resolveIndent","cssProperty","classNames","undefined","calculatedIndent","mutableRemoveElement","arr","element","splice","indexOf"],"mappings":"AAEA,SAASA,qBAAqBC,MAA+B;IAC3D,OACEA,WAAW,SACXA,WAAW,QACXA,WAAW,OACXA,WAAW,OACXA,WAAW,OACXA,WAAW,QACXA,WAAW,SACXA,WAAW,SACXA,WAAW;AAEf;AAEA,SAASC,gBAAgBD,MAA+B;IACtD,IAAID,qBAAqBC,SAAS;QAChC;IACF;IACA,OAAO,OAAOA,WAAW,WAAWA,SAAS,GAAGA,OAAO,EAAE,CAAC;AAC5D;AAEA,OAAO,MAAME,gBAAgB,CAC3BF,QACAG,aACAC;IAEA,IAAI,CAACJ,QAAQ;QACX,OAAO;YAACK;YAAWA;SAAU;IAC/B;IAEA,MAAMC,mBAAmBL,gBAAgBD;IAEzC,IAAIM,kBAAkB;QACpB,OAAO;YAAC;gBAAE,CAACH,YAAY,EAAEG;YAAiB;YAAGD;SAAU;IACzD;IAEA,OAAO;QAACA;QAAWD,UAAU,CAACJ,OAAO;KAAC;AACxC,EAAE;AAEF,OAAO,MAAMO,uBAAuB,CAAIC,KAAUC;IAChDD,IAAIE,MAAM,CAACF,IAAIG,OAAO,CAACF,UAAU;AACnC,EAAE"}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- export declare function useNonInteractiveOverlayProps(rootRef: React.MutableRefObject<HTMLElement | null>): {
2
+ export declare function useNonInteractiveOverlayProps(rootRef: React.RefObject<HTMLElement | null>): {
3
3
  shown: boolean;
4
4
  onClick: (event: React.MouseEvent) => void;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../src/components/ImageBase/ImageBaseOverlay/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;;qBAIvE,KAAK,CAAC,UAAU;EAiBzC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../src/components/ImageBase/ImageBaseOverlay/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;;qBAIhE,KAAK,CAAC,UAAU;EAiBzC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ImageBase/ImageBaseOverlay/hooks.ts"],"sourcesContent":["import * as React from 'react';\nimport { useFocusWithin } from '../../../hooks/useFocusWithin';\nimport { useIsomorphicLayoutEffect } from '../../../lib/useIsomorphicLayoutEffect';\n\nexport function useNonInteractiveOverlayProps(rootRef: React.MutableRefObject<HTMLElement | null>) {\n const focusWithin = useFocusWithin(rootRef);\n const [nonInteractiveFocusShown, setNonInteractiveFocusShown] = React.useState(false);\n\n function onClick(event: React.MouseEvent) {\n if (event.detail > 0) {\n // Если мы попали на вложенный в оверлей элемент через focus,\n // то при клике мышкой мы должны начать реагировать на hover-состояние,\n // даже если фокус всё ещё остался на вложенном элементе (был по нему клик)\n setNonInteractiveFocusShown(false);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n setNonInteractiveFocusShown(focusWithin);\n }, [focusWithin]);\n\n return {\n shown: nonInteractiveFocusShown && focusWithin,\n onClick,\n };\n}\n"],"names":["React","useFocusWithin","useIsomorphicLayoutEffect","useNonInteractiveOverlayProps","rootRef","focusWithin","nonInteractiveFocusShown","setNonInteractiveFocusShown","useState","onClick","event","detail","shown"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,cAAc,QAAQ,mCAAgC;AAC/D,SAASC,yBAAyB,QAAQ,4CAAyC;AAEnF,OAAO,SAASC,8BAA8BC,OAAmD;IAC/F,MAAMC,cAAcJ,eAAeG;IACnC,MAAM,CAACE,0BAA0BC,4BAA4B,GAAGP,MAAMQ,QAAQ,CAAC;IAE/E,SAASC,QAAQC,KAAuB;QACtC,IAAIA,MAAMC,MAAM,GAAG,GAAG;YACpB,6DAA6D;YAC7D,uEAAuE;YACvE,2EAA2E;YAC3EJ,4BAA4B;QAC9B;IACF;IAEAL,0BAA0B;QACxBK,4BAA4BF;IAC9B,GAAG;QAACA;KAAY;IAEhB,OAAO;QACLO,OAAON,4BAA4BD;QACnCI;IACF;AACF"}
1
+ {"version":3,"sources":["../../../../src/components/ImageBase/ImageBaseOverlay/hooks.ts"],"sourcesContent":["import * as React from 'react';\nimport { useFocusWithin } from '../../../hooks/useFocusWithin';\nimport { useIsomorphicLayoutEffect } from '../../../lib/useIsomorphicLayoutEffect';\n\nexport function useNonInteractiveOverlayProps(rootRef: React.RefObject<HTMLElement | null>) {\n const focusWithin = useFocusWithin(rootRef);\n const [nonInteractiveFocusShown, setNonInteractiveFocusShown] = React.useState(false);\n\n function onClick(event: React.MouseEvent) {\n if (event.detail > 0) {\n // Если мы попали на вложенный в оверлей элемент через focus,\n // то при клике мышкой мы должны начать реагировать на hover-состояние,\n // даже если фокус всё ещё остался на вложенном элементе (был по нему клик)\n setNonInteractiveFocusShown(false);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n setNonInteractiveFocusShown(focusWithin);\n }, [focusWithin]);\n\n return {\n shown: nonInteractiveFocusShown && focusWithin,\n onClick,\n };\n}\n"],"names":["React","useFocusWithin","useIsomorphicLayoutEffect","useNonInteractiveOverlayProps","rootRef","focusWithin","nonInteractiveFocusShown","setNonInteractiveFocusShown","useState","onClick","event","detail","shown"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,cAAc,QAAQ,mCAAgC;AAC/D,SAASC,yBAAyB,QAAQ,4CAAyC;AAEnF,OAAO,SAASC,8BAA8BC,OAA4C;IACxF,MAAMC,cAAcJ,eAAeG;IACnC,MAAM,CAACE,0BAA0BC,4BAA4B,GAAGP,MAAMQ,QAAQ,CAAC;IAE/E,SAASC,QAAQC,KAAuB;QACtC,IAAIA,MAAMC,MAAM,GAAG,GAAG;YACpB,6DAA6D;YAC7D,uEAAuE;YACvE,2EAA2E;YAC3EJ,4BAA4B;QAC9B;IACF;IAEAL,0BAA0B;QACxBK,4BAA4BF;IAC9B,GAAG;QAACA;KAAY;IAEhB,OAAO;QACLO,OAAON,4BAA4BD;QACnCI;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/components/ImageBase/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAG9D,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/components/ImageBase/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAK9D,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import * as React from "react";
2
2
  export const ImageBaseContext = React.createContext({
3
- size: 0
3
+ size: 0,
4
+ onMouseOverHandlers: [],
5
+ onMouseOutHandlers: []
4
6
  });
5
7
 
6
8
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ImageBase/context.ts"],"sourcesContent":["import * as React from 'react';\nimport type { ImageBaseContextProps } from './types';\n\nexport const ImageBaseContext: React.Context<ImageBaseContextProps> =\n React.createContext<ImageBaseContextProps>({\n size: 0,\n });\n"],"names":["React","ImageBaseContext","createContext","size"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAG/B,OAAO,MAAMC,mBACXD,MAAME,aAAa,CAAwB;IACzCC,MAAM;AACR,GAAG"}
1
+ {"version":3,"sources":["../../../src/components/ImageBase/context.ts"],"sourcesContent":["import * as React from 'react';\nimport type { ImageBaseContextProps } from './types';\n\nexport const ImageBaseContext: React.Context<ImageBaseContextProps> =\n React.createContext<ImageBaseContextProps>({\n size: 0,\n onMouseOverHandlers: [],\n onMouseOutHandlers: [],\n });\n"],"names":["React","ImageBaseContext","createContext","size","onMouseOverHandlers","onMouseOutHandlers"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAG/B,OAAO,MAAMC,mBACXD,MAAME,aAAa,CAAwB;IACzCC,MAAM;IACNC,qBAAqB,EAAE;IACvBC,oBAAoB,EAAE;AACxB,GAAG"}
@@ -7,5 +7,7 @@ export type ImageBaseExpectedIconProps = {
7
7
  };
8
8
  export interface ImageBaseContextProps {
9
9
  size: ImageBaseSize | number;
10
+ onMouseOverHandlers: VoidFunction[];
11
+ onMouseOutHandlers: VoidFunction[];
10
12
  }
11
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ImageBase/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,uEAAwE,CAAC;AAEpG,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ImageBase/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,uEAAwE,CAAC;AAEpG,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;IAC7B,mBAAmB,EAAE,YAAY,EAAE,CAAC;IACpC,kBAAkB,EAAE,YAAY,EAAE,CAAC;CACpC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ImageBase/types.ts"],"sourcesContent":["export const imageBaseSizes = [16, 20, 24, 28, 32, 36, 40, 44, 48, 56, 64, 72, 80, 88, 96] as const;\n\nexport type ImageBaseSize = (typeof imageBaseSizes)[number];\n\nexport type ImageBaseExpectedIconProps = {\n width?: number;\n height?: number;\n className?: string;\n};\n\nexport interface ImageBaseContextProps {\n size: ImageBaseSize | number;\n}\n"],"names":["imageBaseSizes"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB;IAAC;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;CAAG,CAAU"}
1
+ {"version":3,"sources":["../../../src/components/ImageBase/types.ts"],"sourcesContent":["export const imageBaseSizes = [16, 20, 24, 28, 32, 36, 40, 44, 48, 56, 64, 72, 80, 88, 96] as const;\n\nexport type ImageBaseSize = (typeof imageBaseSizes)[number];\n\nexport type ImageBaseExpectedIconProps = {\n width?: number;\n height?: number;\n className?: string;\n};\n\nexport interface ImageBaseContextProps {\n size: ImageBaseSize | number;\n onMouseOverHandlers: VoidFunction[];\n onMouseOutHandlers: VoidFunction[];\n}\n"],"names":["imageBaseSizes"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB;IAAC;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;CAAG,CAAU"}
@@ -1,6 +1,7 @@
1
+ import type * as React from 'react';
1
2
  interface IconProp {
2
3
  name: string;
3
- value: JSX.Element;
4
+ value: React.JSX.Element;
4
5
  }
5
6
  export declare function validateFallbackIcon(imageSize: number, iconProp: IconProp): void;
6
7
  export declare function validateSize(imageSize: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../src/components/ImageBase/validators.ts"],"names":[],"mappings":"AAgDA,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC;CACpB;AAoCD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAOhF;AAOD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAUpD;AAID,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAU7E;AAID,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAO/E"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../src/components/ImageBase/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAiDpC,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;CAC1B;AAoCD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAOhF;AAOD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAUpD;AAID,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAU7E;AAID,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAO/E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ImageBase/validators.ts"],"sourcesContent":["import { warnOnce } from '../../lib/warnOnce';\nimport {\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './helpers';\nimport { imageBaseSizes } from './types';\n\n/**\n * Пример,\n *\n * Icon28User -> 28\n * Icon12Circle1 -> 12\n * Icon12Circle2 -> 12\n * Icon20TextHeading1Outline -> 20\n */\nfunction parseIconSizeByDisplayName(displayName: unknown): number | null {\n if (typeof displayName !== 'string') {\n return null;\n }\n\n const match = /Icon(\\d+)/.exec(displayName);\n\n return match ? Number(match[1]) : null;\n}\n\nfunction parseIconSizeByWidthProp(width: unknown): number | null {\n if (typeof width !== 'string' && typeof width !== 'number') {\n return null;\n }\n const size = Number(width);\n return size > 0 ? size : null;\n}\n\nfunction getElementDisplayName(element: JSX.Element): string | null {\n return element.type.displayName ?? null;\n}\n\nfunction getElementWidthProp(element: JSX.Element): number | string | null {\n return element.props.width ?? null;\n}\n\nfunction getIconSizeByElement(element: JSX.Element): number | null {\n const sizeByDisplayName = parseIconSizeByDisplayName(getElementDisplayName(element));\n const sizeByWidth = parseIconSizeByWidthProp(getElementWidthProp(element));\n return sizeByWidth ? sizeByWidth : sizeByDisplayName;\n}\n\ninterface IconProp {\n name: string;\n value: JSX.Element;\n}\n\ninterface SelectorFn {\n (imageSize: number): number;\n MAX_SIZE: number;\n}\n\nfunction validateIconComponentSizeByImageSize(\n imageSize: number,\n iconProp: IconProp,\n selectorFn: SelectorFn,\n logger: ReturnType<typeof warnOnce>,\n) {\n const iconSize = getIconSizeByElement(iconProp.value);\n\n if (iconSize === null) {\n return;\n }\n\n const result = selectorFn(imageSize);\n\n if (result === iconSize || (result === selectorFn.MAX_SIZE && iconSize >= result)) {\n return;\n }\n\n const iconName = getElementDisplayName(iconProp.value);\n const propMessage = iconName ? `${iconProp.name}={<${iconName} />}` : iconProp.name;\n\n logger(\n `Размер \\`${propMessage}\\` не соответствует дизайн-системе. Для \\`size={${imageSize}}\\` размер иконки для \\`${iconProp.name}\\` должен соответствовать <Icon${result}<name> />. Если такого размера нет, то используйте <${iconName} width={${result}} height={${result}} />`,\n 'log',\n );\n}\n\nconst warnImageBase = warnOnce('ImageBase');\n\nexport function validateFallbackIcon(imageSize: number, iconProp: IconProp): void {\n return validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getFallbackIconSizeByImageBaseSize,\n warnImageBase,\n );\n}\n\nconst mapOfExpectedSize = new Set<number>(imageBaseSizes);\n\nconst arrayOfSizes = Array.from(mapOfExpectedSize).map((str) => Number(str));\nconst maxSize = arrayOfSizes.reduce((maxSize, size) => (size > maxSize ? size : maxSize), 0);\n\nexport function validateSize(imageSize: number): void {\n if (imageSize > maxSize || mapOfExpectedSize.has(imageSize)) {\n return;\n }\n warnImageBase(\n `\\`size={${imageSize}}\\` не соответствует дизайн-системе. Пожалуйста, используйте один из следующих вариантов: ${arrayOfSizes.join(\n ' | ',\n )}`,\n 'log',\n );\n}\n\nconst warnImageBaseBadge = warnOnce('ImageBase.Badge');\n\nexport function validateBadgeIcon(imageSize: number, iconProp: IconProp): void {\n if (imageSize < 24 && iconProp) {\n return warnImageBaseBadge('Не используйте бейдж при `size < 24`.', 'log');\n }\n validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getBadgeIconSizeByImageBaseSize,\n warnImageBaseBadge,\n );\n}\n\nconst warnImageBaseOverlay = warnOnce('ImageBase.Overlay');\n\nexport function validateOverlayIcon(imageSize: number, iconProp: IconProp): void {\n validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getOverlayIconSizeByImageBaseSize,\n warnImageBaseOverlay,\n );\n}\n"],"names":["warnOnce","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","imageBaseSizes","parseIconSizeByDisplayName","displayName","match","exec","Number","parseIconSizeByWidthProp","width","size","getElementDisplayName","element","type","getElementWidthProp","props","getIconSizeByElement","sizeByDisplayName","sizeByWidth","validateIconComponentSizeByImageSize","imageSize","iconProp","selectorFn","logger","iconSize","value","result","MAX_SIZE","iconName","propMessage","name","warnImageBase","validateFallbackIcon","mapOfExpectedSize","Set","arrayOfSizes","Array","from","map","str","maxSize","reduce","validateSize","has","join","warnImageBaseBadge","validateBadgeIcon","warnImageBaseOverlay","validateOverlayIcon"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/ImageBase/validators.ts"],"sourcesContent":["import type * as React from 'react';\nimport { warnOnce } from '../../lib/warnOnce';\nimport {\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './helpers';\nimport { imageBaseSizes } from './types';\n\n/**\n * Пример,\n *\n * Icon28User -> 28\n * Icon12Circle1 -> 12\n * Icon12Circle2 -> 12\n * Icon20TextHeading1Outline -> 20\n */\nfunction parseIconSizeByDisplayName(displayName: unknown): number | null {\n if (typeof displayName !== 'string') {\n return null;\n }\n\n const match = /Icon(\\d+)/.exec(displayName);\n\n return match ? Number(match[1]) : null;\n}\n\nfunction parseIconSizeByWidthProp(width: unknown): number | null {\n if (typeof width !== 'string' && typeof width !== 'number') {\n return null;\n }\n const size = Number(width);\n return size > 0 ? size : null;\n}\n\nfunction getElementDisplayName(element: React.JSX.Element): string | null {\n return element.type.displayName ?? null;\n}\n\nfunction getElementWidthProp(element: React.JSX.Element): number | string | null {\n return element.props.width ?? null;\n}\n\nfunction getIconSizeByElement(element: React.JSX.Element): number | null {\n const sizeByDisplayName = parseIconSizeByDisplayName(getElementDisplayName(element));\n const sizeByWidth = parseIconSizeByWidthProp(getElementWidthProp(element));\n return sizeByWidth ? sizeByWidth : sizeByDisplayName;\n}\n\ninterface IconProp {\n name: string;\n value: React.JSX.Element;\n}\n\ninterface SelectorFn {\n (imageSize: number): number;\n MAX_SIZE: number;\n}\n\nfunction validateIconComponentSizeByImageSize(\n imageSize: number,\n iconProp: IconProp,\n selectorFn: SelectorFn,\n logger: ReturnType<typeof warnOnce>,\n) {\n const iconSize = getIconSizeByElement(iconProp.value);\n\n if (iconSize === null) {\n return;\n }\n\n const result = selectorFn(imageSize);\n\n if (result === iconSize || (result === selectorFn.MAX_SIZE && iconSize >= result)) {\n return;\n }\n\n const iconName = getElementDisplayName(iconProp.value);\n const propMessage = iconName ? `${iconProp.name}={<${iconName} />}` : iconProp.name;\n\n logger(\n `Размер \\`${propMessage}\\` не соответствует дизайн-системе. Для \\`size={${imageSize}}\\` размер иконки для \\`${iconProp.name}\\` должен соответствовать <Icon${result}<name> />. Если такого размера нет, то используйте <${iconName} width={${result}} height={${result}} />`,\n 'log',\n );\n}\n\nconst warnImageBase = warnOnce('ImageBase');\n\nexport function validateFallbackIcon(imageSize: number, iconProp: IconProp): void {\n return validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getFallbackIconSizeByImageBaseSize,\n warnImageBase,\n );\n}\n\nconst mapOfExpectedSize = new Set<number>(imageBaseSizes);\n\nconst arrayOfSizes = Array.from(mapOfExpectedSize).map((str) => Number(str));\nconst maxSize = arrayOfSizes.reduce((maxSize, size) => (size > maxSize ? size : maxSize), 0);\n\nexport function validateSize(imageSize: number): void {\n if (imageSize > maxSize || mapOfExpectedSize.has(imageSize)) {\n return;\n }\n warnImageBase(\n `\\`size={${imageSize}}\\` не соответствует дизайн-системе. Пожалуйста, используйте один из следующих вариантов: ${arrayOfSizes.join(\n ' | ',\n )}`,\n 'log',\n );\n}\n\nconst warnImageBaseBadge = warnOnce('ImageBase.Badge');\n\nexport function validateBadgeIcon(imageSize: number, iconProp: IconProp): void {\n if (imageSize < 24 && iconProp) {\n return warnImageBaseBadge('Не используйте бейдж при `size < 24`.', 'log');\n }\n validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getBadgeIconSizeByImageBaseSize,\n warnImageBaseBadge,\n );\n}\n\nconst warnImageBaseOverlay = warnOnce('ImageBase.Overlay');\n\nexport function validateOverlayIcon(imageSize: number, iconProp: IconProp): void {\n validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getOverlayIconSizeByImageBaseSize,\n warnImageBaseOverlay,\n );\n}\n"],"names":["warnOnce","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","imageBaseSizes","parseIconSizeByDisplayName","displayName","match","exec","Number","parseIconSizeByWidthProp","width","size","getElementDisplayName","element","type","getElementWidthProp","props","getIconSizeByElement","sizeByDisplayName","sizeByWidth","validateIconComponentSizeByImageSize","imageSize","iconProp","selectorFn","logger","iconSize","value","result","MAX_SIZE","iconName","propMessage","name","warnImageBase","validateFallbackIcon","mapOfExpectedSize","Set","arrayOfSizes","Array","from","map","str","maxSize","reduce","validateSize","has","join","warnImageBaseBadge","validateBadgeIcon","warnImageBaseOverlay","validateOverlayIcon"],"mappings":"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"}
@@ -39,7 +39,7 @@ export interface ModalCardBaseProps extends Omit<HTMLAttributesWithRootRef<HTMLD
39
39
  */
40
40
  size?: number;
41
41
  /**
42
- * `data-testid` для кнопки закрытия
42
+ * Передает атрибут `data-testid` для кнопки закрытия
43
43
  */
44
44
  modalDismissButtonTestId?: string;
45
45
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ModalCardBase/ModalCardBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityContext } from '../AdaptivityProvider/AdaptivityContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Spacing } from '../Spacing/Spacing';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Title } from '../Typography/Title/Title';\nimport { ModalCardBaseCloseButton } from './ModalCardBaseCloseButton';\nimport styles from './ModalCardBase.module.css';\n\nexport interface ModalCardBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'title'> {\n /**\n * Иконка.\n *\n * Может быть компонентом иконки, например, `<Icon56MoneyTransferOutline />`, или `<Avatar size={72} src=\"\" />`\n */\n icon?: React.ReactNode;\n\n /**\n * Заголовок карточки\n */\n title?: React.ReactNode;\n /* Позволяет поменять тег используемый для заголовка */\n titleComponent?: React.ElementType;\n\n /**\n * Описание\n */\n description?: React.ReactNode;\n /* Позволяет поменять тег используемый для описания */\n descriptionComponent?: React.ElementType;\n\n /**\n * Кнопки-действия. Принимает [`Button`](https://vkcom.github.io/VKUI/#/Button) с параметрами:\n *\n * - `size=\"l\" mode=\"primary\" stretched`\n * - `size=\"l\" mode=\"secondary\" stretched`\n *\n * Для набора кнопок используйте [`ButtonGroup`](https://vkcom.github.io/VKUI/#/ButtonGroup) с параметрами:\n *\n * - `gap=\"s\" mode=\"horizontal\" stretched`\n * - `gap=\"m\" mode=\"vertical\" stretched`\n */\n actions?: React.ReactNode;\n\n onClose?: VoidFunction;\n\n /**\n * Текст кнопки закрытия. Делает ее доступной для ассистивных технологий\n */\n dismissLabel?: string;\n\n /**\n * Задаёт контенту максимальную ширину для десктопной версии.\n */\n size?: number;\n\n /**\n * `data-testid` для кнопки закрытия\n */\n modalDismissButtonTestId?: string;\n /**\n * Расположение кнопки закрытия (внутри и вне `popout'a`)\n *\n * Доступно только в `compact`-режиме\n *\n * На `iOS` в `regular`-режиме всегда включен `inside`\n *\n * ⚠️ ВНИМАНИЕ: использование `none` скрывает крестик, это негативно сказывается на пользовательском опыте\n */\n dismissButtonMode?: 'inside' | 'outside' | 'none';\n /**\n * Позволяет отключить возможность закрытия модальной страницы (смахивание, клавиша `ESC`, клик по подложке)\n *\n * ⚠️ ВНИМАНИЕ: использование этой опции негативно сказывается на пользовательском опыте\n */\n preventClose?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalCardBase\n */\nexport const ModalCardBase = ({\n icon,\n title,\n titleComponent = 'span',\n description,\n descriptionComponent = 'span',\n children,\n actions,\n onClose,\n dismissLabel = 'Скрыть',\n size: sizeProp,\n modalDismissButtonTestId,\n dismissButtonMode = 'outside',\n preventClose,\n ...restProps\n}: ModalCardBaseProps): React.ReactNode => {\n const platform = usePlatform();\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n const size = isDesktop ? sizeProp : undefined;\n const withSafeZone =\n !icon &&\n (dismissButtonMode === 'inside' ||\n (platform === 'ios' && !isDesktop && dismissButtonMode !== 'none'));\n\n const hasTitle = hasReactNode(title);\n const hasDescription = hasReactNode(description);\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n 'vkuiInternalModalCardBase',\n platform === 'ios' && styles.ios,\n isDesktop && styles.desktop,\n withSafeZone && styles.withSafeZone,\n )}\n baseStyle={{\n maxWidth: size,\n }}\n >\n <div className={styles.container}>\n {hasReactNode(icon) && <div className={styles.icon}>{icon}</div>}\n {hasReactNode(title) && (\n <Title level=\"2\" weight=\"2\" className={styles.title} Component={titleComponent}>\n {title}\n </Title>\n )}\n {hasTitle && hasDescription && <Spacing size={8} />}\n {hasDescription && (\n <AdaptivityContext.Provider value={{ sizeY: 'regular' }}>\n <Subhead className={styles.description} Component={descriptionComponent}>\n {description}\n </Subhead>\n </AdaptivityContext.Provider>\n )}\n\n {children}\n\n {hasReactNode(actions) && <div className={styles.actions}>{actions}</div>}\n\n {dismissButtonMode !== 'none' && (\n <ModalCardBaseCloseButton\n testId={modalDismissButtonTestId}\n onClose={onClose}\n mode={dismissButtonMode}\n >\n {dismissLabel}\n </ModalCardBaseCloseButton>\n )}\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivityWithJSMediaQueries","usePlatform","AdaptivityContext","RootComponent","Spacing","Subhead","Title","ModalCardBaseCloseButton","ModalCardBase","icon","title","titleComponent","description","descriptionComponent","children","actions","onClose","dismissLabel","size","sizeProp","modalDismissButtonTestId","dismissButtonMode","preventClose","restProps","platform","isDesktop","undefined","withSafeZone","hasTitle","hasDescription","baseClassName","baseStyle","maxWidth","div","className","level","weight","Component","Provider","value","sizeY","testId","mode"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,+BAA+B,QAAQ,iDAA8C;AAC9F,SAASC,WAAW,QAAQ,6BAA0B;AAEtD,SAASC,iBAAiB,QAAQ,6CAA0C;AAC5E,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,KAAK,QAAQ,+BAA4B;AAClD,SAASC,wBAAwB,QAAQ,gCAA6B;AAyEtE;;CAEC,GACD,OAAO,MAAMC,gBAAgB;QAAC,EAC5BC,IAAI,EACJC,KAAK,EACLC,iBAAiB,MAAM,EACvBC,WAAW,EACXC,uBAAuB,MAAM,EAC7BC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,eAAe,QAAQ,EACvBC,MAAMC,QAAQ,EACdC,wBAAwB,EACxBC,oBAAoB,SAAS,EAC7BC,YAAY,EAEO,WADhBC;QAbHd;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAC;;IAGA,MAAME,WAAWvB;IACjB,MAAM,EAAEwB,SAAS,EAAE,GAAGzB;IAEtB,MAAMkB,OAAOO,YAAYN,WAAWO;IACpC,MAAMC,eACJ,CAAClB,QACAY,CAAAA,sBAAsB,YACpBG,aAAa,SAAS,CAACC,aAAaJ,sBAAsB,MAAM;IAErE,MAAMO,WAAW7B,aAAaW;IAC9B,MAAMmB,iBAAiB9B,aAAaa;IACpC,qBACE,KAACT,uDACKoB;QACJO,eAAehC,WACb,6BACA0B,aAAa,mCACbC,2CACAE;QAEFI,WAAW;YACTC,UAAUd;QACZ;kBAEA,cAAA,MAACe;YAAIC,SAAS;;gBACXnC,aAAaU,uBAAS,KAACwB;oBAAIC,SAAS;8BAAgBzB;;gBACpDV,aAAaW,wBACZ,KAACJ;oBAAM6B,OAAM;oBAAIC,QAAO;oBAAIF,SAAS;oBAAgBG,WAAW1B;8BAC7DD;;gBAGJkB,YAAYC,gCAAkB,KAACzB;oBAAQc,MAAM;;gBAC7CW,gCACC,KAAC3B,kBAAkBoC,QAAQ;oBAACC,OAAO;wBAAEC,OAAO;oBAAU;8BACpD,cAAA,KAACnC;wBAAQ6B,SAAS;wBAAsBG,WAAWxB;kCAChDD;;;gBAKNE;gBAEAf,aAAagB,0BAAY,KAACkB;oBAAIC,SAAS;8BAAmBnB;;gBAE1DM,sBAAsB,wBACrB,KAACd;oBACCkC,QAAQrB;oBACRJ,SAASA;oBACT0B,MAAMrB;8BAELJ;;;;;AAMb,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/ModalCardBase/ModalCardBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityContext } from '../AdaptivityProvider/AdaptivityContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Spacing } from '../Spacing/Spacing';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Title } from '../Typography/Title/Title';\nimport { ModalCardBaseCloseButton } from './ModalCardBaseCloseButton';\nimport styles from './ModalCardBase.module.css';\n\nexport interface ModalCardBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'title'> {\n /**\n * Иконка.\n *\n * Может быть компонентом иконки, например, `<Icon56MoneyTransferOutline />`, или `<Avatar size={72} src=\"\" />`\n */\n icon?: React.ReactNode;\n\n /**\n * Заголовок карточки\n */\n title?: React.ReactNode;\n /* Позволяет поменять тег используемый для заголовка */\n titleComponent?: React.ElementType;\n\n /**\n * Описание\n */\n description?: React.ReactNode;\n /* Позволяет поменять тег используемый для описания */\n descriptionComponent?: React.ElementType;\n\n /**\n * Кнопки-действия. Принимает [`Button`](https://vkcom.github.io/VKUI/#/Button) с параметрами:\n *\n * - `size=\"l\" mode=\"primary\" stretched`\n * - `size=\"l\" mode=\"secondary\" stretched`\n *\n * Для набора кнопок используйте [`ButtonGroup`](https://vkcom.github.io/VKUI/#/ButtonGroup) с параметрами:\n *\n * - `gap=\"s\" mode=\"horizontal\" stretched`\n * - `gap=\"m\" mode=\"vertical\" stretched`\n */\n actions?: React.ReactNode;\n\n onClose?: VoidFunction;\n\n /**\n * Текст кнопки закрытия. Делает ее доступной для ассистивных технологий\n */\n dismissLabel?: string;\n\n /**\n * Задаёт контенту максимальную ширину для десктопной версии.\n */\n size?: number;\n\n /**\n * Передает атрибут `data-testid` для кнопки закрытия\n */\n modalDismissButtonTestId?: string;\n /**\n * Расположение кнопки закрытия (внутри и вне `popout'a`)\n *\n * Доступно только в `compact`-режиме\n *\n * На `iOS` в `regular`-режиме всегда включен `inside`\n *\n * ⚠️ ВНИМАНИЕ: использование `none` скрывает крестик, это негативно сказывается на пользовательском опыте\n */\n dismissButtonMode?: 'inside' | 'outside' | 'none';\n /**\n * Позволяет отключить возможность закрытия модальной страницы (смахивание, клавиша `ESC`, клик по подложке)\n *\n * ⚠️ ВНИМАНИЕ: использование этой опции негативно сказывается на пользовательском опыте\n */\n preventClose?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalCardBase\n */\nexport const ModalCardBase = ({\n icon,\n title,\n titleComponent = 'span',\n description,\n descriptionComponent = 'span',\n children,\n actions,\n onClose,\n dismissLabel = 'Скрыть',\n size: sizeProp,\n modalDismissButtonTestId,\n dismissButtonMode = 'outside',\n preventClose,\n ...restProps\n}: ModalCardBaseProps): React.ReactNode => {\n const platform = usePlatform();\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n const size = isDesktop ? sizeProp : undefined;\n const withSafeZone =\n !icon &&\n (dismissButtonMode === 'inside' ||\n (platform === 'ios' && !isDesktop && dismissButtonMode !== 'none'));\n\n const hasTitle = hasReactNode(title);\n const hasDescription = hasReactNode(description);\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n 'vkuiInternalModalCardBase',\n platform === 'ios' && styles.ios,\n isDesktop && styles.desktop,\n withSafeZone && styles.withSafeZone,\n )}\n baseStyle={{\n maxWidth: size,\n }}\n >\n <div className={styles.container}>\n {hasReactNode(icon) && <div className={styles.icon}>{icon}</div>}\n {hasReactNode(title) && (\n <Title level=\"2\" weight=\"2\" className={styles.title} Component={titleComponent}>\n {title}\n </Title>\n )}\n {hasTitle && hasDescription && <Spacing size={8} />}\n {hasDescription && (\n <AdaptivityContext.Provider value={{ sizeY: 'regular' }}>\n <Subhead className={styles.description} Component={descriptionComponent}>\n {description}\n </Subhead>\n </AdaptivityContext.Provider>\n )}\n\n {children}\n\n {hasReactNode(actions) && <div className={styles.actions}>{actions}</div>}\n\n {dismissButtonMode !== 'none' && (\n <ModalCardBaseCloseButton\n testId={modalDismissButtonTestId}\n onClose={onClose}\n mode={dismissButtonMode}\n >\n {dismissLabel}\n </ModalCardBaseCloseButton>\n )}\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivityWithJSMediaQueries","usePlatform","AdaptivityContext","RootComponent","Spacing","Subhead","Title","ModalCardBaseCloseButton","ModalCardBase","icon","title","titleComponent","description","descriptionComponent","children","actions","onClose","dismissLabel","size","sizeProp","modalDismissButtonTestId","dismissButtonMode","preventClose","restProps","platform","isDesktop","undefined","withSafeZone","hasTitle","hasDescription","baseClassName","baseStyle","maxWidth","div","className","level","weight","Component","Provider","value","sizeY","testId","mode"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,+BAA+B,QAAQ,iDAA8C;AAC9F,SAASC,WAAW,QAAQ,6BAA0B;AAEtD,SAASC,iBAAiB,QAAQ,6CAA0C;AAC5E,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,KAAK,QAAQ,+BAA4B;AAClD,SAASC,wBAAwB,QAAQ,gCAA6B;AAyEtE;;CAEC,GACD,OAAO,MAAMC,gBAAgB;QAAC,EAC5BC,IAAI,EACJC,KAAK,EACLC,iBAAiB,MAAM,EACvBC,WAAW,EACXC,uBAAuB,MAAM,EAC7BC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,eAAe,QAAQ,EACvBC,MAAMC,QAAQ,EACdC,wBAAwB,EACxBC,oBAAoB,SAAS,EAC7BC,YAAY,EAEO,WADhBC;QAbHd;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAC;;IAGA,MAAME,WAAWvB;IACjB,MAAM,EAAEwB,SAAS,EAAE,GAAGzB;IAEtB,MAAMkB,OAAOO,YAAYN,WAAWO;IACpC,MAAMC,eACJ,CAAClB,QACAY,CAAAA,sBAAsB,YACpBG,aAAa,SAAS,CAACC,aAAaJ,sBAAsB,MAAM;IAErE,MAAMO,WAAW7B,aAAaW;IAC9B,MAAMmB,iBAAiB9B,aAAaa;IACpC,qBACE,KAACT,uDACKoB;QACJO,eAAehC,WACb,6BACA0B,aAAa,mCACbC,2CACAE;QAEFI,WAAW;YACTC,UAAUd;QACZ;kBAEA,cAAA,MAACe;YAAIC,SAAS;;gBACXnC,aAAaU,uBAAS,KAACwB;oBAAIC,SAAS;8BAAgBzB;;gBACpDV,aAAaW,wBACZ,KAACJ;oBAAM6B,OAAM;oBAAIC,QAAO;oBAAIF,SAAS;oBAAgBG,WAAW1B;8BAC7DD;;gBAGJkB,YAAYC,gCAAkB,KAACzB;oBAAQc,MAAM;;gBAC7CW,gCACC,KAAC3B,kBAAkBoC,QAAQ;oBAACC,OAAO;wBAAEC,OAAO;oBAAU;8BACpD,cAAA,KAACnC;wBAAQ6B,SAAS;wBAAsBG,WAAWxB;kCAChDD;;;gBAKNE;gBAEAf,aAAagB,0BAAY,KAACkB;oBAAIC,SAAS;8BAAmBnB;;gBAE1DM,sBAAsB,wBACrB,KAACd;oBACCkC,QAAQrB;oBACRJ,SAASA;oBACT0B,MAAMrB;8BAELJ;;;;;AAMb,EAAE"}
@@ -6,6 +6,6 @@ import type { ModalRootContextInterface } from './types';
6
6
  *
7
7
  * @private
8
8
  */
9
- export declare const ModalRootOverlayContext: import("react").Context<RefObject<HTMLDivElement>>;
9
+ export declare const ModalRootOverlayContext: import("react").Context<RefObject<HTMLDivElement | null>>;
10
10
  export declare const ModalRootContext: import("react").Context<ModalRootContextInterface>;
11
11
  //# sourceMappingURL=ModalRootContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalRootContext.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/ModalRootContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,oDAA8D,CAAC;AAEnG,eAAO,MAAM,gBAAgB,oDAI3B,CAAC"}
1
+ {"version":3,"file":"ModalRootContext.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/ModalRootContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,2DAElC,CAAC;AAEH,eAAO,MAAM,gBAAgB,oDAI3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ModalRoot/ModalRootContext.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, type RefObject } from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport type { ModalRootContextInterface } from './types';\n\n/**\n * Сохраняем `ref` компонента `ModalOverlay` из `ModalRoot` в контекст, чтобы можно было пробросить\n * его до `ModalPage` и `ModalCard`.\n *\n * @private\n */\nexport const ModalRootOverlayContext = createContext<RefObject<HTMLDivElement>>({ current: null });\n\nexport const ModalRootContext = createContext<ModalRootContextInterface>({\n updateModalHeight: noop,\n registerModal: noop,\n isInsideModal: false,\n});\n"],"names":["createContext","noop","ModalRootOverlayContext","current","ModalRootContext","updateModalHeight","registerModal","isInsideModal"],"mappings":"AAAA;AAEA,SAASA,aAAa,QAAwB,QAAQ;AACtD,SAASC,IAAI,QAAQ,kBAAkB;AAGvC;;;;;CAKC,GACD,OAAO,MAAMC,wCAA0BF,cAAyC;IAAEG,SAAS;AAAK,GAAG;AAEnG,OAAO,MAAMC,iCAAmBJ,cAAyC;IACvEK,mBAAmBJ;IACnBK,eAAeL;IACfM,eAAe;AACjB,GAAG"}
1
+ {"version":3,"sources":["../../../src/components/ModalRoot/ModalRootContext.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, type RefObject } from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport type { ModalRootContextInterface } from './types';\n\n/**\n * Сохраняем `ref` компонента `ModalOverlay` из `ModalRoot` в контекст, чтобы можно было пробросить\n * его до `ModalPage` и `ModalCard`.\n *\n * @private\n */\nexport const ModalRootOverlayContext = createContext<RefObject<HTMLDivElement | null>>({\n current: null,\n});\n\nexport const ModalRootContext = createContext<ModalRootContextInterface>({\n updateModalHeight: noop,\n registerModal: noop,\n isInsideModal: false,\n});\n"],"names":["createContext","noop","ModalRootOverlayContext","current","ModalRootContext","updateModalHeight","registerModal","isInsideModal"],"mappings":"AAAA;AAEA,SAASA,aAAa,QAAwB,QAAQ;AACtD,SAASC,IAAI,QAAQ,kBAAkB;AAGvC;;;;;CAKC,GACD,OAAO,MAAMC,wCAA0BF,cAAgD;IACrFG,SAAS;AACX,GAAG;AAEH,OAAO,MAAMC,iCAAmBJ,cAAyC;IACvEK,mBAAmBJ;IACnBK,eAAeL;IACfM,eAAe;AACjB,GAAG"}
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { type PaginationPageType } from '../../hooks/usePagination';
2
3
  import type { HasComponent, HTMLAttributesWithRootRef } from '../../types';
3
4
  import { type CustomPaginationNavigationButton, type PaginationNavigationButtonProps } from './PaginationNavigationButton/PaginationNavigationButton';
4
5
  import { type CustomPaginationPageButtonProps } from './PaginationPage/PaginationPageButton';
@@ -73,9 +74,21 @@ export interface PaginationProps extends Omit<HTMLAttributesWithRootRef<HTMLElem
73
74
  * > Note: `CustomPaginationNavigationButton` наследует API [Button](https://vkcom.github.io/VKUI/#/Button).
74
75
  */
75
76
  renderNavigationButton?: (props: CustomPaginationNavigationButton) => React.ReactNode;
77
+ /**
78
+ * Передает атрибут `data-testid` для кнопок страниц
79
+ */
80
+ pageButtonTestId?: (day: PaginationPageType, active: boolean) => string;
81
+ /**
82
+ * Передает атрибут `data-testid` для кнопки `prev`
83
+ */
84
+ prevButtonTestId?: string;
85
+ /**
86
+ * Передает атрибут `data-testid` для кнопки `next`
87
+ */
88
+ nextButtonTestId?: string;
76
89
  }
77
90
  /**
78
91
  * @see https://vkcom.github.io/VKUI/#/Pagination
79
92
  */
80
- export declare const Pagination: ({ currentPage, siblingCount, boundaryCount, totalPages, disabled, prevButtonCaption, nextButtonCaption, navigationButtonsStyle, getPageLabel, navigationLabel, navigationLabelComponent, prevButtonLabel, nextButtonLabel, onChange, renderPageButton, renderNavigationButton, ...resetProps }: PaginationProps) => React.ReactNode;
93
+ export declare const Pagination: ({ currentPage, siblingCount, boundaryCount, totalPages, disabled, prevButtonCaption, nextButtonCaption, navigationButtonsStyle, getPageLabel, navigationLabel, navigationLabelComponent, prevButtonLabel, nextButtonLabel, onChange, renderPageButton, pageButtonTestId, prevButtonTestId, nextButtonTestId, renderNavigationButton, ...resetProps }: PaginationProps) => React.ReactNode;
81
94
  //# sourceMappingURL=Pagination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,EACL,KAAK,gCAAgC,EAErC,KAAK,+BAA+B,EACrC,MAAM,yDAAyD,CAAC;AACjE,OAAO,EACL,KAAK,+BAA+B,EAErC,MAAM,uCAAuC,CAAC;AAK/C,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IAC/F;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAClE;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACrD;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,MAAM,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACxE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,+BAA+B,KAAK,KAAK,CAAC,SAAS,CAAC;IAC/E;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAC;CACvF;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,mSAkBpB,eAAe,KAAG,KAAK,CAAC,SA2G1B,CAAC"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,2BAA2B,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,EACL,KAAK,gCAAgC,EAErC,KAAK,+BAA+B,EACrC,MAAM,yDAAyD,CAAC;AACjE,OAAO,EACL,KAAK,+BAA+B,EAErC,MAAM,uCAAuC,CAAC;AAK/C,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IAC/F;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAClE;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACrD;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,MAAM,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACxE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,+BAA+B,KAAK,KAAK,CAAC,SAAS,CAAC;IAC/E;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtF;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IACxE;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,yVAqBpB,eAAe,KAAG,KAAK,CAAC,SA+G1B,CAAC"}
@@ -16,7 +16,7 @@ import { getPageLabelDefault } from "./utils.js";
16
16
  /**
17
17
  * @see https://vkcom.github.io/VKUI/#/Pagination
18
18
  */ export const Pagination = (_param)=>{
19
- var { currentPage = 1, siblingCount = 1, boundaryCount = 1, totalPages = 1, disabled, prevButtonCaption = 'Назад', nextButtonCaption = 'Вперёд', navigationButtonsStyle = 'icon', getPageLabel = getPageLabelDefault, navigationLabel = 'Навигация по страницам', navigationLabelComponent = 'h2', prevButtonLabel = 'Перейти на предыдущую страницу', nextButtonLabel = 'Перейти на следующую страницу', onChange, renderPageButton, renderNavigationButton } = _param, resetProps = _object_without_properties(_param, [
19
+ var { currentPage = 1, siblingCount = 1, boundaryCount = 1, totalPages = 1, disabled, prevButtonCaption = 'Назад', nextButtonCaption = 'Вперёд', navigationButtonsStyle = 'icon', getPageLabel = getPageLabelDefault, navigationLabel = 'Навигация по страницам', navigationLabelComponent = 'h2', prevButtonLabel = 'Перейти на предыдущую страницу', nextButtonLabel = 'Перейти на следующую страницу', onChange, renderPageButton, pageButtonTestId, prevButtonTestId, nextButtonTestId, renderNavigationButton } = _param, resetProps = _object_without_properties(_param, [
20
20
  "currentPage",
21
21
  "siblingCount",
22
22
  "boundaryCount",
@@ -32,6 +32,9 @@ import { getPageLabelDefault } from "./utils.js";
32
32
  "nextButtonLabel",
33
33
  "onChange",
34
34
  "renderPageButton",
35
+ "pageButtonTestId",
36
+ "prevButtonTestId",
37
+ "nextButtonTestId",
35
38
  "renderNavigationButton"
36
39
  ]);
37
40
  const pages = usePagination({
@@ -68,17 +71,19 @@ import { getPageLabelDefault } from "./utils.js";
68
71
  ]);
69
72
  const { sizeY } = useAdaptivity();
70
73
  const renderPages = React.useCallback((page)=>{
74
+ const isCurrent = page === currentPage;
75
+ const dataTestId = pageButtonTestId === null || pageButtonTestId === void 0 ? void 0 : pageButtonTestId(page, isCurrent);
71
76
  switch(page){
72
77
  case 'start-ellipsis':
73
78
  case 'end-ellipsis':
74
79
  return /*#__PURE__*/ _jsx("li", {
75
80
  children: /*#__PURE__*/ _jsx(PaginationPageEllipsis, {
76
- disabled: disabled
81
+ disabled: disabled,
82
+ "data-testid": dataTestId
77
83
  })
78
84
  }, page);
79
85
  default:
80
86
  {
81
- const isCurrent = page === currentPage;
82
87
  return /*#__PURE__*/ _jsx("li", {
83
88
  children: /*#__PURE__*/ _jsx(PaginationPageButton, {
84
89
  getPageLabel: getPageLabel,
@@ -87,6 +92,7 @@ import { getPageLabelDefault } from "./utils.js";
87
92
  disabled: disabled,
88
93
  sizeY: sizeY,
89
94
  renderPageButton: renderPageButton,
95
+ "data-testid": dataTestId,
90
96
  children: page
91
97
  })
92
98
  }, page);
@@ -98,7 +104,8 @@ import { getPageLabelDefault } from "./utils.js";
98
104
  getPageLabel,
99
105
  handleClick,
100
106
  renderPageButton,
101
- sizeY
107
+ sizeY,
108
+ pageButtonTestId
102
109
  ]);
103
110
  return /*#__PURE__*/ _jsxs(RootComponent, _object_spread_props(_object_spread({
104
111
  Component: "nav",
@@ -123,6 +130,7 @@ import { getPageLabelDefault } from "./utils.js";
123
130
  disabled: isFirstPage || disabled,
124
131
  onClick: handlePrevClick,
125
132
  "data-page": prevPage,
133
+ "data-testid": prevButtonTestId,
126
134
  renderNavigationButton: renderNavigationButton
127
135
  })
128
136
  }),
@@ -138,6 +146,7 @@ import { getPageLabelDefault } from "./utils.js";
138
146
  disabled: isLastPage || disabled,
139
147
  onClick: handleNextClick,
140
148
  "data-page": nextPage,
149
+ "data-testid": nextButtonTestId,
141
150
  renderNavigationButton: renderNavigationButton
142
151
  })
143
152
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon24ChevronCompactLeft, Icon24ChevronCompactRight } from '@vkontakte/icons';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { type PaginationPageType, usePagination } from '../../hooks/usePagination';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport {\n type CustomPaginationNavigationButton,\n PaginationNavigationButton,\n type PaginationNavigationButtonProps,\n} from './PaginationNavigationButton/PaginationNavigationButton';\nimport {\n type CustomPaginationPageButtonProps,\n PaginationPageButton,\n} from './PaginationPage/PaginationPageButton';\nimport { PaginationPageEllipsis } from './PaginationPage/PaginationPageEllipsis';\nimport { getPageLabelDefault } from './utils';\nimport styles from './Pagination.module.css';\n\nexport interface PaginationProps extends Omit<HTMLAttributesWithRootRef<HTMLElement>, 'onChange'> {\n /**\n * Текущая страница.\n */\n currentPage?: number;\n /**\n * Кол-во всегда видимых страниц по краям текущей страницы.\n */\n siblingCount?: number;\n /**\n * Кол-во всегда видимых страниц в начале и в конце.\n */\n boundaryCount?: number;\n /**\n * Общее кол-во страниц.\n */\n totalPages?: number;\n /**\n * Блокировка всех кнопок.\n */\n disabled?: boolean;\n /**\n * Декоративный текст для кнопки навигации назад.\n *\n * > Note: Экранные дикторы будут использовать `prevButtonLabel`.\n */\n prevButtonCaption?: string;\n /**\n * Декоративный текст для кнопки навигации вперёд.\n *\n * > Note: Экранные дикторы будут использовать `nextButtonLabel`.\n */\n nextButtonCaption?: string;\n /**\n * Задаёт стиль отображения кнопок навигации.\n *\n * - `icon` – показывать только иконку;\n * - `caption` – показывать только подпись;\n * - `both` – показывать и иконку, и подпись.\n */\n navigationButtonsStyle?: PaginationNavigationButtonProps['style'];\n /**\n * [a11y] Метка для обозначения блока навигации.\n */\n navigationLabel?: string;\n navigationLabelComponent?: HasComponent['Component'];\n /**\n * [a11y] Метка для кнопки навигации назад.\n */\n prevButtonLabel?: string;\n /**\n * [a11y] Метка для кнопки навигации вперёд.\n */\n nextButtonLabel?: string;\n /**\n * [a11y] Функция для переопределения и/или локализации метки кнопки страницы.\n */\n getPageLabel?: (isCurrent: boolean) => string;\n onChange?: (page: number, event: React.MouseEvent<HTMLElement>) => void;\n /**\n * Функция для кастомного рендера кнопок страниц.\n *\n * > Note: `CustomPaginationPageButtonProps` наследует API [Tappable](https://vkcom.github.io/VKUI/#/Tappable).\n */\n renderPageButton?: (props: CustomPaginationPageButtonProps) => React.ReactNode;\n /**\n Функция для кастомного рендера кнопок навигации `prev` и `next`.\n *\n * > Note: `CustomPaginationNavigationButton` наследует API [Button](https://vkcom.github.io/VKUI/#/Button).\n */\n renderNavigationButton?: (props: CustomPaginationNavigationButton) => React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Pagination\n */\nexport const Pagination = ({\n currentPage = 1,\n siblingCount = 1,\n boundaryCount = 1,\n totalPages = 1,\n disabled,\n prevButtonCaption = 'Назад',\n nextButtonCaption = 'Вперёд',\n navigationButtonsStyle = 'icon',\n getPageLabel = getPageLabelDefault,\n navigationLabel = 'Навигация по страницам',\n navigationLabelComponent = 'h2',\n prevButtonLabel = 'Перейти на предыдущую страницу',\n nextButtonLabel = 'Перейти на следующую страницу',\n onChange,\n renderPageButton,\n renderNavigationButton,\n ...resetProps\n}: PaginationProps): React.ReactNode => {\n const pages = usePagination({\n currentPage,\n totalPages,\n siblingCount,\n boundaryCount,\n });\n const isFirstPage = currentPage === 1;\n const isLastPage = currentPage === totalPages;\n const prevPage = isFirstPage ? undefined : currentPage - 1;\n const nextPage = isLastPage ? undefined : currentPage + 1;\n\n const handlePrevClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (onChange && prevPage !== undefined) {\n onChange(prevPage, event);\n }\n },\n [prevPage, onChange],\n );\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const page: string = event.currentTarget.dataset.page || '1';\n onChange?.(Number(page), event);\n },\n [onChange],\n );\n\n const handleNextClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (onChange && nextPage !== undefined) {\n onChange(nextPage, event);\n }\n },\n [nextPage, onChange],\n );\n\n const { sizeY } = useAdaptivity();\n\n const renderPages = React.useCallback(\n (page: PaginationPageType) => {\n switch (page) {\n case 'start-ellipsis':\n case 'end-ellipsis':\n return (\n <li key={page}>\n <PaginationPageEllipsis disabled={disabled} />\n </li>\n );\n default: {\n const isCurrent = page === currentPage;\n\n return (\n <li key={page}>\n <PaginationPageButton\n getPageLabel={getPageLabel}\n isCurrent={isCurrent}\n onClick={handleClick}\n disabled={disabled}\n sizeY={sizeY}\n renderPageButton={renderPageButton}\n >\n {page}\n </PaginationPageButton>\n </li>\n );\n }\n }\n },\n [currentPage, disabled, getPageLabel, handleClick, renderPageButton, sizeY],\n );\n\n return (\n <RootComponent Component=\"nav\" role=\"navigation\" {...resetProps}>\n <VisuallyHidden Component={navigationLabelComponent}>{navigationLabel}</VisuallyHidden>\n <ul className={styles.list}>\n <li className={styles.prevButtonContainer}>\n <PaginationNavigationButton\n type=\"prev\"\n style={navigationButtonsStyle}\n caption={prevButtonCaption}\n Icon={Icon24ChevronCompactLeft}\n a11yLabel={prevButtonLabel}\n disabled={isFirstPage || disabled}\n onClick={handlePrevClick}\n data-page={prevPage}\n renderNavigationButton={renderNavigationButton}\n />\n </li>\n {pages.map(renderPages)}\n <li className={styles.nextButtonContainer}>\n <PaginationNavigationButton\n type=\"next\"\n style={navigationButtonsStyle}\n caption={nextButtonCaption}\n Icon={Icon24ChevronCompactRight}\n a11yLabel={nextButtonLabel}\n disabled={isLastPage || disabled}\n onClick={handleNextClick}\n data-page={nextPage}\n renderNavigationButton={renderNavigationButton}\n />\n </li>\n </ul>\n </RootComponent>\n );\n};\n"],"names":["React","Icon24ChevronCompactLeft","Icon24ChevronCompactRight","useAdaptivity","usePagination","RootComponent","VisuallyHidden","PaginationNavigationButton","PaginationPageButton","PaginationPageEllipsis","getPageLabelDefault","Pagination","currentPage","siblingCount","boundaryCount","totalPages","disabled","prevButtonCaption","nextButtonCaption","navigationButtonsStyle","getPageLabel","navigationLabel","navigationLabelComponent","prevButtonLabel","nextButtonLabel","onChange","renderPageButton","renderNavigationButton","resetProps","pages","isFirstPage","isLastPage","prevPage","undefined","nextPage","handlePrevClick","useCallback","event","handleClick","page","currentTarget","dataset","Number","handleNextClick","sizeY","renderPages","li","isCurrent","onClick","Component","role","ul","className","type","style","caption","Icon","a11yLabel","data-page","map"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon24ChevronCompactLeft, Icon24ChevronCompactRight } from '@vkontakte/icons';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { type PaginationPageType, usePagination } from '../../hooks/usePagination';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport {\n type CustomPaginationNavigationButton,\n PaginationNavigationButton,\n type PaginationNavigationButtonProps,\n} from './PaginationNavigationButton/PaginationNavigationButton';\nimport {\n type CustomPaginationPageButtonProps,\n PaginationPageButton,\n} from './PaginationPage/PaginationPageButton';\nimport { PaginationPageEllipsis } from './PaginationPage/PaginationPageEllipsis';\nimport { getPageLabelDefault } from './utils';\nimport styles from './Pagination.module.css';\n\nexport interface PaginationProps extends Omit<HTMLAttributesWithRootRef<HTMLElement>, 'onChange'> {\n /**\n * Текущая страница.\n */\n currentPage?: number;\n /**\n * Кол-во всегда видимых страниц по краям текущей страницы.\n */\n siblingCount?: number;\n /**\n * Кол-во всегда видимых страниц в начале и в конце.\n */\n boundaryCount?: number;\n /**\n * Общее кол-во страниц.\n */\n totalPages?: number;\n /**\n * Блокировка всех кнопок.\n */\n disabled?: boolean;\n /**\n * Декоративный текст для кнопки навигации назад.\n *\n * > Note: Экранные дикторы будут использовать `prevButtonLabel`.\n */\n prevButtonCaption?: string;\n /**\n * Декоративный текст для кнопки навигации вперёд.\n *\n * > Note: Экранные дикторы будут использовать `nextButtonLabel`.\n */\n nextButtonCaption?: string;\n /**\n * Задаёт стиль отображения кнопок навигации.\n *\n * - `icon` – показывать только иконку;\n * - `caption` – показывать только подпись;\n * - `both` – показывать и иконку, и подпись.\n */\n navigationButtonsStyle?: PaginationNavigationButtonProps['style'];\n /**\n * [a11y] Метка для обозначения блока навигации.\n */\n navigationLabel?: string;\n navigationLabelComponent?: HasComponent['Component'];\n /**\n * [a11y] Метка для кнопки навигации назад.\n */\n prevButtonLabel?: string;\n /**\n * [a11y] Метка для кнопки навигации вперёд.\n */\n nextButtonLabel?: string;\n /**\n * [a11y] Функция для переопределения и/или локализации метки кнопки страницы.\n */\n getPageLabel?: (isCurrent: boolean) => string;\n onChange?: (page: number, event: React.MouseEvent<HTMLElement>) => void;\n /**\n * Функция для кастомного рендера кнопок страниц.\n *\n * > Note: `CustomPaginationPageButtonProps` наследует API [Tappable](https://vkcom.github.io/VKUI/#/Tappable).\n */\n renderPageButton?: (props: CustomPaginationPageButtonProps) => React.ReactNode;\n /**\n Функция для кастомного рендера кнопок навигации `prev` и `next`.\n *\n * > Note: `CustomPaginationNavigationButton` наследует API [Button](https://vkcom.github.io/VKUI/#/Button).\n */\n renderNavigationButton?: (props: CustomPaginationNavigationButton) => React.ReactNode;\n /**\n * Передает атрибут `data-testid` для кнопок страниц\n */\n pageButtonTestId?: (day: PaginationPageType, active: boolean) => string;\n /**\n * Передает атрибут `data-testid` для кнопки `prev`\n */\n prevButtonTestId?: string;\n /**\n * Передает атрибут `data-testid` для кнопки `next`\n */\n nextButtonTestId?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Pagination\n */\nexport const Pagination = ({\n currentPage = 1,\n siblingCount = 1,\n boundaryCount = 1,\n totalPages = 1,\n disabled,\n prevButtonCaption = 'Назад',\n nextButtonCaption = 'Вперёд',\n navigationButtonsStyle = 'icon',\n getPageLabel = getPageLabelDefault,\n navigationLabel = 'Навигация по страницам',\n navigationLabelComponent = 'h2',\n prevButtonLabel = 'Перейти на предыдущую страницу',\n nextButtonLabel = 'Перейти на следующую страницу',\n onChange,\n renderPageButton,\n pageButtonTestId,\n prevButtonTestId,\n nextButtonTestId,\n renderNavigationButton,\n ...resetProps\n}: PaginationProps): React.ReactNode => {\n const pages = usePagination({\n currentPage,\n totalPages,\n siblingCount,\n boundaryCount,\n });\n const isFirstPage = currentPage === 1;\n const isLastPage = currentPage === totalPages;\n const prevPage = isFirstPage ? undefined : currentPage - 1;\n const nextPage = isLastPage ? undefined : currentPage + 1;\n\n const handlePrevClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (onChange && prevPage !== undefined) {\n onChange(prevPage, event);\n }\n },\n [prevPage, onChange],\n );\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const page: string = event.currentTarget.dataset.page || '1';\n onChange?.(Number(page), event);\n },\n [onChange],\n );\n\n const handleNextClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (onChange && nextPage !== undefined) {\n onChange(nextPage, event);\n }\n },\n [nextPage, onChange],\n );\n\n const { sizeY } = useAdaptivity();\n\n const renderPages = React.useCallback(\n (page: PaginationPageType) => {\n const isCurrent = page === currentPage;\n const dataTestId = pageButtonTestId?.(page, isCurrent);\n\n switch (page) {\n case 'start-ellipsis':\n case 'end-ellipsis':\n return (\n <li key={page}>\n <PaginationPageEllipsis disabled={disabled} data-testid={dataTestId} />\n </li>\n );\n default: {\n return (\n <li key={page}>\n <PaginationPageButton\n getPageLabel={getPageLabel}\n isCurrent={isCurrent}\n onClick={handleClick}\n disabled={disabled}\n sizeY={sizeY}\n renderPageButton={renderPageButton}\n data-testid={dataTestId}\n >\n {page}\n </PaginationPageButton>\n </li>\n );\n }\n }\n },\n [currentPage, disabled, getPageLabel, handleClick, renderPageButton, sizeY, pageButtonTestId],\n );\n\n return (\n <RootComponent Component=\"nav\" role=\"navigation\" {...resetProps}>\n <VisuallyHidden Component={navigationLabelComponent}>{navigationLabel}</VisuallyHidden>\n <ul className={styles.list}>\n <li className={styles.prevButtonContainer}>\n <PaginationNavigationButton\n type=\"prev\"\n style={navigationButtonsStyle}\n caption={prevButtonCaption}\n Icon={Icon24ChevronCompactLeft}\n a11yLabel={prevButtonLabel}\n disabled={isFirstPage || disabled}\n onClick={handlePrevClick}\n data-page={prevPage}\n data-testid={prevButtonTestId}\n renderNavigationButton={renderNavigationButton}\n />\n </li>\n {pages.map(renderPages)}\n <li className={styles.nextButtonContainer}>\n <PaginationNavigationButton\n type=\"next\"\n style={navigationButtonsStyle}\n caption={nextButtonCaption}\n Icon={Icon24ChevronCompactRight}\n a11yLabel={nextButtonLabel}\n disabled={isLastPage || disabled}\n onClick={handleNextClick}\n data-page={nextPage}\n data-testid={nextButtonTestId}\n renderNavigationButton={renderNavigationButton}\n />\n </li>\n </ul>\n </RootComponent>\n );\n};\n"],"names":["React","Icon24ChevronCompactLeft","Icon24ChevronCompactRight","useAdaptivity","usePagination","RootComponent","VisuallyHidden","PaginationNavigationButton","PaginationPageButton","PaginationPageEllipsis","getPageLabelDefault","Pagination","currentPage","siblingCount","boundaryCount","totalPages","disabled","prevButtonCaption","nextButtonCaption","navigationButtonsStyle","getPageLabel","navigationLabel","navigationLabelComponent","prevButtonLabel","nextButtonLabel","onChange","renderPageButton","pageButtonTestId","prevButtonTestId","nextButtonTestId","renderNavigationButton","resetProps","pages","isFirstPage","isLastPage","prevPage","undefined","nextPage","handlePrevClick","useCallback","event","handleClick","page","currentTarget","dataset","Number","handleNextClick","sizeY","renderPages","isCurrent","dataTestId","li","data-testid","onClick","Component","role","ul","className","type","style","caption","Icon","a11yLabel","data-page","map"],"mappings":"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"}
@@ -9,6 +9,7 @@ export interface PaginationNavigationButtonOpts {
9
9
  'disabled'?: boolean;
10
10
  'onClick': (event: React.MouseEvent<HTMLElement>) => void;
11
11
  'data-page': number | undefined;
12
+ 'data-testid': string | undefined;
12
13
  }
13
14
  export interface PaginationNavigationButtonProps extends PaginationNavigationButtonOpts {
14
15
  renderNavigationButton?: (props: CustomPaginationNavigationButton) => React.ReactNode;
@@ -18,6 +19,7 @@ export interface PaginationNavigationButtonProps extends PaginationNavigationBut
18
19
  */
19
20
  declare const getButtonPropsFromPaginationNavigationButton: (opts: PaginationNavigationButtonOpts) => ButtonProps & {
20
21
  "data-page": number | undefined;
22
+ "data-testid": string | undefined;
21
23
  };
22
24
  /**
23
25
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationNavigationButton.d.ts","sourceRoot":"","sources":["../../../../src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAG/D,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACrC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1D,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,+BAAgC,SAAQ,8BAA8B;IACrF,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAC;CACvF;AAED;;GAEG;AACH,QAAA,MAAM,4CAA4C,SAC1C,8BAA8B,KACnC,WAAW,GAAG;IAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CA6BjD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG,UAAU,CACvD,OAAO,4CAA4C,CACpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,6CAGpC,+BAA+B,KAAG,KAAK,CAAC,SAQ1C,CAAC"}
1
+ {"version":3,"file":"PaginationNavigationButton.d.ts","sourceRoot":"","sources":["../../../../src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAG/D,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACrC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1D,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,+BAAgC,SAAQ,8BAA8B;IACrF,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAC;CACvF;AAED;;GAEG;AACH,QAAA,MAAM,4CAA4C,SAC1C,8BAA8B,KACnC,WAAW,GAAG;IAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;CA8BpF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG,UAAU,CACvD,OAAO,4CAA4C,CACpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,6CAGpC,+BAA+B,KAAG,KAAK,CAAC,SAQ1C,CAAC"}
@@ -38,7 +38,8 @@ import { VisuallyHidden } from "../../VisuallyHidden/VisuallyHidden.js";
38
38
  'disabled': opts.disabled,
39
39
  'onClick': opts.onClick,
40
40
  'children': caption,
41
- 'data-page': opts['data-page']
41
+ 'data-page': opts['data-page'],
42
+ 'data-testid': opts['data-testid']
42
43
  };
43
44
  };
44
45
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button, type ButtonProps } from '../../Button/Button';\nimport { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';\n\nexport interface PaginationNavigationButtonOpts {\n 'type': 'prev' | 'next';\n 'style': 'icon' | 'caption' | 'both';\n 'caption': React.ReactNode;\n 'Icon': React.ComponentType;\n 'a11yLabel': React.ReactNode;\n 'disabled'?: boolean;\n 'onClick': (event: React.MouseEvent<HTMLElement>) => void;\n 'data-page': number | undefined;\n}\n\nexport interface PaginationNavigationButtonProps extends PaginationNavigationButtonOpts {\n renderNavigationButton?: (props: CustomPaginationNavigationButton) => React.ReactNode;\n}\n\n/**\n * @private\n */\nconst getButtonPropsFromPaginationNavigationButton = (\n opts: PaginationNavigationButtonOpts,\n): ButtonProps & { 'data-page': number | undefined } => {\n const icon: React.ReactElement | null =\n opts.style !== 'caption' ? (\n <>\n <VisuallyHidden>{opts.a11yLabel}</VisuallyHidden>\n <opts.Icon />\n </>\n ) : null;\n const caption: React.ReactElement | null =\n opts.style === 'caption' ? (\n <>\n <VisuallyHidden>{opts.a11yLabel}</VisuallyHidden>\n <span aria-hidden=\"true\">{opts.caption}</span>\n </>\n ) : opts.style !== 'icon' ? (\n <span aria-hidden=\"true\">{opts.caption}</span>\n ) : null;\n\n return {\n 'size': 'l',\n 'before': opts.type === 'prev' ? icon : null,\n 'after': opts.type === 'next' ? icon : null,\n 'appearance': opts.style === 'caption' ? 'neutral' : 'accent',\n 'mode': 'tertiary',\n 'disabled': opts.disabled,\n 'onClick': opts.onClick,\n 'children': caption,\n 'data-page': opts['data-page'],\n } satisfies ButtonProps & { 'data-page': number | undefined };\n};\n\n/**\n * @private\n */\nexport type CustomPaginationNavigationButton = ReturnType<\n typeof getButtonPropsFromPaginationNavigationButton\n>;\n\n/**\n * @private\n */\nexport const PaginationNavigationButton = ({\n renderNavigationButton,\n ...restProps\n}: PaginationNavigationButtonProps): React.ReactNode => {\n const buttonProps = getButtonPropsFromPaginationNavigationButton(restProps);\n\n if (typeof renderNavigationButton === 'function') {\n return renderNavigationButton(buttonProps);\n }\n\n return <Button {...buttonProps} />;\n};\n"],"names":["React","Button","VisuallyHidden","getButtonPropsFromPaginationNavigationButton","opts","icon","style","a11yLabel","Icon","caption","span","aria-hidden","type","disabled","onClick","PaginationNavigationButton","renderNavigationButton","restProps","buttonProps"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAA0B,yBAAsB;AAC/D,SAASC,cAAc,QAAQ,yCAAsC;AAiBrE;;CAEC,GACD,MAAMC,+CAA+C,CACnDC;IAEA,MAAMC,OACJD,KAAKE,KAAK,KAAK,0BACb;;0BACE,KAACJ;0BAAgBE,KAAKG,SAAS;;0BAC/B,KAACH,KAAKI,IAAI;;SAEV;IACN,MAAMC,UACJL,KAAKE,KAAK,KAAK,0BACb;;0BACE,KAACJ;0BAAgBE,KAAKG,SAAS;;0BAC/B,KAACG;gBAAKC,eAAY;0BAAQP,KAAKK,OAAO;;;SAEtCL,KAAKE,KAAK,KAAK,uBACjB,KAACI;QAAKC,eAAY;kBAAQP,KAAKK,OAAO;SACpC;IAEN,OAAO;QACL,QAAQ;QACR,UAAUL,KAAKQ,IAAI,KAAK,SAASP,OAAO;QACxC,SAASD,KAAKQ,IAAI,KAAK,SAASP,OAAO;QACvC,cAAcD,KAAKE,KAAK,KAAK,YAAY,YAAY;QACrD,QAAQ;QACR,YAAYF,KAAKS,QAAQ;QACzB,WAAWT,KAAKU,OAAO;QACvB,YAAYL;QACZ,aAAaL,IAAI,CAAC,YAAY;IAChC;AACF;AASA;;CAEC,GACD,OAAO,MAAMW,6BAA6B;QAAC,EACzCC,sBAAsB,EAEU,WAD7BC;QADHD;;IAGA,MAAME,cAAcf,6CAA6Cc;IAEjE,IAAI,OAAOD,2BAA2B,YAAY;QAChD,OAAOA,uBAAuBE;IAChC;IAEA,qBAAO,KAACjB,2BAAWiB;AACrB,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button, type ButtonProps } from '../../Button/Button';\nimport { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';\n\nexport interface PaginationNavigationButtonOpts {\n 'type': 'prev' | 'next';\n 'style': 'icon' | 'caption' | 'both';\n 'caption': React.ReactNode;\n 'Icon': React.ComponentType;\n 'a11yLabel': React.ReactNode;\n 'disabled'?: boolean;\n 'onClick': (event: React.MouseEvent<HTMLElement>) => void;\n 'data-page': number | undefined;\n 'data-testid': string | undefined;\n}\n\nexport interface PaginationNavigationButtonProps extends PaginationNavigationButtonOpts {\n renderNavigationButton?: (props: CustomPaginationNavigationButton) => React.ReactNode;\n}\n\n/**\n * @private\n */\nconst getButtonPropsFromPaginationNavigationButton = (\n opts: PaginationNavigationButtonOpts,\n): ButtonProps & { 'data-page': number | undefined; 'data-testid': string | undefined } => {\n const icon: React.ReactElement | null =\n opts.style !== 'caption' ? (\n <>\n <VisuallyHidden>{opts.a11yLabel}</VisuallyHidden>\n <opts.Icon />\n </>\n ) : null;\n const caption: React.ReactElement | null =\n opts.style === 'caption' ? (\n <>\n <VisuallyHidden>{opts.a11yLabel}</VisuallyHidden>\n <span aria-hidden=\"true\">{opts.caption}</span>\n </>\n ) : opts.style !== 'icon' ? (\n <span aria-hidden=\"true\">{opts.caption}</span>\n ) : null;\n\n return {\n 'size': 'l',\n 'before': opts.type === 'prev' ? icon : null,\n 'after': opts.type === 'next' ? icon : null,\n 'appearance': opts.style === 'caption' ? 'neutral' : 'accent',\n 'mode': 'tertiary',\n 'disabled': opts.disabled,\n 'onClick': opts.onClick,\n 'children': caption,\n 'data-page': opts['data-page'],\n 'data-testid': opts['data-testid'],\n } satisfies ButtonProps & { 'data-page': number | undefined; 'data-testid': string | undefined };\n};\n\n/**\n * @private\n */\nexport type CustomPaginationNavigationButton = ReturnType<\n typeof getButtonPropsFromPaginationNavigationButton\n>;\n\n/**\n * @private\n */\nexport const PaginationNavigationButton = ({\n renderNavigationButton,\n ...restProps\n}: PaginationNavigationButtonProps): React.ReactNode => {\n const buttonProps = getButtonPropsFromPaginationNavigationButton(restProps);\n\n if (typeof renderNavigationButton === 'function') {\n return renderNavigationButton(buttonProps);\n }\n\n return <Button {...buttonProps} />;\n};\n"],"names":["React","Button","VisuallyHidden","getButtonPropsFromPaginationNavigationButton","opts","icon","style","a11yLabel","Icon","caption","span","aria-hidden","type","disabled","onClick","PaginationNavigationButton","renderNavigationButton","restProps","buttonProps"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAA0B,yBAAsB;AAC/D,SAASC,cAAc,QAAQ,yCAAsC;AAkBrE;;CAEC,GACD,MAAMC,+CAA+C,CACnDC;IAEA,MAAMC,OACJD,KAAKE,KAAK,KAAK,0BACb;;0BACE,KAACJ;0BAAgBE,KAAKG,SAAS;;0BAC/B,KAACH,KAAKI,IAAI;;SAEV;IACN,MAAMC,UACJL,KAAKE,KAAK,KAAK,0BACb;;0BACE,KAACJ;0BAAgBE,KAAKG,SAAS;;0BAC/B,KAACG;gBAAKC,eAAY;0BAAQP,KAAKK,OAAO;;;SAEtCL,KAAKE,KAAK,KAAK,uBACjB,KAACI;QAAKC,eAAY;kBAAQP,KAAKK,OAAO;SACpC;IAEN,OAAO;QACL,QAAQ;QACR,UAAUL,KAAKQ,IAAI,KAAK,SAASP,OAAO;QACxC,SAASD,KAAKQ,IAAI,KAAK,SAASP,OAAO;QACvC,cAAcD,KAAKE,KAAK,KAAK,YAAY,YAAY;QACrD,QAAQ;QACR,YAAYF,KAAKS,QAAQ;QACzB,WAAWT,KAAKU,OAAO;QACvB,YAAYL;QACZ,aAAaL,IAAI,CAAC,YAAY;QAC9B,eAAeA,IAAI,CAAC,cAAc;IACpC;AACF;AASA;;CAEC,GACD,OAAO,MAAMW,6BAA6B;QAAC,EACzCC,sBAAsB,EAEU,WAD7BC;QADHD;;IAGA,MAAME,cAAcf,6CAA6Cc;IAEjE,IAAI,OAAOD,2BAA2B,YAAY;QAChD,OAAOA,uBAAuBE;IAChC;IAEA,qBAAO,KAACjB,2BAAWiB;AACrB,EAAE"}
@@ -18,7 +18,7 @@ export type PopoverOnShownChange = OnShownChange;
18
18
  * @public
19
19
  */
20
20
  export type PopoverContentRenderProp = FloatingContentRenderProp;
21
- type AllowedFloatingComponentProps = Pick<FloatingComponentProps, 'arrow' | 'arrowHeight' | 'arrowPadding' | 'placement' | 'onPlacementChange' | 'trigger' | 'content' | 'hoverDelay' | 'closeAfterClick' | 'offsetByMainAxis' | 'offsetByCrossAxis' | 'defaultShown' | 'shown' | 'onShownChange' | 'onShownChanged' | 'usePortal' | 'sameWidth' | 'hideWhenReferenceHidden' | 'disabled' | 'disableInteractive' | 'disableCloseOnClickOutside' | 'disableCloseOnEscKey' | 'autoFocus' | 'restoreFocus' | 'children' | 'zIndex' | 'disableFlipMiddleware' | 'customMiddlewares'>;
21
+ type AllowedFloatingComponentProps = Pick<FloatingComponentProps, 'arrow' | 'arrowHeight' | 'arrowPadding' | 'placement' | 'onPlacementChange' | 'trigger' | 'content' | 'hoverDelay' | 'closeAfterClick' | 'offsetByMainAxis' | 'offsetByCrossAxis' | 'defaultShown' | 'shown' | 'onShownChange' | 'onShownChanged' | 'usePortal' | 'sameWidth' | 'hideWhenReferenceHidden' | 'disabled' | 'disableInteractive' | 'disableCloseOnClickOutside' | 'disableCloseOnEscKey' | 'autoFocus' | 'restoreFocus' | 'children' | 'zIndex' | 'disableFlipMiddleware' | 'customMiddlewares' | 'strategy'>;
22
22
  /**
23
23
  * @public
24
24
  */
@@ -65,6 +65,6 @@ export interface PopoverProps extends Omit<AllowedFloatingComponentProps, 'autoF
65
65
  /**
66
66
  * @see https://vkcom.github.io/VKUI/#/Popover
67
67
  */
68
- export declare const Popover: ({ arrow: withArrow, arrowHeight, arrowPadding, placement: expectedPlacement, onPlacementChange, disableFlipMiddleware, trigger, content, hoverDelay, closeAfterClick, offsetByMainAxis, offsetByCrossAxis, sameWidth, hideWhenReferenceHidden, disabled, disableInteractive, disableCloseOnClickOutside, disableCloseOnEscKey, keepMounted, customMiddlewares, defaultShown, shown: shownProp, onShownChange, onShownChanged, usePortal, arrowProps, ArrowIcon, autoFocus, restoreFocus, className, children, noStyling, zIndex, role, ...restPopoverProps }: PopoverProps) => React.ReactNode;
68
+ export declare const Popover: ({ children, ...restProps }: PopoverProps) => React.ReactNode;
69
69
  export {};
70
70
  //# sourceMappingURL=Popover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/Popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAO7D,OAAO,EAEL,KAAK,kBAAkB,IAAI,yBAAyB,EACrD,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,yBAAyB,EACzB,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAC/C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AAEjE,KAAK,6BAA6B,GAAG,IAAI,CACvC,sBAAsB,EACpB,OAAO,GACP,aAAa,GACb,cAAc,GACd,WAAW,GACX,mBAAmB,GACnB,SAAS,GACT,SAAS,GACT,YAAY,GACZ,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,cAAc,GACd,OAAO,GACP,eAAe,GACf,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,yBAAyB,GACzB,UAAU,GACV,oBAAoB,GACpB,4BAA4B,GAC5B,sBAAsB,GACtB,WAAW,GACX,cAAc,GACd,UAAU,GACV,QAAQ,GACR,uBAAuB,GACvB,mBAAmB,CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,6BAA6B,EAAE,WAAW,CAAC,EACtD,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,MAAM,sBAAsB,CAAC;IAC/E;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC9C;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,iiBA8CjB,YAAY,KAAG,KAAK,CAAC,SA8GvB,CAAC"}
1
+ {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/Popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,KAAK,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,yBAAyB,EACzB,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAC/C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AAEjE,KAAK,6BAA6B,GAAG,IAAI,CACvC,sBAAsB,EACpB,OAAO,GACP,aAAa,GACb,cAAc,GACd,WAAW,GACX,mBAAmB,GACnB,SAAS,GACT,SAAS,GACT,YAAY,GACZ,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,cAAc,GACd,OAAO,GACP,eAAe,GACf,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,yBAAyB,GACzB,UAAU,GACV,oBAAoB,GACpB,4BAA4B,GAC5B,sBAAsB,GACtB,WAAW,GACX,cAAc,GACd,UAAU,GACV,QAAQ,GACR,uBAAuB,GACvB,mBAAmB,GACnB,UAAU,CACb,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,6BAA6B,EAAE,WAAW,CAAC,EACtD,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,MAAM,sBAAsB,CAAC;IAC/E;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC9C;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,+BAAgC,YAAY,KAAG,KAAK,CAAC,SAWxE,CAAC"}