@vkontakte/vkui 6.0.2 → 6.0.3

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 (474) hide show
  1. package/dist/cjs/components/Accordion/Accordion.d.ts +1 -1
  2. package/dist/cjs/components/Accordion/Accordion.d.ts.map +1 -1
  3. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  4. package/dist/cjs/components/ActionSheet/ActionSheet.d.ts +1 -1
  5. package/dist/cjs/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  6. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  7. package/dist/cjs/components/AppRoot/ScrollContext.d.ts +4 -4
  8. package/dist/cjs/components/AppRoot/ScrollContext.d.ts.map +1 -1
  9. package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
  10. package/dist/cjs/components/BaseGallery/CarouselBase/types.d.ts +1 -1
  11. package/dist/cjs/components/BaseGallery/CarouselBase/types.d.ts.map +1 -1
  12. package/dist/cjs/components/BaseGallery/types.d.ts +4 -4
  13. package/dist/cjs/components/BaseGallery/types.d.ts.map +1 -1
  14. package/dist/cjs/components/BaseGallery/types.js.map +1 -1
  15. package/dist/cjs/components/Calendar/Calendar.d.ts +4 -4
  16. package/dist/cjs/components/Calendar/Calendar.d.ts.map +1 -1
  17. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  18. package/dist/cjs/components/CalendarDay/CalendarDay.d.ts +3 -3
  19. package/dist/cjs/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  20. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  21. package/dist/cjs/components/CalendarDays/CalendarDays.d.ts +12 -12
  22. package/dist/cjs/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  23. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  24. package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts +3 -3
  25. package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  26. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  27. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +2 -2
  28. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  29. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  30. package/dist/cjs/components/CalendarTime/CalendarTime.d.ts +3 -3
  31. package/dist/cjs/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  32. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
  33. package/dist/cjs/components/Cell/Cell.d.ts +1 -1
  34. package/dist/cjs/components/Cell/Cell.d.ts.map +1 -1
  35. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  36. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +1 -1
  37. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  38. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  39. package/dist/cjs/components/ChipsInput/useChipsInput.d.ts +4 -1
  40. package/dist/cjs/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  41. package/dist/cjs/components/ChipsInputBase/types.d.ts +3 -3
  42. package/dist/cjs/components/ChipsInputBase/types.d.ts.map +1 -1
  43. package/dist/cjs/components/ChipsInputBase/types.js.map +1 -1
  44. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +2 -2
  45. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  46. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  47. package/dist/cjs/components/ChipsSelect/useChipsSelect.d.ts +4 -1
  48. package/dist/cjs/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  49. package/dist/cjs/components/Clickable/Clickable.d.ts.map +1 -1
  50. package/dist/cjs/components/Clickable/Clickable.js +10 -1
  51. package/dist/cjs/components/Clickable/Clickable.js.map +1 -1
  52. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  53. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  54. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  55. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.d.ts +5 -5
  56. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  57. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  58. package/dist/cjs/components/CustomSelect/CustomSelectClearButton.d.ts +1 -1
  59. package/dist/cjs/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  60. package/dist/cjs/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  61. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  62. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  63. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  64. package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +1 -1
  65. package/dist/cjs/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  66. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  67. package/dist/cjs/components/InputLike/InputLike.d.ts +1 -1
  68. package/dist/cjs/components/InputLike/InputLike.d.ts.map +1 -1
  69. package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
  70. package/dist/cjs/components/ModalRoot/ModalRootContext.d.ts +1 -1
  71. package/dist/cjs/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
  72. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  73. package/dist/cjs/components/ModalRoot/types.d.ts +4 -4
  74. package/dist/cjs/components/ModalRoot/types.d.ts.map +1 -1
  75. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltip.d.ts +1 -1
  76. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  77. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  78. package/dist/cjs/components/Pagination/Pagination.d.ts +2 -2
  79. package/dist/cjs/components/Pagination/Pagination.d.ts.map +1 -1
  80. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  81. package/dist/cjs/components/Root/Root.d.ts +2 -2
  82. package/dist/cjs/components/Root/Root.d.ts.map +1 -1
  83. package/dist/cjs/components/Root/Root.js.map +1 -1
  84. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  85. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +9 -13
  86. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  87. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  88. package/dist/cjs/components/SimpleCell/SimpleCell.js +1 -1
  89. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  90. package/dist/cjs/components/Slider/Slider.d.ts +4 -4
  91. package/dist/cjs/components/Slider/Slider.d.ts.map +1 -1
  92. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  93. package/dist/cjs/components/Textarea/Textarea.d.ts +1 -1
  94. package/dist/cjs/components/Textarea/Textarea.d.ts.map +1 -1
  95. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  96. package/dist/cjs/components/View/View.d.ts +5 -5
  97. package/dist/cjs/components/View/View.d.ts.map +1 -1
  98. package/dist/cjs/components/View/View.js.map +1 -1
  99. package/dist/cjs/components/View/ViewInfinite.d.ts +6 -6
  100. package/dist/cjs/components/View/ViewInfinite.d.ts.map +1 -1
  101. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  102. package/dist/cjs/hooks/useDateInput.d.ts +3 -3
  103. package/dist/cjs/hooks/useDateInput.d.ts.map +1 -1
  104. package/dist/cjs/hooks/useDateInput.js.map +1 -1
  105. package/dist/cjs/hooks/useDraggableWithDomApi/types.d.ts +4 -4
  106. package/dist/cjs/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  107. package/dist/cjs/hooks/useDraggableWithDomApi/types.js.map +1 -1
  108. package/dist/cjs/hooks/useEnsuredControl.d.ts +2 -2
  109. package/dist/cjs/hooks/useEnsuredControl.d.ts.map +1 -1
  110. package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
  111. package/dist/cjs/lib/floating/useFloatingWithInteractions/types.d.ts +3 -3
  112. package/dist/cjs/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  113. package/dist/cjs/lib/rafSchd.d.ts +1 -1
  114. package/dist/cjs/lib/rafSchd.d.ts.map +1 -1
  115. package/dist/cjs/lib/rafSchd.js.map +1 -1
  116. package/dist/cjs/lib/react/simulateReactInput.d.ts +3 -3
  117. package/dist/cjs/lib/react/simulateReactInput.d.ts.map +1 -1
  118. package/dist/cjs/lib/react/simulateReactInput.js.map +1 -1
  119. package/dist/components/Accordion/Accordion.d.ts +1 -1
  120. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  121. package/dist/components/Accordion/Accordion.js.map +1 -1
  122. package/dist/components/ActionSheet/ActionSheet.d.ts +1 -1
  123. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  124. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  125. package/dist/components/AppRoot/ScrollContext.d.ts +4 -4
  126. package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
  127. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  128. package/dist/components/BaseGallery/CarouselBase/types.d.ts +1 -1
  129. package/dist/components/BaseGallery/CarouselBase/types.d.ts.map +1 -1
  130. package/dist/components/BaseGallery/CarouselBase/types.js.map +1 -1
  131. package/dist/components/BaseGallery/types.d.ts +4 -4
  132. package/dist/components/BaseGallery/types.d.ts.map +1 -1
  133. package/dist/components/BaseGallery/types.js.map +1 -1
  134. package/dist/components/Calendar/Calendar.d.ts +4 -4
  135. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  136. package/dist/components/Calendar/Calendar.js.map +1 -1
  137. package/dist/components/CalendarDay/CalendarDay.d.ts +3 -3
  138. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  139. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  140. package/dist/components/CalendarDays/CalendarDays.d.ts +12 -12
  141. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  142. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  143. package/dist/components/CalendarHeader/CalendarHeader.d.ts +3 -3
  144. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  145. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  146. package/dist/components/CalendarRange/CalendarRange.d.ts +2 -2
  147. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  148. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  149. package/dist/components/CalendarTime/CalendarTime.d.ts +3 -3
  150. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  151. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  152. package/dist/components/Cell/Cell.d.ts +1 -1
  153. package/dist/components/Cell/Cell.d.ts.map +1 -1
  154. package/dist/components/Cell/Cell.js.map +1 -1
  155. package/dist/components/Cell/CellDragger/CellDragger.d.ts +1 -1
  156. package/dist/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  157. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  158. package/dist/components/ChipsInput/useChipsInput.d.ts +4 -1
  159. package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  160. package/dist/components/ChipsInputBase/types.d.ts +3 -3
  161. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  162. package/dist/components/ChipsInputBase/types.js.map +1 -1
  163. package/dist/components/ChipsSelect/ChipsSelect.d.ts +2 -2
  164. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  165. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  166. package/dist/components/ChipsSelect/useChipsSelect.d.ts +4 -1
  167. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  168. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  169. package/dist/components/Clickable/Clickable.js +10 -1
  170. package/dist/components/Clickable/Clickable.js.map +1 -1
  171. package/dist/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  172. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  173. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  174. package/dist/components/CustomScrollView/useTrackerVisibility.d.ts +5 -5
  175. package/dist/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  176. package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  177. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts +1 -1
  178. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  179. package/dist/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  180. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  181. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  182. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  183. package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
  184. package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  185. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  186. package/dist/components/InputLike/InputLike.d.ts +1 -1
  187. package/dist/components/InputLike/InputLike.d.ts.map +1 -1
  188. package/dist/components/InputLike/InputLike.js.map +1 -1
  189. package/dist/components/ModalRoot/ModalRootContext.d.ts +1 -1
  190. package/dist/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
  191. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  192. package/dist/components/ModalRoot/types.d.ts +4 -4
  193. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  194. package/dist/components/ModalRoot/types.js.map +1 -1
  195. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +1 -1
  196. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  197. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  198. package/dist/components/Pagination/Pagination.d.ts +2 -2
  199. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  200. package/dist/components/Pagination/Pagination.js.map +1 -1
  201. package/dist/components/Root/Root.d.ts +2 -2
  202. package/dist/components/Root/Root.d.ts.map +1 -1
  203. package/dist/components/Root/Root.js.map +1 -1
  204. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  205. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +10 -14
  206. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  207. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  208. package/dist/components/SimpleCell/SimpleCell.js +1 -1
  209. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  210. package/dist/components/Slider/Slider.d.ts +4 -4
  211. package/dist/components/Slider/Slider.d.ts.map +1 -1
  212. package/dist/components/Slider/Slider.js.map +1 -1
  213. package/dist/components/Textarea/Textarea.d.ts +1 -1
  214. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  215. package/dist/components/Textarea/Textarea.js.map +1 -1
  216. package/dist/components/View/View.d.ts +5 -5
  217. package/dist/components/View/View.d.ts.map +1 -1
  218. package/dist/components/View/View.js.map +1 -1
  219. package/dist/components/View/ViewInfinite.d.ts +6 -6
  220. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  221. package/dist/components/View/ViewInfinite.js.map +1 -1
  222. package/dist/components.css +8 -8
  223. package/dist/components.css.map +1 -1
  224. package/dist/components.js.tmp +24 -21
  225. package/dist/cssm/components/Accordion/Accordion.d.ts +1 -1
  226. package/dist/cssm/components/Accordion/Accordion.d.ts.map +1 -1
  227. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  228. package/dist/cssm/components/ActionSheet/ActionSheet.d.ts +1 -1
  229. package/dist/cssm/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  230. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  231. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +1 -2
  232. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +1 -1
  233. package/dist/cssm/components/AppRoot/ScrollContext.d.ts +4 -4
  234. package/dist/cssm/components/AppRoot/ScrollContext.d.ts.map +1 -1
  235. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  236. package/dist/cssm/components/BaseGallery/CarouselBase/types.d.ts +1 -1
  237. package/dist/cssm/components/BaseGallery/CarouselBase/types.d.ts.map +1 -1
  238. package/dist/cssm/components/BaseGallery/CarouselBase/types.js.map +1 -1
  239. package/dist/cssm/components/BaseGallery/types.d.ts +4 -4
  240. package/dist/cssm/components/BaseGallery/types.d.ts.map +1 -1
  241. package/dist/cssm/components/BaseGallery/types.js.map +1 -1
  242. package/dist/cssm/components/Button/Button.module.css +6 -5
  243. package/dist/cssm/components/Calendar/Calendar.d.ts +4 -4
  244. package/dist/cssm/components/Calendar/Calendar.d.ts.map +1 -1
  245. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  246. package/dist/cssm/components/CalendarDay/CalendarDay.d.ts +3 -3
  247. package/dist/cssm/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  248. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  249. package/dist/cssm/components/CalendarDays/CalendarDays.d.ts +12 -12
  250. package/dist/cssm/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  251. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  252. package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts +3 -3
  253. package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  254. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  255. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +2 -2
  256. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  257. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  258. package/dist/cssm/components/CalendarTime/CalendarTime.d.ts +3 -3
  259. package/dist/cssm/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  260. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  261. package/dist/cssm/components/Cell/Cell.d.ts +1 -1
  262. package/dist/cssm/components/Cell/Cell.d.ts.map +1 -1
  263. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  264. package/dist/cssm/components/Cell/CellDragger/CellDragger.d.ts +1 -1
  265. package/dist/cssm/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  266. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  267. package/dist/cssm/components/ChipsInput/useChipsInput.d.ts +4 -1
  268. package/dist/cssm/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  269. package/dist/cssm/components/ChipsInputBase/types.d.ts +3 -3
  270. package/dist/cssm/components/ChipsInputBase/types.d.ts.map +1 -1
  271. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  272. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +2 -2
  273. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  274. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  275. package/dist/cssm/components/ChipsSelect/useChipsSelect.d.ts +4 -1
  276. package/dist/cssm/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  277. package/dist/cssm/components/Clickable/Clickable.d.ts.map +1 -1
  278. package/dist/cssm/components/Clickable/Clickable.js +10 -1
  279. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  280. package/dist/cssm/components/Clickable/Clickable.module.css +21 -0
  281. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  282. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  283. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  284. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.d.ts +5 -5
  285. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  286. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  287. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.d.ts +1 -1
  288. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  289. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  290. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  291. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  292. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  293. package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +1 -1
  294. package/dist/cssm/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  295. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  296. package/dist/cssm/components/InputLike/InputLike.d.ts +1 -1
  297. package/dist/cssm/components/InputLike/InputLike.d.ts.map +1 -1
  298. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  299. package/dist/cssm/components/Link/Link.module.css +1 -2
  300. package/dist/cssm/components/ModalRoot/ModalRootContext.d.ts +1 -1
  301. package/dist/cssm/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
  302. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  303. package/dist/cssm/components/ModalRoot/types.d.ts +4 -4
  304. package/dist/cssm/components/ModalRoot/types.d.ts.map +1 -1
  305. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  306. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.d.ts +1 -1
  307. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  308. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  309. package/dist/cssm/components/Pagination/Pagination.d.ts +2 -2
  310. package/dist/cssm/components/Pagination/Pagination.d.ts.map +1 -1
  311. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  312. package/dist/cssm/components/Root/Root.d.ts +2 -2
  313. package/dist/cssm/components/Root/Root.d.ts.map +1 -1
  314. package/dist/cssm/components/Root/Root.js.map +1 -1
  315. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  316. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +10 -16
  317. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  318. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +1 -1
  319. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  320. package/dist/cssm/components/SimpleCell/SimpleCell.js +1 -1
  321. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  322. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +7 -0
  323. package/dist/cssm/components/Slider/Slider.d.ts +4 -4
  324. package/dist/cssm/components/Slider/Slider.d.ts.map +1 -1
  325. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  326. package/dist/cssm/components/TabsItem/TabsItem.module.css +0 -8
  327. package/dist/cssm/components/Textarea/Textarea.d.ts +1 -1
  328. package/dist/cssm/components/Textarea/Textarea.d.ts.map +1 -1
  329. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  330. package/dist/cssm/components/View/View.d.ts +5 -5
  331. package/dist/cssm/components/View/View.d.ts.map +1 -1
  332. package/dist/cssm/components/View/View.js.map +1 -1
  333. package/dist/cssm/components/View/ViewInfinite.d.ts +6 -6
  334. package/dist/cssm/components/View/ViewInfinite.d.ts.map +1 -1
  335. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  336. package/dist/cssm/hooks/useDateInput.d.ts +3 -3
  337. package/dist/cssm/hooks/useDateInput.d.ts.map +1 -1
  338. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  339. package/dist/cssm/hooks/useDraggableWithDomApi/types.d.ts +4 -4
  340. package/dist/cssm/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  341. package/dist/cssm/hooks/useDraggableWithDomApi/types.js.map +1 -1
  342. package/dist/cssm/hooks/useEnsuredControl.d.ts +2 -2
  343. package/dist/cssm/hooks/useEnsuredControl.d.ts.map +1 -1
  344. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  345. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.d.ts +3 -3
  346. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  347. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  348. package/dist/cssm/lib/rafSchd.d.ts +1 -1
  349. package/dist/cssm/lib/rafSchd.d.ts.map +1 -1
  350. package/dist/cssm/lib/rafSchd.js.map +1 -1
  351. package/dist/cssm/lib/react/simulateReactInput.d.ts +3 -3
  352. package/dist/cssm/lib/react/simulateReactInput.d.ts.map +1 -1
  353. package/dist/cssm/lib/react/simulateReactInput.js.map +1 -1
  354. package/dist/hooks/useDateInput.d.ts +3 -3
  355. package/dist/hooks/useDateInput.d.ts.map +1 -1
  356. package/dist/hooks/useDateInput.js.map +1 -1
  357. package/dist/hooks/useDraggableWithDomApi/types.d.ts +4 -4
  358. package/dist/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  359. package/dist/hooks/useDraggableWithDomApi/types.js.map +1 -1
  360. package/dist/hooks/useEnsuredControl.d.ts +2 -2
  361. package/dist/hooks/useEnsuredControl.d.ts.map +1 -1
  362. package/dist/hooks/useEnsuredControl.js.map +1 -1
  363. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +3 -3
  364. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  365. package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  366. package/dist/lib/rafSchd.d.ts +1 -1
  367. package/dist/lib/rafSchd.d.ts.map +1 -1
  368. package/dist/lib/rafSchd.js.map +1 -1
  369. package/dist/lib/react/simulateReactInput.d.ts +3 -3
  370. package/dist/lib/react/simulateReactInput.d.ts.map +1 -1
  371. package/dist/lib/react/simulateReactInput.js.map +1 -1
  372. package/dist/vkui.css +8 -8
  373. package/dist/vkui.css.map +1 -1
  374. package/dist/vkui.js.tmp +24 -21
  375. package/package.json +1 -1
  376. package/src/components/Accordion/Accordion.tsx +1 -1
  377. package/src/components/Accordion/__image_snapshots__/accordion-ios-webkit-dark-1-snap.png +2 -2
  378. package/src/components/Accordion/__image_snapshots__/accordion-ios-webkit-light-1-snap.png +2 -2
  379. package/src/components/ActionSheet/ActionSheet.module.css +1 -2
  380. package/src/components/ActionSheet/ActionSheet.tsx +1 -1
  381. package/src/components/ActionSheet/Readme.md +6 -6
  382. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-chromium-dark-1-snap.png +2 -2
  383. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-chromium-light-1-snap.png +2 -2
  384. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-firefox-dark-1-snap.png +2 -2
  385. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-firefox-light-1-snap.png +2 -2
  386. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-webkit-dark-1-snap.png +2 -2
  387. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-webkit-light-1-snap.png +2 -2
  388. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-mobile-sizey-regular-android-chromium-dark-1-snap.png +2 -2
  389. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-mobile-sizey-regular-android-chromium-light-1-snap.png +2 -2
  390. package/src/components/ActionSheetItem/ActionSheetItem.module.css +1 -1
  391. package/src/components/AppRoot/ScrollContext.tsx +4 -4
  392. package/src/components/BaseGallery/CarouselBase/types.ts +1 -1
  393. package/src/components/BaseGallery/types.ts +4 -4
  394. package/src/components/Button/Button.module.css +6 -2
  395. package/src/components/Calendar/Calendar.stories.tsx +2 -2
  396. package/src/components/Calendar/Calendar.tsx +4 -4
  397. package/src/components/CalendarDay/CalendarDay.tsx +3 -3
  398. package/src/components/CalendarDays/CalendarDays.tsx +12 -12
  399. package/src/components/CalendarHeader/CalendarHeader.tsx +3 -3
  400. package/src/components/CalendarRange/CalendarRange.tsx +2 -2
  401. package/src/components/CalendarTime/CalendarTime.tsx +3 -3
  402. package/src/components/Cell/Cell.tsx +1 -1
  403. package/src/components/Cell/CellDragger/CellDragger.tsx +1 -1
  404. package/src/components/CellButton/__image_snapshots__/cellbutton-ios-webkit-dark-1-snap.png +2 -2
  405. package/src/components/CellButton/__image_snapshots__/cellbutton-ios-webkit-light-1-snap.png +2 -2
  406. package/src/components/ChipsInputBase/types.ts +3 -3
  407. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -2
  408. package/src/components/Clickable/Clickable.module.css +14 -0
  409. package/src/components/Clickable/Clickable.tsx +15 -1
  410. package/src/components/CustomScrollView/CustomScrollView.tsx +1 -1
  411. package/src/components/CustomScrollView/useTrackerVisibility.ts +5 -5
  412. package/src/components/CustomSelect/CustomSelect.test.tsx +1 -1
  413. package/src/components/CustomSelect/CustomSelectClearButton.tsx +1 -1
  414. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -1
  415. package/src/components/FocusTrap/FocusTrap.tsx +1 -1
  416. package/src/components/Input/Readme.md +1 -1
  417. package/src/components/InputLike/InputLike.tsx +1 -1
  418. package/src/components/Link/Link.module.css +1 -2
  419. package/src/components/ModalRoot/ModalRootContext.tsx +1 -1
  420. package/src/components/ModalRoot/types.ts +4 -4
  421. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +1 -1
  422. package/src/components/Pagination/Pagination.tsx +2 -2
  423. package/src/components/Popper/Readme.md +1 -1
  424. package/src/components/PullToRefresh/PullToRefresh.e2e.tsx +2 -0
  425. package/src/components/Root/Root.tsx +1 -1
  426. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +1 -1
  427. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +21 -36
  428. package/src/components/SimpleCell/SimpleCell.e2e-playground.tsx +4 -0
  429. package/src/components/SimpleCell/SimpleCell.module.css +5 -0
  430. package/src/components/SimpleCell/SimpleCell.tsx +8 -1
  431. package/src/components/SimpleCell/__image_snapshots__/simplecell-android-chromium-dark-1-snap.png +2 -2
  432. package/src/components/SimpleCell/__image_snapshots__/simplecell-android-chromium-light-1-snap.png +2 -2
  433. package/src/components/SimpleCell/__image_snapshots__/simplecell-ios-webkit-dark-1-snap.png +2 -2
  434. package/src/components/SimpleCell/__image_snapshots__/simplecell-ios-webkit-light-1-snap.png +2 -2
  435. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-chromium-dark-1-snap.png +2 -2
  436. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-chromium-light-1-snap.png +2 -2
  437. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-firefox-dark-1-snap.png +2 -2
  438. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-firefox-light-1-snap.png +2 -2
  439. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-webkit-dark-1-snap.png +2 -2
  440. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-webkit-light-1-snap.png +2 -2
  441. package/src/components/Slider/Slider.test.tsx +11 -5
  442. package/src/components/Slider/Slider.tsx +4 -4
  443. package/src/components/Tabs/__image_snapshots__/tabs-android-chromium-dark-1-snap.png +2 -2
  444. package/src/components/Tabs/__image_snapshots__/tabs-android-chromium-light-1-snap.png +2 -2
  445. package/src/components/Tabs/__image_snapshots__/tabs-ios-webkit-dark-1-snap.png +2 -2
  446. package/src/components/Tabs/__image_snapshots__/tabs-ios-webkit-light-1-snap.png +2 -2
  447. package/src/components/Tabs/__image_snapshots__/tabs-layout-fill-mode-android-chromium-light-1-snap.png +2 -2
  448. package/src/components/Tabs/__image_snapshots__/tabs-layout-fill-mode-ios-webkit-light-1-snap.png +2 -2
  449. package/src/components/Tabs/__image_snapshots__/tabs-layout-fill-mode-vkcom-chromium-light-1-snap.png +2 -2
  450. package/src/components/Tabs/__image_snapshots__/tabs-layout-fill-mode-vkcom-firefox-light-1-snap.png +2 -2
  451. package/src/components/Tabs/__image_snapshots__/tabs-layout-fill-mode-vkcom-webkit-light-1-snap.png +2 -2
  452. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-chromium-dark-1-snap.png +2 -2
  453. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-chromium-light-1-snap.png +2 -2
  454. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-firefox-dark-1-snap.png +2 -2
  455. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-firefox-light-1-snap.png +2 -2
  456. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-webkit-dark-1-snap.png +2 -2
  457. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-webkit-light-1-snap.png +2 -2
  458. package/src/components/TabsItem/TabsItem.module.css +0 -9
  459. package/src/components/Textarea/Textarea.tsx +1 -1
  460. package/src/components/Touch/Readme.md +1 -1
  461. package/src/components/View/View.stories.tsx +1 -1
  462. package/src/components/View/View.tsx +4 -4
  463. package/src/components/View/ViewInfinite.tsx +5 -5
  464. package/src/components/WriteBar/Readme.md +1 -1
  465. package/src/hooks/useDateInput.ts +3 -3
  466. package/src/hooks/useDraggableWithDomApi/types.ts +4 -4
  467. package/src/hooks/useEnsuredControl.ts +2 -2
  468. package/src/hooks/useGlobalOnClickOutside.test.tsx +1 -1
  469. package/src/lib/floating/useFloatingWithInteractions/types.ts +3 -3
  470. package/src/lib/rafSchd.ts +1 -1
  471. package/src/lib/react/simulateReactInput.ts +3 -3
  472. package/src/storybook/VKUIDecorators.tsx +0 -16
  473. package/src/testing/e2e/ComponentPlayground.tsx +1 -1
  474. package/src/testing/e2e/types.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ModalRootContext.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/ModalRootContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AACjG,KAAK,SAAS,GAAG;KAAG,CAAC,IAAI,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI;CAAE,CAAC;AAE/E,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,EAAE,YAAY,CAAC;IAChC,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,0CAI3B,CAAC;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,SAAS;;EAwBvE"}
1
+ {"version":3,"file":"ModalRootContext.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/ModalRootContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AACjG,KAAK,SAAS,GAAG;KAAG,CAAC,IAAI,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI;CAAE,CAAC;AAE/E,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,EAAE,YAAY,CAAC;IAChC,aAAa,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,0CAI3B,CAAC;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,SAAS;;EAwBvE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ModalRoot/ModalRootContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { ModalElements, ModalsStateEntry, ModalType } from './types';\n\nexport type ModalRegistryEntry = ModalElements & Required<Pick<ModalsStateEntry, 'type' | 'id'>>;\ntype ModalRefs = { [k in keyof ModalElements]: (e: ModalElements[k]) => void };\n\nexport interface ModalRootContextInterface {\n updateModalHeight: VoidFunction;\n registerModal(data: ModalRegistryEntry): void;\n onClose?: VoidFunction;\n isInsideModal: boolean;\n}\n\nexport const ModalRootContext = React.createContext<ModalRootContextInterface>({\n updateModalHeight: () => undefined,\n registerModal: () => undefined,\n isInsideModal: false,\n});\n\n/**\n * All referenced elements must be static\n */\nexport function useModalRegistry(id: string | undefined, type: ModalType) {\n const modalContext = React.useContext(ModalRootContext);\n const elements = React.useRef<ModalElements>({}).current;\n useIsomorphicLayoutEffect(() => {\n if (id !== undefined) {\n modalContext.registerModal({ ...elements, type, id });\n // unset refs on unmount to prevent leak\n const reset = Object.keys(elements).reduce<ModalRegistryEntry>(\n (acc, k) => ({ ...acc, [k]: null }),\n { type, id },\n );\n return () => modalContext.registerModal(reset);\n }\n return undefined;\n }, []);\n\n const refs = React.useRef<Required<ModalRefs>>({\n modalElement: (e) => (elements.modalElement = e),\n innerElement: (e) => (elements.innerElement = e),\n headerElement: (e) => (elements.headerElement = e),\n contentElement: (e) => (elements.contentElement = e),\n bottomInset: (e) => (elements.bottomInset = e),\n }).current;\n return { refs };\n}\n"],"names":["React","useIsomorphicLayoutEffect","ModalRootContext","createContext","updateModalHeight","undefined","registerModal","isInsideModal","useModalRegistry","id","type","modalContext","useContext","elements","useRef","current","reset","Object","keys","reduce","acc","k","refs","modalElement","e","innerElement","headerElement","contentElement","bottomInset"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,sCAAsC;AAahF,OAAO,MAAMC,iCAAmBF,MAAMG,aAAa,CAA4B;IAC7EC,mBAAmB,IAAMC;IACzBC,eAAe,IAAMD;IACrBE,eAAe;AACjB,GAAG;AAEH;;CAEC,GACD,OAAO,SAASC,iBAAiBC,EAAsB,EAAEC,IAAe;IACtE,MAAMC,eAAeX,MAAMY,UAAU,CAACV;IACtC,MAAMW,WAAWb,MAAMc,MAAM,CAAgB,CAAC,GAAGC,OAAO;IACxDd,0BAA0B;QACxB,IAAIQ,OAAOJ,WAAW;YACpBM,aAAaL,aAAa,CAAC,wCAAKO;gBAAUH;gBAAMD;;YAChD,yCAAyC;YACzC,MAAMO,QAAQC,OAAOC,IAAI,CAACL,UAAUM,MAAM,CACxC,CAACC,KAAKC,IAAO,wCAAKD;oBAAK,CAACC,EAAE,EAAE;oBAC5B;gBAAEX;gBAAMD;YAAG;YAEb,OAAO,IAAME,aAAaL,aAAa,CAACU;QAC1C;QACA,OAAOX;IACT,GAAG,EAAE;IAEL,MAAMiB,OAAOtB,MAAMc,MAAM,CAAsB;QAC7CS,cAAc,CAACC,IAAOX,SAASU,YAAY,GAAGC;QAC9CC,cAAc,CAACD,IAAOX,SAASY,YAAY,GAAGD;QAC9CE,eAAe,CAACF,IAAOX,SAASa,aAAa,GAAGF;QAChDG,gBAAgB,CAACH,IAAOX,SAASc,cAAc,GAAGH;QAClDI,aAAa,CAACJ,IAAOX,SAASe,WAAW,GAAGJ;IAC9C,GAAGT,OAAO;IACV,OAAO;QAAEO;IAAK;AAChB"}
1
+ {"version":3,"sources":["../../../src/components/ModalRoot/ModalRootContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { ModalElements, ModalsStateEntry, ModalType } from './types';\n\nexport type ModalRegistryEntry = ModalElements & Required<Pick<ModalsStateEntry, 'type' | 'id'>>;\ntype ModalRefs = { [k in keyof ModalElements]: (e: ModalElements[k]) => void };\n\nexport interface ModalRootContextInterface {\n updateModalHeight: VoidFunction;\n registerModal: (data: ModalRegistryEntry) => void;\n onClose?: VoidFunction;\n isInsideModal: boolean;\n}\n\nexport const ModalRootContext = React.createContext<ModalRootContextInterface>({\n updateModalHeight: () => undefined,\n registerModal: () => undefined,\n isInsideModal: false,\n});\n\n/**\n * All referenced elements must be static\n */\nexport function useModalRegistry(id: string | undefined, type: ModalType) {\n const modalContext = React.useContext(ModalRootContext);\n const elements = React.useRef<ModalElements>({}).current;\n useIsomorphicLayoutEffect(() => {\n if (id !== undefined) {\n modalContext.registerModal({ ...elements, type, id });\n // unset refs on unmount to prevent leak\n const reset = Object.keys(elements).reduce<ModalRegistryEntry>(\n (acc, k) => ({ ...acc, [k]: null }),\n { type, id },\n );\n return () => modalContext.registerModal(reset);\n }\n return undefined;\n }, []);\n\n const refs = React.useRef<Required<ModalRefs>>({\n modalElement: (e) => (elements.modalElement = e),\n innerElement: (e) => (elements.innerElement = e),\n headerElement: (e) => (elements.headerElement = e),\n contentElement: (e) => (elements.contentElement = e),\n bottomInset: (e) => (elements.bottomInset = e),\n }).current;\n return { refs };\n}\n"],"names":["React","useIsomorphicLayoutEffect","ModalRootContext","createContext","updateModalHeight","undefined","registerModal","isInsideModal","useModalRegistry","id","type","modalContext","useContext","elements","useRef","current","reset","Object","keys","reduce","acc","k","refs","modalElement","e","innerElement","headerElement","contentElement","bottomInset"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,sCAAsC;AAahF,OAAO,MAAMC,iCAAmBF,MAAMG,aAAa,CAA4B;IAC7EC,mBAAmB,IAAMC;IACzBC,eAAe,IAAMD;IACrBE,eAAe;AACjB,GAAG;AAEH;;CAEC,GACD,OAAO,SAASC,iBAAiBC,EAAsB,EAAEC,IAAe;IACtE,MAAMC,eAAeX,MAAMY,UAAU,CAACV;IACtC,MAAMW,WAAWb,MAAMc,MAAM,CAAgB,CAAC,GAAGC,OAAO;IACxDd,0BAA0B;QACxB,IAAIQ,OAAOJ,WAAW;YACpBM,aAAaL,aAAa,CAAC,wCAAKO;gBAAUH;gBAAMD;;YAChD,yCAAyC;YACzC,MAAMO,QAAQC,OAAOC,IAAI,CAACL,UAAUM,MAAM,CACxC,CAACC,KAAKC,IAAO,wCAAKD;oBAAK,CAACC,EAAE,EAAE;oBAC5B;gBAAEX;gBAAMD;YAAG;YAEb,OAAO,IAAME,aAAaL,aAAa,CAACU;QAC1C;QACA,OAAOX;IACT,GAAG,EAAE;IAEL,MAAMiB,OAAOtB,MAAMc,MAAM,CAAsB;QAC7CS,cAAc,CAACC,IAAOX,SAASU,YAAY,GAAGC;QAC9CC,cAAc,CAACD,IAAOX,SAASY,YAAY,GAAGD;QAC9CE,eAAe,CAACF,IAAOX,SAASa,aAAa,GAAGF;QAChDG,gBAAgB,CAACH,IAAOX,SAASc,cAAc,GAAGH;QAClDI,aAAa,CAACJ,IAAOX,SAASe,WAAW,GAAGJ;IAC9C,GAAGT,OAAO;IACV,OAAO;QAAEO;IAAK;AAChB"}
@@ -65,19 +65,19 @@ export interface ModalRootProps {
65
65
  /**
66
66
  * Будет вызвано при начале открытия активной модалки с её id
67
67
  */
68
- onOpen?(modalId: string): void;
68
+ onOpen?: (modalId: string) => void;
69
69
  /**
70
70
  * Будет вызвано при окончательном открытии активной модалки с её id
71
71
  */
72
- onOpened?(modalId: string): void;
72
+ onOpened?: (modalId: string) => void;
73
73
  /**
74
74
  * Будет вызвано при начале закрытия активной модалки с её id
75
75
  */
76
- onClose?(modalId: string): void;
76
+ onClose?: (modalId: string) => void;
77
77
  /**
78
78
  * Будет вызвано при окончательном закрытии активной модалки с её id
79
79
  */
80
- onClosed?(modalId: string): void;
80
+ onClosed?: (modalId: string) => void;
81
81
  /**
82
82
  * `data-testid` для маски
83
83
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAE,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wBAAwB,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAEzD,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAE5D;;OAEG;IACH,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW,EAAE,cAAc,EAAE,mBAAmB;IAC7F;;OAEG;IACH,cAAc,CAAC,EAAE,8BAA8B,CAAC;CACjD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAE,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wBAAwB,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAEzD,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAE5D;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW,EAAE,cAAc,EAAE,mBAAmB;IAC7F;;OAEG;IACH,cAAc,CAAC,EAAE,8BAA8B,CAAC;CACjD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ModalRoot/types.ts"],"sourcesContent":["import { DOMContextInterface } from '../../lib/dom';\nimport { HasPlatform } from '../../types';\nimport { ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';\n\nexport type ModalType = 'page' | 'card';\n\nexport type TranslateRange = [number, number];\n\nexport type ModalsState = { [index: string]: ModalsStateEntry };\n\nexport interface ModalElements {\n modalElement?: HTMLElement | null;\n innerElement?: HTMLElement | null;\n headerElement?: HTMLElement | null;\n contentElement?: HTMLElement | null;\n bottomInset?: HTMLElement | null;\n}\n\nexport interface ModalsStateEntry extends ModalElements {\n id: string | null;\n /**\n * Событие начала открытия модалки.\n */\n onOpen?: VoidFunction;\n /**\n * Событие открытия модалки.\n */\n onOpened?: VoidFunction;\n /**\n * Событие начала закрытия модалки.\n */\n onClose?: VoidFunction;\n /**\n * Событие закрытия модалки.\n */\n onClosed?: VoidFunction;\n type?: ModalType;\n\n settlingHeight?: number;\n expandable?: boolean;\n\n /**\n * Процент текущего сдвига модалки\n */\n translateY?: number;\n /**\n * Процент сдвига модалки в изначальном состоянии\n */\n translateYFrom?: number;\n /**\n * Процент сдвига модалки во время взаимодействия с ней (потянуть, чтобы открыть или закрыть)\n */\n translateYCurrent?: number;\n\n touchStartContentScrollTop?: number;\n touchMovePositive?: boolean | null;\n touchShiftYPercent?: number;\n\n expanded?: boolean;\n collapsed?: boolean;\n hidden?: boolean;\n\n contentScrolled?: boolean;\n contentScrollStopTimeout?: ReturnType<typeof setTimeout>;\n\n expandedRange?: TranslateRange;\n collapsedRange?: TranslateRange;\n hiddenRange?: TranslateRange;\n}\n\nexport interface ModalRootProps {\n activeModal?: string | null;\n children: React.ReactElement | Iterable<React.ReactElement>;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?(modalId: string): void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?(modalId: string): void;\n\n /**\n * `data-testid` для маски\n */\n modalOverlayTestId?: string;\n\n /**\n * Отключает фокус на контейнер диалогового окна при открытии.\n */\n noFocusToDialog?: boolean;\n}\n\nexport interface ModalRootWithDOMProps extends HasPlatform, ModalRootProps, DOMContextInterface {\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n}\n"],"names":[],"mappings":"AAyGA,WAKC"}
1
+ {"version":3,"sources":["../../../src/components/ModalRoot/types.ts"],"sourcesContent":["import { DOMContextInterface } from '../../lib/dom';\nimport { HasPlatform } from '../../types';\nimport { ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';\n\nexport type ModalType = 'page' | 'card';\n\nexport type TranslateRange = [number, number];\n\nexport type ModalsState = { [index: string]: ModalsStateEntry };\n\nexport interface ModalElements {\n modalElement?: HTMLElement | null;\n innerElement?: HTMLElement | null;\n headerElement?: HTMLElement | null;\n contentElement?: HTMLElement | null;\n bottomInset?: HTMLElement | null;\n}\n\nexport interface ModalsStateEntry extends ModalElements {\n id: string | null;\n /**\n * Событие начала открытия модалки.\n */\n onOpen?: VoidFunction;\n /**\n * Событие открытия модалки.\n */\n onOpened?: VoidFunction;\n /**\n * Событие начала закрытия модалки.\n */\n onClose?: VoidFunction;\n /**\n * Событие закрытия модалки.\n */\n onClosed?: VoidFunction;\n type?: ModalType;\n\n settlingHeight?: number;\n expandable?: boolean;\n\n /**\n * Процент текущего сдвига модалки\n */\n translateY?: number;\n /**\n * Процент сдвига модалки в изначальном состоянии\n */\n translateYFrom?: number;\n /**\n * Процент сдвига модалки во время взаимодействия с ней (потянуть, чтобы открыть или закрыть)\n */\n translateYCurrent?: number;\n\n touchStartContentScrollTop?: number;\n touchMovePositive?: boolean | null;\n touchShiftYPercent?: number;\n\n expanded?: boolean;\n collapsed?: boolean;\n hidden?: boolean;\n\n contentScrolled?: boolean;\n contentScrollStopTimeout?: ReturnType<typeof setTimeout>;\n\n expandedRange?: TranslateRange;\n collapsedRange?: TranslateRange;\n hiddenRange?: TranslateRange;\n}\n\nexport interface ModalRootProps {\n activeModal?: string | null;\n children: React.ReactElement | Iterable<React.ReactElement>;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?: (modalId: string) => void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?: (modalId: string) => void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?: (modalId: string) => void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?: (modalId: string) => void;\n\n /**\n * `data-testid` для маски\n */\n modalOverlayTestId?: string;\n\n /**\n * Отключает фокус на контейнер диалогового окна при открытии.\n */\n noFocusToDialog?: boolean;\n}\n\nexport interface ModalRootWithDOMProps extends HasPlatform, ModalRootProps, DOMContextInterface {\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n}\n"],"names":[],"mappings":"AAyGA,WAKC"}
@@ -22,7 +22,7 @@ export interface OnboardingTooltipProps extends AllowedFloatingComponentProps, A
22
22
  /**
23
23
  * Callback, который вызывается при клике по любому месту в пределах экрана.
24
24
  */
25
- onClose?(this: void): void;
25
+ onClose?: (this: void) => void;
26
26
  }
27
27
  /**
28
28
  * @see https://vkcom.github.io/VKUI/#/Tooltip
@@ -1 +1 @@
1
- {"version":3,"file":"OnboardingTooltip.d.ts","sourceRoot":"","sources":["../../../src/components/OnboardingTooltip/OnboardingTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAGL,KAAK,sBAAsB,EAI5B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAkC,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAMnG,KAAK,6BAA6B,GAAG,IAAI,CACvC,sBAAsB,EACpB,aAAa,GACb,cAAc,GACd,UAAU,GACV,WAAW,GACX,kBAAkB,GAClB,mBAAmB,GACnB,OAAO,GACP,UAAU,GACV,mBAAmB,CACtB,CAAC;AAEF,KAAK,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAEpE,KAAK,yBAAyB,GAAG;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C;;OAEG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,WAAW,sBACf,SAAQ,6BAA6B,EACnC,uBAAuB,EACvB,yBAAyB;IAC3B;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,2QAkB3B,sBAAsB,sBAqHxB,CAAC"}
1
+ {"version":3,"file":"OnboardingTooltip.d.ts","sourceRoot":"","sources":["../../../src/components/OnboardingTooltip/OnboardingTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAGL,KAAK,sBAAsB,EAI5B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAkC,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAMnG,KAAK,6BAA6B,GAAG,IAAI,CACvC,sBAAsB,EACpB,aAAa,GACb,cAAc,GACd,UAAU,GACV,WAAW,GACX,kBAAkB,GAClB,mBAAmB,GACnB,OAAO,GACP,UAAU,GACV,mBAAmB,CACtB,CAAC;AAEF,KAAK,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAEpE,KAAK,yBAAyB,GAAG;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C;;OAEG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,WAAW,sBACf,SAAQ,6BAA6B,EACnC,uBAAuB,EACvB,yBAAyB;IAC3B;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,2QAkB3B,sBAAsB,sBAqHxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/OnboardingTooltip/OnboardingTooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { hasReactNode } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePatchChildren } from '../../hooks/usePatchChildren';\nimport { createPortal } from '../../lib/createPortal';\nimport {\n autoUpdateFloatingElement,\n convertFloatingDataToReactCSSProperties,\n type FloatingComponentProps,\n useFloating,\n useFloatingMiddlewaresBootstrap,\n usePlacementChangeCallback,\n} from '../../lib/floating';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { DEFAULT_ARROW_HEIGHT, DEFAULT_ARROW_PADDING } from '../FloatingArrow/DefaultIcon';\nimport { FloatingArrowProps } from '../FloatingArrow/FloatingArrow';\nimport { useNavTransition } from '../NavTransitionContext/NavTransitionContext';\nimport { TOOLTIP_MAX_WIDTH, TooltipBase, type TooltipBaseProps } from '../TooltipBase/TooltipBase';\nimport { onboardingTooltipContainerAttr } from './OnboardingTooltipContainer';\nimport styles from './OnboardingTooltip.module.css';\n\nconst warn = warnOnce('OnboardingTooltip');\n\ntype AllowedFloatingComponentProps = Pick<\n FloatingComponentProps,\n | 'arrowHeight'\n | 'arrowPadding'\n | 'arrowRef'\n | 'placement'\n | 'offsetByMainAxis'\n | 'offsetByCrossAxis'\n | 'shown'\n | 'children'\n | 'onPlacementChange'\n>;\n\ntype AllowedTooltipBaseProps = Omit<TooltipBaseProps, 'arrowProps'>;\n\ntype AllowedFloatingArrowProps = {\n /**\n * Сдвиг стрелки относительно текущих координат.\n */\n arrowOffset?: FloatingArrowProps['offset'];\n /**\n * Включает абсолютное смещение по `arrowOffset`.\n */\n isStaticArrowOffset?: FloatingArrowProps['isStaticOffset'];\n};\n\nexport interface OnboardingTooltipProps\n extends AllowedFloatingComponentProps,\n AllowedTooltipBaseProps,\n AllowedFloatingArrowProps {\n /**\n * Скрывает стрелку, указывающую на якорный элемент.\n */\n disableArrow?: boolean;\n /**\n * Callback, который вызывается при клике по любому месту в пределах экрана.\n */\n onClose?(this: void): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tooltip\n */\nexport const OnboardingTooltip = ({\n id: idProp,\n children,\n shown: shownProp = true,\n arrowPadding = DEFAULT_ARROW_PADDING,\n arrowHeight = DEFAULT_ARROW_HEIGHT,\n offsetByMainAxis = 0,\n offsetByCrossAxis = 0,\n arrowOffset = 0,\n isStaticArrowOffset = false,\n onClose,\n placement: placementProp = 'bottom-start',\n maxWidth = TOOLTIP_MAX_WIDTH,\n style: styleProp,\n getRootRef,\n disableArrow = false,\n onPlacementChange,\n ...restProps\n}: OnboardingTooltipProps) => {\n const generatedId = React.useId();\n const tooltipId = idProp || generatedId;\n const { entering } = useNavTransition();\n\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n const [tooltipContainer, setTooltipContainer] = React.useState<HTMLElement | null>(null);\n const [positionStrategy, setPositionStrategy] = React.useState<'fixed' | 'absolute'>('absolute');\n const shown = shownProp && tooltipContainer && !entering;\n\n const { middlewares, strictPlacement } = useFloatingMiddlewaresBootstrap({\n placement: placementProp,\n offsetByMainAxis,\n offsetByCrossAxis,\n arrowRef,\n arrow: !disableArrow,\n arrowHeight,\n arrowPadding,\n });\n const {\n x: floatingDataX,\n y: floatingDataY,\n refs,\n placement: resolvedPlacement,\n middlewareData: { arrow: arrowCoords },\n } = useFloating({\n strategy: positionStrategy,\n placement: strictPlacement,\n middleware: middlewares,\n whileElementsMounted: autoUpdateFloatingElement,\n });\n const tooltipRef = useExternRef<HTMLDivElement>(getRootRef, refs.setFloating);\n const [childRef, child] = usePatchChildren(children, {\n 'aria-describedby': shown ? tooltipId : undefined,\n });\n\n usePlacementChangeCallback(resolvedPlacement, onPlacementChange);\n\n let tooltip: React.ReactPortal | null = null;\n if (shown) {\n const floatingStyle = convertFloatingDataToReactCSSProperties(\n positionStrategy,\n floatingDataX,\n floatingDataY,\n );\n\n if (styleProp) {\n Object.assign(floatingStyle, styleProp);\n }\n\n tooltip = createPortal(\n <>\n <TooltipBase\n {...restProps}\n id={tooltipId}\n getRootRef={tooltipRef}\n style={floatingStyle}\n maxWidth={maxWidth}\n arrowProps={\n disableArrow\n ? undefined\n : {\n offset: arrowOffset,\n isStaticOffset: isStaticArrowOffset,\n coords: arrowCoords,\n placement: resolvedPlacement,\n getRootRef: setArrowRef,\n }\n }\n />\n <div className={styles['OnboardingTooltip__overlay']} onClickCapture={onClose} />\n </>,\n tooltipContainer,\n );\n }\n\n useIsomorphicLayoutEffect(\n function initialize() {\n const referenceEl = childRef.current;\n if (referenceEl) {\n setTooltipContainer(\n referenceEl.closest<HTMLDivElement>(`[${onboardingTooltipContainerAttr}]`), // eslint-disable-line no-restricted-properties\n );\n setPositionStrategy(referenceEl.style.position === 'fixed' ? 'fixed' : 'absolute');\n refs.setReference(referenceEl);\n }\n },\n [childRef],\n );\n\n if (process.env.NODE_ENV === 'development') {\n const multiChildren = React.Children.count(children) > 1;\n // Empty children is a noop\n const primitiveChild = hasReactNode(children) && typeof children !== 'object';\n (multiChildren || primitiveChild) &&\n warn(\n [\n 'children должен быть одним React элементом, получено',\n multiChildren && 'несколько',\n primitiveChild && JSON.stringify(children),\n ]\n .filter(Boolean)\n .join(' '),\n 'error',\n );\n\n if (refs.reference.current && !tooltipContainer) {\n throw new Error('Use TooltipContainer for Tooltip outside Panel (see docs)');\n }\n }\n\n return (\n <React.Fragment>\n {child}\n {tooltip}\n </React.Fragment>\n );\n};\n"],"names":["React","hasReactNode","useExternRef","usePatchChildren","createPortal","autoUpdateFloatingElement","convertFloatingDataToReactCSSProperties","useFloating","useFloatingMiddlewaresBootstrap","usePlacementChangeCallback","useIsomorphicLayoutEffect","warnOnce","DEFAULT_ARROW_HEIGHT","DEFAULT_ARROW_PADDING","useNavTransition","TOOLTIP_MAX_WIDTH","TooltipBase","onboardingTooltipContainerAttr","warn","OnboardingTooltip","id","idProp","children","shown","shownProp","arrowPadding","arrowHeight","offsetByMainAxis","offsetByCrossAxis","arrowOffset","isStaticArrowOffset","onClose","placement","placementProp","maxWidth","style","styleProp","getRootRef","disableArrow","onPlacementChange","restProps","generatedId","useId","tooltipId","entering","arrowRef","setArrowRef","useState","tooltipContainer","setTooltipContainer","positionStrategy","setPositionStrategy","middlewares","strictPlacement","arrow","x","floatingDataX","y","floatingDataY","refs","resolvedPlacement","middlewareData","arrowCoords","strategy","middleware","whileElementsMounted","tooltipRef","setFloating","childRef","child","undefined","tooltip","floatingStyle","Object","assign","arrowProps","offset","isStaticOffset","coords","div","className","onClickCapture","initialize","referenceEl","current","closest","position","setReference","process","env","NODE_ENV","multiChildren","Children","count","primitiveChild","JSON","stringify","filter","Boolean","join","reference","Error","Fragment"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/OnboardingTooltip/OnboardingTooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { hasReactNode } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePatchChildren } from '../../hooks/usePatchChildren';\nimport { createPortal } from '../../lib/createPortal';\nimport {\n autoUpdateFloatingElement,\n convertFloatingDataToReactCSSProperties,\n type FloatingComponentProps,\n useFloating,\n useFloatingMiddlewaresBootstrap,\n usePlacementChangeCallback,\n} from '../../lib/floating';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { DEFAULT_ARROW_HEIGHT, DEFAULT_ARROW_PADDING } from '../FloatingArrow/DefaultIcon';\nimport { FloatingArrowProps } from '../FloatingArrow/FloatingArrow';\nimport { useNavTransition } from '../NavTransitionContext/NavTransitionContext';\nimport { TOOLTIP_MAX_WIDTH, TooltipBase, type TooltipBaseProps } from '../TooltipBase/TooltipBase';\nimport { onboardingTooltipContainerAttr } from './OnboardingTooltipContainer';\nimport styles from './OnboardingTooltip.module.css';\n\nconst warn = warnOnce('OnboardingTooltip');\n\ntype AllowedFloatingComponentProps = Pick<\n FloatingComponentProps,\n | 'arrowHeight'\n | 'arrowPadding'\n | 'arrowRef'\n | 'placement'\n | 'offsetByMainAxis'\n | 'offsetByCrossAxis'\n | 'shown'\n | 'children'\n | 'onPlacementChange'\n>;\n\ntype AllowedTooltipBaseProps = Omit<TooltipBaseProps, 'arrowProps'>;\n\ntype AllowedFloatingArrowProps = {\n /**\n * Сдвиг стрелки относительно текущих координат.\n */\n arrowOffset?: FloatingArrowProps['offset'];\n /**\n * Включает абсолютное смещение по `arrowOffset`.\n */\n isStaticArrowOffset?: FloatingArrowProps['isStaticOffset'];\n};\n\nexport interface OnboardingTooltipProps\n extends AllowedFloatingComponentProps,\n AllowedTooltipBaseProps,\n AllowedFloatingArrowProps {\n /**\n * Скрывает стрелку, указывающую на якорный элемент.\n */\n disableArrow?: boolean;\n /**\n * Callback, который вызывается при клике по любому месту в пределах экрана.\n */\n onClose?: (this: void) => void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tooltip\n */\nexport const OnboardingTooltip = ({\n id: idProp,\n children,\n shown: shownProp = true,\n arrowPadding = DEFAULT_ARROW_PADDING,\n arrowHeight = DEFAULT_ARROW_HEIGHT,\n offsetByMainAxis = 0,\n offsetByCrossAxis = 0,\n arrowOffset = 0,\n isStaticArrowOffset = false,\n onClose,\n placement: placementProp = 'bottom-start',\n maxWidth = TOOLTIP_MAX_WIDTH,\n style: styleProp,\n getRootRef,\n disableArrow = false,\n onPlacementChange,\n ...restProps\n}: OnboardingTooltipProps) => {\n const generatedId = React.useId();\n const tooltipId = idProp || generatedId;\n const { entering } = useNavTransition();\n\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n const [tooltipContainer, setTooltipContainer] = React.useState<HTMLElement | null>(null);\n const [positionStrategy, setPositionStrategy] = React.useState<'fixed' | 'absolute'>('absolute');\n const shown = shownProp && tooltipContainer && !entering;\n\n const { middlewares, strictPlacement } = useFloatingMiddlewaresBootstrap({\n placement: placementProp,\n offsetByMainAxis,\n offsetByCrossAxis,\n arrowRef,\n arrow: !disableArrow,\n arrowHeight,\n arrowPadding,\n });\n const {\n x: floatingDataX,\n y: floatingDataY,\n refs,\n placement: resolvedPlacement,\n middlewareData: { arrow: arrowCoords },\n } = useFloating({\n strategy: positionStrategy,\n placement: strictPlacement,\n middleware: middlewares,\n whileElementsMounted: autoUpdateFloatingElement,\n });\n const tooltipRef = useExternRef<HTMLDivElement>(getRootRef, refs.setFloating);\n const [childRef, child] = usePatchChildren(children, {\n 'aria-describedby': shown ? tooltipId : undefined,\n });\n\n usePlacementChangeCallback(resolvedPlacement, onPlacementChange);\n\n let tooltip: React.ReactPortal | null = null;\n if (shown) {\n const floatingStyle = convertFloatingDataToReactCSSProperties(\n positionStrategy,\n floatingDataX,\n floatingDataY,\n );\n\n if (styleProp) {\n Object.assign(floatingStyle, styleProp);\n }\n\n tooltip = createPortal(\n <>\n <TooltipBase\n {...restProps}\n id={tooltipId}\n getRootRef={tooltipRef}\n style={floatingStyle}\n maxWidth={maxWidth}\n arrowProps={\n disableArrow\n ? undefined\n : {\n offset: arrowOffset,\n isStaticOffset: isStaticArrowOffset,\n coords: arrowCoords,\n placement: resolvedPlacement,\n getRootRef: setArrowRef,\n }\n }\n />\n <div className={styles['OnboardingTooltip__overlay']} onClickCapture={onClose} />\n </>,\n tooltipContainer,\n );\n }\n\n useIsomorphicLayoutEffect(\n function initialize() {\n const referenceEl = childRef.current;\n if (referenceEl) {\n setTooltipContainer(\n referenceEl.closest<HTMLDivElement>(`[${onboardingTooltipContainerAttr}]`), // eslint-disable-line no-restricted-properties\n );\n setPositionStrategy(referenceEl.style.position === 'fixed' ? 'fixed' : 'absolute');\n refs.setReference(referenceEl);\n }\n },\n [childRef],\n );\n\n if (process.env.NODE_ENV === 'development') {\n const multiChildren = React.Children.count(children) > 1;\n // Empty children is a noop\n const primitiveChild = hasReactNode(children) && typeof children !== 'object';\n (multiChildren || primitiveChild) &&\n warn(\n [\n 'children должен быть одним React элементом, получено',\n multiChildren && 'несколько',\n primitiveChild && JSON.stringify(children),\n ]\n .filter(Boolean)\n .join(' '),\n 'error',\n );\n\n if (refs.reference.current && !tooltipContainer) {\n throw new Error('Use TooltipContainer for Tooltip outside Panel (see docs)');\n }\n }\n\n return (\n <React.Fragment>\n {child}\n {tooltip}\n </React.Fragment>\n );\n};\n"],"names":["React","hasReactNode","useExternRef","usePatchChildren","createPortal","autoUpdateFloatingElement","convertFloatingDataToReactCSSProperties","useFloating","useFloatingMiddlewaresBootstrap","usePlacementChangeCallback","useIsomorphicLayoutEffect","warnOnce","DEFAULT_ARROW_HEIGHT","DEFAULT_ARROW_PADDING","useNavTransition","TOOLTIP_MAX_WIDTH","TooltipBase","onboardingTooltipContainerAttr","warn","OnboardingTooltip","id","idProp","children","shown","shownProp","arrowPadding","arrowHeight","offsetByMainAxis","offsetByCrossAxis","arrowOffset","isStaticArrowOffset","onClose","placement","placementProp","maxWidth","style","styleProp","getRootRef","disableArrow","onPlacementChange","restProps","generatedId","useId","tooltipId","entering","arrowRef","setArrowRef","useState","tooltipContainer","setTooltipContainer","positionStrategy","setPositionStrategy","middlewares","strictPlacement","arrow","x","floatingDataX","y","floatingDataY","refs","resolvedPlacement","middlewareData","arrowCoords","strategy","middleware","whileElementsMounted","tooltipRef","setFloating","childRef","child","undefined","tooltip","floatingStyle","Object","assign","arrowProps","offset","isStaticOffset","coords","div","className","onClickCapture","initialize","referenceEl","current","closest","position","setReference","process","env","NODE_ENV","multiChildren","Children","count","primitiveChild","JSON","stringify","filter","Boolean","join","reference","Error","Fragment"],"mappings":"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"}
@@ -41,8 +41,8 @@ export interface PaginationProps extends Omit<HTMLAttributesWithRootRef<HTMLElem
41
41
  * Функция для переопределения и/или локализации текста кнопки страницы.
42
42
  * По умолчанию используется текст на "ru_RU".
43
43
  */
44
- getPageLabel?(isCurrent: boolean): string;
45
- onChange?(page: number): void;
44
+ getPageLabel?: (isCurrent: boolean) => string;
45
+ onChange?: (page: number) => void;
46
46
  }
47
47
  /**
48
48
  * @see https://vkcom.github.io/VKUI/#/Pagination
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAS3E,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;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACrD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,2LAapB,eAAe,sBAkGjB,CAAC"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAS3E,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;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACrD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,MAAM,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,2LAapB,eAAe,sBAkGjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24ChevronCompactLeft, Icon24ChevronCompactRight } from '@vkontakte/icons';\nimport { PaginationPageType, usePagination } from '../../hooks/usePagination';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { PaginationPageButton } 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 * По умолчанию используется текст на \"ru_RU\".\n */\n navigationLabel?: string;\n navigationLabelComponent?: HasComponent['Component'];\n /**\n * Переопределение текста для кнопки навигации назад.\n * По умолчанию используется текст на \"ru_RU\".\n */\n prevButtonLabel?: string;\n /**\n * Переопределение текста для кнопки навигации вперёд.\n * По умолчанию используется текст на \"ru_RU\".\n */\n nextButtonLabel?: string;\n /**\n * Функция для переопределения и/или локализации текста кнопки страницы.\n * По умолчанию используется текст на \"ru_RU\".\n */\n getPageLabel?(isCurrent: boolean): string;\n onChange?(page: number): void;\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 getPageLabel = getPageLabelDefault,\n navigationLabel = 'Навигация по страницам',\n navigationLabelComponent = 'h2',\n prevButtonLabel = 'Перейти на предыдущую страницу',\n nextButtonLabel = 'Перейти на следующую страницу',\n onChange,\n ...resetProps\n}: PaginationProps) => {\n const pages = usePagination({\n currentPage,\n totalPages,\n siblingCount,\n boundaryCount,\n });\n const isFirstPage = currentPage === 1;\n const isLastPage = currentPage === totalPages;\n\n const handlePrevClick = React.useCallback(() => {\n if (onChange && !isFirstPage) {\n onChange(currentPage - 1);\n }\n }, [currentPage, isFirstPage, onChange]);\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const page: string = event.currentTarget.dataset.page || '1';\n onChange?.(Number(page));\n },\n [onChange],\n );\n\n const handleNextClick = React.useCallback(() => {\n if (onChange && !isLastPage) {\n onChange(currentPage + 1);\n }\n }, [currentPage, isLastPage, onChange]);\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 return (\n <li key={page}>\n <PaginationPageButton\n getPageLabel={getPageLabel}\n isCurrent={isCurrent}\n onClick={handleClick}\n disabled={disabled}\n >\n {page}\n </PaginationPageButton>\n </li>\n );\n }\n }\n },\n [currentPage, disabled, getPageLabel, handleClick],\n );\n\n return (\n <RootComponent Component=\"nav\" role=\"navigation\" {...resetProps}>\n <VisuallyHidden Component={navigationLabelComponent}>{navigationLabel}</VisuallyHidden>\n <ul className={styles['Pagination__list']}>\n <li className={styles['Pagination__prevButtonContainer']}>\n <Button\n size=\"l\"\n before={\n <>\n <VisuallyHidden>{prevButtonLabel}</VisuallyHidden>{' '}\n <Icon24ChevronCompactLeft width={24} />\n </>\n }\n appearance=\"accent\"\n mode=\"tertiary\"\n disabled={isFirstPage || disabled}\n onClick={handlePrevClick}\n />\n </li>\n {pages.map(renderPages)}\n <li className={styles['Pagination__nextButtonContainer']}>\n <Button\n size=\"l\"\n after={\n <>\n <VisuallyHidden>{nextButtonLabel}</VisuallyHidden>\n <Icon24ChevronCompactRight width={24} />\n </>\n }\n appearance=\"accent\"\n mode=\"tertiary\"\n disabled={isLastPage || disabled}\n onClick={handleNextClick}\n />\n </li>\n </ul>\n </RootComponent>\n );\n};\n"],"names":["React","Icon24ChevronCompactLeft","Icon24ChevronCompactRight","usePagination","Button","RootComponent","VisuallyHidden","PaginationPageButton","PaginationPageEllipsis","getPageLabelDefault","Pagination","currentPage","siblingCount","boundaryCount","totalPages","disabled","getPageLabel","navigationLabel","navigationLabelComponent","prevButtonLabel","nextButtonLabel","onChange","resetProps","pages","isFirstPage","isLastPage","handlePrevClick","useCallback","handleClick","event","page","currentTarget","dataset","Number","handleNextClick","renderPages","li","key","isCurrent","onClick","Component","role","ul","className","size","before","width","appearance","mode","map","after"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,yBAAyB,QAAQ,mBAAmB;AACvF,SAA6BC,aAAa,QAAQ,4BAA4B;AAE9E,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,cAAc,QAAQ,mCAAmC;AAClE,SAASC,oBAAoB,QAAQ,wCAAwC;AAC7E,SAASC,sBAAsB,QAAQ,0CAA0C;AACjF,SAASC,mBAAmB,QAAQ,UAAU;AAgD9C;;CAEC,GACD,OAAO,MAAMC,aAAa;QAAC,EACzBC,cAAc,CAAC,EACfC,eAAe,CAAC,EAChBC,gBAAgB,CAAC,EACjBC,aAAa,CAAC,EACdC,QAAQ,EACRC,eAAeP,mBAAmB,EAClCQ,kBAAkB,wBAAwB,EAC1CC,2BAA2B,IAAI,EAC/BC,kBAAkB,gCAAgC,EAClDC,kBAAkB,+BAA+B,EACjDC,QAAQ,EAEQ,WADbC;QAXHX;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,QAAQpB,cAAc;QAC1BQ;QACAG;QACAF;QACAC;IACF;IACA,MAAMW,cAAcb,gBAAgB;IACpC,MAAMc,aAAad,gBAAgBG;IAEnC,MAAMY,kBAAkB1B,MAAM2B,WAAW,CAAC;QACxC,IAAIN,YAAY,CAACG,aAAa;YAC5BH,SAASV,cAAc;QACzB;IACF,GAAG;QAACA;QAAaa;QAAaH;KAAS;IAEvC,MAAMO,cAAc5B,MAAM2B,WAAW,CACnC,CAACE;QACC,MAAMC,OAAeD,MAAME,aAAa,CAACC,OAAO,CAACF,IAAI,IAAI;QACzDT,qBAAAA,+BAAAA,SAAWY,OAAOH;IACpB,GACA;QAACT;KAAS;IAGZ,MAAMa,kBAAkBlC,MAAM2B,WAAW,CAAC;QACxC,IAAIN,YAAY,CAACI,YAAY;YAC3BJ,SAASV,cAAc;QACzB;IACF,GAAG;QAACA;QAAac;QAAYJ;KAAS;IAEtC,MAAMc,cAAcnC,MAAM2B,WAAW,CACnC,CAACG;QACC,OAAQA;YACN,KAAK;YACL,KAAK;gBACH,qBACE,oBAACM;oBAAGC,KAAKP;iCACP,oBAACtB;oBAAuBO,UAAUA;;YAGxC;gBAAS;oBACP,MAAMuB,YAAYR,SAASnB;oBAC3B,qBACE,oBAACyB;wBAAGC,KAAKP;qCACP,oBAACvB;wBACCS,cAAcA;wBACdsB,WAAWA;wBACXC,SAASX;wBACTb,UAAUA;uBAETe;gBAIT;QACF;IACF,GACA;QAACnB;QAAaI;QAAUC;QAAcY;KAAY;IAGpD,qBACE,oBAACvB;QAAcmC,WAAU;QAAMC,MAAK;OAAiBnB,2BACnD,oBAAChB;QAAekC,WAAWtB;OAA2BD,gCACtD,oBAACyB;QAAGC,SAAS;qBACX,oBAACP;QAAGO,SAAS;qBACX,oBAACvC;QACCwC,MAAK;QACLC,sBACE,wDACE,oBAACvC,sBAAgBa,kBAAkC,mBACnD,oBAAClB;YAAyB6C,OAAO;;QAGrCC,YAAW;QACXC,MAAK;QACLjC,UAAUS,eAAeT;QACzBwB,SAASb;SAGZH,MAAM0B,GAAG,CAACd,4BACX,oBAACC;QAAGO,SAAS;qBACX,oBAACvC;QACCwC,MAAK;QACLM,qBACE,wDACE,oBAAC5C,sBAAgBc,gCACjB,oBAAClB;YAA0B4C,OAAO;;QAGtCC,YAAW;QACXC,MAAK;QACLjC,UAAUU,cAAcV;QACxBwB,SAASL;;AAMrB,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24ChevronCompactLeft, Icon24ChevronCompactRight } from '@vkontakte/icons';\nimport { PaginationPageType, usePagination } from '../../hooks/usePagination';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { PaginationPageButton } 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 * По умолчанию используется текст на \"ru_RU\".\n */\n navigationLabel?: string;\n navigationLabelComponent?: HasComponent['Component'];\n /**\n * Переопределение текста для кнопки навигации назад.\n * По умолчанию используется текст на \"ru_RU\".\n */\n prevButtonLabel?: string;\n /**\n * Переопределение текста для кнопки навигации вперёд.\n * По умолчанию используется текст на \"ru_RU\".\n */\n nextButtonLabel?: string;\n /**\n * Функция для переопределения и/или локализации текста кнопки страницы.\n * По умолчанию используется текст на \"ru_RU\".\n */\n getPageLabel?: (isCurrent: boolean) => string;\n onChange?: (page: number) => void;\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 getPageLabel = getPageLabelDefault,\n navigationLabel = 'Навигация по страницам',\n navigationLabelComponent = 'h2',\n prevButtonLabel = 'Перейти на предыдущую страницу',\n nextButtonLabel = 'Перейти на следующую страницу',\n onChange,\n ...resetProps\n}: PaginationProps) => {\n const pages = usePagination({\n currentPage,\n totalPages,\n siblingCount,\n boundaryCount,\n });\n const isFirstPage = currentPage === 1;\n const isLastPage = currentPage === totalPages;\n\n const handlePrevClick = React.useCallback(() => {\n if (onChange && !isFirstPage) {\n onChange(currentPage - 1);\n }\n }, [currentPage, isFirstPage, onChange]);\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const page: string = event.currentTarget.dataset.page || '1';\n onChange?.(Number(page));\n },\n [onChange],\n );\n\n const handleNextClick = React.useCallback(() => {\n if (onChange && !isLastPage) {\n onChange(currentPage + 1);\n }\n }, [currentPage, isLastPage, onChange]);\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 return (\n <li key={page}>\n <PaginationPageButton\n getPageLabel={getPageLabel}\n isCurrent={isCurrent}\n onClick={handleClick}\n disabled={disabled}\n >\n {page}\n </PaginationPageButton>\n </li>\n );\n }\n }\n },\n [currentPage, disabled, getPageLabel, handleClick],\n );\n\n return (\n <RootComponent Component=\"nav\" role=\"navigation\" {...resetProps}>\n <VisuallyHidden Component={navigationLabelComponent}>{navigationLabel}</VisuallyHidden>\n <ul className={styles['Pagination__list']}>\n <li className={styles['Pagination__prevButtonContainer']}>\n <Button\n size=\"l\"\n before={\n <>\n <VisuallyHidden>{prevButtonLabel}</VisuallyHidden>{' '}\n <Icon24ChevronCompactLeft width={24} />\n </>\n }\n appearance=\"accent\"\n mode=\"tertiary\"\n disabled={isFirstPage || disabled}\n onClick={handlePrevClick}\n />\n </li>\n {pages.map(renderPages)}\n <li className={styles['Pagination__nextButtonContainer']}>\n <Button\n size=\"l\"\n after={\n <>\n <VisuallyHidden>{nextButtonLabel}</VisuallyHidden>\n <Icon24ChevronCompactRight width={24} />\n </>\n }\n appearance=\"accent\"\n mode=\"tertiary\"\n disabled={isLastPage || disabled}\n onClick={handleNextClick}\n />\n </li>\n </ul>\n </RootComponent>\n );\n};\n"],"names":["React","Icon24ChevronCompactLeft","Icon24ChevronCompactRight","usePagination","Button","RootComponent","VisuallyHidden","PaginationPageButton","PaginationPageEllipsis","getPageLabelDefault","Pagination","currentPage","siblingCount","boundaryCount","totalPages","disabled","getPageLabel","navigationLabel","navigationLabelComponent","prevButtonLabel","nextButtonLabel","onChange","resetProps","pages","isFirstPage","isLastPage","handlePrevClick","useCallback","handleClick","event","page","currentTarget","dataset","Number","handleNextClick","renderPages","li","key","isCurrent","onClick","Component","role","ul","className","size","before","width","appearance","mode","map","after"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,yBAAyB,QAAQ,mBAAmB;AACvF,SAA6BC,aAAa,QAAQ,4BAA4B;AAE9E,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,cAAc,QAAQ,mCAAmC;AAClE,SAASC,oBAAoB,QAAQ,wCAAwC;AAC7E,SAASC,sBAAsB,QAAQ,0CAA0C;AACjF,SAASC,mBAAmB,QAAQ,UAAU;AAgD9C;;CAEC,GACD,OAAO,MAAMC,aAAa;QAAC,EACzBC,cAAc,CAAC,EACfC,eAAe,CAAC,EAChBC,gBAAgB,CAAC,EACjBC,aAAa,CAAC,EACdC,QAAQ,EACRC,eAAeP,mBAAmB,EAClCQ,kBAAkB,wBAAwB,EAC1CC,2BAA2B,IAAI,EAC/BC,kBAAkB,gCAAgC,EAClDC,kBAAkB,+BAA+B,EACjDC,QAAQ,EAEQ,WADbC;QAXHX;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,QAAQpB,cAAc;QAC1BQ;QACAG;QACAF;QACAC;IACF;IACA,MAAMW,cAAcb,gBAAgB;IACpC,MAAMc,aAAad,gBAAgBG;IAEnC,MAAMY,kBAAkB1B,MAAM2B,WAAW,CAAC;QACxC,IAAIN,YAAY,CAACG,aAAa;YAC5BH,SAASV,cAAc;QACzB;IACF,GAAG;QAACA;QAAaa;QAAaH;KAAS;IAEvC,MAAMO,cAAc5B,MAAM2B,WAAW,CACnC,CAACE;QACC,MAAMC,OAAeD,MAAME,aAAa,CAACC,OAAO,CAACF,IAAI,IAAI;QACzDT,qBAAAA,+BAAAA,SAAWY,OAAOH;IACpB,GACA;QAACT;KAAS;IAGZ,MAAMa,kBAAkBlC,MAAM2B,WAAW,CAAC;QACxC,IAAIN,YAAY,CAACI,YAAY;YAC3BJ,SAASV,cAAc;QACzB;IACF,GAAG;QAACA;QAAac;QAAYJ;KAAS;IAEtC,MAAMc,cAAcnC,MAAM2B,WAAW,CACnC,CAACG;QACC,OAAQA;YACN,KAAK;YACL,KAAK;gBACH,qBACE,oBAACM;oBAAGC,KAAKP;iCACP,oBAACtB;oBAAuBO,UAAUA;;YAGxC;gBAAS;oBACP,MAAMuB,YAAYR,SAASnB;oBAC3B,qBACE,oBAACyB;wBAAGC,KAAKP;qCACP,oBAACvB;wBACCS,cAAcA;wBACdsB,WAAWA;wBACXC,SAASX;wBACTb,UAAUA;uBAETe;gBAIT;QACF;IACF,GACA;QAACnB;QAAaI;QAAUC;QAAcY;KAAY;IAGpD,qBACE,oBAACvB;QAAcmC,WAAU;QAAMC,MAAK;OAAiBnB,2BACnD,oBAAChB;QAAekC,WAAWtB;OAA2BD,gCACtD,oBAACyB;QAAGC,SAAS;qBACX,oBAACP;QAAGO,SAAS;qBACX,oBAACvC;QACCwC,MAAK;QACLC,sBACE,wDACE,oBAACvC,sBAAgBa,kBAAkC,mBACnD,oBAAClB;YAAyB6C,OAAO;;QAGrCC,YAAW;QACXC,MAAK;QACLjC,UAAUS,eAAeT;QACzBwB,SAASb;SAGZH,MAAM0B,GAAG,CAACd,4BACX,oBAACC;QAAGO,SAAS;qBACX,oBAACvC;QACCwC,MAAK;QACLM,qBACE,wDACE,oBAAC5C,sBAAgBc,gCACjB,oBAAClB;YAA0B4C,OAAO;;QAGtCC,YAAW;QACXC,MAAK;QACLjC,UAAUU,cAAcV;QACxBwB,SAASL;;AAMrB,EAAE"}
@@ -3,11 +3,11 @@ import { NavIdProps } from '../../lib/getNavId';
3
3
  import { HTMLAttributesWithRootRef } from '../../types';
4
4
  export interface RootProps extends HTMLAttributesWithRootRef<HTMLDivElement>, NavIdProps {
5
5
  activeView: string;
6
- onTransition?(params: {
6
+ onTransition?: (params: {
7
7
  isBack: boolean;
8
8
  from: string;
9
9
  to: string;
10
- }): void;
10
+ }) => void;
11
11
  children: React.ReactElement | Iterable<React.ReactElement>;
12
12
  }
13
13
  export interface RootState {
@@ -1 +1 @@
1
- {"version":3,"file":"Root.d.ts","sourceRoot":"","sources":["../../../src/components/Root/Root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AASxD,MAAM,WAAW,SAAU,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU;IACtF,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3E,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;GAEG;AACH,eAAO,MAAM,IAAI,2EAMd,SAAS,sBA2HX,CAAC"}
1
+ {"version":3,"file":"Root.d.ts","sourceRoot":"","sources":["../../../src/components/Root/Root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AASxD,MAAM,WAAW,SAAU,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU;IACtF,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/E,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;GAEG;AACH,eAAO,MAAM,IAAI,2EAMd,SAAS,sBA2HX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Root/Root.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { NavTransitionDirectionProvider } from '../NavTransitionDirectionContext/NavTransitionDirectionContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { SplitColContext } from '../SplitCol/SplitColContext';\nimport styles from './Root.module.css';\n\nexport interface RootProps extends HTMLAttributesWithRootRef<HTMLDivElement>, NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst warn = warnOnce('Root');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Root\n */\nexport const Root = ({\n children,\n activeView: _activeView,\n onTransition,\n nav,\n ...restProps\n}: RootProps) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement | null>>({}).current;\n\n const { transitionMotionEnabled = true } = useConfigProvider();\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] = React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: !disableAnimation,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView],\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition, prevView]);\n\n const fallbackTransition = useTimeout(finishTransition, platform === 'ios' ? 600 : 300);\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n fallbackTransition.set();\n }, [fallbackTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\n styles['root-android-animation-hide-back'],\n styles['root-android-animation-show-forward'],\n styles['root-ios-animation-hide-back'],\n styles['root-ios-animation-show-forward'],\n ].includes(e.animationName)\n ) {\n finishTransition();\n }\n };\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles['Root'],\n platform === 'ios' && styles['Root--ios'],\n transition && styles['Root--transition'],\n )}\n >\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget = transition && viewId === (isBack ? prevView : activeView);\n const compensateScroll =\n transition && (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n className={classNames(\n styles['Root__view'],\n transition && viewId === prevView && isBack && styles['Root__view--hide-back'],\n transition && viewId === prevView && !isBack && styles['Root__view--hide-forward'],\n transition && viewId === activeView && isBack && styles['Root__view--show-back'],\n transition && viewId === activeView && !isBack && styles['Root__view--show-forward'],\n )}\n >\n <NavTransitionDirectionProvider isBack={isBack}>\n <NavTransitionProvider entering={transition && viewId === activeView}>\n <div\n className={styles['Root__scrollCompensation']}\n style={{\n marginTop: compensateScroll ? viewId && -(scrolls[viewId] ?? 0) : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </NavTransitionDirectionProvider>\n </div>\n );\n })}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","usePlatform","useTimeout","useDOM","getNavId","useIsomorphicLayoutEffect","warnOnce","ScrollContext","useConfigProvider","NavTransitionProvider","NavTransitionDirectionProvider","RootComponent","SplitColContext","warn","Root","children","activeView","_activeView","onTransition","nav","restProps","scroll","useContext","platform","document","scrolls","useRef","current","viewNodes","transitionMotionEnabled","animate","disableAnimation","views","Children","toArray","prevView","transition","isBack","_setState","useState","transitionTo","panel","viewIds","map","view","props","indexOf","getScroll","y","finishTransition","useCallback","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","useEffect","clear","set","onAnimationEnd","e","includes","animationName","baseClassName","viewId","isTransitionTarget","compensateScroll","div","key","ref","undefined","className","entering","style","marginTop"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Root/Root.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { NavTransitionDirectionProvider } from '../NavTransitionDirectionContext/NavTransitionDirectionContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { SplitColContext } from '../SplitCol/SplitColContext';\nimport styles from './Root.module.css';\n\nexport interface RootProps extends HTMLAttributesWithRootRef<HTMLDivElement>, NavIdProps {\n activeView: string;\n onTransition?: (params: { isBack: boolean; from: string; to: string }) => void;\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst warn = warnOnce('Root');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Root\n */\nexport const Root = ({\n children,\n activeView: _activeView,\n onTransition,\n nav,\n ...restProps\n}: RootProps) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement | null>>({}).current;\n\n const { transitionMotionEnabled = true } = useConfigProvider();\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] = React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: !disableAnimation,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView],\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition, prevView]);\n\n const fallbackTransition = useTimeout(finishTransition, platform === 'ios' ? 600 : 300);\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n fallbackTransition.set();\n }, [fallbackTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\n styles['root-android-animation-hide-back'],\n styles['root-android-animation-show-forward'],\n styles['root-ios-animation-hide-back'],\n styles['root-ios-animation-show-forward'],\n ].includes(e.animationName)\n ) {\n finishTransition();\n }\n };\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles['Root'],\n platform === 'ios' && styles['Root--ios'],\n transition && styles['Root--transition'],\n )}\n >\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget = transition && viewId === (isBack ? prevView : activeView);\n const compensateScroll =\n transition && (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n className={classNames(\n styles['Root__view'],\n transition && viewId === prevView && isBack && styles['Root__view--hide-back'],\n transition && viewId === prevView && !isBack && styles['Root__view--hide-forward'],\n transition && viewId === activeView && isBack && styles['Root__view--show-back'],\n transition && viewId === activeView && !isBack && styles['Root__view--show-forward'],\n )}\n >\n <NavTransitionDirectionProvider isBack={isBack}>\n <NavTransitionProvider entering={transition && viewId === activeView}>\n <div\n className={styles['Root__scrollCompensation']}\n style={{\n marginTop: compensateScroll ? viewId && -(scrolls[viewId] ?? 0) : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </NavTransitionDirectionProvider>\n </div>\n );\n })}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","usePlatform","useTimeout","useDOM","getNavId","useIsomorphicLayoutEffect","warnOnce","ScrollContext","useConfigProvider","NavTransitionProvider","NavTransitionDirectionProvider","RootComponent","SplitColContext","warn","Root","children","activeView","_activeView","onTransition","nav","restProps","scroll","useContext","platform","document","scrolls","useRef","current","viewNodes","transitionMotionEnabled","animate","disableAnimation","views","Children","toArray","prevView","transition","isBack","_setState","useState","transitionTo","panel","viewIds","map","view","props","indexOf","getScroll","y","finishTransition","useCallback","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","useEffect","clear","set","onAnimationEnd","e","includes","animationName","baseClassName","viewId","isTransitionTarget","compensateScroll","div","key","ref","undefined","className","entering","style","marginTop"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControlOption.d.ts","sourceRoot":"","sources":["../../../../src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKpD,MAAM,WAAW,2BACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,UAAU,CAAC,gBAAgB,CAAC,EAC5B,MAAM,CAAC,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,6EAQhC,2BAA2B,sBA+B7B,CAAC"}
1
+ {"version":3,"file":"SegmentedControlOption.d.ts","sourceRoot":"","sources":["../../../../src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMpD,MAAM,WAAW,2BACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,UAAU,CAAC,gBAAgB,CAAC,EAC5B,MAAM,CAAC,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,6EAQhC,2BAA2B,sBAkB7B,CAAC"}
@@ -2,10 +2,8 @@ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
2
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
3
  import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
4
4
  import * as React from 'react';
5
- import { classNames, hasReactNode } from '@vkontakte/vkjs';
6
- import { useFocusVisible } from '../../../hooks/useFocusVisible';
7
- import { useFocusVisibleClassName } from '../../../hooks/useFocusVisibleClassName';
8
- import { callMultiple } from '../../../lib/callMultiple';
5
+ import { hasReactNode } from '@vkontakte/vkjs';
6
+ import { Clickable } from '../../Clickable/Clickable';
9
7
  import { Headline } from '../../Typography/Headline/Headline';
10
8
  import { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';
11
9
  /**
@@ -19,20 +17,18 @@ import { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';
19
17
  "getRootRef",
20
18
  "before"
21
19
  ]);
22
- const { focusVisible, onBlur, onFocus } = useFocusVisible();
23
- const focusVisibleClassNames = useFocusVisibleClassName({
24
- focusVisible
25
- });
26
- return /*#__PURE__*/ React.createElement("label", {
27
- className: classNames("vkuiSegmentedControlOption", restProps.checked && "vkuiSegmentedControlOption--checked", focusVisibleClassNames, className),
28
- ref: getRootRef,
20
+ return /*#__PURE__*/ React.createElement(Clickable, {
21
+ Component: "label",
22
+ baseClassName: "vkuiSegmentedControlOption",
23
+ hoverClassName: "vkuiSegmentedControlOption--hover",
24
+ activeClassName: "vkuiSegmentedControlOption--hover",
25
+ className: className,
26
+ getRootRef: getRootRef,
29
27
  style: style
30
28
  }, /*#__PURE__*/ React.createElement(VisuallyHidden, _object_spread_props(_object_spread({}, restProps), {
31
29
  Component: "input",
32
30
  getRootRef: getRef,
33
- type: "radio",
34
- onBlur: callMultiple(onBlur, restProps.onBlur),
35
- onFocus: callMultiple(onFocus, restProps.onFocus)
31
+ type: "radio"
36
32
  })), hasReactNode(before) && /*#__PURE__*/ React.createElement("div", {
37
33
  className: "vkuiSegmentedControlOption__before"
38
34
  }, before), /*#__PURE__*/ React.createElement(Headline, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../../hooks/useFocusVisibleClassName';\nimport { callMultiple } from '../../../lib/callMultiple';\nimport { HasRef, HasRootRef } from '../../../types';\nimport { Headline } from '../../Typography/Headline/Headline';\nimport { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';\nimport styles from './SegmentedControlOption.module.css';\n\nexport interface SegmentedControlOptionProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement> {\n before?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SegmentedControl\n */\nexport const SegmentedControlOption = ({\n getRef,\n className,\n style,\n children,\n getRootRef,\n before,\n ...restProps\n}: SegmentedControlOptionProps) => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({ focusVisible });\n\n return (\n <label\n className={classNames(\n styles['SegmentedControlOption'],\n restProps.checked && styles['SegmentedControlOption--checked'],\n focusVisibleClassNames,\n className,\n )}\n ref={getRootRef}\n style={style}\n >\n <VisuallyHidden\n {...restProps}\n Component=\"input\"\n getRootRef={getRef}\n type=\"radio\"\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n {hasReactNode(before) && (\n <div className={styles['SegmentedControlOption__before']}>{before}</div>\n )}\n <Headline level=\"2\" weight=\"2\">\n {children}\n </Headline>\n </label>\n );\n};\n"],"names":["React","classNames","hasReactNode","useFocusVisible","useFocusVisibleClassName","callMultiple","Headline","VisuallyHidden","SegmentedControlOption","getRef","className","style","children","getRootRef","before","restProps","focusVisible","onBlur","onFocus","focusVisibleClassNames","label","checked","ref","Component","type","div","level","weight"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,wBAAwB,QAAQ,0CAA0C;AACnF,SAASC,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,QAAQ,QAAQ,qCAAqC;AAC9D,SAASC,cAAc,QAAQ,sCAAsC;AAUrE;;CAEC,GACD,OAAO,MAAMC,yBAAyB;QAAC,EACrCC,MAAM,EACNC,SAAS,EACTC,KAAK,EACLC,QAAQ,EACRC,UAAU,EACVC,MAAM,EAEsB,WADzBC;QANHN;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGf;IAC1C,MAAMgB,yBAAyBf,yBAAyB;QAAEY;IAAa;IAEvE,qBACE,oBAACI;QACCV,WAAWT,yCAETc,UAAUM,OAAO,2CACjBF,wBACAT;QAEFY,KAAKT;QACLF,OAAOA;qBAEP,oBAACJ,wDACKQ;QACJQ,WAAU;QACVV,YAAYJ;QACZe,MAAK;QACLP,QAAQZ,aAAaY,QAAQF,UAAUE,MAAM;QAC7CC,SAASb,aAAaa,SAASH,UAAUG,OAAO;SAEjDhB,aAAaY,yBACZ,oBAACW;QAAIf,SAAS;OAA6CI,uBAE7D,oBAACR;QAASoB,OAAM;QAAIC,QAAO;OACxBf;AAIT,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx"],"sourcesContent":["import * as React from 'react';\nimport { hasReactNode } from '@vkontakte/vkjs';\nimport { HasRef, HasRootRef } from '../../../types';\nimport { Clickable } from '../../Clickable/Clickable';\nimport { Headline } from '../../Typography/Headline/Headline';\nimport { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';\nimport styles from './SegmentedControlOption.module.css';\n\nexport interface SegmentedControlOptionProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement> {\n before?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SegmentedControl\n */\nexport const SegmentedControlOption = ({\n getRef,\n className,\n style,\n children,\n getRootRef,\n before,\n ...restProps\n}: SegmentedControlOptionProps) => (\n <Clickable\n Component=\"label\"\n baseClassName={styles['SegmentedControlOption']}\n hoverClassName={styles['SegmentedControlOption--hover']}\n activeClassName={styles['SegmentedControlOption--hover']}\n className={className}\n getRootRef={getRootRef}\n style={style}\n >\n <VisuallyHidden {...restProps} Component=\"input\" getRootRef={getRef} type=\"radio\" />\n {hasReactNode(before) && (\n <div className={styles['SegmentedControlOption__before']}>{before}</div>\n )}\n <Headline level=\"2\" weight=\"2\">\n {children}\n </Headline>\n </Clickable>\n);\n"],"names":["React","hasReactNode","Clickable","Headline","VisuallyHidden","SegmentedControlOption","getRef","className","style","children","getRootRef","before","restProps","Component","baseClassName","hoverClassName","activeClassName","type","div","level","weight"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAY,QAAQ,kBAAkB;AAE/C,SAASC,SAAS,QAAQ,4BAA4B;AACtD,SAASC,QAAQ,QAAQ,qCAAqC;AAC9D,SAASC,cAAc,QAAQ,sCAAsC;AAUrE;;CAEC,GACD,OAAO,MAAMC,yBAAyB;QAAC,EACrCC,MAAM,EACNC,SAAS,EACTC,KAAK,EACLC,QAAQ,EACRC,UAAU,EACVC,MAAM,EAEsB,WADzBC;QANHN;QACAC;QACAC;QACAC;QACAC;QACAC;;yBAGA,oBAACT;QACCW,WAAU;QACVC,aAAa;QACbC,cAAc;QACdC,eAAe;QACfT,WAAWA;QACXG,YAAYA;QACZF,OAAOA;qBAEP,oBAACJ,wDAAmBQ;QAAWC,WAAU;QAAQH,YAAYJ;QAAQW,MAAK;SACzEhB,aAAaU,yBACZ,oBAACO;QAAIX,SAAS;OAA6CI,uBAE7D,oBAACR;QAASgB,OAAM;QAAIC,QAAO;OACxBX;EAGL"}
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleCell.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleCell/SimpleCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAY,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAY/D,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC;;OAEG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC;;OAEG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAgB,SAAQ,kBAAkB,EAAE,aAAa;CAAG;AAE7E;;GAEG;AACH,eAAO,MAAM,UAAU,sNAiBpB,eAAe,sBA8EjB,CAAC"}
1
+ {"version":3,"file":"SimpleCell.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleCell/SimpleCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAY,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAY/D,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC;;OAEG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC;;OAEG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAgB,SAAQ,kBAAkB,EAAE,aAAa;CAAG;AAE7E;;GAEG;AACH,eAAO,MAAM,UAAU,sNAiBpB,eAAe,sBAqFjB,CAAC"}
@@ -41,7 +41,7 @@ const sizeYClassNames = {
41
41
  return /*#__PURE__*/ React.createElement(Tappable, _object_spread_props(_object_spread({}, restProps), {
42
42
  className: classNames("vkuiSimpleCell", sizeY !== 'regular' && sizeYClassNames[sizeY], multiline && "vkuiSimpleCell--mult", className)
43
43
  }), /*#__PURE__*/ React.createElement("div", {
44
- className: "vkuiSimpleCell__before"
44
+ className: classNames("vkuiSimpleCell__before", platform === 'ios' && "vkuiSimpleCell__before--ios")
45
45
  }, before), /*#__PURE__*/ React.createElement("div", {
46
46
  className: "vkuiSimpleCell__middle"
47
47
  }, subhead && /*#__PURE__*/ React.createElement(Subhead, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SimpleCell/SimpleCell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { HasComponent } from '../../types';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Chevron } from './Chevron/Chevron';\nimport styles from './SimpleCell.module.css';\n\nconst sizeYClassNames = {\n none: styles['SimpleCell--sizeY-none'],\n ['compact']: styles['SimpleCell--sizeY-compact'],\n};\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится слева от текста `children`.\n */\n badgeBeforeTitle?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badgeAfterTitle?: React.ReactNode;\n /**\n * Иконка 12. Добавится слева от текста `subtitle`.\n */\n badgeBeforeSubtitle?: React.ReactNode;\n /**\n * Иконка 12. Добавится справа от текста `subtitle`.\n */\n badgeAfterSubtitle?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Дополнительная строка текста над `children`.\n */\n subhead?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children`.\n */\n subtitle?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children` и `subtitle`.\n */\n extraSubtitle?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В режиме `auto` в iOS добавляет chevron справа.\n * Передавать `always`, если предполагается переход при клике по ячейке.\n */\n expandable?: 'auto' | 'always';\n /**\n * Размер chevron\n */\n chevronSize?: 's' | 'm';\n /**\n * Включает многострочный режим для отображения текста\n */\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SimpleCell\n */\nexport const SimpleCell = ({\n badgeBeforeTitle,\n badgeAfterTitle,\n badgeBeforeSubtitle,\n badgeAfterSubtitle,\n before,\n indicator,\n children,\n after,\n expandable,\n multiline,\n subhead,\n subtitle,\n extraSubtitle,\n className,\n chevronSize = 'm',\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n\n const hasChevron = expandable === 'always' || (expandable === 'auto' && platform === 'ios');\n\n const hasAfter = hasReactNode(after) || hasChevron;\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n {...restProps}\n className={classNames(\n styles['SimpleCell'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n multiline && styles['SimpleCell--mult'],\n className,\n )}\n >\n <div className={styles['SimpleCell__before']}>{before}</div>\n <div className={styles['SimpleCell__middle']}>\n {subhead && (\n <Subhead\n Component=\"span\"\n className={classNames(styles['SimpleCell__text'], styles['SimpleCell__subhead'])}\n >\n {subhead}\n </Subhead>\n )}\n <div className={styles['SimpleCell__content']}>\n {badgeBeforeTitle && (\n <span className={styles['SimpleCell__badge']}>{badgeBeforeTitle}</span>\n )}\n <Headline Component=\"span\" className={styles['SimpleCell__children']} weight=\"3\">\n {children}\n </Headline>\n {hasReactNode(badgeAfterTitle) && (\n <span className={styles['SimpleCell__badge']}>{badgeAfterTitle}</span>\n )}\n </div>\n {subtitle && (\n <div className={styles['SimpleCell__content']}>\n {badgeBeforeSubtitle && (\n <span className={styles['SimpleCell__badge']}>{badgeBeforeSubtitle}</span>\n )}\n <Footnote\n normalize={false}\n className={classNames(styles['SimpleCell__text'], styles['SimpleCell__subtitle'])}\n >\n {subtitle}\n </Footnote>\n {badgeAfterSubtitle && (\n <span className={styles['SimpleCell__badge']}>{badgeAfterSubtitle}</span>\n )}\n </div>\n )}\n {extraSubtitle && (\n <Footnote\n className={classNames(styles['SimpleCell__text'], styles['SimpleCell__extraSubtitle'])}\n >\n {extraSubtitle}\n </Footnote>\n )}\n </div>\n {hasReactNode(indicator) && (\n <Headline Component=\"span\" weight=\"3\" className={styles['SimpleCell__indicator']}>\n {indicator}\n </Headline>\n )}\n {hasAfter && (\n <div className={classNames(styles['SimpleCell__after'], 'vkuiInternalSimpleCell__after')}>\n {after}\n {hasChevron && (\n <Chevron size={chevronSize} className={styles['SimpleCell__chevronIcon']} />\n )}\n </div>\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","usePlatform","Tappable","Footnote","Headline","Subhead","Chevron","sizeYClassNames","none","SimpleCell","badgeBeforeTitle","badgeAfterTitle","badgeBeforeSubtitle","badgeAfterSubtitle","before","indicator","children","after","expandable","multiline","subhead","subtitle","extraSubtitle","className","chevronSize","restProps","platform","hasChevron","hasAfter","sizeY","div","Component","span","weight","normalize","size"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AAEtD,SAASC,QAAQ,QAAuB,uBAAuB;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,OAAO,QAAQ,oBAAoB;AAG5C,MAAMC,kBAAkB;IACtBC,IAAI;IACJ,CAAC,UAAU;AACb;AAgEA;;CAEC,GACD,OAAO,MAAMC,aAAa;QAAC,EACzBC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,EACnBC,kBAAkB,EAClBC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,KAAK,EACLC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,QAAQ,EACRC,aAAa,EACbC,SAAS,EACTC,cAAc,GAAG,EAED,WADbC;QAfHf;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,WAAWzB;IAEjB,MAAM0B,aAAaT,eAAe,YAAaA,eAAe,UAAUQ,aAAa;IAErF,MAAME,WAAW7B,aAAakB,UAAUU;IACxC,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAG7B;IAE3B,qBACE,oBAACE,kDACKuB;QACJF,WAAWzB,6BAET+B,UAAU,aAAatB,eAAe,CAACsB,MAAM,EAC7CV,qCACAI;sBAGF,oBAACO;QAAIP,SAAS;OAAiCT,uBAC/C,oBAACgB;QAAIP,SAAS;OACXH,yBACC,oBAACf;QACC0B,WAAU;QACVR,WAAWzB;OAEVsB,wBAGL,oBAACU;QAAIP,SAAS;OACXb,kCACC,oBAACsB;QAAKT,SAAS;OAAgCb,iCAEjD,oBAACN;QAAS2B,WAAU;QAAOR,SAAS;QAAkCU,QAAO;OAC1EjB,WAEFjB,aAAaY,kCACZ,oBAACqB;QAAKT,SAAS;OAAgCZ,mBAGlDU,0BACC,oBAACS;QAAIP,SAAS;OACXX,qCACC,oBAACoB;QAAKT,SAAS;OAAgCX,oCAEjD,oBAACT;QACC+B,WAAW;QACXX,WAAWzB;OAEVuB,WAEFR,oCACC,oBAACmB;QAAKT,SAAS;OAAgCV,sBAIpDS,+BACC,oBAACnB;QACCoB,WAAWzB;OAEVwB,iBAINvB,aAAagB,4BACZ,oBAACX;QAAS2B,WAAU;QAAOE,QAAO;QAAIV,SAAS;OAC5CR,YAGJa,0BACC,oBAACE;QAAIP,WAAWzB,oCAAwC;OACrDmB,OACAU,4BACC,oBAACrB;QAAQ6B,MAAMX;QAAaD,SAAS;;AAMjD,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/SimpleCell/SimpleCell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { HasComponent } from '../../types';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Chevron } from './Chevron/Chevron';\nimport styles from './SimpleCell.module.css';\n\nconst sizeYClassNames = {\n none: styles['SimpleCell--sizeY-none'],\n ['compact']: styles['SimpleCell--sizeY-compact'],\n};\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится слева от текста `children`.\n */\n badgeBeforeTitle?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badgeAfterTitle?: React.ReactNode;\n /**\n * Иконка 12. Добавится слева от текста `subtitle`.\n */\n badgeBeforeSubtitle?: React.ReactNode;\n /**\n * Иконка 12. Добавится справа от текста `subtitle`.\n */\n badgeAfterSubtitle?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Дополнительная строка текста над `children`.\n */\n subhead?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children`.\n */\n subtitle?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children` и `subtitle`.\n */\n extraSubtitle?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В режиме `auto` в iOS добавляет chevron справа.\n * Передавать `always`, если предполагается переход при клике по ячейке.\n */\n expandable?: 'auto' | 'always';\n /**\n * Размер chevron\n */\n chevronSize?: 's' | 'm';\n /**\n * Включает многострочный режим для отображения текста\n */\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SimpleCell\n */\nexport const SimpleCell = ({\n badgeBeforeTitle,\n badgeAfterTitle,\n badgeBeforeSubtitle,\n badgeAfterSubtitle,\n before,\n indicator,\n children,\n after,\n expandable,\n multiline,\n subhead,\n subtitle,\n extraSubtitle,\n className,\n chevronSize = 'm',\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n\n const hasChevron = expandable === 'always' || (expandable === 'auto' && platform === 'ios');\n\n const hasAfter = hasReactNode(after) || hasChevron;\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n {...restProps}\n className={classNames(\n styles['SimpleCell'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n multiline && styles['SimpleCell--mult'],\n className,\n )}\n >\n <div\n className={classNames(\n styles['SimpleCell__before'],\n platform === 'ios' && styles['SimpleCell__before--ios'],\n )}\n >\n {before}\n </div>\n <div className={styles['SimpleCell__middle']}>\n {subhead && (\n <Subhead\n Component=\"span\"\n className={classNames(styles['SimpleCell__text'], styles['SimpleCell__subhead'])}\n >\n {subhead}\n </Subhead>\n )}\n <div className={styles['SimpleCell__content']}>\n {badgeBeforeTitle && (\n <span className={styles['SimpleCell__badge']}>{badgeBeforeTitle}</span>\n )}\n <Headline Component=\"span\" className={styles['SimpleCell__children']} weight=\"3\">\n {children}\n </Headline>\n {hasReactNode(badgeAfterTitle) && (\n <span className={styles['SimpleCell__badge']}>{badgeAfterTitle}</span>\n )}\n </div>\n {subtitle && (\n <div className={styles['SimpleCell__content']}>\n {badgeBeforeSubtitle && (\n <span className={styles['SimpleCell__badge']}>{badgeBeforeSubtitle}</span>\n )}\n <Footnote\n normalize={false}\n className={classNames(styles['SimpleCell__text'], styles['SimpleCell__subtitle'])}\n >\n {subtitle}\n </Footnote>\n {badgeAfterSubtitle && (\n <span className={styles['SimpleCell__badge']}>{badgeAfterSubtitle}</span>\n )}\n </div>\n )}\n {extraSubtitle && (\n <Footnote\n className={classNames(styles['SimpleCell__text'], styles['SimpleCell__extraSubtitle'])}\n >\n {extraSubtitle}\n </Footnote>\n )}\n </div>\n {hasReactNode(indicator) && (\n <Headline Component=\"span\" weight=\"3\" className={styles['SimpleCell__indicator']}>\n {indicator}\n </Headline>\n )}\n {hasAfter && (\n <div className={classNames(styles['SimpleCell__after'], 'vkuiInternalSimpleCell__after')}>\n {after}\n {hasChevron && (\n <Chevron size={chevronSize} className={styles['SimpleCell__chevronIcon']} />\n )}\n </div>\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","usePlatform","Tappable","Footnote","Headline","Subhead","Chevron","sizeYClassNames","none","SimpleCell","badgeBeforeTitle","badgeAfterTitle","badgeBeforeSubtitle","badgeAfterSubtitle","before","indicator","children","after","expandable","multiline","subhead","subtitle","extraSubtitle","className","chevronSize","restProps","platform","hasChevron","hasAfter","sizeY","div","Component","span","weight","normalize","size"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AAEtD,SAASC,QAAQ,QAAuB,uBAAuB;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,OAAO,QAAQ,oBAAoB;AAG5C,MAAMC,kBAAkB;IACtBC,IAAI;IACJ,CAAC,UAAU;AACb;AAgEA;;CAEC,GACD,OAAO,MAAMC,aAAa;QAAC,EACzBC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,EACnBC,kBAAkB,EAClBC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,KAAK,EACLC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,QAAQ,EACRC,aAAa,EACbC,SAAS,EACTC,cAAc,GAAG,EAED,WADbC;QAfHf;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,WAAWzB;IAEjB,MAAM0B,aAAaT,eAAe,YAAaA,eAAe,UAAUQ,aAAa;IAErF,MAAME,WAAW7B,aAAakB,UAAUU;IACxC,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAG7B;IAE3B,qBACE,oBAACE,kDACKuB;QACJF,WAAWzB,6BAET+B,UAAU,aAAatB,eAAe,CAACsB,MAAM,EAC7CV,qCACAI;sBAGF,oBAACO;QACCP,WAAWzB,qCAET4B,aAAa;OAGdZ,uBAEH,oBAACgB;QAAIP,SAAS;OACXH,yBACC,oBAACf;QACC0B,WAAU;QACVR,WAAWzB;OAEVsB,wBAGL,oBAACU;QAAIP,SAAS;OACXb,kCACC,oBAACsB;QAAKT,SAAS;OAAgCb,iCAEjD,oBAACN;QAAS2B,WAAU;QAAOR,SAAS;QAAkCU,QAAO;OAC1EjB,WAEFjB,aAAaY,kCACZ,oBAACqB;QAAKT,SAAS;OAAgCZ,mBAGlDU,0BACC,oBAACS;QAAIP,SAAS;OACXX,qCACC,oBAACoB;QAAKT,SAAS;OAAgCX,oCAEjD,oBAACT;QACC+B,WAAW;QACXX,WAAWzB;OAEVuB,WAEFR,oCACC,oBAACmB;QAAKT,SAAS;OAAgCV,sBAIpDS,+BACC,oBAACnB;QACCoB,WAAWzB;OAEVwB,iBAINvB,aAAagB,4BACZ,oBAACX;QAAS2B,WAAU;QAAOE,QAAO;QAAIV,SAAS;OAC5CR,YAGJa,0BACC,oBAACE;QAAIP,WAAWzB,oCAAwC;OACrDmB,OACAU,4BACC,oBAACrB;QAAQ6B,MAAMX;QAAaD,SAAS;;AAMjD,EAAE"}
@@ -11,7 +11,7 @@ export interface SliderBaseProps extends Omit<HTMLAttributesWithRootRef<HTMLDivE
11
11
  *
12
12
  * > Перебивает `aria-label`.
13
13
  */
14
- getAriaLabel?(index: number): string;
14
+ getAriaLabel?: (index: number) => string;
15
15
  /**
16
16
  * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.
17
17
  *
@@ -19,20 +19,20 @@ export interface SliderBaseProps extends Omit<HTMLAttributesWithRootRef<HTMLDivE
19
19
  *
20
20
  * > Перебивает `aria-valuetext`.
21
21
  */
22
- getAriaValueText?(value: number, index: number): string;
22
+ getAriaValueText?: (value: number, index: number) => string;
23
23
  withTooltip?: boolean;
24
24
  }
25
25
  export interface SliderProps extends SliderBaseProps {
26
26
  multiple?: false;
27
27
  value?: number;
28
28
  defaultValue?: number;
29
- onChange?(value: number, event: TouchEvent | React.ChangeEvent): void;
29
+ onChange?: (value: number, event: TouchEvent | React.ChangeEvent) => void;
30
30
  }
31
31
  export interface SliderMultipleProps extends SliderBaseProps {
32
32
  multiple: true;
33
33
  value?: [number, number];
34
34
  defaultValue?: [number, number];
35
- onChange?(value: [number, number], event: TouchEvent | React.ChangeEvent): void;
35
+ onChange?: (value: [number, number], event: TouchEvent | React.ChangeEvent) => void;
36
36
  }
37
37
  /**
38
38
  * @see https://vkcom.github.io/VKUI/#/Slider
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/Slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAS,KAAK,UAAU,EAA0B,MAAM,gBAAgB,CAAC;AAoBhF,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC;IAC9F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;CACvE;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;CACjF;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,qLAehB,WAAW,GAAG,mBAAmB,sBAkMnC,CAAC"}
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/Slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAS,KAAK,UAAU,EAA0B,MAAM,gBAAgB,CAAC;AAoBhF,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC;IAC9F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;CAC3E;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;CACrF;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,qLAehB,WAAW,GAAG,mBAAmB,sBAkMnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { Touch, type TouchEvent, type TouchEventHandler } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles['Slider--sizeY-none'],\n ['compact']: styles['Slider--sizeY-compact'],\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?(index: number): string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?(value: number, index: number): string;\n withTooltip?: boolean;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n multiple?: false;\n value?: number;\n defaultValue?: number;\n onChange?(value: number, event: TouchEvent | React.ChangeEvent): void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n multiple: true;\n value?: [number, number];\n defaultValue?: [number, number];\n onChange?(value: [number, number], event: TouchEvent | React.ChangeEvent): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n step = 1,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n onChange,\n withTooltip,\n ...restProps\n}: SliderProps | SliderMultipleProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (nextValue: InternalValueState, event: TouchEvent | React.ChangeEvent) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: TouchEventHandler = (event: TouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n const nextStartX = event.startX - nextContainerX;\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n };\n\n const handlePointerMove: TouchEventHandler = (event: TouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + shiftX;\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: TouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n event,\n );\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles['Slider'],\n disabled && styles['Slider--disabled'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n className,\n )}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles['Slider__track']} />\n <div\n className={styles['Slider__track-fill']}\n style={\n multiple\n ? { left: `${startValueInPercent}%`, right: `${100 - endReversedValueInPercent}%` }\n : { width: `${startValueInPercent}%` }\n }\n />\n <div ref={thumbsContainerRef} className={styles['Slider__thumbs']}>\n <SliderThumb\n data-type=\"start\"\n className={styles['Slider__thumb']}\n style={{\n left: `${startValueInPercent}%`,\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={styles['Slider__thumb']}\n style={{ left: `${endReversedValueInPercent}%` }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","useAdaptivity","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","sizeYClassNames","none","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","onChange","withTooltip","restProps","sizeY","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","data-value","onStart","onMove","onEnd","div","style","right","ref","data-type","zIndex","inputProps"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { Touch, type TouchEvent, type TouchEventHandler } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles['Slider--sizeY-none'],\n ['compact']: styles['Slider--sizeY-compact'],\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?: (index: number) => string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?: (value: number, index: number) => string;\n withTooltip?: boolean;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n multiple?: false;\n value?: number;\n defaultValue?: number;\n onChange?: (value: number, event: TouchEvent | React.ChangeEvent) => void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n multiple: true;\n value?: [number, number];\n defaultValue?: [number, number];\n onChange?: (value: [number, number], event: TouchEvent | React.ChangeEvent) => void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n step = 1,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n onChange,\n withTooltip,\n ...restProps\n}: SliderProps | SliderMultipleProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (nextValue: InternalValueState, event: TouchEvent | React.ChangeEvent) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: TouchEventHandler = (event: TouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n const nextStartX = event.startX - nextContainerX;\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n };\n\n const handlePointerMove: TouchEventHandler = (event: TouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + shiftX;\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: TouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n event,\n );\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles['Slider'],\n disabled && styles['Slider--disabled'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n className,\n )}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles['Slider__track']} />\n <div\n className={styles['Slider__track-fill']}\n style={\n multiple\n ? { left: `${startValueInPercent}%`, right: `${100 - endReversedValueInPercent}%` }\n : { width: `${startValueInPercent}%` }\n }\n />\n <div ref={thumbsContainerRef} className={styles['Slider__thumbs']}>\n <SliderThumb\n data-type=\"start\"\n className={styles['Slider__thumb']}\n style={{\n left: `${startValueInPercent}%`,\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={styles['Slider__thumb']}\n style={{ left: `${endReversedValueInPercent}%` }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","useAdaptivity","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","sizeYClassNames","none","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","onChange","withTooltip","restProps","sizeY","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","data-value","onStart","onMove","onEnd","div","style","right","ref","data-type","zIndex","inputProps"],"mappings":"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"}