@vkontakte/vkui 7.5.3 → 7.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/dist/components/Calendar/Calendar.js +6 -6
  2. package/dist/components/Calendar/Calendar.js.map +1 -1
  3. package/dist/components/CalendarDays/CalendarDays.js +3 -3
  4. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  5. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  6. package/dist/components/CalendarRange/CalendarRange.js +16 -14
  7. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  8. package/dist/components/CalendarRange/utils.d.ts.map +1 -1
  9. package/dist/components/CalendarRange/utils.js +6 -5
  10. package/dist/components/CalendarRange/utils.js.map +1 -1
  11. package/dist/components/Cell/Cell.d.ts.map +1 -1
  12. package/dist/components/Cell/Cell.js +6 -3
  13. package/dist/components/Cell/Cell.js.map +1 -1
  14. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +5 -3
  15. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts.map +1 -1
  16. package/dist/components/Checkbox/Checkbox.d.ts +4 -0
  17. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  18. package/dist/components/Checkbox/Checkbox.js +4 -2
  19. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  20. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +1 -1
  21. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -1
  22. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js +6 -3
  23. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -1
  24. package/dist/components/ChipsInputBase/Chip/Chip.d.ts +41 -2
  25. package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
  26. package/dist/components/ChipsInputBase/Chip/Chip.js +7 -2
  27. package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  28. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts.map +1 -1
  29. package/dist/components/ChipsInputBase/ChipsInputBase.js +21 -1
  30. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  31. package/dist/components/ChipsInputBase/types.d.ts +2 -35
  32. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  33. package/dist/components/ChipsInputBase/types.js.map +1 -1
  34. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  35. package/dist/components/ChipsSelect/ChipsSelect.js +2 -4
  36. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  37. package/dist/components/ContentBadge/ContentBadge.d.ts +1 -1
  38. package/dist/components/ContentBadge/ContentBadge.d.ts.map +1 -1
  39. package/dist/components/ContentBadge/ContentBadge.js +15 -9
  40. package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
  41. package/dist/components/ContentCard/ContentCard.d.ts +1 -1
  42. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
  43. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  44. package/dist/components/CustomSelect/CustomSelect.d.ts +16 -27
  45. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  46. package/dist/components/CustomSelect/CustomSelect.js +161 -428
  47. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  48. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts +3 -1
  49. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
  50. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js +25 -5
  51. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  52. package/dist/components/CustomSelect/helpers.d.ts +12 -0
  53. package/dist/components/CustomSelect/helpers.d.ts.map +1 -0
  54. package/dist/components/CustomSelect/helpers.js +63 -0
  55. package/dist/components/CustomSelect/helpers.js.map +1 -0
  56. package/dist/components/CustomSelect/hooks/useAfterItems.d.ts +11 -0
  57. package/dist/components/CustomSelect/hooks/useAfterItems.d.ts.map +1 -0
  58. package/dist/components/CustomSelect/hooks/useAfterItems.js +57 -0
  59. package/dist/components/CustomSelect/hooks/useAfterItems.js.map +1 -0
  60. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts +13 -0
  61. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts.map +1 -0
  62. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js +60 -0
  63. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -0
  64. package/dist/components/CustomSelect/hooks/useFocusedOptionController.d.ts +20 -0
  65. package/dist/components/CustomSelect/hooks/useFocusedOptionController.d.ts.map +1 -0
  66. package/dist/components/CustomSelect/hooks/useFocusedOptionController.js +52 -0
  67. package/dist/components/CustomSelect/hooks/useFocusedOptionController.js.map +1 -0
  68. package/dist/components/CustomSelect/hooks/useInputKeyboardController.d.ts +13 -0
  69. package/dist/components/CustomSelect/hooks/useInputKeyboardController.d.ts.map +1 -0
  70. package/dist/components/CustomSelect/hooks/useInputKeyboardController.js +78 -0
  71. package/dist/components/CustomSelect/hooks/useInputKeyboardController.js.map +1 -0
  72. package/dist/components/CustomSelect/hooks/useInputValueController.d.ts +15 -0
  73. package/dist/components/CustomSelect/hooks/useInputValueController.d.ts.map +1 -0
  74. package/dist/components/CustomSelect/hooks/useInputValueController.js +43 -0
  75. package/dist/components/CustomSelect/hooks/useInputValueController.js.map +1 -0
  76. package/dist/components/CustomSelect/hooks/useScrollListController.d.ts +9 -0
  77. package/dist/components/CustomSelect/hooks/useScrollListController.d.ts.map +1 -0
  78. package/dist/components/CustomSelect/hooks/useScrollListController.js +37 -0
  79. package/dist/components/CustomSelect/hooks/useScrollListController.js.map +1 -0
  80. package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts +18 -0
  81. package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts.map +1 -0
  82. package/dist/components/CustomSelect/hooks/useSelectedOptionController.js +81 -0
  83. package/dist/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -0
  84. package/dist/components/CustomSelect/types.d.ts +33 -0
  85. package/dist/components/CustomSelect/types.d.ts.map +1 -0
  86. package/dist/components/CustomSelect/types.js +3 -0
  87. package/dist/components/CustomSelect/types.js.map +1 -0
  88. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  89. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
  90. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  91. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  92. package/dist/components/DateInput/DateInput.js +3 -2
  93. package/dist/components/DateInput/DateInput.js.map +1 -1
  94. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  95. package/dist/components/DateRangeInput/DateRangeInput.js +4 -4
  96. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  97. package/dist/components/ModalCard/ModalCard.d.ts +1 -1
  98. package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
  99. package/dist/components/ModalCard/ModalCard.js +4 -2
  100. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  101. package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
  102. package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
  103. package/dist/components/ModalCard/ModalCardInternal.js +5 -3
  104. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
  105. package/dist/components/ModalCard/types.d.ts +6 -0
  106. package/dist/components/ModalCard/types.d.ts.map +1 -1
  107. package/dist/components/ModalCard/types.js.map +1 -1
  108. package/dist/components/ModalOutlet/ModalOutlet.d.ts +2 -1
  109. package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
  110. package/dist/components/ModalOutlet/ModalOutlet.js +4 -3
  111. package/dist/components/ModalOutlet/ModalOutlet.js.map +1 -1
  112. package/dist/components/ModalPage/ModalPage.d.ts +1 -1
  113. package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
  114. package/dist/components/ModalPage/ModalPage.js +3 -1
  115. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  116. package/dist/components/ModalPage/ModalPageInternal.d.ts +1 -1
  117. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
  118. package/dist/components/ModalPage/ModalPageInternal.js +5 -3
  119. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
  120. package/dist/components/ModalPage/types.d.ts +6 -0
  121. package/dist/components/ModalPage/types.d.ts.map +1 -1
  122. package/dist/components/ModalPage/types.js.map +1 -1
  123. package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
  124. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  125. package/dist/components/ModalRoot/ModalRoot.js +4 -2
  126. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  127. package/dist/components/ModalRoot/types.d.ts +4 -0
  128. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  129. package/dist/components/ModalRoot/types.js.map +1 -1
  130. package/dist/components/ModalRoot/useModalManager.d.ts +3 -1
  131. package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
  132. package/dist/components/ModalRoot/useModalManager.js +2 -1
  133. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  134. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +2 -2
  135. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  136. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +4 -2
  137. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  138. package/dist/components/Popover/Popover.d.ts +1 -1
  139. package/dist/components/Popover/Popover.d.ts.map +1 -1
  140. package/dist/components/Popover/Popover.js.map +1 -1
  141. package/dist/components/Popover/usePopover.d.ts +1 -1
  142. package/dist/components/Popover/usePopover.d.ts.map +1 -1
  143. package/dist/components/Popover/usePopover.js +3 -1
  144. package/dist/components/Popover/usePopover.js.map +1 -1
  145. package/dist/components/Popper/Popper.d.ts +2 -2
  146. package/dist/components/Popper/Popper.d.ts.map +1 -1
  147. package/dist/components/Popper/Popper.js +3 -1
  148. package/dist/components/Popper/Popper.js.map +1 -1
  149. package/dist/components/Select/Select.d.ts +2 -1
  150. package/dist/components/Select/Select.d.ts.map +1 -1
  151. package/dist/components/Select/Select.js +5 -2
  152. package/dist/components/Select/Select.js.map +1 -1
  153. package/dist/components/SelectionControl/SelectionControl.d.ts +5 -1
  154. package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -1
  155. package/dist/components/SelectionControl/SelectionControl.js +22 -6
  156. package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
  157. package/dist/components/SelectionControl/SelectionControlContext.d.ts +7 -0
  158. package/dist/components/SelectionControl/SelectionControlContext.d.ts.map +1 -0
  159. package/dist/components/SelectionControl/SelectionControlContext.js +7 -0
  160. package/dist/components/SelectionControl/SelectionControlContext.js.map +1 -0
  161. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -1
  162. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +3 -1
  163. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  164. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  165. package/dist/components/SimpleCell/SimpleCell.js +29 -8
  166. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  167. package/dist/components/Skeleton/Skeleton.js +1 -1
  168. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  169. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  170. package/dist/components/Tabs/Tabs.js +19 -9
  171. package/dist/components/Tabs/Tabs.js.map +1 -1
  172. package/dist/components/Tabs/TabsController.d.ts +2 -2
  173. package/dist/components/Tabs/TabsController.d.ts.map +1 -1
  174. package/dist/components/Tabs/TabsController.js.map +1 -1
  175. package/dist/components/Tabs/TabsControllerContext.d.ts +5 -0
  176. package/dist/components/Tabs/TabsControllerContext.d.ts.map +1 -0
  177. package/dist/components/Tabs/TabsControllerContext.js +4 -0
  178. package/dist/components/Tabs/TabsControllerContext.js.map +1 -0
  179. package/dist/components/Tabs/TabsModeContext.d.ts +0 -2
  180. package/dist/components/Tabs/TabsModeContext.d.ts.map +1 -1
  181. package/dist/components/Tabs/TabsModeContext.js +1 -2
  182. package/dist/components/Tabs/TabsModeContext.js.map +1 -1
  183. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  184. package/dist/components/TabsItem/TabsItem.js +3 -1
  185. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  186. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  187. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  188. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  189. package/dist/components/Tooltip/useTooltip.d.ts +1 -1
  190. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
  191. package/dist/components/Tooltip/useTooltip.js +3 -1
  192. package/dist/components/Tooltip/useTooltip.js.map +1 -1
  193. package/dist/components/Typography/Caption/Caption.d.ts +2 -0
  194. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  195. package/dist/components/Typography/Caption/Caption.js +4 -1
  196. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  197. package/dist/components/Typography/Footnote/Footnote.d.ts +2 -0
  198. package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  199. package/dist/components/Typography/Footnote/Footnote.js +4 -1
  200. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  201. package/dist/components/Typography/Typography.d.ts +1 -0
  202. package/dist/components/Typography/Typography.d.ts.map +1 -1
  203. package/dist/components/Typography/Typography.js +7 -1
  204. package/dist/components/Typography/Typography.js.map +1 -1
  205. package/dist/components/View/View.d.ts.map +1 -1
  206. package/dist/components/View/View.js +2 -1
  207. package/dist/components/View/View.js.map +1 -1
  208. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  209. package/dist/components/View/ViewInfinite.js +2 -1
  210. package/dist/components/View/ViewInfinite.js.map +1 -1
  211. package/dist/components.css +1 -1
  212. package/dist/components.css.map +1 -1
  213. package/dist/cssm/components/Banner/Banner.module.css +1 -6
  214. package/dist/cssm/components/Calendar/Calendar.js +6 -6
  215. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  216. package/dist/cssm/components/CalendarDays/CalendarDays.js +3 -3
  217. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  218. package/dist/cssm/components/CalendarRange/CalendarRange.js +16 -14
  219. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  220. package/dist/cssm/components/CalendarRange/utils.js +6 -5
  221. package/dist/cssm/components/CalendarRange/utils.js.map +1 -1
  222. package/dist/cssm/components/Cell/Cell.js +3 -1
  223. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  224. package/dist/cssm/components/Checkbox/Checkbox.js +2 -1
  225. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  226. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js +4 -2
  227. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -1
  228. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +11 -2
  229. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js +6 -2
  230. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  231. package/dist/cssm/components/ChipsInputBase/Chip/Chip.module.css +8 -1
  232. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +21 -1
  233. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  234. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  235. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -4
  236. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  237. package/dist/cssm/components/ContentBadge/ContentBadge.js +14 -8
  238. package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
  239. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  240. package/dist/cssm/components/CustomSelect/CustomSelect.js +154 -421
  241. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  242. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js +22 -4
  243. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  244. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -0
  245. package/dist/cssm/components/CustomSelect/helpers.js +62 -0
  246. package/dist/cssm/components/CustomSelect/helpers.js.map +1 -0
  247. package/dist/cssm/components/CustomSelect/hooks/useAfterItems.js +58 -0
  248. package/dist/cssm/components/CustomSelect/hooks/useAfterItems.js.map +1 -0
  249. package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js +60 -0
  250. package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -0
  251. package/dist/cssm/components/CustomSelect/hooks/useFocusedOptionController.js +52 -0
  252. package/dist/cssm/components/CustomSelect/hooks/useFocusedOptionController.js.map +1 -0
  253. package/dist/cssm/components/CustomSelect/hooks/useInputKeyboardController.js +78 -0
  254. package/dist/cssm/components/CustomSelect/hooks/useInputKeyboardController.js.map +1 -0
  255. package/dist/cssm/components/CustomSelect/hooks/useInputValueController.js +43 -0
  256. package/dist/cssm/components/CustomSelect/hooks/useInputValueController.js.map +1 -0
  257. package/dist/cssm/components/CustomSelect/hooks/useScrollListController.js +37 -0
  258. package/dist/cssm/components/CustomSelect/hooks/useScrollListController.js.map +1 -0
  259. package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js +81 -0
  260. package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -0
  261. package/dist/cssm/components/CustomSelect/types.js +3 -0
  262. package/dist/cssm/components/CustomSelect/types.js.map +1 -0
  263. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
  264. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  265. package/dist/cssm/components/DateInput/DateInput.js +3 -2
  266. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  267. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -4
  268. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  269. package/dist/cssm/components/ModalCard/ModalCard.js +2 -1
  270. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  271. package/dist/cssm/components/ModalCard/ModalCardInternal.js +3 -2
  272. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  273. package/dist/cssm/components/ModalCard/types.js.map +1 -1
  274. package/dist/cssm/components/ModalOutlet/ModalOutlet.js +2 -2
  275. package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -1
  276. package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +4 -0
  277. package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +1 -1
  278. package/dist/cssm/components/ModalPage/ModalPage.js +2 -1
  279. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  280. package/dist/cssm/components/ModalPage/ModalPage.module.css +1 -0
  281. package/dist/cssm/components/ModalPage/ModalPageInternal.js +3 -2
  282. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  283. package/dist/cssm/components/ModalPage/types.js.map +1 -1
  284. package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -2
  285. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  286. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  287. package/dist/cssm/components/ModalRoot/useModalManager.js +2 -1
  288. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  289. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +3 -2
  290. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  291. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  292. package/dist/cssm/components/Popover/usePopover.js +2 -1
  293. package/dist/cssm/components/Popover/usePopover.js.map +1 -1
  294. package/dist/cssm/components/Popper/Popper.js +2 -1
  295. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  296. package/dist/cssm/components/Select/Select.js +1 -1
  297. package/dist/cssm/components/Select/Select.js.map +1 -1
  298. package/dist/cssm/components/SelectionControl/SelectionControl.js +16 -6
  299. package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -1
  300. package/dist/cssm/components/SelectionControl/SelectionControl.module.css +6 -3
  301. package/dist/cssm/components/SelectionControl/SelectionControlContext.js +7 -0
  302. package/dist/cssm/components/SelectionControl/SelectionControlContext.js.map +1 -0
  303. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +3 -1
  304. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  305. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +6 -3
  306. package/dist/cssm/components/SimpleCell/SimpleCell.js +29 -8
  307. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  308. package/dist/cssm/components/Skeleton/Skeleton.js +1 -1
  309. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  310. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.module.css +2 -1
  311. package/dist/cssm/components/Tabs/Tabs.js +19 -9
  312. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  313. package/dist/cssm/components/Tabs/TabsController.js.map +1 -1
  314. package/dist/cssm/components/Tabs/TabsControllerContext.js +4 -0
  315. package/dist/cssm/components/Tabs/TabsControllerContext.js.map +1 -0
  316. package/dist/cssm/components/Tabs/TabsModeContext.js +1 -2
  317. package/dist/cssm/components/Tabs/TabsModeContext.js.map +1 -1
  318. package/dist/cssm/components/TabsItem/TabsItem.js +3 -1
  319. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  320. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  321. package/dist/cssm/components/Tooltip/useTooltip.js +2 -1
  322. package/dist/cssm/components/Tooltip/useTooltip.js.map +1 -1
  323. package/dist/cssm/components/Typography/Caption/Caption.js +4 -1
  324. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  325. package/dist/cssm/components/Typography/Footnote/Footnote.js +4 -1
  326. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  327. package/dist/cssm/components/Typography/Typography.js +7 -1
  328. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  329. package/dist/cssm/components/View/View.js +2 -1
  330. package/dist/cssm/components/View/View.js.map +1 -1
  331. package/dist/cssm/components/View/View.module.css +1 -1
  332. package/dist/cssm/components/View/ViewInfinite.js +2 -1
  333. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  334. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +0 -2
  335. package/dist/cssm/hooks/useCalendar.js +6 -4
  336. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  337. package/dist/cssm/hooks/useFloatingElement.js +3 -2
  338. package/dist/cssm/hooks/useFloatingElement.js.map +1 -1
  339. package/dist/cssm/hooks/useTodayDate.js +3 -2
  340. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  341. package/dist/cssm/index.js.map +1 -1
  342. package/dist/cssm/lib/accessibility.js +8 -0
  343. package/dist/cssm/lib/accessibility.js.map +1 -1
  344. package/dist/cssm/lib/calendar.js +9 -7
  345. package/dist/cssm/lib/calendar.js.map +1 -1
  346. package/dist/cssm/lib/date.js +66 -3
  347. package/dist/cssm/lib/date.js.map +1 -1
  348. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +18 -8
  349. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  350. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  351. package/dist/cssm/lib/touch/UIPanGestureRecognizer.js +2 -2
  352. package/dist/cssm/lib/touch/UIPanGestureRecognizer.js.map +1 -1
  353. package/dist/cssm/lib/utils.js +1 -0
  354. package/dist/cssm/lib/utils.js.map +1 -1
  355. package/dist/cssm/styles/themes.css +1 -1
  356. package/dist/hooks/useCalendar.d.ts.map +1 -1
  357. package/dist/hooks/useCalendar.js +6 -4
  358. package/dist/hooks/useCalendar.js.map +1 -1
  359. package/dist/hooks/useFloatingElement.d.ts +1 -1
  360. package/dist/hooks/useFloatingElement.d.ts.map +1 -1
  361. package/dist/hooks/useFloatingElement.js +3 -2
  362. package/dist/hooks/useFloatingElement.js.map +1 -1
  363. package/dist/hooks/useTodayDate.d.ts.map +1 -1
  364. package/dist/hooks/useTodayDate.js +3 -2
  365. package/dist/hooks/useTodayDate.js.map +1 -1
  366. package/dist/index.d.ts +4 -2
  367. package/dist/index.d.ts.map +1 -1
  368. package/dist/index.js.map +1 -1
  369. package/dist/lib/accessibility.d.ts +1 -1
  370. package/dist/lib/accessibility.d.ts.map +1 -1
  371. package/dist/lib/accessibility.js +8 -0
  372. package/dist/lib/accessibility.js.map +1 -1
  373. package/dist/lib/calendar.d.ts.map +1 -1
  374. package/dist/lib/calendar.js +9 -7
  375. package/dist/lib/calendar.js.map +1 -1
  376. package/dist/lib/date.d.ts +31 -1
  377. package/dist/lib/date.d.ts.map +1 -1
  378. package/dist/lib/date.js +67 -3
  379. package/dist/lib/date.js.map +1 -1
  380. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +6 -1
  381. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  382. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +18 -8
  383. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  384. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +2 -0
  385. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  386. package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  387. package/dist/lib/touch/UIPanGestureRecognizer.d.ts.map +1 -1
  388. package/dist/lib/touch/UIPanGestureRecognizer.js +2 -2
  389. package/dist/lib/touch/UIPanGestureRecognizer.js.map +1 -1
  390. package/dist/lib/utils.d.ts +1 -0
  391. package/dist/lib/utils.d.ts.map +1 -1
  392. package/dist/lib/utils.js +1 -0
  393. package/dist/lib/utils.js.map +1 -1
  394. package/dist/vkui.css +1 -1
  395. package/dist/vkui.css.map +1 -1
  396. package/package.json +6 -7
  397. package/src/components/Banner/Banner.module.css +1 -6
  398. package/src/components/Banner/Banner.module.css.d.ts.map +1 -1
  399. package/src/components/Calendar/Calendar.tsx +6 -6
  400. package/src/components/CalendarDays/CalendarDays.tsx +3 -3
  401. package/src/components/CalendarRange/CalendarRange.tsx +15 -20
  402. package/src/components/CalendarRange/utils.ts +7 -6
  403. package/src/components/Cell/Cell.tsx +3 -0
  404. package/src/components/Checkbox/Checkbox.tsx +6 -0
  405. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +7 -2
  406. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css.d.ts.map +1 -1
  407. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.tsx +12 -3
  408. package/src/components/ChipsInputBase/Chip/Chip.module.css +8 -1
  409. package/src/components/ChipsInputBase/Chip/Chip.module.css.d.ts.map +1 -1
  410. package/src/components/ChipsInputBase/Chip/Chip.tsx +55 -1
  411. package/src/components/ChipsInputBase/ChipsInputBase.tsx +26 -4
  412. package/src/components/ChipsInputBase/types.ts +2 -45
  413. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -4
  414. package/src/components/ContentBadge/ContentBadge.tsx +18 -12
  415. package/src/components/ContentCard/ContentCard.tsx +1 -1
  416. package/src/components/CustomSelect/CustomSelect.tsx +216 -562
  417. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -0
  418. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css.d.ts.map +1 -1
  419. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx +25 -2
  420. package/src/components/CustomSelect/helpers.ts +103 -0
  421. package/src/components/CustomSelect/hooks/useAfterItems.tsx +89 -0
  422. package/src/components/CustomSelect/hooks/useDropdownOpenedController.ts +61 -0
  423. package/src/components/CustomSelect/hooks/useFocusedOptionController.ts +86 -0
  424. package/src/components/CustomSelect/hooks/useInputKeyboardController.ts +96 -0
  425. package/src/components/CustomSelect/hooks/useInputValueController.ts +58 -0
  426. package/src/components/CustomSelect/hooks/useScrollListController.ts +46 -0
  427. package/src/components/CustomSelect/hooks/useSelectedOptionController.ts +132 -0
  428. package/src/components/CustomSelect/types.ts +38 -0
  429. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -0
  430. package/src/components/DateInput/DateInput.tsx +9 -3
  431. package/src/components/DateRangeInput/DateRangeInput.tsx +9 -6
  432. package/src/components/ModalCard/ModalCard.tsx +2 -0
  433. package/src/components/ModalCard/ModalCardInternal.tsx +8 -2
  434. package/src/components/ModalCard/types.ts +6 -0
  435. package/src/components/ModalOutlet/ModalOutlet.module.css +4 -0
  436. package/src/components/ModalOutlet/ModalOutlet.module.css.d.ts.map +1 -1
  437. package/src/components/ModalOutlet/ModalOutlet.tsx +8 -1
  438. package/src/components/ModalOverlay/ModalOverlay.module.css +1 -1
  439. package/src/components/ModalPage/ModalPage.module.css +1 -0
  440. package/src/components/ModalPage/ModalPage.module.css.d.ts.map +1 -1
  441. package/src/components/ModalPage/ModalPage.tsx +2 -0
  442. package/src/components/ModalPage/ModalPageInternal.tsx +8 -2
  443. package/src/components/ModalPage/types.ts +6 -0
  444. package/src/components/ModalRoot/ModalRoot.tsx +19 -6
  445. package/src/components/ModalRoot/types.ts +5 -0
  446. package/src/components/ModalRoot/useModalManager.tsx +4 -0
  447. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +3 -0
  448. package/src/components/Popover/Popover.tsx +1 -0
  449. package/src/components/Popover/usePopover.tsx +2 -0
  450. package/src/components/Popper/Popper.tsx +3 -0
  451. package/src/components/Select/Select.tsx +5 -5
  452. package/src/components/SelectionControl/SelectionControl.module.css +6 -3
  453. package/src/components/SelectionControl/SelectionControl.module.css.d.ts.map +1 -1
  454. package/src/components/SelectionControl/SelectionControl.tsx +30 -8
  455. package/src/components/SelectionControl/SelectionControlContext.ts +7 -0
  456. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +6 -3
  457. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css.d.ts.map +1 -1
  458. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +7 -1
  459. package/src/components/SimpleCell/SimpleCell.tsx +5 -0
  460. package/src/components/Skeleton/Skeleton.tsx +1 -1
  461. package/src/components/Slider/SliderThumb/SliderThumb.module.css +1 -1
  462. package/src/components/Tabs/Tabs.tsx +16 -12
  463. package/src/components/Tabs/TabsController.ts +2 -2
  464. package/src/components/Tabs/TabsControllerContext.ts +7 -0
  465. package/src/components/Tabs/TabsModeContext.ts +0 -3
  466. package/src/components/TabsItem/TabsItem.tsx +5 -9
  467. package/src/components/Tooltip/Tooltip.tsx +1 -0
  468. package/src/components/Tooltip/useTooltip.tsx +2 -0
  469. package/src/components/Typography/Caption/Caption.tsx +14 -6
  470. package/src/components/Typography/Footnote/Footnote.tsx +10 -6
  471. package/src/components/Typography/Typography.tsx +9 -2
  472. package/src/components/View/View.module.css +1 -1
  473. package/src/components/View/View.tsx +2 -1
  474. package/src/components/View/ViewInfinite.tsx +2 -1
  475. package/src/components/VisuallyHidden/VisuallyHidden.module.css +0 -2
  476. package/src/components/VisuallyHidden/VisuallyHidden.module.css.d.ts.map +1 -1
  477. package/src/hooks/useCalendar.ts +6 -4
  478. package/src/hooks/useFloatingElement.tsx +2 -0
  479. package/src/hooks/useTodayDate.ts +3 -2
  480. package/src/index.ts +5 -3
  481. package/src/lib/accessibility.ts +4 -0
  482. package/src/lib/calendar.ts +8 -12
  483. package/src/lib/date.ts +82 -3
  484. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +23 -10
  485. package/src/lib/floating/useFloatingWithInteractions/types.ts +2 -0
  486. package/src/lib/touch/UIPanGestureRecognizer.ts +2 -2
  487. package/src/lib/utils.ts +3 -0
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { type FloatingComponentProps, type OnShownChange } from '../../lib/floating';
3
3
  import { type FloatingArrowProps as FloatingArrowPropsPrivate } from '../FloatingArrow/FloatingArrow';
4
4
  import { type TooltipBaseProps } from '../TooltipBase/TooltipBase';
5
- type AllowedFloatingComponentProps = Pick<FloatingComponentProps, 'arrowHeight' | 'arrowPadding' | 'hoverDelay' | 'placement' | 'offsetByMainAxis' | 'offsetByCrossAxis' | 'defaultShown' | 'onShownChange' | 'hideWhenReferenceHidden' | 'onReferenceHiddenChange' | 'children' | 'zIndex' | 'usePortal' | 'onPlacementChange' | 'disableFlipMiddleware' | 'strategy'>;
5
+ type AllowedFloatingComponentProps = Pick<FloatingComponentProps, 'arrowHeight' | 'arrowPadding' | 'hoverDelay' | 'placement' | 'offsetByMainAxis' | 'offsetByCrossAxis' | 'defaultShown' | 'onShownChange' | 'hideWhenReferenceHidden' | 'onReferenceHiddenChange' | 'children' | 'zIndex' | 'usePortal' | 'onPlacementChange' | 'disableFlipMiddleware' | 'disableShiftMiddleware' | 'strategy'>;
6
6
  type AllowedTooltipBaseProps = Omit<TooltipBaseProps, 'arrowProps' | 'onCloseIconClick'>;
7
7
  /**
8
8
  * @alias
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,KAAK,6BAA6B,GAAG,IAAI,CACvC,sBAAsB,EACpB,aAAa,GACb,cAAc,GACd,YAAY,GACZ,WAAW,GACX,kBAAkB,GAClB,mBAAmB,GACnB,cAAc,GACd,eAAe,GACf,yBAAyB,GACzB,yBAAyB,GACzB,UAAU,GACV,QAAQ,GACR,WAAW,GACX,mBAAmB,GACnB,uBAAuB,GACvB,UAAU,CACb,CAAC;AAEF,KAAK,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,kBAAkB,CAAC,CAAC;AAEzF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,yBAAyB,EACzB,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAC/C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAEjD,MAAM,WAAW,YAAa,SAAQ,6BAA6B,EAAE,uBAAuB;IAC1F;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,4BAA4B,YAAY,KAAG,KAAK,CAAC,SAWxE,CAAC"}
1
+ {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,KAAK,6BAA6B,GAAG,IAAI,CACvC,sBAAsB,EACpB,aAAa,GACb,cAAc,GACd,YAAY,GACZ,WAAW,GACX,kBAAkB,GAClB,mBAAmB,GACnB,cAAc,GACd,eAAe,GACf,yBAAyB,GACzB,yBAAyB,GACzB,UAAU,GACV,QAAQ,GACR,WAAW,GACX,mBAAmB,GACnB,uBAAuB,GACvB,wBAAwB,GACxB,UAAU,CACb,CAAC;AAEF,KAAK,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,kBAAkB,CAAC,CAAC;AAEzF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,yBAAyB,EACzB,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAC/C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAEjD,MAAM,WAAW,YAAa,SAAQ,6BAA6B,EAAE,uBAAuB;IAC1F;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,4BAA4B,YAAY,KAAG,KAAK,CAAC,SAWxE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useReferenceElement } from '../../hooks/useReferenceElement';\nimport { type FloatingComponentProps, type OnShownChange } from '../../lib/floating';\nimport { type FloatingArrowProps as FloatingArrowPropsPrivate } from '../FloatingArrow/FloatingArrow';\nimport { type TooltipBaseProps } from '../TooltipBase/TooltipBase';\nimport { useTooltip } from './useTooltip';\n\ntype AllowedFloatingComponentProps = Pick<\n FloatingComponentProps,\n | 'arrowHeight'\n | 'arrowPadding'\n | 'hoverDelay'\n | 'placement'\n | 'offsetByMainAxis'\n | 'offsetByCrossAxis'\n | 'defaultShown'\n | 'onShownChange'\n | 'hideWhenReferenceHidden'\n | 'onReferenceHiddenChange'\n | 'children'\n | 'zIndex'\n | 'usePortal'\n | 'onPlacementChange'\n | 'disableFlipMiddleware'\n | 'strategy'\n>;\n\ntype AllowedTooltipBaseProps = Omit<TooltipBaseProps, 'arrowProps' | 'onCloseIconClick'>;\n\n/**\n * @alias\n * @public\n */\nexport type TooltipArrowProps = Omit<\n FloatingArrowPropsPrivate,\n 'getRootRef' | 'coords' | 'placement' | 'Icon'\n>;\n\n/**\n * @alias\n * @public\n */\nexport type TooltipOnShownChange = OnShownChange;\n\nexport interface TooltipProps extends AllowedFloatingComponentProps, AllowedTooltipBaseProps {\n /**\n * Передача `boolean` позволяет контролировать состояния показа и скрытия вручную. Используйте\n * совместно с `onShownChange`.\n *\n * > Если нужно разово инициировать показ тултипа при первом рендере, то используйте `defaultShown`.\n */\n shown?: boolean;\n /**\n * Добавляет возможность наводить на тултип.\n */\n enableInteractive?: boolean;\n /**\n * Добавляет возможность закрыть тултип через иконку-крестик.\n *\n * > Работает в сочетании с `enableInteractive` или при использовании `shown` и `onShownChange`.\n */\n closable?: boolean;\n /**\n * Скрывает стрелку, указывающую на якорный элемент.\n */\n disableArrow?: boolean;\n /**\n * Отключает закрытие по нажатию.\n */\n disableCloseAfterClick?: boolean;\n /**\n * Отключает появление при фокусе.\n */\n disableTriggerOnFocus?: boolean;\n}\n\n/**\n * @see https://vkui.io/components/tooltip\n */\nexport const Tooltip = ({ children, ...restProps }: TooltipProps): React.ReactNode => {\n const { anchorRef, anchorProps, tooltip } = useTooltip(restProps);\n\n const anchor = useReferenceElement(children, anchorProps, anchorRef);\n\n return (\n <React.Fragment>\n {anchor}\n {tooltip}\n </React.Fragment>\n );\n};\n"],"names":["React","useReferenceElement","useTooltip","Tooltip","children","restProps","anchorRef","anchorProps","tooltip","anchor","Fragment"],"mappings":"AAAA;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,mBAAmB,QAAQ,qCAAkC;AAItE,SAASC,UAAU,QAAQ,kBAAe;AAuE1C;;CAEC,GACD,OAAO,MAAMC,UAAU;QAAC,EAAEC,QAAQ,EAA8B,WAAzBC;QAAbD;;IACxB,MAAM,EAAEE,SAAS,EAAEC,WAAW,EAAEC,OAAO,EAAE,GAAGN,WAAWG;IAEvD,MAAMI,SAASR,oBAAoBG,UAAUG,aAAaD;IAE1D,qBACE,MAACN,MAAMU,QAAQ;;YACZD;YACAD;;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useReferenceElement } from '../../hooks/useReferenceElement';\nimport { type FloatingComponentProps, type OnShownChange } from '../../lib/floating';\nimport { type FloatingArrowProps as FloatingArrowPropsPrivate } from '../FloatingArrow/FloatingArrow';\nimport { type TooltipBaseProps } from '../TooltipBase/TooltipBase';\nimport { useTooltip } from './useTooltip';\n\ntype AllowedFloatingComponentProps = Pick<\n FloatingComponentProps,\n | 'arrowHeight'\n | 'arrowPadding'\n | 'hoverDelay'\n | 'placement'\n | 'offsetByMainAxis'\n | 'offsetByCrossAxis'\n | 'defaultShown'\n | 'onShownChange'\n | 'hideWhenReferenceHidden'\n | 'onReferenceHiddenChange'\n | 'children'\n | 'zIndex'\n | 'usePortal'\n | 'onPlacementChange'\n | 'disableFlipMiddleware'\n | 'disableShiftMiddleware'\n | 'strategy'\n>;\n\ntype AllowedTooltipBaseProps = Omit<TooltipBaseProps, 'arrowProps' | 'onCloseIconClick'>;\n\n/**\n * @alias\n * @public\n */\nexport type TooltipArrowProps = Omit<\n FloatingArrowPropsPrivate,\n 'getRootRef' | 'coords' | 'placement' | 'Icon'\n>;\n\n/**\n * @alias\n * @public\n */\nexport type TooltipOnShownChange = OnShownChange;\n\nexport interface TooltipProps extends AllowedFloatingComponentProps, AllowedTooltipBaseProps {\n /**\n * Передача `boolean` позволяет контролировать состояния показа и скрытия вручную. Используйте\n * совместно с `onShownChange`.\n *\n * > Если нужно разово инициировать показ тултипа при первом рендере, то используйте `defaultShown`.\n */\n shown?: boolean;\n /**\n * Добавляет возможность наводить на тултип.\n */\n enableInteractive?: boolean;\n /**\n * Добавляет возможность закрыть тултип через иконку-крестик.\n *\n * > Работает в сочетании с `enableInteractive` или при использовании `shown` и `onShownChange`.\n */\n closable?: boolean;\n /**\n * Скрывает стрелку, указывающую на якорный элемент.\n */\n disableArrow?: boolean;\n /**\n * Отключает закрытие по нажатию.\n */\n disableCloseAfterClick?: boolean;\n /**\n * Отключает появление при фокусе.\n */\n disableTriggerOnFocus?: boolean;\n}\n\n/**\n * @see https://vkui.io/components/tooltip\n */\nexport const Tooltip = ({ children, ...restProps }: TooltipProps): React.ReactNode => {\n const { anchorRef, anchorProps, tooltip } = useTooltip(restProps);\n\n const anchor = useReferenceElement(children, anchorProps, anchorRef);\n\n return (\n <React.Fragment>\n {anchor}\n {tooltip}\n </React.Fragment>\n );\n};\n"],"names":["React","useReferenceElement","useTooltip","Tooltip","children","restProps","anchorRef","anchorProps","tooltip","anchor","Fragment"],"mappings":"AAAA;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,mBAAmB,QAAQ,qCAAkC;AAItE,SAASC,UAAU,QAAQ,kBAAe;AAwE1C;;CAEC,GACD,OAAO,MAAMC,UAAU;QAAC,EAAEC,QAAQ,EAA8B,WAAzBC;QAAbD;;IACxB,MAAM,EAAEE,SAAS,EAAEC,WAAW,EAAEC,OAAO,EAAE,GAAGN,WAAWG;IAEvD,MAAMI,SAASR,oBAAoBG,UAAUG,aAAaD;IAE1D,qBACE,MAACN,MAAMU,QAAQ;;YACZD;YACAD;;;AAGP,EAAE"}
@@ -19,5 +19,5 @@ export type UseTooltipResult<ElementType extends HTMLElement = HTMLElement> = {
19
19
  */
20
20
  tooltip: React.ReactNode | null;
21
21
  };
22
- export declare const useTooltip: ({ placement: placementProp, arrowPadding, arrowHeight, offsetByMainAxis, offsetByCrossAxis, hideWhenReferenceHidden, disableFlipMiddleware, disableTriggerOnFocus, onReferenceHiddenChange, defaultShown, shown: shownProp, onShownChange, hoverDelay, strategy, enableInteractive, disableArrow, disableCloseAfterClick, usePortal, id: idProp, getRootRef, appearance, style: styleProp, className, zIndex, closable, onPlacementChange, ...popperProps }: UseTooltipProps) => UseTooltipResult;
22
+ export declare const useTooltip: ({ placement: placementProp, arrowPadding, arrowHeight, offsetByMainAxis, offsetByCrossAxis, hideWhenReferenceHidden, disableFlipMiddleware, disableShiftMiddleware, disableTriggerOnFocus, onReferenceHiddenChange, defaultShown, shown: shownProp, onShownChange, hoverDelay, strategy, enableInteractive, disableArrow, disableCloseAfterClick, usePortal, id: idProp, getRootRef, appearance, style: styleProp, className, zIndex, closable, onPlacementChange, ...popperProps }: UseTooltipProps) => UseTooltipResult;
23
23
  //# sourceMappingURL=useTooltip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTooltip.d.ts","sourceRoot":"","sources":["../../../src/components/Tooltip/useTooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,OAAO,CAAC;AAS9C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAG3F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG;IAC7D,CAAC,GAAG,EAAE,QAAQ,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,WAAW,SAAS,WAAW,GAAG,WAAW,IAAI;IAC5E;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5B;;OAEG;IACH,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACzC;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,6bAqCxB,eAAe,KAAG,gBAuGpB,CAAC"}
1
+ {"version":3,"file":"useTooltip.d.ts","sourceRoot":"","sources":["../../../src/components/Tooltip/useTooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,OAAO,CAAC;AAS9C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAG3F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG;IAC7D,CAAC,GAAG,EAAE,QAAQ,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,WAAW,SAAS,WAAW,GAAG,WAAW,IAAI;IAC5E;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5B;;OAEG;IACH,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACzC;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,qdAsCxB,eAAe,KAAG,gBAwGpB,CAAC"}
@@ -13,7 +13,7 @@ import { AppRootPortal } from "../AppRoot/AppRootPortal.js";
13
13
  import { TooltipBase } from "../TooltipBase/TooltipBase.js";
14
14
  export const useTooltip = (_param)=>{
15
15
  var { // UseFloatingMiddlewaresBootstrapOptions
16
- placement: placementProp = 'bottom', arrowPadding = 10, arrowHeight = 8, offsetByMainAxis = 8, offsetByCrossAxis = 0, hideWhenReferenceHidden, disableFlipMiddleware = false, disableTriggerOnFocus = false, onReferenceHiddenChange, // useFloatingWithInteractions
16
+ placement: placementProp = 'bottom', arrowPadding = 10, arrowHeight = 8, offsetByMainAxis = 8, offsetByCrossAxis = 0, hideWhenReferenceHidden, disableFlipMiddleware = false, disableShiftMiddleware = false, disableTriggerOnFocus = false, onReferenceHiddenChange, // useFloatingWithInteractions
17
17
  defaultShown, shown: shownProp, onShownChange, hoverDelay = 150, strategy, // инверсированные св-ва для useFloatingWithInteractions
18
18
  enableInteractive = false, disableArrow = false, disableCloseAfterClick = false, // AppRootProps
19
19
  usePortal, // TooltipBaseProps
@@ -25,6 +25,7 @@ export const useTooltip = (_param)=>{
25
25
  "offsetByCrossAxis",
26
26
  "hideWhenReferenceHidden",
27
27
  "disableFlipMiddleware",
28
+ "disableShiftMiddleware",
28
29
  "disableTriggerOnFocus",
29
30
  "onReferenceHiddenChange",
30
31
  "defaultShown",
@@ -99,6 +100,7 @@ export const useTooltip = (_param)=>{
99
100
  offsetByCrossAxis,
100
101
  hideWhenReferenceHidden,
101
102
  disableFlipMiddleware,
103
+ disableShiftMiddleware,
102
104
  defaultShown,
103
105
  shown: shownProp,
104
106
  onShownChange,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Tooltip/useTooltip.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { type Ref, useCallback } from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport {\n type FloatingComponentProps,\n useFloatingElement,\n type UseFloatingElementProps,\n} from '../../hooks/useFloatingElement';\nimport { animationFadeClassNames } from '../../lib/animation';\nimport { getArrowCoordsByMiddlewareData } from '../../lib/floating';\nimport { type ReferenceProps } from '../../lib/floating/useFloatingWithInteractions/types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { TooltipBase } from '../TooltipBase/TooltipBase';\nimport { type TooltipProps } from './Tooltip';\n\nexport type UseTooltipProps = Omit<TooltipProps, 'children'> & {\n [key: `data-${string}`]: string | number | boolean;\n};\n\nexport type UseTooltipResult<ElementType extends HTMLElement = HTMLElement> = {\n /**\n * Реф на якорный элемент.\n */\n anchorRef: Ref<ElementType>;\n /**\n * Свойства для якорного элемента, содержит необходимые обработчики.\n */\n anchorProps: ReferenceProps<ElementType>;\n /**\n * Отрендеренный компонент тултипа.\n */\n tooltip: React.ReactNode | null;\n};\n\nexport const useTooltip = ({\n // UseFloatingMiddlewaresBootstrapOptions\n placement: placementProp = 'bottom',\n arrowPadding = 10,\n arrowHeight = 8,\n offsetByMainAxis = 8,\n offsetByCrossAxis = 0,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n disableTriggerOnFocus = false,\n onReferenceHiddenChange,\n\n // useFloatingWithInteractions\n defaultShown,\n shown: shownProp,\n onShownChange,\n hoverDelay = 150,\n strategy,\n\n // инверсированные св-ва для useFloatingWithInteractions\n enableInteractive = false,\n disableArrow = false,\n disableCloseAfterClick = false,\n\n // AppRootProps\n usePortal,\n\n // TooltipBaseProps\n id: idProp,\n getRootRef,\n appearance = 'neutral',\n style: styleProp,\n className,\n zIndex = 'var(--vkui--z_index_popout)',\n closable,\n onPlacementChange,\n ...popperProps\n}: UseTooltipProps): UseTooltipResult => {\n const generatedId = React.useId();\n const tooltipId = idProp || generatedId;\n\n const renderFloatingComponent = useCallback(\n ({\n shown,\n floatingProps,\n floatingRef,\n placement: resultPlacement,\n middlewareData,\n setArrowRef,\n willBeHide,\n onClose,\n }: FloatingComponentProps<HTMLDivElement>) => {\n if (!shown) {\n return null;\n }\n return (\n <AppRootPortal usePortal={usePortal}>\n <TooltipBase\n {...popperProps}\n {...floatingProps}\n style={{\n ...floatingProps.style,\n zIndex,\n ...styleProp,\n }}\n id={tooltipId}\n getRootRef={floatingRef}\n appearance={appearance}\n arrowProps={\n disableArrow\n ? undefined\n : {\n placement: resultPlacement,\n coords: getArrowCoordsByMiddlewareData(middlewareData),\n getRootRef: setArrowRef,\n }\n }\n className={classNames(\n willBeHide ? animationFadeClassNames.out : animationFadeClassNames.in,\n className,\n )}\n onCloseIconClick={closable ? onClose : undefined}\n />\n </AppRootPortal>\n );\n },\n [\n appearance,\n className,\n closable,\n disableArrow,\n popperProps,\n styleProp,\n tooltipId,\n usePortal,\n zIndex,\n ],\n );\n\n const remapReferenceProps: Exclude<UseFloatingElementProps['remapReferenceProps'], undefined> =\n useCallback(\n ({ shown, ...referenceProps }) => ({\n ...referenceProps,\n ...(shown && { 'aria-describedby': tooltipId }),\n }),\n [tooltipId],\n );\n\n const { component, anchorRef, anchorProps } = useFloatingElement({\n placement: placementProp,\n arrow: !disableArrow,\n arrowHeight,\n arrowPadding,\n offsetByMainAxis,\n offsetByCrossAxis,\n hideWhenReferenceHidden,\n disableFlipMiddleware,\n\n defaultShown,\n shown: shownProp,\n onShownChange,\n trigger: disableTriggerOnFocus ? 'hover' : ['hover', 'focus'],\n onReferenceHiddenChange,\n hoverDelay,\n closeAfterClick: !disableCloseAfterClick,\n disableInteractive: !enableInteractive,\n strategy,\n\n onPlacementChange,\n\n renderFloatingComponent,\n externalFloatingElementRef: getRootRef,\n remapReferenceProps,\n });\n\n return {\n anchorRef,\n anchorProps,\n tooltip: component,\n };\n};\n"],"names":["React","useCallback","classNames","useFloatingElement","animationFadeClassNames","getArrowCoordsByMiddlewareData","AppRootPortal","TooltipBase","useTooltip","placement","placementProp","arrowPadding","arrowHeight","offsetByMainAxis","offsetByCrossAxis","hideWhenReferenceHidden","disableFlipMiddleware","disableTriggerOnFocus","onReferenceHiddenChange","defaultShown","shown","shownProp","onShownChange","hoverDelay","strategy","enableInteractive","disableArrow","disableCloseAfterClick","usePortal","id","idProp","getRootRef","appearance","style","styleProp","className","zIndex","closable","onPlacementChange","popperProps","generatedId","useId","tooltipId","renderFloatingComponent","floatingProps","floatingRef","resultPlacement","middlewareData","setArrowRef","willBeHide","onClose","arrowProps","undefined","coords","out","in","onCloseIconClick","remapReferenceProps","referenceProps","component","anchorRef","anchorProps","arrow","trigger","closeAfterClick","disableInteractive","externalFloatingElementRef","tooltip"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Tooltip/useTooltip.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { type Ref, useCallback } from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport {\n type FloatingComponentProps,\n useFloatingElement,\n type UseFloatingElementProps,\n} from '../../hooks/useFloatingElement';\nimport { animationFadeClassNames } from '../../lib/animation';\nimport { getArrowCoordsByMiddlewareData } from '../../lib/floating';\nimport { type ReferenceProps } from '../../lib/floating/useFloatingWithInteractions/types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { TooltipBase } from '../TooltipBase/TooltipBase';\nimport { type TooltipProps } from './Tooltip';\n\nexport type UseTooltipProps = Omit<TooltipProps, 'children'> & {\n [key: `data-${string}`]: string | number | boolean;\n};\n\nexport type UseTooltipResult<ElementType extends HTMLElement = HTMLElement> = {\n /**\n * Реф на якорный элемент.\n */\n anchorRef: Ref<ElementType>;\n /**\n * Свойства для якорного элемента, содержит необходимые обработчики.\n */\n anchorProps: ReferenceProps<ElementType>;\n /**\n * Отрендеренный компонент тултипа.\n */\n tooltip: React.ReactNode | null;\n};\n\nexport const useTooltip = ({\n // UseFloatingMiddlewaresBootstrapOptions\n placement: placementProp = 'bottom',\n arrowPadding = 10,\n arrowHeight = 8,\n offsetByMainAxis = 8,\n offsetByCrossAxis = 0,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n disableShiftMiddleware = false,\n disableTriggerOnFocus = false,\n onReferenceHiddenChange,\n\n // useFloatingWithInteractions\n defaultShown,\n shown: shownProp,\n onShownChange,\n hoverDelay = 150,\n strategy,\n\n // инверсированные св-ва для useFloatingWithInteractions\n enableInteractive = false,\n disableArrow = false,\n disableCloseAfterClick = false,\n\n // AppRootProps\n usePortal,\n\n // TooltipBaseProps\n id: idProp,\n getRootRef,\n appearance = 'neutral',\n style: styleProp,\n className,\n zIndex = 'var(--vkui--z_index_popout)',\n closable,\n onPlacementChange,\n ...popperProps\n}: UseTooltipProps): UseTooltipResult => {\n const generatedId = React.useId();\n const tooltipId = idProp || generatedId;\n\n const renderFloatingComponent = useCallback(\n ({\n shown,\n floatingProps,\n floatingRef,\n placement: resultPlacement,\n middlewareData,\n setArrowRef,\n willBeHide,\n onClose,\n }: FloatingComponentProps<HTMLDivElement>) => {\n if (!shown) {\n return null;\n }\n return (\n <AppRootPortal usePortal={usePortal}>\n <TooltipBase\n {...popperProps}\n {...floatingProps}\n style={{\n ...floatingProps.style,\n zIndex,\n ...styleProp,\n }}\n id={tooltipId}\n getRootRef={floatingRef}\n appearance={appearance}\n arrowProps={\n disableArrow\n ? undefined\n : {\n placement: resultPlacement,\n coords: getArrowCoordsByMiddlewareData(middlewareData),\n getRootRef: setArrowRef,\n }\n }\n className={classNames(\n willBeHide ? animationFadeClassNames.out : animationFadeClassNames.in,\n className,\n )}\n onCloseIconClick={closable ? onClose : undefined}\n />\n </AppRootPortal>\n );\n },\n [\n appearance,\n className,\n closable,\n disableArrow,\n popperProps,\n styleProp,\n tooltipId,\n usePortal,\n zIndex,\n ],\n );\n\n const remapReferenceProps: Exclude<UseFloatingElementProps['remapReferenceProps'], undefined> =\n useCallback(\n ({ shown, ...referenceProps }) => ({\n ...referenceProps,\n ...(shown && { 'aria-describedby': tooltipId }),\n }),\n [tooltipId],\n );\n\n const { component, anchorRef, anchorProps } = useFloatingElement({\n placement: placementProp,\n arrow: !disableArrow,\n arrowHeight,\n arrowPadding,\n offsetByMainAxis,\n offsetByCrossAxis,\n hideWhenReferenceHidden,\n disableFlipMiddleware,\n disableShiftMiddleware,\n\n defaultShown,\n shown: shownProp,\n onShownChange,\n trigger: disableTriggerOnFocus ? 'hover' : ['hover', 'focus'],\n onReferenceHiddenChange,\n hoverDelay,\n closeAfterClick: !disableCloseAfterClick,\n disableInteractive: !enableInteractive,\n strategy,\n\n onPlacementChange,\n\n renderFloatingComponent,\n externalFloatingElementRef: getRootRef,\n remapReferenceProps,\n });\n\n return {\n anchorRef,\n anchorProps,\n tooltip: component,\n };\n};\n"],"names":["React","useCallback","classNames","useFloatingElement","animationFadeClassNames","getArrowCoordsByMiddlewareData","AppRootPortal","TooltipBase","useTooltip","placement","placementProp","arrowPadding","arrowHeight","offsetByMainAxis","offsetByCrossAxis","hideWhenReferenceHidden","disableFlipMiddleware","disableShiftMiddleware","disableTriggerOnFocus","onReferenceHiddenChange","defaultShown","shown","shownProp","onShownChange","hoverDelay","strategy","enableInteractive","disableArrow","disableCloseAfterClick","usePortal","id","idProp","getRootRef","appearance","style","styleProp","className","zIndex","closable","onPlacementChange","popperProps","generatedId","useId","tooltipId","renderFloatingComponent","floatingProps","floatingRef","resultPlacement","middlewareData","setArrowRef","willBeHide","onClose","arrowProps","undefined","coords","out","in","onCloseIconClick","remapReferenceProps","referenceProps","component","anchorRef","anchorProps","arrow","trigger","closeAfterClick","disableInteractive","externalFloatingElementRef","tooltip"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
+ import { type SizeTypeValues } from '../../../lib/adaptivity';
1
2
  import { type HasCaps, type TypographyProps } from '../Typography';
3
+ export declare function captionClassNames(sizeY: 'none' | SizeTypeValues, level?: '1' | '2' | '3' | undefined, caps?: boolean): string;
2
4
  export interface CaptionProps extends TypographyProps, HasCaps {
3
5
  /**
4
6
  * Уровень заголовка (от 1 до 3).
@@ -1 +1 @@
1
- {"version":3,"file":"Caption.d.ts","sourceRoot":"","sources":["../../../../src/components/Typography/Caption/Caption.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAc/E,MAAM,WAAW,YAAa,SAAQ,eAAe,EAAE,OAAO;IAC5D;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,wEAQrB,YAAY,KAAG,KAAK,CAAC,SAiBvB,CAAC"}
1
+ {"version":3,"file":"Caption.d.ts","sourceRoot":"","sources":["../../../../src/components/Typography/Caption/Caption.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAc/E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,GAAG,cAAc,EAC9B,KAAK,GAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAe,EACxC,IAAI,UAAQ,UAOb;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe,EAAE,OAAO;IAC5D;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,wEAQrB,YAAY,KAAG,KAAK,CAAC,SAYvB,CAAC"}
@@ -14,6 +14,9 @@ const sizeYClassNames = {
14
14
  none: "vkuiCaption__sizeYNone",
15
15
  compact: "vkuiCaption__sizeYCompact"
16
16
  };
17
+ export function captionClassNames(sizeY, level = '1', caps = false) {
18
+ return classNames(sizeY !== 'regular' && sizeYClassNames[sizeY], caps && "vkuiCaption__caps", stylesLevel[level]);
19
+ }
17
20
  /**
18
21
  * Используется для мелких подписей.
19
22
  *
@@ -32,7 +35,7 @@ const sizeYClassNames = {
32
35
  Component: Component,
33
36
  normalize: normalize,
34
37
  inline: inline,
35
- className: classNames(className, sizeY !== 'regular' && sizeYClassNames[sizeY], caps && "vkuiCaption__caps", stylesLevel[level])
38
+ className: classNames(className, captionClassNames(sizeY, level, caps))
36
39
  }, restProps));
37
40
  };
38
41
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Typography/Caption/Caption.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { type HasCaps, Typography, type TypographyProps } from '../Typography';\nimport styles from './Caption.module.css';\n\nconst stylesLevel = {\n '1': styles.level1,\n '2': styles.level2,\n '3': styles.level3,\n};\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface CaptionProps extends TypographyProps, HasCaps {\n /**\n * Уровень заголовка (от 1 до 3).\n */\n level?: '1' | '2' | '3';\n}\n\n/**\n * Используется для мелких подписей.\n *\n * @see https://vkui.io/components/typography#caption\n */\nexport const Caption = ({\n className,\n level = '1',\n caps,\n Component = 'span',\n normalize = true,\n inline = false,\n ...restProps\n}: CaptionProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n inline={inline}\n className={classNames(\n className,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n caps && styles.caps,\n stylesLevel[level],\n )}\n {...restProps}\n />\n );\n};\n"],"names":["classNames","useAdaptivity","Typography","stylesLevel","sizeYClassNames","none","compact","Caption","className","level","caps","Component","normalize","inline","restProps","sizeY"],"mappings":"AAAA;;;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,kCAA+B;AAC7D,SAAuBC,UAAU,QAA8B,mBAAgB;AAG/E,MAAMC,cAAc;IAClB,GAAG;IACH,GAAG;IACH,GAAG;AACL;AAEA,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AASA;;;;CAIC,GACD,OAAO,MAAMC,UAAU;QAAC,EACtBC,SAAS,EACTC,QAAQ,GAAG,EACXC,IAAI,EACJC,YAAY,MAAM,EAClBC,YAAY,IAAI,EAChBC,SAAS,KAAK,EAED,WADVC;QANHN;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAGd;IAE3B,qBACE,KAACC;QACCS,WAAWA;QACXC,WAAWA;QACXC,QAAQA;QACRL,WAAWR,WACTQ,WACAO,UAAU,aAAaX,eAAe,CAACW,MAAM,EAC7CL,6BACAP,WAAW,CAACM,MAAM;OAEhBK;AAGV,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Typography/Caption/Caption.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { type SizeTypeValues } from '../../../lib/adaptivity';\nimport { type HasCaps, Typography, type TypographyProps } from '../Typography';\nimport styles from './Caption.module.css';\n\nconst stylesLevel = {\n '1': styles.level1,\n '2': styles.level2,\n '3': styles.level3,\n};\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport function captionClassNames(\n sizeY: 'none' | SizeTypeValues,\n level: '1' | '2' | '3' | undefined = '1',\n caps = false,\n) {\n return classNames(\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n caps && styles.caps,\n stylesLevel[level],\n );\n}\n\nexport interface CaptionProps extends TypographyProps, HasCaps {\n /**\n * Уровень заголовка (от 1 до 3).\n */\n level?: '1' | '2' | '3';\n}\n\n/**\n * Используется для мелких подписей.\n *\n * @see https://vkui.io/components/typography#caption\n */\nexport const Caption = ({\n className,\n level = '1',\n caps,\n Component = 'span',\n normalize = true,\n inline = false,\n ...restProps\n}: CaptionProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n inline={inline}\n className={classNames(className, captionClassNames(sizeY, level, caps))}\n {...restProps}\n />\n );\n};\n"],"names":["classNames","useAdaptivity","Typography","stylesLevel","sizeYClassNames","none","compact","captionClassNames","sizeY","level","caps","Caption","className","Component","normalize","inline","restProps"],"mappings":"AAAA;;;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,kCAA+B;AAE7D,SAAuBC,UAAU,QAA8B,mBAAgB;AAG/E,MAAMC,cAAc;IAClB,GAAG;IACH,GAAG;IACH,GAAG;AACL;AAEA,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAEA,OAAO,SAASC,kBACdC,KAA8B,EAC9BC,QAAqC,GAAG,EACxCC,OAAO,KAAK;IAEZ,OAAOV,WACLQ,UAAU,aAAaJ,eAAe,CAACI,MAAM,EAC7CE,6BACAP,WAAW,CAACM,MAAM;AAEtB;AASA;;;;CAIC,GACD,OAAO,MAAME,UAAU;QAAC,EACtBC,SAAS,EACTH,QAAQ,GAAG,EACXC,IAAI,EACJG,YAAY,MAAM,EAClBC,YAAY,IAAI,EAChBC,SAAS,KAAK,EAED,WADVC;QANHJ;QACAH;QACAC;QACAG;QACAC;QACAC;;IAGA,MAAM,EAAEP,QAAQ,MAAM,EAAE,GAAGP;IAE3B,qBACE,KAACC;QACCW,WAAWA;QACXC,WAAWA;QACXC,QAAQA;QACRH,WAAWZ,WAAWY,WAAWL,kBAAkBC,OAAOC,OAAOC;OAC7DM;AAGV,EAAE"}
@@ -1,4 +1,6 @@
1
+ import { type SizeTypeValues } from '../../../lib/adaptivity';
1
2
  import { type HasCaps, type TypographyProps } from '../Typography';
3
+ export declare function footnoteClassNames(sizeY: 'none' | SizeTypeValues, caps?: boolean): string;
2
4
  export interface FootnoteProps extends TypographyProps, HasCaps {
3
5
  }
4
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Footnote.d.ts","sourceRoot":"","sources":["../../../../src/components/Typography/Footnote/Footnote.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAQ/E,MAAM,WAAW,aAAc,SAAQ,eAAe,EAAE,OAAO;CAAG;AAElE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,iEAOtB,aAAa,KAAG,KAAK,CAAC,SAiBxB,CAAC"}
1
+ {"version":3,"file":"Footnote.d.ts","sourceRoot":"","sources":["../../../../src/components/Typography/Footnote/Footnote.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAQ/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,IAAI,UAAQ,UAM9E;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe,EAAE,OAAO;CAAG;AAElE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,iEAOtB,aAAa,KAAG,KAAK,CAAC,SAYxB,CAAC"}
@@ -9,6 +9,9 @@ const sizeYClassNames = {
9
9
  none: "vkuiFootnote__sizeYNone",
10
10
  compact: "vkuiFootnote__sizeYCompact"
11
11
  };
12
+ export function footnoteClassNames(sizeY, caps = false) {
13
+ return classNames("vkuiFootnote__host", sizeY !== 'regular' && sizeYClassNames[sizeY], caps && "vkuiFootnote__caps");
14
+ }
12
15
  /**
13
16
  * Используется для основных подписей.
14
17
  *
@@ -26,7 +29,7 @@ const sizeYClassNames = {
26
29
  Component: Component,
27
30
  normalize: normalize,
28
31
  inline: inline,
29
- className: classNames(className, sizeY !== 'regular' && sizeYClassNames[sizeY], "vkuiFootnote__host", caps && "vkuiFootnote__caps")
32
+ className: classNames(className, footnoteClassNames(sizeY, caps))
30
33
  }, restProps));
31
34
  };
32
35
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Typography/Footnote/Footnote.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { type HasCaps, Typography, type TypographyProps } from '../Typography';\nimport styles from './Footnote.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface FootnoteProps extends TypographyProps, HasCaps {}\n\n/**\n * Используется для основных подписей.\n *\n * @see https://vkui.io/components/typography#footnote\n */\nexport const Footnote = ({\n className,\n caps,\n Component = 'span',\n normalize = true,\n inline = false,\n ...restProps\n}: FootnoteProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n inline={inline}\n className={classNames(\n className,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n styles.host,\n caps && styles.caps,\n )}\n {...restProps}\n />\n );\n};\n"],"names":["classNames","useAdaptivity","Typography","sizeYClassNames","none","compact","Footnote","className","caps","Component","normalize","inline","restProps","sizeY"],"mappings":"AAAA;;;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,kCAA+B;AAC7D,SAAuBC,UAAU,QAA8B,mBAAgB;AAG/E,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAIA;;;;CAIC,GACD,OAAO,MAAMC,WAAW;QAAC,EACvBC,SAAS,EACTC,IAAI,EACJC,YAAY,MAAM,EAClBC,YAAY,IAAI,EAChBC,SAAS,KAAK,EAEA,WADXC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAGZ;IAE3B,qBACE,KAACC;QACCO,WAAWA;QACXC,WAAWA;QACXC,QAAQA;QACRJ,WAAWP,WACTO,WACAM,UAAU,aAAaV,eAAe,CAACU,MAAM,wBAE7CL;OAEEI;AAGV,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Typography/Footnote/Footnote.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { type SizeTypeValues } from '../../../lib/adaptivity';\nimport { type HasCaps, Typography, type TypographyProps } from '../Typography';\nimport styles from './Footnote.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport function footnoteClassNames(sizeY: 'none' | SizeTypeValues, caps = false) {\n return classNames(\n styles.host,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n caps && styles.caps,\n );\n}\n\nexport interface FootnoteProps extends TypographyProps, HasCaps {}\n\n/**\n * Используется для основных подписей.\n *\n * @see https://vkui.io/components/typography#footnote\n */\nexport const Footnote = ({\n className,\n caps,\n Component = 'span',\n normalize = true,\n inline = false,\n ...restProps\n}: FootnoteProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n inline={inline}\n className={classNames(className, footnoteClassNames(sizeY, caps))}\n {...restProps}\n />\n );\n};\n"],"names":["classNames","useAdaptivity","Typography","sizeYClassNames","none","compact","footnoteClassNames","sizeY","caps","Footnote","className","Component","normalize","inline","restProps"],"mappings":"AAAA;;;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,kCAA+B;AAE7D,SAAuBC,UAAU,QAA8B,mBAAgB;AAG/E,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAEA,OAAO,SAASC,mBAAmBC,KAA8B,EAAEC,OAAO,KAAK;IAC7E,OAAOR,iCAELO,UAAU,aAAaJ,eAAe,CAACI,MAAM,EAC7CC;AAEJ;AAIA;;;;CAIC,GACD,OAAO,MAAMC,WAAW;QAAC,EACvBC,SAAS,EACTF,IAAI,EACJG,YAAY,MAAM,EAClBC,YAAY,IAAI,EAChBC,SAAS,KAAK,EAEA,WADXC;QALHJ;QACAF;QACAG;QACAC;QACAC;;IAGA,MAAM,EAAEN,QAAQ,MAAM,EAAE,GAAGN;IAE3B,qBACE,KAACC;QACCS,WAAWA;QACXC,WAAWA;QACXC,QAAQA;QACRH,WAAWV,WAAWU,WAAWJ,mBAAmBC,OAAOC;OACvDM;AAGV,EAAE"}
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import type { HasComponent, HasRootRef } from '../../types';
3
+ export declare function weightClassNames(weight: '1' | '2' | '3' | undefined, useAccentWeight?: boolean): string;
3
4
  export interface HasCaps {
4
5
  /**
5
6
  * Отображение текста в верхнем регистре.
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/Typography.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU5D,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,eACf,SAAQ,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAC1C,YAAY,EACZ,UAAU,CAAC,WAAW,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,UAAU,GAAI,yEAOxB,eAAe,KAAG,KAAK,CAAC,SAY1B,CAAC"}
1
+ {"version":3,"file":"Typography.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/Typography.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU5D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,EAAE,eAAe,UAAQ,UAM5F;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,eACf,SAAQ,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAC1C,YAAY,EACZ,UAAU,CAAC,WAAW,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,UAAU,GAAI,yEAOxB,eAAe,KAAG,KAAK,CAAC,SAW1B,CAAC"}
@@ -9,6 +9,12 @@ const stylesWeight = {
9
9
  '2': "vkuiTypography__weight2",
10
10
  '3': "vkuiTypography__weight3"
11
11
  };
12
+ export function weightClassNames(weight, useAccentWeight = false) {
13
+ if (!weight) {
14
+ return '';
15
+ }
16
+ return classNames(stylesWeight[weight], useAccentWeight && "vkuiTypography__accent");
17
+ }
12
18
  export const Typography = (_param)=>{
13
19
  var { weight, useAccentWeight, Component = 'span', normalize, inline } = _param, restProps = _object_without_properties(_param, [
14
20
  "weight",
@@ -19,7 +25,7 @@ export const Typography = (_param)=>{
19
25
  ]);
20
26
  return /*#__PURE__*/ _jsx(RootComponent, _object_spread({
21
27
  Component: Component,
22
- baseClassName: classNames("vkuiTypography__host", normalize && "vkuiTypography__normalize", inline && "vkuiTypography__inline", weight && stylesWeight[weight], weight && useAccentWeight && "vkuiTypography__accent")
28
+ baseClassName: classNames("vkuiTypography__host", normalize && "vkuiTypography__normalize", inline && "vkuiTypography__inline", weightClassNames(weight, useAccentWeight))
23
29
  }, restProps));
24
30
  };
25
31
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HasComponent, HasRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Typography.module.css';\n\nconst stylesWeight = {\n '1': styles.weight1,\n '2': styles.weight2,\n '3': styles.weight3,\n};\n\nexport interface HasCaps {\n /**\n * Отображение текста в верхнем регистре.\n */\n caps?: boolean;\n}\n\nexport interface TypographyProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasComponent,\n HasRootRef<HTMLElement> {\n /**\n * Задаёт начертание шрифта, отличное от стандартного.\n */\n weight?: '1' | '2' | '3';\n /**\n * Включает акцентный тип начертания шрифта.\n * Используются токены fontWeightAccent[1, 2, 3]\n * Используется только вместе с `weight`.\n */\n useAccentWeight?: boolean;\n /**\n * Убирает внешние отступы.\n */\n normalize?: boolean;\n /**\n * Делает блок инлайновым.\n */\n inline?: boolean;\n}\n\nexport const Typography = ({\n weight,\n useAccentWeight,\n Component = 'span',\n normalize,\n inline,\n ...restProps\n}: TypographyProps): React.ReactNode => (\n <RootComponent\n Component={Component}\n baseClassName={classNames(\n styles.host,\n normalize && styles.normalize,\n inline && styles.inline,\n weight && stylesWeight[weight],\n weight && useAccentWeight && styles.accent,\n )}\n {...restProps}\n />\n);\n"],"names":["React","classNames","RootComponent","stylesWeight","Typography","weight","useAccentWeight","Component","normalize","inline","restProps","baseClassName"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,oCAAiC;AAG/D,MAAMC,eAAe;IACnB,GAAG;IACH,GAAG;IACH,GAAG;AACL;AAiCA,OAAO,MAAMC,aAAa;QAAC,EACzBC,MAAM,EACNC,eAAe,EACfC,YAAY,MAAM,EAClBC,SAAS,EACTC,MAAM,EAEU,WADbC;QALHL;QACAC;QACAC;QACAC;QACAC;;yBAGA,KAACP;QACCK,WAAWA;QACXI,eAAeV,mCAEbO,0CACAC,oCACAJ,UAAUF,YAAY,CAACE,OAAO,EAC9BA,UAAUC;OAERI;EAEN"}
1
+ {"version":3,"sources":["../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HasComponent, HasRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Typography.module.css';\n\nconst stylesWeight = {\n '1': styles.weight1,\n '2': styles.weight2,\n '3': styles.weight3,\n};\n\nexport function weightClassNames(weight: '1' | '2' | '3' | undefined, useAccentWeight = false) {\n if (!weight) {\n return '';\n }\n\n return classNames(stylesWeight[weight], useAccentWeight && styles.accent);\n}\n\nexport interface HasCaps {\n /**\n * Отображение текста в верхнем регистре.\n */\n caps?: boolean;\n}\n\nexport interface TypographyProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasComponent,\n HasRootRef<HTMLElement> {\n /**\n * Задаёт начертание шрифта, отличное от стандартного.\n */\n weight?: '1' | '2' | '3';\n /**\n * Включает акцентный тип начертания шрифта.\n * Используются токены fontWeightAccent[1, 2, 3]\n * Используется только вместе с `weight`.\n */\n useAccentWeight?: boolean;\n /**\n * Убирает внешние отступы.\n */\n normalize?: boolean;\n /**\n * Делает блок инлайновым.\n */\n inline?: boolean;\n}\n\nexport const Typography = ({\n weight,\n useAccentWeight,\n Component = 'span',\n normalize,\n inline,\n ...restProps\n}: TypographyProps): React.ReactNode => (\n <RootComponent\n Component={Component}\n baseClassName={classNames(\n styles.host,\n normalize && styles.normalize,\n inline && styles.inline,\n weightClassNames(weight, useAccentWeight),\n )}\n {...restProps}\n />\n);\n"],"names":["React","classNames","RootComponent","stylesWeight","weightClassNames","weight","useAccentWeight","Typography","Component","normalize","inline","restProps","baseClassName"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,oCAAiC;AAG/D,MAAMC,eAAe;IACnB,GAAG;IACH,GAAG;IACH,GAAG;AACL;AAEA,OAAO,SAASC,iBAAiBC,MAAmC,EAAEC,kBAAkB,KAAK;IAC3F,IAAI,CAACD,QAAQ;QACX,OAAO;IACT;IAEA,OAAOJ,WAAWE,YAAY,CAACE,OAAO,EAAEC;AAC1C;AAiCA,OAAO,MAAMC,aAAa;QAAC,EACzBF,MAAM,EACNC,eAAe,EACfE,YAAY,MAAM,EAClBC,SAAS,EACTC,MAAM,EAEU,WADbC;QALHN;QACAC;QACAE;QACAC;QACAC;;yBAGA,KAACR;QACCM,WAAWA;QACXI,eAAeX,mCAEbQ,0CACAC,oCACAN,iBAAiBC,QAAQC;OAEvBK;EAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../src/components/View/View.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAgB7D,UAAU,OAAO;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,UAAU,YAAY;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,eAAO,IAAI,YAAY,EAAE,YAAiB,CAAC;AAE3C,MAAM,WAAW,SAAU,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAAE,UAAU;IACnF;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,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;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,SAAS,CAAC;IACpE;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;CAC7D;AAID;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,0KAWlB,SAAS,KAAG,KAAK,CAAC,SAucpB,CAAC"}
1
+ {"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../src/components/View/View.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAgB7D,UAAU,OAAO;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,UAAU,YAAY;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,eAAO,IAAI,YAAY,EAAE,YAAiB,CAAC;AAE3C,MAAM,WAAW,SAAU,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAAE,UAAU;IACnF;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,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;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,SAAS,CAAC;IACpE;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;CAC7D;AAID;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,0KAWlB,SAAS,KAAG,KAAK,CAAC,SAucpB,CAAC"}
@@ -7,6 +7,7 @@ import * as React from "react";
7
7
  import { classNames } from "@vkontakte/vkjs";
8
8
  import { usePlatform } from "../../hooks/usePlatform.js";
9
9
  import { usePrevious } from "../../hooks/usePrevious.js";
10
+ import { millisecondsInSecond } from "../../lib/date.js";
10
11
  import { blurActiveElement, useDOM } from "../../lib/dom.js";
11
12
  import { getNavId } from "../../lib/getNavId.js";
12
13
  import { warnOnce } from "../../lib/warnOnce.js";
@@ -201,7 +202,7 @@ const warn = warnOnce('View');
201
202
  const handleTouchEndForIOSSwipeBackSimulation = (event)=>{
202
203
  swipeBackPrevented.current = false;
203
204
  if (swipingBack) {
204
- const speed = swipeBackShift / event.duration * 1000;
205
+ const speed = swipeBackShift / event.duration * millisecondsInSecond;
205
206
  var _window_innerWidth;
206
207
  if (swipeBackShift === 0) {
207
208
  onSwipeBackCancel();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/View/View.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { blurActiveElement, useDOM } from '../../lib/dom';\nimport { getNavId, type NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavViewIdContext } from '../NavIdContext/NavIdContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { NavTransitionDirectionProvider } from '../NavTransitionDirectionContext/NavTransitionDirectionContext';\nimport { useSplitCol } from '../SplitCol/SplitColContext';\nimport { type CustomTouchEvent, Touch } from '../Touch/Touch';\nimport { useLayoutEffectCall } from './useLayoutEffectCall';\nimport {\n getSwipeBackPredicates,\n hasHorizontalScrollableElementWithScrolledToLeft,\n swipeBackExcluded,\n} from './utils';\nimport styles from './View.module.css';\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps extends HTMLAttributesWithRootRef<HTMLElement>, NavIdProps {\n /**\n * `id` активной панели.\n */\n activePanel: string;\n /**\n * Обработчик, который вызывается при завершении анимации смены активной панели.\n */\n onTransition?: (params: { isBack: boolean; from: string; to: string }) => void;\n /**\n * Обработчик свайпа назад.\n */\n onSwipeBack?: () => void;\n /**\n * Обработчик начала анимации свайпа назад.\n *\n * Чтобы остановить свайп назад, возвращайте `\"prevent\"`.\n */\n onSwipeBackStart?: (activePanel: string | null) => void | 'prevent';\n /**\n * Обработчик завершения анимации отмененного пользователем свайпа.\n */\n onSwipeBackCancel?: () => void;\n /**\n * Массив из id панелей в порядке открытия.\n */\n history?: string[];\n /**\n * Коллекция Panel. У каждой Panel должен быть уникальный `id`.\n */\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\nconst warn = warnOnce('View');\n\n/**\n * @see https://vkui.io/components/view\n */\nexport const View = ({\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n className,\n ...restProps\n}: ViewProps): React.ReactNode => {\n const id = getNavId({ nav, id: restProps.id });\n const scrolls = React.useRef(scrollsCache[id as string] || {});\n const layoutEffectCall = useLayoutEffectCall();\n\n React.useEffect(() => () => {\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(activePanelProp);\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const swipeBackPrevented = React.useRef<boolean>(false);\n const [swipingBack, setSwipingBack] = React.useState<boolean | undefined>(undefined);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<string | null>(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<string | null>(null);\n const [swipeBackResult, setSwipeBackResult] = React.useState<'success' | 'fail' | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackShift = usePrevious(swipeBackShift);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (React.Children.toArray(children) as Array<React.ReactElement<NavIdProps>>).filter(\n (panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n },\n );\n\n const disableAnimation =\n !configProvider.transitionMotionEnabled || !splitCol.animate || platform === 'vkcom';\n const iOSSwipeBackSimulationEnabled =\n !disableAnimation && platform === 'ios' && configProvider.isWebView && Boolean(onSwipeBack);\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(isBackTransition);\n\n layoutEffectCall(() => {\n scroll?.scrollTo(0, isBackTransition ? scrolls.current[activePanelProp] : 0);\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n });\n },\n [activePanelProp, layoutEffectCall, onTransition, scroll],\n );\n\n const handleAnimatedTargetAnimationEnd = () => {\n if (prevPanel !== null) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n };\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(() => {\n switch (swipeBackResult) {\n case 'fail':\n onSwipeBackCancel();\n break;\n case 'success':\n onSwipeBackSuccess();\n }\n }, [onSwipeBackCancel, onSwipeBackSuccess, swipeBackResult]);\n\n const handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext = (event: CustomTouchEvent) => {\n if (browserSwipe) {\n return;\n }\n const { swipeBackTriggered, viewportStartEdgeTouched, viewportEndEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, window!.innerWidth);\n\n if ((viewportStartEdgeTouched || viewportEndEdgeTouched) && swipeBackTriggered) {\n setBrowserSwipe(true);\n }\n };\n\n const handleTouchMoveXForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n if (swipeBackPrevented.current || swipeBackExcluded(event)) {\n return;\n }\n\n const { swipedToOpposite, swipeBackTriggered, viewportStartEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, window!.innerWidth);\n\n if (animated && swipeBackTriggered) {\n return;\n }\n\n if (!swipingBack && history && history.length > 1) {\n if (swipedToOpposite) {\n swipeBackPrevented.current = true;\n return;\n }\n\n if (!swipeBackTriggered) {\n return;\n }\n\n if (\n !viewportStartEdgeTouched &&\n hasHorizontalScrollableElementWithScrolledToLeft(event.originalEvent.target as HTMLElement)\n ) {\n swipeBackPrevented.current = true;\n return;\n }\n // Начался свайп назад\n if (onSwipeBackStart) {\n const payload = onSwipeBackStart(activePanel);\n if (payload === 'prevent') {\n swipeBackPrevented.current = true;\n return;\n }\n }\n\n if (activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n blurActiveElement(document);\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(event.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n\n if (swipingBack) {\n if (event.shiftX < 0) {\n setSwipeBackShift(0);\n } else if (event.shiftX > window!.innerWidth - swipeBackStartX) {\n setSwipeBackShift(window!.innerWidth);\n } else {\n setSwipeBackShift(event.shiftX);\n }\n }\n };\n\n const handleTouchEndForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n swipeBackPrevented.current = false;\n if (swipingBack) {\n const speed = (swipeBackShift / event.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window!.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (speed > 250 || swipeBackShift >= window!.innerWidth / 2) {\n setSwipeBackResult('success');\n } else {\n setSwipeBackResult('fail');\n }\n }\n };\n\n const calcPanelSwipeStyles = (isPrev: boolean, isNext: boolean): React.CSSProperties => {\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n if (isNext) {\n return window\n ? {\n transform: `translate3d(${-50 + (swipeBackShift * 100) / window.innerWidth / 2}%, 0, 0)`,\n }\n : {};\n }\n\n if (isPrev) {\n return { transform: `translate3d(${swipeBackShift}px, 0, 0)` };\n }\n\n return {};\n };\n\n const calcPanelSwipeBackOverlayStyles = (isNext: boolean): React.CSSProperties => {\n if (!window || !isNext) {\n return {};\n }\n const opacityOnSwipeEnd =\n swipeBackResult === 'success' ? 0 : swipeBackResult === 'fail' ? 1 : null;\n\n return {\n display: 'block',\n opacity:\n opacityOnSwipeEnd === null ? 1 - swipeBackShift / window.innerWidth : opacityOnSwipeEnd,\n };\n };\n\n const handleSwipeBackTargetTransitionEnd = (event: React.TransitionEvent<HTMLDivElement>) => {\n if (event.propertyName.includes('transform')) {\n swipingBackTransitionEndHandler();\n }\n };\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (\n React.Children.toArray(children) as Array<React.ReactElement<NavIdProps>>\n )\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll({ compensateKeyboardHeight: false }).y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevActivePanel && prevActivePanel !== activePanelProp && prevSwipingBack) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n setIsBack(true);\n\n layoutEffectCall(() => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n });\n }\n\n // Началась анимация завершения свайпа назад.\n // см. `onTransitionEnd()`\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n layoutEffectCall,\n ]);\n\n React.useEffect(\n function restoreScrollPositionWhenSwipeBackIsCancelled() {\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n const swipeBackCancelledInTheMiddleOfAction =\n prevSwipeBackResult === 'fail' && !swipeBackResult;\n const swipeBackCancelledByMovingPanelBackToInitialPoint =\n prevSwipingBack && !swipingBack && prevSwipeBackShift === 0;\n\n if (\n (swipeBackCancelledInTheMiddleOfAction ||\n swipeBackCancelledByMovingPanelBackToInitialPoint) &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n },\n [\n prevSwipeBackResult,\n swipeBackResult,\n prevSwipingBack,\n swipingBack,\n prevSwipeBackShift,\n activePanel,\n scroll,\n ],\n );\n\n return (\n <NavViewIdContext.Provider value={id}>\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles.host,\n platform === 'ios' && classNames(styles.ios, 'vkuiInternalView--ios'),\n !disableAnimation && animated && styles.animated,\n !disableAnimation && swipingBack && styles.swipingBack,\n disableAnimation && styles.noMotion,\n className,\n )}\n onMoveX={\n iOSSwipeBackSimulationEnabled\n ? handleTouchMoveXForIOSSwipeBackSimulation\n : platform === 'ios'\n ? handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext\n : undefined\n }\n onEnd={iOSSwipeBackSimulationEnabled ? handleTouchEndForIOSSwipeBackSimulation : undefined}\n >\n <div className={styles.panels}>\n {panels.map((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n const isPanelActive = panelId === activePanel;\n const isPanelPrev = panelId === prevPanel;\n const isPanelNext = panelId === nextPanel;\n const isAnimatedTarget = animated && (isBack ? isPanelPrev : isPanelNext);\n\n const isSwipeBackPrev = panelId === swipeBackPrevPanel;\n const isSwipeBackNext = panelId === swipeBackNextPanel;\n const isSwipeBackTarget = swipeBackResult && isSwipeBackPrev;\n\n let scrollCompensateStyle: React.CSSProperties | undefined = undefined;\n\n if (isPanelPrev || (isPanelNext && isBack) || isSwipeBackPrev || isSwipeBackNext) {\n const marginTop = scrolls.current[panelId];\n if (marginTop !== undefined) {\n scrollCompensateStyle = { marginTop: -1 * marginTop };\n }\n }\n\n return (\n <div\n className={classNames(\n styles.panel,\n\n isPanelActive && styles.panelActive,\n isPanelPrev && styles.panelPrev,\n isPanelNext && styles.panelNext,\n\n isSwipeBackPrev && styles.panelSwipeBackPrev,\n isSwipeBackNext && styles.panelSwipeBackNext,\n swipeBackResult === 'success' && styles.panelSwipeBackSuccess,\n swipeBackResult === 'fail' && styles.panelSwipeBackFailed,\n )}\n onTransitionEnd={isSwipeBackTarget ? handleSwipeBackTargetTransitionEnd : undefined}\n onAnimationEnd={isAnimatedTarget ? handleAnimatedTargetAnimationEnd : undefined}\n ref={(el) => {\n panelId !== undefined && (panelNodes.current[panelId] = el);\n }}\n style={calcPanelSwipeStyles(isSwipeBackPrev, isSwipeBackNext)}\n key={panelId}\n >\n {platform === 'ios' && (\n <div\n className={styles.panelOverlay}\n style={calcPanelSwipeBackOverlayStyles(isSwipeBackNext)}\n />\n )}\n <div className={styles.panelIn} style={scrollCompensateStyle}>\n <NavTransitionDirectionProvider isBack={swipingBack || isBack}>\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </NavTransitionDirectionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n </NavViewIdContext.Provider>\n );\n};\n"],"names":["React","classNames","usePlatform","usePrevious","blurActiveElement","useDOM","getNavId","warnOnce","useScroll","useConfigProvider","NavViewIdContext","NavTransitionProvider","NavTransitionDirectionProvider","useSplitCol","Touch","useLayoutEffectCall","getSwipeBackPredicates","hasHorizontalScrollableElementWithScrolledToLeft","swipeBackExcluded","scrollsCache","warn","View","activePanel","activePanelProp","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancel","onSwipeBackCancelProp","children","className","restProps","id","scrolls","useRef","layoutEffectCall","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","animated","setAnimated","useState","visiblePanels","setVisiblePanels","setActivePanel","isBack","setIsBack","undefined","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipeBackPrevented","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackShift","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","iOSSwipeBackSimulationEnabled","isWebView","Boolean","flushTransition","useCallback","isBackTransition","scrollTo","from","to","handleAnimatedTargetAnimationEnd","onSwipeBackSuccess","swipingBackTransitionEndHandler","handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext","event","swipeBackTriggered","viewportStartEdgeTouched","viewportEndEdgeTouched","startX","shiftX","innerWidth","handleTouchMoveXForIOSSwipeBackSimulation","swipedToOpposite","length","originalEvent","target","payload","getScroll","y","slice","handleTouchEndForIOSSwipeBackSimulation","speed","duration","calcPanelSwipeStyles","isPrev","isNext","transform","calcPanelSwipeBackOverlayStyles","opacityOnSwipeEnd","display","opacity","handleSwipeBackTargetTransitionEnd","propertyName","firstLayerId","map","find","compensateKeyboardHeight","restoreScrollPositionWhenSwipeBackIsCancelled","swipeBackCancelledInTheMiddleOfAction","swipeBackCancelledByMovingPanelBackToInitialPoint","Provider","value","Component","onMoveX","onEnd","div","isPanelActive","isPanelPrev","isPanelNext","isAnimatedTarget","isSwipeBackPrev","isSwipeBackNext","isSwipeBackTarget","scrollCompensateStyle","marginTop","onTransitionEnd","onAnimationEnd","ref","el","style","entering"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/View/View.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { millisecondsInSecond } from '../../lib/date';\nimport { blurActiveElement, useDOM } from '../../lib/dom';\nimport { getNavId, type NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavViewIdContext } from '../NavIdContext/NavIdContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { NavTransitionDirectionProvider } from '../NavTransitionDirectionContext/NavTransitionDirectionContext';\nimport { useSplitCol } from '../SplitCol/SplitColContext';\nimport { type CustomTouchEvent, Touch } from '../Touch/Touch';\nimport { useLayoutEffectCall } from './useLayoutEffectCall';\nimport {\n getSwipeBackPredicates,\n hasHorizontalScrollableElementWithScrolledToLeft,\n swipeBackExcluded,\n} from './utils';\nimport styles from './View.module.css';\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps extends HTMLAttributesWithRootRef<HTMLElement>, NavIdProps {\n /**\n * `id` активной панели.\n */\n activePanel: string;\n /**\n * Обработчик, который вызывается при завершении анимации смены активной панели.\n */\n onTransition?: (params: { isBack: boolean; from: string; to: string }) => void;\n /**\n * Обработчик свайпа назад.\n */\n onSwipeBack?: () => void;\n /**\n * Обработчик начала анимации свайпа назад.\n *\n * Чтобы остановить свайп назад, возвращайте `\"prevent\"`.\n */\n onSwipeBackStart?: (activePanel: string | null) => void | 'prevent';\n /**\n * Обработчик завершения анимации отмененного пользователем свайпа.\n */\n onSwipeBackCancel?: () => void;\n /**\n * Массив из id панелей в порядке открытия.\n */\n history?: string[];\n /**\n * Коллекция Panel. У каждой Panel должен быть уникальный `id`.\n */\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\nconst warn = warnOnce('View');\n\n/**\n * @see https://vkui.io/components/view\n */\nexport const View = ({\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n className,\n ...restProps\n}: ViewProps): React.ReactNode => {\n const id = getNavId({ nav, id: restProps.id });\n const scrolls = React.useRef(scrollsCache[id as string] || {});\n const layoutEffectCall = useLayoutEffectCall();\n\n React.useEffect(() => () => {\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(activePanelProp);\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const swipeBackPrevented = React.useRef<boolean>(false);\n const [swipingBack, setSwipingBack] = React.useState<boolean | undefined>(undefined);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<string | null>(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<string | null>(null);\n const [swipeBackResult, setSwipeBackResult] = React.useState<'success' | 'fail' | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackShift = usePrevious(swipeBackShift);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (React.Children.toArray(children) as Array<React.ReactElement<NavIdProps>>).filter(\n (panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n },\n );\n\n const disableAnimation =\n !configProvider.transitionMotionEnabled || !splitCol.animate || platform === 'vkcom';\n const iOSSwipeBackSimulationEnabled =\n !disableAnimation && platform === 'ios' && configProvider.isWebView && Boolean(onSwipeBack);\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(isBackTransition);\n\n layoutEffectCall(() => {\n scroll?.scrollTo(0, isBackTransition ? scrolls.current[activePanelProp] : 0);\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n });\n },\n [activePanelProp, layoutEffectCall, onTransition, scroll],\n );\n\n const handleAnimatedTargetAnimationEnd = () => {\n if (prevPanel !== null) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n };\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(() => {\n switch (swipeBackResult) {\n case 'fail':\n onSwipeBackCancel();\n break;\n case 'success':\n onSwipeBackSuccess();\n }\n }, [onSwipeBackCancel, onSwipeBackSuccess, swipeBackResult]);\n\n const handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext = (event: CustomTouchEvent) => {\n if (browserSwipe) {\n return;\n }\n const { swipeBackTriggered, viewportStartEdgeTouched, viewportEndEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, window!.innerWidth);\n\n if ((viewportStartEdgeTouched || viewportEndEdgeTouched) && swipeBackTriggered) {\n setBrowserSwipe(true);\n }\n };\n\n const handleTouchMoveXForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n if (swipeBackPrevented.current || swipeBackExcluded(event)) {\n return;\n }\n\n const { swipedToOpposite, swipeBackTriggered, viewportStartEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, window!.innerWidth);\n\n if (animated && swipeBackTriggered) {\n return;\n }\n\n if (!swipingBack && history && history.length > 1) {\n if (swipedToOpposite) {\n swipeBackPrevented.current = true;\n return;\n }\n\n if (!swipeBackTriggered) {\n return;\n }\n\n if (\n !viewportStartEdgeTouched &&\n hasHorizontalScrollableElementWithScrolledToLeft(event.originalEvent.target as HTMLElement)\n ) {\n swipeBackPrevented.current = true;\n return;\n }\n // Начался свайп назад\n if (onSwipeBackStart) {\n const payload = onSwipeBackStart(activePanel);\n if (payload === 'prevent') {\n swipeBackPrevented.current = true;\n return;\n }\n }\n\n if (activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n blurActiveElement(document);\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(event.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n\n if (swipingBack) {\n if (event.shiftX < 0) {\n setSwipeBackShift(0);\n } else if (event.shiftX > window!.innerWidth - swipeBackStartX) {\n setSwipeBackShift(window!.innerWidth);\n } else {\n setSwipeBackShift(event.shiftX);\n }\n }\n };\n\n const handleTouchEndForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n swipeBackPrevented.current = false;\n if (swipingBack) {\n const speed = (swipeBackShift / event.duration) * millisecondsInSecond;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window!.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (speed > 250 || swipeBackShift >= window!.innerWidth / 2) {\n setSwipeBackResult('success');\n } else {\n setSwipeBackResult('fail');\n }\n }\n };\n\n const calcPanelSwipeStyles = (isPrev: boolean, isNext: boolean): React.CSSProperties => {\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n if (isNext) {\n return window\n ? {\n transform: `translate3d(${-50 + (swipeBackShift * 100) / window.innerWidth / 2}%, 0, 0)`,\n }\n : {};\n }\n\n if (isPrev) {\n return { transform: `translate3d(${swipeBackShift}px, 0, 0)` };\n }\n\n return {};\n };\n\n const calcPanelSwipeBackOverlayStyles = (isNext: boolean): React.CSSProperties => {\n if (!window || !isNext) {\n return {};\n }\n const opacityOnSwipeEnd =\n swipeBackResult === 'success' ? 0 : swipeBackResult === 'fail' ? 1 : null;\n\n return {\n display: 'block',\n opacity:\n opacityOnSwipeEnd === null ? 1 - swipeBackShift / window.innerWidth : opacityOnSwipeEnd,\n };\n };\n\n const handleSwipeBackTargetTransitionEnd = (event: React.TransitionEvent<HTMLDivElement>) => {\n if (event.propertyName.includes('transform')) {\n swipingBackTransitionEndHandler();\n }\n };\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (\n React.Children.toArray(children) as Array<React.ReactElement<NavIdProps>>\n )\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll({ compensateKeyboardHeight: false }).y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevActivePanel && prevActivePanel !== activePanelProp && prevSwipingBack) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n setIsBack(true);\n\n layoutEffectCall(() => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n });\n }\n\n // Началась анимация завершения свайпа назад.\n // см. `onTransitionEnd()`\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n layoutEffectCall,\n ]);\n\n React.useEffect(\n function restoreScrollPositionWhenSwipeBackIsCancelled() {\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n const swipeBackCancelledInTheMiddleOfAction =\n prevSwipeBackResult === 'fail' && !swipeBackResult;\n const swipeBackCancelledByMovingPanelBackToInitialPoint =\n prevSwipingBack && !swipingBack && prevSwipeBackShift === 0;\n\n if (\n (swipeBackCancelledInTheMiddleOfAction ||\n swipeBackCancelledByMovingPanelBackToInitialPoint) &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n },\n [\n prevSwipeBackResult,\n swipeBackResult,\n prevSwipingBack,\n swipingBack,\n prevSwipeBackShift,\n activePanel,\n scroll,\n ],\n );\n\n return (\n <NavViewIdContext.Provider value={id}>\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles.host,\n platform === 'ios' && classNames(styles.ios, 'vkuiInternalView--ios'),\n !disableAnimation && animated && styles.animated,\n !disableAnimation && swipingBack && styles.swipingBack,\n disableAnimation && styles.noMotion,\n className,\n )}\n onMoveX={\n iOSSwipeBackSimulationEnabled\n ? handleTouchMoveXForIOSSwipeBackSimulation\n : platform === 'ios'\n ? handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext\n : undefined\n }\n onEnd={iOSSwipeBackSimulationEnabled ? handleTouchEndForIOSSwipeBackSimulation : undefined}\n >\n <div className={styles.panels}>\n {panels.map((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n const isPanelActive = panelId === activePanel;\n const isPanelPrev = panelId === prevPanel;\n const isPanelNext = panelId === nextPanel;\n const isAnimatedTarget = animated && (isBack ? isPanelPrev : isPanelNext);\n\n const isSwipeBackPrev = panelId === swipeBackPrevPanel;\n const isSwipeBackNext = panelId === swipeBackNextPanel;\n const isSwipeBackTarget = swipeBackResult && isSwipeBackPrev;\n\n let scrollCompensateStyle: React.CSSProperties | undefined = undefined;\n\n if (isPanelPrev || (isPanelNext && isBack) || isSwipeBackPrev || isSwipeBackNext) {\n const marginTop = scrolls.current[panelId];\n if (marginTop !== undefined) {\n scrollCompensateStyle = { marginTop: -1 * marginTop };\n }\n }\n\n return (\n <div\n className={classNames(\n styles.panel,\n\n isPanelActive && styles.panelActive,\n isPanelPrev && styles.panelPrev,\n isPanelNext && styles.panelNext,\n\n isSwipeBackPrev && styles.panelSwipeBackPrev,\n isSwipeBackNext && styles.panelSwipeBackNext,\n swipeBackResult === 'success' && styles.panelSwipeBackSuccess,\n swipeBackResult === 'fail' && styles.panelSwipeBackFailed,\n )}\n onTransitionEnd={isSwipeBackTarget ? handleSwipeBackTargetTransitionEnd : undefined}\n onAnimationEnd={isAnimatedTarget ? handleAnimatedTargetAnimationEnd : undefined}\n ref={(el) => {\n panelId !== undefined && (panelNodes.current[panelId] = el);\n }}\n style={calcPanelSwipeStyles(isSwipeBackPrev, isSwipeBackNext)}\n key={panelId}\n >\n {platform === 'ios' && (\n <div\n className={styles.panelOverlay}\n style={calcPanelSwipeBackOverlayStyles(isSwipeBackNext)}\n />\n )}\n <div className={styles.panelIn} style={scrollCompensateStyle}>\n <NavTransitionDirectionProvider isBack={swipingBack || isBack}>\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </NavTransitionDirectionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n </NavViewIdContext.Provider>\n );\n};\n"],"names":["React","classNames","usePlatform","usePrevious","millisecondsInSecond","blurActiveElement","useDOM","getNavId","warnOnce","useScroll","useConfigProvider","NavViewIdContext","NavTransitionProvider","NavTransitionDirectionProvider","useSplitCol","Touch","useLayoutEffectCall","getSwipeBackPredicates","hasHorizontalScrollableElementWithScrolledToLeft","swipeBackExcluded","scrollsCache","warn","View","activePanel","activePanelProp","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancel","onSwipeBackCancelProp","children","className","restProps","id","scrolls","useRef","layoutEffectCall","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","animated","setAnimated","useState","visiblePanels","setVisiblePanels","setActivePanel","isBack","setIsBack","undefined","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipeBackPrevented","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackShift","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","iOSSwipeBackSimulationEnabled","isWebView","Boolean","flushTransition","useCallback","isBackTransition","scrollTo","from","to","handleAnimatedTargetAnimationEnd","onSwipeBackSuccess","swipingBackTransitionEndHandler","handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext","event","swipeBackTriggered","viewportStartEdgeTouched","viewportEndEdgeTouched","startX","shiftX","innerWidth","handleTouchMoveXForIOSSwipeBackSimulation","swipedToOpposite","length","originalEvent","target","payload","getScroll","y","slice","handleTouchEndForIOSSwipeBackSimulation","speed","duration","calcPanelSwipeStyles","isPrev","isNext","transform","calcPanelSwipeBackOverlayStyles","opacityOnSwipeEnd","display","opacity","handleSwipeBackTargetTransitionEnd","propertyName","firstLayerId","map","find","compensateKeyboardHeight","restoreScrollPositionWhenSwipeBackIsCancelled","swipeBackCancelledInTheMiddleOfAction","swipeBackCancelledByMovingPanelBackToInitialPoint","Provider","value","Component","onMoveX","onEnd","div","isPanelActive","isPanelPrev","isPanelNext","isAnimatedTarget","isSwipeBackPrev","isSwipeBackNext","isSwipeBackTarget","scrollCompensateStyle","marginTop","onTransitionEnd","onAnimationEnd","ref","el","style","entering"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewInfinite.d.ts","sourceRoot":"","sources":["../../../src/components/View/ViewInfinite.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,yCAAyC,CAAC;AAIjD,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAWzF,UAAU,OAAO;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC5C;AAED,UAAU,YAAY;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAID,eAAO,IAAI,YAAY,EAAE,YAAiB,CAAC;AAG3C,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,iBACf,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAC5C,WAAW,EACX,UAAU;IACZ;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,SAAS,CAAC;IACpE;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACpD;;OAEG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC;;OAEG;IACH,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAChD;;OAEG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAGD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IAE3C,YAAY,EAAE,OAAO,CAAC;CACvB;AAukBD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAYpD,CAAC"}
1
+ {"version":3,"file":"ViewInfinite.d.ts","sourceRoot":"","sources":["../../../src/components/View/ViewInfinite.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,yCAAyC,CAAC;AAIjD,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAWzF,UAAU,OAAO;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC5C;AAED,UAAU,YAAY;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAID,eAAO,IAAI,YAAY,EAAE,YAAiB,CAAC;AAG3C,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,iBACf,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAC5C,WAAW,EACX,UAAU;IACZ;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,SAAS,CAAC;IACpE;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACpD;;OAEG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC;;OAEG;IACH,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAChD;;OAEG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAGD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IAE3C,YAAY,EAAE,OAAO,CAAC;CACvB;AAukBD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAYpD,CAAC"}
@@ -8,6 +8,7 @@ import * as React from "react";
8
8
  import { classNames, noop } from "@vkontakte/vkjs";
9
9
  import { withContext } from "../../hoc/withContext.js";
10
10
  import { withPlatform } from "../../hoc/withPlatform.js";
11
+ import { millisecondsInSecond } from "../../lib/date.js";
11
12
  import { canUseDOM, withDOM } from "../../lib/dom.js";
12
13
  import { getNavId } from "../../lib/getNavId.js";
13
14
  import { warnOnce } from "../../lib/warnOnce.js";
@@ -438,7 +439,7 @@ var _React_Component;
438
439
  }), _define_property(this, "handleTouchEndForIOSSwipeBackSimulation", (event)=>{
439
440
  this.swipeBackPrevented = false;
440
441
  if (this.state.swipingBack && this.window) {
441
- const speed = this.state.swipeBackShift / event.duration * 1000;
442
+ const speed = this.state.swipeBackShift / event.duration * millisecondsInSecond;
442
443
  if (this.state.swipeBackShift === 0) {
443
444
  this.onSwipeBackCancel();
444
445
  } else if (this.state.swipeBackShift >= this.window.innerWidth) {