@vkontakte/vkui 5.3.1 → 5.4.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 (795) hide show
  1. package/dist/cjs/components/Accordion/Accordion.d.ts +2 -2
  2. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  3. package/dist/cjs/components/Accordion/AccordionSummary.d.ts +1 -1
  4. package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
  5. package/dist/cjs/components/ActionSheet/types.d.ts +1 -1
  6. package/dist/cjs/components/ActionSheet/types.js.map +1 -1
  7. package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
  8. package/dist/cjs/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +4 -4
  9. package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
  10. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  11. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  12. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  13. package/dist/cjs/components/AppRoot/AppRootPortal.d.ts +3 -3
  14. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  15. package/dist/cjs/components/AppRoot/ScrollContext.d.ts +2 -2
  16. package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
  17. package/dist/cjs/components/Button/Button.d.ts +1 -0
  18. package/dist/cjs/components/Button/Button.js +3 -3
  19. package/dist/cjs/components/Button/Button.js.map +1 -1
  20. package/dist/cjs/components/Card/Card.js +1 -3
  21. package/dist/cjs/components/Card/Card.js.map +1 -1
  22. package/dist/cjs/components/CardGrid/CardGrid.js +4 -4
  23. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  24. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
  25. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +10 -6
  26. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  27. package/dist/cjs/components/Checkbox/Checkbox.d.ts +2 -1
  28. package/dist/cjs/components/Checkbox/Checkbox.js +12 -8
  29. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  30. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  31. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +3 -2
  32. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  33. package/dist/cjs/components/Counter/Counter.js +3 -5
  34. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  35. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -0
  36. package/dist/cjs/components/CustomSelect/CustomSelect.js +1 -1
  37. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  38. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
  39. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  40. package/dist/cjs/components/Epic/ScrollSaver.d.ts +3 -3
  41. package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
  42. package/dist/cjs/components/File/File.js +4 -3
  43. package/dist/cjs/components/File/File.js.map +1 -1
  44. package/dist/cjs/components/FixedLayout/FixedLayout.js +1 -1
  45. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  46. package/dist/cjs/components/FocusVisible/FocusVisible.d.ts +4 -2
  47. package/dist/cjs/components/FocusVisible/FocusVisible.js +4 -3
  48. package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
  49. package/dist/cjs/components/FormField/FormField.js +10 -1
  50. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  51. package/dist/cjs/components/FormItem/FormItem.d.ts +3 -1
  52. package/dist/cjs/components/FormItem/FormItem.js +2 -1
  53. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  54. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
  55. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  56. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  57. package/dist/cjs/components/Group/Group.d.ts +5 -3
  58. package/dist/cjs/components/Group/Group.js +2 -2
  59. package/dist/cjs/components/Group/Group.js.map +1 -1
  60. package/dist/cjs/components/Header/Header.js +20 -16
  61. package/dist/cjs/components/Header/Header.js.map +1 -1
  62. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
  63. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +4 -1
  64. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  65. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
  66. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js +6 -2
  67. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  68. package/dist/cjs/components/HoverPopper/HoverPopper.d.ts +1 -1
  69. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
  70. package/dist/cjs/components/IconButton/IconButton.d.ts +3 -3
  71. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  72. package/dist/cjs/components/LocaleProvider/LocaleProvider.d.ts +2 -2
  73. package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
  74. package/dist/cjs/components/ModalPage/ModalPage.d.ts +1 -1
  75. package/dist/cjs/components/ModalPage/ModalPage.js +19 -3
  76. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  77. package/dist/cjs/components/ModalPage/ModalPageContext.d.ts +5 -0
  78. package/dist/cjs/components/{Typography/types.js → ModalPage/ModalPageContext.js} +8 -1
  79. package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -0
  80. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +6 -1
  81. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  82. package/dist/cjs/components/ModalRoot/ModalRoot.d.ts +2 -27
  83. package/dist/cjs/components/ModalRoot/ModalRoot.js +13 -22
  84. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  85. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
  86. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  87. package/dist/cjs/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
  88. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +145 -219
  89. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  90. package/dist/cjs/components/ModalRoot/types.d.ts +28 -0
  91. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  92. package/dist/cjs/components/ModalRoot/useModalManager.d.ts +6 -5
  93. package/dist/cjs/components/ModalRoot/useModalManager.js +3 -3
  94. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  95. package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +6 -2
  96. package/dist/cjs/components/NativeSelect/NativeSelect.js +6 -3
  97. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  98. package/dist/cjs/components/Panel/Panel.js +2 -2
  99. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  100. package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +11 -2
  101. package/dist/cjs/components/PanelHeader/PanelHeader.js +17 -7
  102. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  103. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  104. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  105. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  106. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  107. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  108. package/dist/cjs/components/PlatformProvider/PlatformProvider.d.ts +1 -1
  109. package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
  110. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  111. package/dist/cjs/components/Popover/Popover.d.ts +3 -2
  112. package/dist/cjs/components/Popover/Popover.js +5 -3
  113. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  114. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  115. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +3 -4
  116. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  117. package/dist/cjs/components/Radio/Radio.d.ts +2 -1
  118. package/dist/cjs/components/Radio/Radio.js +14 -8
  119. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  120. package/dist/cjs/components/Removable/Removable.d.ts +7 -2
  121. package/dist/cjs/components/Removable/Removable.js +4 -3
  122. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  123. package/dist/cjs/components/Root/Root.js.map +1 -1
  124. package/dist/cjs/components/Search/Search.d.ts +3 -1
  125. package/dist/cjs/components/Search/Search.js +42 -57
  126. package/dist/cjs/components/Search/Search.js.map +1 -1
  127. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  128. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +8 -4
  129. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  130. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +1 -1
  131. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  132. package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +2 -3
  133. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
  134. package/dist/cjs/components/Separator/Separator.js +2 -4
  135. package/dist/cjs/components/Separator/Separator.js.map +1 -1
  136. package/dist/cjs/components/SimpleCell/SimpleCell.js +8 -5
  137. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  138. package/dist/cjs/components/Spacing/Spacing.d.ts +2 -2
  139. package/dist/cjs/components/Spacing/Spacing.js +0 -1
  140. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  141. package/dist/cjs/components/SplitCol/SplitCol.js +1 -0
  142. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  143. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +1 -3
  144. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  145. package/dist/cjs/components/Switch/Switch.d.ts +4 -5
  146. package/dist/cjs/components/Switch/Switch.js +12 -8
  147. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  148. package/dist/cjs/components/Tabbar/Tabbar.js +2 -4
  149. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  150. package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
  151. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  152. package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
  153. package/dist/cjs/components/Tappable/Tappable.js +1 -0
  154. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  155. package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
  156. package/dist/cjs/components/Typography/Caption/Caption.js +10 -13
  157. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  158. package/dist/cjs/components/Typography/Footnote/Footnote.d.ts +2 -2
  159. package/dist/cjs/components/Typography/Footnote/Footnote.js +10 -13
  160. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  161. package/dist/cjs/components/Typography/Headline/Headline.d.ts +3 -4
  162. package/dist/cjs/components/Typography/Headline/Headline.js +9 -12
  163. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  164. package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts +3 -5
  165. package/dist/cjs/components/Typography/Paragraph/Paragraph.js +8 -13
  166. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
  167. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
  168. package/dist/cjs/components/Typography/Subhead/Subhead.js +9 -12
  169. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  170. package/dist/cjs/components/Typography/Text/Text.d.ts +3 -5
  171. package/dist/cjs/components/Typography/Text/Text.js +8 -13
  172. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  173. package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
  174. package/dist/cjs/components/Typography/Title/Title.js +10 -13
  175. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  176. package/dist/cjs/components/Typography/Typography.d.ts +16 -0
  177. package/dist/cjs/components/Typography/Typography.js +35 -0
  178. package/dist/cjs/components/Typography/Typography.js.map +1 -0
  179. package/dist/cjs/components/UsersStack/UsersStack.d.ts +2 -2
  180. package/dist/cjs/components/UsersStack/UsersStack.js +2 -1
  181. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  182. package/dist/cjs/components/View/View.js +1 -1
  183. package/dist/cjs/components/View/View.js.map +1 -1
  184. package/dist/cjs/components/View/ViewInfinite.js +1 -1
  185. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  186. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  187. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +29 -0
  188. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  189. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
  190. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +5 -0
  191. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  192. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +2 -2
  193. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  194. package/dist/cjs/helpers/getPlatformClassName.js +1 -1
  195. package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
  196. package/dist/cjs/hooks/useFocusWithin.d.ts +2 -0
  197. package/dist/cjs/hooks/useFocusWithin.js +38 -0
  198. package/dist/cjs/hooks/useFocusWithin.js.map +1 -0
  199. package/dist/cjs/hooks/useId.js +1 -1
  200. package/dist/cjs/hooks/useId.js.map +1 -1
  201. package/dist/cjs/hooks/useWaitTransitionFinish.d.ts +1 -1
  202. package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
  203. package/dist/cjs/index.d.ts +4 -2
  204. package/dist/cjs/index.js +8 -0
  205. package/dist/cjs/index.js.map +1 -1
  206. package/dist/cjs/lib/utils.js +2 -2
  207. package/dist/cjs/lib/utils.js.map +1 -1
  208. package/dist/components/Accordion/Accordion.d.ts +2 -2
  209. package/dist/components/Accordion/Accordion.js +2 -2
  210. package/dist/components/Accordion/Accordion.js.map +1 -1
  211. package/dist/components/Accordion/AccordionSummary.d.ts +1 -1
  212. package/dist/components/Accordion/AccordionSummary.js +1 -1
  213. package/dist/components/Accordion/AccordionSummary.js.map +1 -1
  214. package/dist/components/ActionSheet/types.d.ts +1 -1
  215. package/dist/components/ActionSheet/types.js.map +1 -1
  216. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
  217. package/dist/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +5 -2
  218. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
  219. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  220. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  221. package/dist/components/Alert/Alert.js.map +1 -1
  222. package/dist/components/AppRoot/AppRootPortal.d.ts +3 -3
  223. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  224. package/dist/components/AppRoot/ScrollContext.d.ts +2 -2
  225. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  226. package/dist/components/Button/Button.d.ts +1 -0
  227. package/dist/components/Button/Button.js +3 -3
  228. package/dist/components/Button/Button.js.map +1 -1
  229. package/dist/components/Card/Card.js +1 -3
  230. package/dist/components/Card/Card.js.map +1 -1
  231. package/dist/components/CardGrid/CardGrid.js +4 -4
  232. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  233. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
  234. package/dist/components/Cell/CellCheckbox/CellCheckbox.js +10 -6
  235. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  236. package/dist/components/Checkbox/Checkbox.d.ts +2 -1
  237. package/dist/components/Checkbox/Checkbox.js +12 -8
  238. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  239. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  240. package/dist/components/ChipsSelect/ChipsSelect.js +3 -2
  241. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  242. package/dist/components/Counter/Counter.js +4 -6
  243. package/dist/components/Counter/Counter.js.map +1 -1
  244. package/dist/components/CustomSelect/CustomSelect.d.ts +3 -0
  245. package/dist/components/CustomSelect/CustomSelect.js +1 -1
  246. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  247. package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
  248. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  249. package/dist/components/Epic/ScrollSaver.d.ts +3 -3
  250. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  251. package/dist/components/File/File.js +4 -3
  252. package/dist/components/File/File.js.map +1 -1
  253. package/dist/components/FixedLayout/FixedLayout.js +1 -1
  254. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  255. package/dist/components/FocusVisible/FocusVisible.d.ts +4 -2
  256. package/dist/components/FocusVisible/FocusVisible.js +4 -3
  257. package/dist/components/FocusVisible/FocusVisible.js.map +1 -1
  258. package/dist/components/FormField/FormField.js +10 -1
  259. package/dist/components/FormField/FormField.js.map +1 -1
  260. package/dist/components/FormItem/FormItem.d.ts +3 -1
  261. package/dist/components/FormItem/FormItem.js +2 -1
  262. package/dist/components/FormItem/FormItem.js.map +1 -1
  263. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
  264. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  265. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  266. package/dist/components/Group/Group.d.ts +5 -3
  267. package/dist/components/Group/Group.js +5 -3
  268. package/dist/components/Group/Group.js.map +1 -1
  269. package/dist/components/Header/Header.js +20 -16
  270. package/dist/components/Header/Header.js.map +1 -1
  271. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
  272. package/dist/components/HorizontalScroll/HorizontalScroll.js +4 -1
  273. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  274. package/dist/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
  275. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +6 -2
  276. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  277. package/dist/components/HoverPopper/HoverPopper.d.ts +1 -1
  278. package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
  279. package/dist/components/IconButton/IconButton.d.ts +3 -3
  280. package/dist/components/IconButton/IconButton.js.map +1 -1
  281. package/dist/components/LocaleProvider/LocaleProvider.d.ts +2 -2
  282. package/dist/components/LocaleProvider/LocaleProvider.js +2 -2
  283. package/dist/components/LocaleProvider/LocaleProvider.js.map +1 -1
  284. package/dist/components/ModalPage/ModalPage.d.ts +1 -1
  285. package/dist/components/ModalPage/ModalPage.js +19 -3
  286. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  287. package/dist/components/ModalPage/ModalPageContext.d.ts +5 -0
  288. package/dist/components/ModalPage/ModalPageContext.js +4 -0
  289. package/dist/components/ModalPage/ModalPageContext.js.map +1 -0
  290. package/dist/components/ModalPageHeader/ModalPageHeader.js +6 -1
  291. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  292. package/dist/components/ModalRoot/ModalRoot.d.ts +2 -27
  293. package/dist/components/ModalRoot/ModalRoot.js +13 -22
  294. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  295. package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
  296. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  297. package/dist/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
  298. package/dist/components/ModalRoot/ModalRootDesktop.js +149 -223
  299. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  300. package/dist/components/ModalRoot/types.d.ts +28 -0
  301. package/dist/components/ModalRoot/types.js.map +1 -1
  302. package/dist/components/ModalRoot/useModalManager.d.ts +6 -5
  303. package/dist/components/ModalRoot/useModalManager.js +3 -3
  304. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  305. package/dist/components/NativeSelect/NativeSelect.d.ts +6 -2
  306. package/dist/components/NativeSelect/NativeSelect.js +6 -3
  307. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  308. package/dist/components/Panel/Panel.js +2 -2
  309. package/dist/components/Panel/Panel.js.map +1 -1
  310. package/dist/components/PanelHeader/PanelHeader.d.ts +11 -2
  311. package/dist/components/PanelHeader/PanelHeader.js +17 -7
  312. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  313. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  314. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  315. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  316. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  317. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  318. package/dist/components/PlatformProvider/PlatformProvider.d.ts +1 -1
  319. package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
  320. package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
  321. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  322. package/dist/components/Popover/Popover.d.ts +3 -2
  323. package/dist/components/Popover/Popover.js +5 -3
  324. package/dist/components/Popover/Popover.js.map +1 -1
  325. package/dist/components/PromoBanner/PromoBanner.js +1 -0
  326. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  327. package/dist/components/PullToRefresh/PullToRefresh.d.ts +3 -4
  328. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  329. package/dist/components/Radio/Radio.d.ts +2 -1
  330. package/dist/components/Radio/Radio.js +14 -8
  331. package/dist/components/Radio/Radio.js.map +1 -1
  332. package/dist/components/Removable/Removable.d.ts +7 -2
  333. package/dist/components/Removable/Removable.js +4 -3
  334. package/dist/components/Removable/Removable.js.map +1 -1
  335. package/dist/components/Root/Root.js.map +1 -1
  336. package/dist/components/Search/Search.d.ts +3 -1
  337. package/dist/components/Search/Search.js +42 -57
  338. package/dist/components/Search/Search.js.map +1 -1
  339. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  340. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +8 -4
  341. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  342. package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
  343. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  344. package/dist/components/SelectTypography/SelectTypography.d.ts +2 -3
  345. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  346. package/dist/components/Separator/Separator.js +2 -4
  347. package/dist/components/Separator/Separator.js.map +1 -1
  348. package/dist/components/SimpleCell/SimpleCell.js +8 -5
  349. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  350. package/dist/components/Spacing/Spacing.d.ts +2 -2
  351. package/dist/components/Spacing/Spacing.js +0 -1
  352. package/dist/components/Spacing/Spacing.js.map +1 -1
  353. package/dist/components/SplitCol/SplitCol.js +1 -0
  354. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  355. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -3
  356. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  357. package/dist/components/Switch/Switch.d.ts +4 -5
  358. package/dist/components/Switch/Switch.js +12 -8
  359. package/dist/components/Switch/Switch.js.map +1 -1
  360. package/dist/components/Tabbar/Tabbar.js +2 -4
  361. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  362. package/dist/components/TabbarItem/TabbarItem.js +1 -1
  363. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  364. package/dist/components/Tappable/Tappable.d.ts +2 -3
  365. package/dist/components/Tappable/Tappable.js +1 -0
  366. package/dist/components/Tappable/Tappable.js.map +1 -1
  367. package/dist/components/Typography/Caption/Caption.d.ts +2 -2
  368. package/dist/components/Typography/Caption/Caption.js +10 -13
  369. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  370. package/dist/components/Typography/Footnote/Footnote.d.ts +2 -2
  371. package/dist/components/Typography/Footnote/Footnote.js +10 -13
  372. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  373. package/dist/components/Typography/Headline/Headline.d.ts +3 -4
  374. package/dist/components/Typography/Headline/Headline.js +9 -12
  375. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  376. package/dist/components/Typography/Paragraph/Paragraph.d.ts +3 -5
  377. package/dist/components/Typography/Paragraph/Paragraph.js +8 -13
  378. package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
  379. package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
  380. package/dist/components/Typography/Subhead/Subhead.js +9 -12
  381. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  382. package/dist/components/Typography/Text/Text.d.ts +3 -5
  383. package/dist/components/Typography/Text/Text.js +8 -13
  384. package/dist/components/Typography/Text/Text.js.map +1 -1
  385. package/dist/components/Typography/Title/Title.d.ts +2 -2
  386. package/dist/components/Typography/Title/Title.js +10 -13
  387. package/dist/components/Typography/Title/Title.js.map +1 -1
  388. package/dist/components/Typography/Typography.d.ts +16 -0
  389. package/dist/components/Typography/Typography.js +24 -0
  390. package/dist/components/Typography/Typography.js.map +1 -0
  391. package/dist/components/UsersStack/UsersStack.d.ts +2 -2
  392. package/dist/components/UsersStack/UsersStack.js +2 -1
  393. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  394. package/dist/components/View/View.js +1 -1
  395. package/dist/components/View/View.js.map +1 -1
  396. package/dist/components/View/ViewInfinite.js +1 -1
  397. package/dist/components/View/ViewInfinite.js.map +1 -1
  398. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  399. package/dist/components/VisuallyHidden/VisuallyHidden.js +25 -0
  400. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  401. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
  402. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +9 -4
  403. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  404. package/dist/components/WriteBarIcon/WriteBarIcon.js +2 -2
  405. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  406. package/dist/components.css +138 -138
  407. package/dist/components.css.map +1 -1
  408. package/dist/components.js.tmp +3804 -3697
  409. package/dist/cssm/components/Accordion/Accordion.d.ts +2 -2
  410. package/dist/cssm/components/Accordion/Accordion.js +2 -2
  411. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  412. package/dist/cssm/components/Accordion/Accordion.module.css +13 -1
  413. package/dist/cssm/components/Accordion/AccordionSummary.d.ts +1 -1
  414. package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
  415. package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
  416. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +115 -1
  417. package/dist/cssm/components/ActionSheet/types.d.ts +1 -1
  418. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  419. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +241 -1
  420. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
  421. package/dist/cssm/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +5 -2
  422. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
  423. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  424. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  425. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  426. package/dist/cssm/components/Alert/Alert.module.css +287 -1
  427. package/dist/cssm/components/AppRoot/AppRoot.module.css +23 -1
  428. package/dist/cssm/components/AppRoot/AppRootPortal.d.ts +3 -3
  429. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  430. package/dist/cssm/components/AppRoot/ScrollContext.d.ts +2 -2
  431. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  432. package/dist/cssm/components/Avatar/Avatar.module.css +55 -1
  433. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +29 -1
  434. package/dist/cssm/components/Badge/Badge.module.css +27 -1
  435. package/dist/cssm/components/Banner/Banner.module.css +167 -1
  436. package/dist/cssm/components/BaseGallery/BaseGallery.module.css +82 -1
  437. package/dist/cssm/components/Button/Button.d.ts +1 -0
  438. package/dist/cssm/components/Button/Button.js +3 -2
  439. package/dist/cssm/components/Button/Button.js.map +1 -1
  440. package/dist/cssm/components/Button/Button.module.css +676 -1
  441. package/dist/cssm/components/ButtonGroup/ButtonGroup.module.css +77 -1
  442. package/dist/cssm/components/Calendar/Calendar.module.css +30 -1
  443. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +84 -1
  444. package/dist/cssm/components/CalendarDays/CalendarDays.module.css +31 -1
  445. package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +41 -1
  446. package/dist/cssm/components/CalendarRange/CalendarRange.module.css +26 -1
  447. package/dist/cssm/components/CalendarTime/CalendarTime.module.css +19 -1
  448. package/dist/cssm/components/Card/Card.js +1 -3
  449. package/dist/cssm/components/Card/Card.js.map +1 -1
  450. package/dist/cssm/components/Card/Card.module.css +131 -3
  451. package/dist/cssm/components/CardGrid/CardGrid.js +4 -4
  452. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  453. package/dist/cssm/components/CardGrid/CardGrid.module.css +59 -1
  454. package/dist/cssm/components/CardScroll/CardScroll.module.css +64 -1
  455. package/dist/cssm/components/Cell/Cell.module.css +63 -1
  456. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
  457. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +7 -5
  458. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  459. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.module.css +13 -1
  460. package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +4 -1
  461. package/dist/cssm/components/CellButton/CellButton.module.css +57 -1
  462. package/dist/cssm/components/Checkbox/Checkbox.d.ts +2 -1
  463. package/dist/cssm/components/Checkbox/Checkbox.js +10 -7
  464. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  465. package/dist/cssm/components/Checkbox/Checkbox.module.css +172 -1
  466. package/dist/cssm/components/Chip/Chip.module.css +67 -1
  467. package/dist/cssm/components/ChipsInput/ChipsInput.module.css +3 -1
  468. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +115 -1
  469. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  470. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
  471. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  472. package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +27 -1
  473. package/dist/cssm/components/ContentCard/ContentCard.module.css +31 -1
  474. package/dist/cssm/components/Counter/Counter.js +4 -6
  475. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  476. package/dist/cssm/components/Counter/Counter.module.css +72 -3
  477. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +86 -1
  478. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -0
  479. package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -1
  480. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  481. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +58 -1
  482. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +43 -1
  483. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
  484. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  485. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +81 -1
  486. package/dist/cssm/components/DateInput/DateInput.module.css +30 -1
  487. package/dist/cssm/components/DatePicker/DatePicker.module.css +30 -1
  488. package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +26 -1
  489. package/dist/cssm/components/Div/Div.module.css +4 -1
  490. package/dist/cssm/components/Epic/Epic.module.css +4 -1
  491. package/dist/cssm/components/Epic/ScrollSaver.d.ts +3 -3
  492. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  493. package/dist/cssm/components/File/File.js +4 -3
  494. package/dist/cssm/components/File/File.js.map +1 -1
  495. package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -1
  496. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  497. package/dist/cssm/components/FixedLayout/FixedLayout.module.css +58 -1
  498. package/dist/cssm/components/FocusVisible/FocusVisible.d.ts +4 -2
  499. package/dist/cssm/components/FocusVisible/FocusVisible.js +4 -3
  500. package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
  501. package/dist/cssm/components/FocusVisible/FocusVisible.module.css +104 -1
  502. package/dist/cssm/components/Footer/Footer.module.css +9 -1
  503. package/dist/cssm/components/FormField/FormField.js +10 -1
  504. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  505. package/dist/cssm/components/FormField/FormField.module.css +211 -1
  506. package/dist/cssm/components/FormItem/FormItem.d.ts +3 -1
  507. package/dist/cssm/components/FormItem/FormItem.js +2 -1
  508. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  509. package/dist/cssm/components/FormItem/FormItem.module.css +104 -1
  510. package/dist/cssm/components/FormLayout/FormLayout.module.css +18 -1
  511. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
  512. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  513. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  514. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +61 -1
  515. package/dist/cssm/components/FormStatus/FormStatus.module.css +3 -1
  516. package/dist/cssm/components/Gradient/Gradient.module.css +23 -1
  517. package/dist/cssm/components/GridAvatar/GridAvatar.module.css +37 -1
  518. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +9 -1
  519. package/dist/cssm/components/Group/Group.d.ts +5 -3
  520. package/dist/cssm/components/Group/Group.js +5 -3
  521. package/dist/cssm/components/Group/Group.js.map +1 -1
  522. package/dist/cssm/components/Group/Group.module.css +166 -1
  523. package/dist/cssm/components/Header/Header.js +23 -18
  524. package/dist/cssm/components/Header/Header.js.map +1 -1
  525. package/dist/cssm/components/Header/Header.module.css +207 -1
  526. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +79 -1
  527. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
  528. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -1
  529. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  530. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +59 -1
  531. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
  532. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +5 -2
  533. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  534. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.module.css +67 -1
  535. package/dist/cssm/components/HoverPopper/HoverPopper.d.ts +1 -1
  536. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
  537. package/dist/cssm/components/IconButton/IconButton.d.ts +3 -3
  538. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  539. package/dist/cssm/components/IconButton/IconButton.module.css +152 -1
  540. package/dist/cssm/components/Image/ImageBadge/ImageBadge.module.css +10 -1
  541. package/dist/cssm/components/ImageBase/ImageBase.module.css +131 -1
  542. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +28 -1
  543. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +36 -1
  544. package/dist/cssm/components/InfoRow/InfoRow.module.css +17 -1
  545. package/dist/cssm/components/Input/Input.module.css +101 -1
  546. package/dist/cssm/components/InputLike/InputLike.module.css +31 -1
  547. package/dist/cssm/components/Link/Link.module.css +43 -1
  548. package/dist/cssm/components/List/List.module.css +3 -1
  549. package/dist/cssm/components/LocaleProvider/LocaleProvider.d.ts +2 -2
  550. package/dist/cssm/components/LocaleProvider/LocaleProvider.js +2 -2
  551. package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
  552. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +78 -1
  553. package/dist/cssm/components/ModalCard/ModalCard.module.css +62 -1
  554. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +102 -1
  555. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +38 -1
  556. package/dist/cssm/components/ModalPage/ModalPage.d.ts +1 -1
  557. package/dist/cssm/components/ModalPage/ModalPage.js +17 -3
  558. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  559. package/dist/cssm/components/ModalPage/ModalPage.module.css +151 -1
  560. package/dist/cssm/components/ModalPage/ModalPageContext.d.ts +5 -0
  561. package/dist/cssm/components/ModalPage/ModalPageContext.js +4 -0
  562. package/dist/cssm/components/ModalPage/ModalPageContext.js.map +1 -0
  563. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +6 -1
  564. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  565. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +18 -1
  566. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +2 -27
  567. package/dist/cssm/components/ModalRoot/ModalRoot.js +12 -18
  568. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  569. package/dist/cssm/components/ModalRoot/ModalRoot.module.css +65 -1
  570. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
  571. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  572. package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
  573. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +106 -125
  574. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  575. package/dist/cssm/components/ModalRoot/types.d.ts +28 -0
  576. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  577. package/dist/cssm/components/ModalRoot/useModalManager.d.ts +6 -5
  578. package/dist/cssm/components/ModalRoot/useModalManager.js +3 -3
  579. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  580. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +6 -2
  581. package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -3
  582. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  583. package/dist/cssm/components/Pagination/Pagination.module.css +83 -1
  584. package/dist/cssm/components/Panel/Panel.js +2 -2
  585. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  586. package/dist/cssm/components/Panel/Panel.module.css +177 -1
  587. package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +11 -2
  588. package/dist/cssm/components/PanelHeader/PanelHeader.js +16 -7
  589. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  590. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +321 -1
  591. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  592. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  593. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +111 -1
  594. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  595. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +96 -1
  596. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  597. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  598. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +169 -1
  599. package/dist/cssm/components/Placeholder/Placeholder.module.css +41 -1
  600. package/dist/cssm/components/PlatformProvider/PlatformProvider.d.ts +1 -1
  601. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  602. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  603. package/dist/cssm/components/PopoutRoot/PopoutRoot.module.css +32 -1
  604. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +1 -1
  605. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  606. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +96 -1
  607. package/dist/cssm/components/Popover/Popover.d.ts +3 -2
  608. package/dist/cssm/components/Popover/Popover.js +3 -2
  609. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  610. package/dist/cssm/components/Popover/Popover.module.css +28 -1
  611. package/dist/cssm/components/Popper/Popper.module.css +16 -1
  612. package/dist/cssm/components/PopperArrow/PopperArrow.module.css +23 -1
  613. package/dist/cssm/components/Progress/Progress.module.css +12 -1
  614. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -0
  615. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  616. package/dist/cssm/components/PromoBanner/PromoBanner.module.css +39 -1
  617. package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts +3 -4
  618. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  619. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +101 -1
  620. package/dist/cssm/components/Radio/Radio.d.ts +2 -1
  621. package/dist/cssm/components/Radio/Radio.js +11 -7
  622. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  623. package/dist/cssm/components/Radio/Radio.module.css +140 -1
  624. package/dist/cssm/components/RadioGroup/RadioGroup.module.css +13 -1
  625. package/dist/cssm/components/Removable/Removable.d.ts +7 -2
  626. package/dist/cssm/components/Removable/Removable.js +2 -2
  627. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  628. package/dist/cssm/components/Removable/Removable.module.css +153 -1
  629. package/dist/cssm/components/RichCell/RichCell.module.css +144 -1
  630. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.module.css +11 -1
  631. package/dist/cssm/components/RichTooltip/RichTooltip.module.css +57 -1
  632. package/dist/cssm/components/Root/Root.js +4 -4
  633. package/dist/cssm/components/Root/Root.js.map +1 -1
  634. package/dist/cssm/components/Root/Root.module.css +136 -1
  635. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +66 -1
  636. package/dist/cssm/components/Search/Search.d.ts +3 -1
  637. package/dist/cssm/components/Search/Search.js +38 -54
  638. package/dist/cssm/components/Search/Search.js.map +1 -1
  639. package/dist/cssm/components/Search/Search.module.css +156 -1
  640. package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +64 -1
  641. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  642. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +7 -4
  643. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  644. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +52 -1
  645. package/dist/cssm/components/Select/Select.module.css +87 -1
  646. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
  647. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  648. package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +2 -3
  649. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  650. package/dist/cssm/components/SelectTypography/SelectTypography.module.css +30 -1
  651. package/dist/cssm/components/Separator/Separator.js +2 -4
  652. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  653. package/dist/cssm/components/Separator/Separator.module.css +48 -1
  654. package/dist/cssm/components/SimpleCell/SimpleCell.js +8 -5
  655. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  656. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +223 -1
  657. package/dist/cssm/components/Slider/Slider.module.css +134 -1
  658. package/dist/cssm/components/Snackbar/Snackbar.module.css +165 -1
  659. package/dist/cssm/components/Spacing/Spacing.d.ts +2 -2
  660. package/dist/cssm/components/Spacing/Spacing.js +0 -1
  661. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  662. package/dist/cssm/components/Spacing/Spacing.module.css +4 -1
  663. package/dist/cssm/components/Spinner/Spinner.module.css +36 -1
  664. package/dist/cssm/components/SplitCol/SplitCol.js +1 -0
  665. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  666. package/dist/cssm/components/SplitCol/SplitCol.module.css +51 -1
  667. package/dist/cssm/components/SplitLayout/SplitLayout.module.css +29 -1
  668. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +16 -1
  669. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -3
  670. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  671. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +166 -1
  672. package/dist/cssm/components/Switch/Switch.d.ts +4 -5
  673. package/dist/cssm/components/Switch/Switch.js +11 -8
  674. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  675. package/dist/cssm/components/Switch/Switch.module.css +200 -1
  676. package/dist/cssm/components/Tabbar/Tabbar.js +2 -4
  677. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  678. package/dist/cssm/components/Tabbar/Tabbar.module.css +34 -1
  679. package/dist/cssm/components/TabbarItem/TabbarItem.js +1 -1
  680. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  681. package/dist/cssm/components/TabbarItem/TabbarItem.module.css +118 -1
  682. package/dist/cssm/components/Tabs/Tabs.module.css +62 -1
  683. package/dist/cssm/components/TabsItem/TabsItem.module.css +229 -1
  684. package/dist/cssm/components/Tappable/Tappable.d.ts +2 -3
  685. package/dist/cssm/components/Tappable/Tappable.js +1 -0
  686. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  687. package/dist/cssm/components/Tappable/Tappable.module.css +142 -1
  688. package/dist/cssm/components/TextTooltip/TextTooltip.module.css +58 -1
  689. package/dist/cssm/components/Textarea/Textarea.module.css +87 -1
  690. package/dist/cssm/components/Tooltip/Tooltip.module.css +57 -1
  691. package/dist/cssm/components/Typography/Caption/Caption.d.ts +2 -2
  692. package/dist/cssm/components/Typography/Caption/Caption.js +9 -10
  693. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  694. package/dist/cssm/components/Typography/Caption/Caption.module.css +45 -1
  695. package/dist/cssm/components/Typography/Footnote/Footnote.d.ts +2 -2
  696. package/dist/cssm/components/Typography/Footnote/Footnote.js +7 -10
  697. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  698. package/dist/cssm/components/Typography/Footnote/Footnote.module.css +14 -1
  699. package/dist/cssm/components/Typography/Headline/Headline.d.ts +3 -4
  700. package/dist/cssm/components/Typography/Headline/Headline.js +9 -10
  701. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  702. package/dist/cssm/components/Typography/Headline/Headline.module.css +48 -1
  703. package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts +3 -5
  704. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +8 -10
  705. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  706. package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +6 -1
  707. package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +2 -2
  708. package/dist/cssm/components/Typography/Subhead/Subhead.js +8 -9
  709. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  710. package/dist/cssm/components/Typography/Subhead/Subhead.module.css +18 -1
  711. package/dist/cssm/components/Typography/Text/Text.d.ts +3 -5
  712. package/dist/cssm/components/Typography/Text/Text.js +8 -10
  713. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  714. package/dist/cssm/components/Typography/Text/Text.module.css +29 -1
  715. package/dist/cssm/components/Typography/Title/Title.d.ts +2 -2
  716. package/dist/cssm/components/Typography/Title/Title.js +9 -10
  717. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  718. package/dist/cssm/components/Typography/Title/Title.module.css +20 -1
  719. package/dist/cssm/components/Typography/Typography.d.ts +16 -0
  720. package/dist/cssm/components/Typography/Typography.js +14 -0
  721. package/dist/cssm/components/Typography/Typography.js.map +1 -0
  722. package/dist/cssm/components/Typography/Typography.module.css +18 -0
  723. package/dist/cssm/components/UsersStack/UsersStack.d.ts +2 -2
  724. package/dist/cssm/components/UsersStack/UsersStack.js +2 -1
  725. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  726. package/dist/cssm/components/UsersStack/UsersStack.module.css +77 -1
  727. package/dist/cssm/components/View/View.js +6 -7
  728. package/dist/cssm/components/View/View.js.map +1 -1
  729. package/dist/cssm/components/View/View.module.css +228 -1
  730. package/dist/cssm/components/View/ViewInfinite.js +6 -7
  731. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  732. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  733. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +19 -0
  734. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  735. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +10 -0
  736. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
  737. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +9 -4
  738. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  739. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.module.css +10 -1
  740. package/dist/cssm/components/WriteBar/WriteBar.module.css +119 -1
  741. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +2 -2
  742. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  743. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +66 -1
  744. package/dist/cssm/helpers/getPlatformClassName.js +1 -1
  745. package/dist/cssm/helpers/getPlatformClassName.js.map +1 -1
  746. package/dist/cssm/hooks/useFocusWithin.d.ts +2 -0
  747. package/dist/cssm/hooks/useFocusWithin.js +26 -0
  748. package/dist/cssm/hooks/useFocusWithin.js.map +1 -0
  749. package/dist/cssm/hooks/useId.js +1 -1
  750. package/dist/cssm/hooks/useId.js.map +1 -1
  751. package/dist/cssm/hooks/useWaitTransitionFinish.d.ts +1 -1
  752. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  753. package/dist/cssm/index.d.ts +4 -2
  754. package/dist/cssm/index.js +2 -1
  755. package/dist/cssm/index.js.map +1 -1
  756. package/dist/cssm/lib/utils.js +2 -2
  757. package/dist/cssm/lib/utils.js.map +1 -1
  758. package/dist/cssm/styles/adaptivity.module.css +87 -1
  759. package/dist/cssm/styles/common.css +36 -1
  760. package/dist/cssm/styles/constants.css +86 -1
  761. package/dist/cssm/styles/themes.css +1039 -1
  762. package/dist/helpers/getPlatformClassName.js +1 -1
  763. package/dist/helpers/getPlatformClassName.js.map +1 -1
  764. package/dist/hooks/useFocusWithin.d.ts +2 -0
  765. package/dist/hooks/useFocusWithin.js +27 -0
  766. package/dist/hooks/useFocusWithin.js.map +1 -0
  767. package/dist/hooks/useId.js +1 -1
  768. package/dist/hooks/useId.js.map +1 -1
  769. package/dist/hooks/useWaitTransitionFinish.d.ts +1 -1
  770. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  771. package/dist/index.d.ts +4 -2
  772. package/dist/index.js +2 -0
  773. package/dist/index.js.map +1 -1
  774. package/dist/lib/utils.js +2 -2
  775. package/dist/lib/utils.js.map +1 -1
  776. package/dist/vkui.css +139 -139
  777. package/dist/vkui.css.map +1 -1
  778. package/dist/vkui.js.tmp +3804 -3697
  779. package/package.json +24 -17
  780. package/dist/cjs/components/Typography/types.d.ts +0 -11
  781. package/dist/cjs/components/Typography/types.js.map +0 -1
  782. package/dist/cjs/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
  783. package/dist/cjs/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
  784. package/dist/components/Typography/types.d.ts +0 -11
  785. package/dist/components/Typography/types.js +0 -3
  786. package/dist/components/Typography/types.js.map +0 -1
  787. package/dist/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
  788. package/dist/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
  789. package/dist/cssm/components/Typography/types.d.ts +0 -11
  790. package/dist/cssm/components/Typography/types.js +0 -3
  791. package/dist/cssm/components/Typography/types.js.map +0 -1
  792. package/dist/cssm/components/View/ViewIOS.module.css +0 -1
  793. package/dist/cssm/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
  794. package/dist/cssm/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
  795. package/dist/cssm/styles/animations.css +0 -1
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { classNames } from '@vkontakte/vkjs';
3
3
  import { useAdaptivity } from '../../../hooks/useAdaptivity';
4
4
  import { SizeType } from '../../../lib/adaptivity';
5
+ import { Typography } from '../Typography';
5
6
  import styles from './Text.module.css';
6
7
  const sizeYClassNames = {
7
8
  none: styles['Text--sizeY-none'],
@@ -9,17 +10,14 @@ const sizeYClassNames = {
9
10
  };
10
11
  /**
11
12
  * @see https://vkcom.github.io/VKUI/#/Text
12
- */ export const Text = ({ className , children , weight , Component ='span' , getRootRef , ...restProps })=>{
13
+ */ export const Text = ({ className , Component ='span' , normalize =true , ...restProps })=>{
13
14
  const { sizeY ='none' } = useAdaptivity();
14
- return /*#__PURE__*/ React.createElement(Component, {
15
- ...restProps,
16
- ref: getRootRef,
17
- className: classNames(className, styles['Text'], sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY], weight && ({
18
- '1': styles['Text--weight-1'],
19
- '2': styles['Text--weight-2'],
20
- '3': styles['Text--weight-3']
21
- })[weight])
22
- }, children);
15
+ return /*#__PURE__*/ React.createElement(Typography, {
16
+ Component: Component,
17
+ normalize: normalize,
18
+ className: classNames(className, styles['Text'], sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY]),
19
+ ...restProps
20
+ });
23
21
  };
24
22
 
25
23
  //# sourceMappingURL=Text.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { SizeType } from '../../../lib/adaptivity';\nimport { HasRootRef } from '../../../types';\nimport { TypographyProps } from '../types';\nimport styles from './Text.module.css';\n\nconst sizeYClassNames = {\n none: styles['Text--sizeY-none'],\n [SizeType.COMPACT]: styles['Text--sizeY-compact'],\n};\n\nexport interface TextProps extends TypographyProps, HasRootRef<HTMLElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Text\n */\nexport const Text = ({\n className,\n children,\n weight,\n Component = 'span',\n getRootRef,\n ...restProps\n}: TextProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Component\n {...restProps}\n ref={getRootRef}\n className={classNames(\n className,\n styles['Text'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n weight &&\n {\n '1': styles['Text--weight-1'],\n '2': styles['Text--weight-2'],\n '3': styles['Text--weight-3'],\n }[weight],\n )}\n >\n {children}\n </Component>\n );\n};\n"],"names":["React","classNames","useAdaptivity","SizeType","styles","sizeYClassNames","none","COMPACT","Text","className","children","weight","Component","getRootRef","restProps","sizeY","ref","REGULAR"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,QAAQ,QAAQ,0BAA0B;AAGnD,OAAOC,YAAY,oBAAoB;AAEvC,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,mBAAmB;IAChC,CAACD,SAASI,OAAO,CAAC,EAAEH,MAAM,CAAC,sBAAsB;AACnD;AAIA;;CAEC,GACD,OAAO,MAAMI,OAAO,CAAC,EACnBC,UAAS,EACTC,SAAQ,EACRC,OAAM,EACNC,WAAY,OAAM,EAClBC,WAAU,EACV,GAAGC,WACO,GAAK;IACf,MAAM,EAAEC,OAAQ,OAAM,EAAE,GAAGb;IAE3B,qBACE,oBAACU;QACE,GAAGE,SAAS;QACbE,KAAKH;QACLJ,WAAWR,WACTQ,WACAL,MAAM,CAAC,OAAO,EACdW,UAAUZ,SAASc,OAAO,IAAIZ,eAAe,CAACU,MAAM,EACpDJ,UACE,CAAA;YACE,KAAKP,MAAM,CAAC,iBAAiB;YAC7B,KAAKA,MAAM,CAAC,iBAAiB;YAC7B,KAAKA,MAAM,CAAC,iBAAiB;QAC/B,CAAA,CAAC,CAACO,OAAO;OAGZD;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { SizeType } from '../../../lib/adaptivity';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Text.module.css';\n\nconst sizeYClassNames = {\n none: styles['Text--sizeY-none'],\n [SizeType.COMPACT]: styles['Text--sizeY-compact'],\n};\n\nexport type TextProps = TypographyProps;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Text\n */\nexport const Text = ({\n className,\n Component = 'span',\n normalize = true,\n ...restProps\n}: TextProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(\n className,\n styles['Text'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n )}\n {...restProps}\n />\n );\n};\n"],"names":["React","classNames","useAdaptivity","SizeType","Typography","styles","sizeYClassNames","none","COMPACT","Text","className","Component","normalize","restProps","sizeY","REGULAR"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,UAAU,QAAyB,gBAAgB;AAC5D,OAAOC,YAAY,oBAAoB;AAEvC,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,mBAAmB;IAChC,CAACF,SAASK,OAAO,CAAC,EAAEH,MAAM,CAAC,sBAAsB;AACnD;AAIA;;CAEC,GACD,OAAO,MAAMI,OAAO,CAAC,EACnBC,UAAS,EACTC,WAAY,OAAM,EAClBC,WAAY,IAAI,CAAA,EAChB,GAAGC,WACO,GAAK;IACf,MAAM,EAAEC,OAAQ,OAAM,EAAE,GAAGZ;IAE3B,qBACE,oBAACE;QACCO,WAAWA;QACXC,WAAWA;QACXF,WAAWT,WACTS,WACAL,MAAM,CAAC,OAAO,EACdS,UAAUX,SAASY,OAAO,IAAIT,eAAe,CAACQ,MAAM;QAErD,GAAGD,SAAS;;AAGnB,EAAE"}
@@ -1 +1,29 @@
1
- .vkuiText{display:block;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_text--font_family--regular);font-size:16px;font-size:var(--vkui--font_text--font_size--regular);font-weight:400;font-weight:var(--vkui--font_text--font_weight--regular);line-height:20px;line-height:var(--vkui--font_text--line_height--regular);margin:0}.vkuiText--sizeY-compact{font-size:15px;font-size:var(--vkui--font_text--font_size--compact);line-height:20px;line-height:var(--vkui--font_text--line_height--compact)}@media (max-height:414.9px),(pointer:fine) and (min-width:768px){.vkuiText--sizeY-none{font-size:15px;font-size:var(--vkui--font_text--font_size--compact);line-height:20px;line-height:var(--vkui--font_text--line_height--compact)}}.vkuiText--weight-1{font-weight:600;font-weight:var(--vkui--font_weight_accent1)}.vkuiText--weight-2{font-weight:500;font-weight:var(--vkui--font_weight_accent2)}.vkuiText--weight-3{font-weight:400;font-weight:var(--vkui--font_weight_accent3)}.vkuiInternalPanelHeaderContent__children .vkuiText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
1
+ .Text {
2
+ font-size: var(--vkui--font_text--font_size--regular);
3
+ line-height: var(--vkui--font_text--line_height--regular);
4
+ font-weight: var(--vkui--font_text--font_weight--regular);
5
+ font-family: var(--vkui--font_text--font_family--regular);
6
+ }
7
+
8
+ .Text--sizeY-compact {
9
+ font-size: var(--vkui--font_text--font_size--compact);
10
+ line-height: var(--vkui--font_text--line_height--compact);
11
+ }
12
+
13
+ @media (pointer: fine) and (min-width: 768px),(max-height: 414.9px) {
14
+ .Text--sizeY-none {
15
+ font-size: var(--vkui--font_text--font_size--compact);
16
+ line-height: var(--vkui--font_text--line_height--compact);
17
+ }
18
+ }
19
+
20
+ /**
21
+ * CMP:
22
+ * PanelHeaderContent
23
+ */
24
+
25
+ :global(.vkuiInternalPanelHeaderContent__children) .Text {
26
+ overflow: hidden;
27
+ white-space: nowrap;
28
+ text-overflow: ellipsis;
29
+ }
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
- import { TypographyProps } from '../types';
2
+ import { TypographyProps } from '../Typography';
3
3
  export interface TitleProps extends TypographyProps {
4
4
  level?: '1' | '2' | '3';
5
5
  }
6
6
  /**
7
7
  * @see https://vkcom.github.io/VKUI/#/Title
8
8
  */
9
- export declare const Title: ({ className, children, weight, level, Component, ...restProps }: TitleProps) => JSX.Element;
9
+ export declare const Title: ({ className, level, Component, normalize, ...restProps }: TitleProps) => JSX.Element;
@@ -1,24 +1,23 @@
1
1
  import * as React from 'react';
2
2
  import { classNames } from '@vkontakte/vkjs';
3
+ import { Typography } from '../Typography';
3
4
  import styles from './Title.module.css';
4
5
  /**
5
6
  * @see https://vkcom.github.io/VKUI/#/Title
6
- */ export const Title = ({ className , children , weight , level ='1' , Component , ...restProps })=>{
7
+ */ export const Title = ({ className , level ='1' , Component , normalize =true , ...restProps })=>{
7
8
  if (!Component) {
8
9
  Component = 'h' + level;
9
10
  }
10
- return /*#__PURE__*/ React.createElement(Component, {
11
- ...restProps,
12
- className: classNames(className, styles['Title'], {
11
+ return /*#__PURE__*/ React.createElement(Typography, {
12
+ Component: Component,
13
+ normalize: normalize,
14
+ className: classNames(className, {
13
15
  '1': styles['Title--level-1'],
14
16
  '2': styles['Title--level-2'],
15
17
  '3': styles['Title--level-3']
16
- }[level], weight && ({
17
- '1': styles['Title--weight-1'],
18
- '2': styles['Title--weight-2'],
19
- '3': styles['Title--weight-3']
20
- })[weight])
21
- }, children);
18
+ }[level]),
19
+ ...restProps
20
+ });
22
21
  };
23
22
 
24
23
  //# sourceMappingURL=Title.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Title/Title.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { TypographyProps } from '../types';\nimport styles from './Title.module.css';\n\nexport interface TitleProps extends TypographyProps {\n level?: '1' | '2' | '3';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Title\n */\nexport const Title = ({\n className,\n children,\n weight,\n level = '1',\n Component,\n ...restProps\n}: TitleProps) => {\n if (!Component) {\n Component = ('h' + level) as React.ElementType;\n }\n\n return (\n <Component\n {...restProps}\n className={classNames(\n className,\n styles['Title'],\n {\n '1': styles['Title--level-1'],\n '2': styles['Title--level-2'],\n '3': styles['Title--level-3'],\n }[level],\n weight &&\n {\n '1': styles['Title--weight-1'],\n '2': styles['Title--weight-2'],\n '3': styles['Title--weight-3'],\n }[weight],\n )}\n >\n {children}\n </Component>\n );\n};\n"],"names":["React","classNames","styles","Title","className","children","weight","level","Component","restProps"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,OAAOC,YAAY,qBAAqB;AAMxC;;CAEC,GACD,OAAO,MAAMC,QAAQ,CAAC,EACpBC,UAAS,EACTC,SAAQ,EACRC,OAAM,EACNC,OAAQ,IAAG,EACXC,UAAS,EACT,GAAGC,WACQ,GAAK;IAChB,IAAI,CAACD,WAAW;QACdA,YAAa,MAAMD;IACrB,CAAC;IAED,qBACE,oBAACC;QACE,GAAGC,SAAS;QACbL,WAAWH,WACTG,WACAF,MAAM,CAAC,QAAQ,EACf;YACE,KAAKA,MAAM,CAAC,iBAAiB;YAC7B,KAAKA,MAAM,CAAC,iBAAiB;YAC7B,KAAKA,MAAM,CAAC,iBAAiB;QAC/B,CAAC,CAACK,MAAM,EACRD,UACE,CAAA;YACE,KAAKJ,MAAM,CAAC,kBAAkB;YAC9B,KAAKA,MAAM,CAAC,kBAAkB;YAC9B,KAAKA,MAAM,CAAC,kBAAkB;QAChC,CAAA,CAAC,CAACI,OAAO;OAGZD;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Title/Title.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Title.module.css';\n\nexport interface TitleProps extends TypographyProps {\n level?: '1' | '2' | '3';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Title\n */\nexport const Title = ({\n className,\n level = '1',\n Component,\n normalize = true,\n ...restProps\n}: TitleProps) => {\n if (!Component) {\n Component = ('h' + level) as React.ElementType;\n }\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(\n className,\n {\n '1': styles['Title--level-1'],\n '2': styles['Title--level-2'],\n '3': styles['Title--level-3'],\n }[level],\n )}\n {...restProps}\n />\n );\n};\n"],"names":["React","classNames","Typography","styles","Title","className","level","Component","normalize","restProps"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAyB,gBAAgB;AAC5D,OAAOC,YAAY,qBAAqB;AAMxC;;CAEC,GACD,OAAO,MAAMC,QAAQ,CAAC,EACpBC,UAAS,EACTC,OAAQ,IAAG,EACXC,UAAS,EACTC,WAAY,IAAI,CAAA,EAChB,GAAGC,WACQ,GAAK;IAChB,IAAI,CAACF,WAAW;QACdA,YAAa,MAAMD;IACrB,CAAC;IAED,qBACE,oBAACJ;QACCK,WAAWA;QACXC,WAAWA;QACXH,WAAWJ,WACTI,WACA;YACE,KAAKF,MAAM,CAAC,iBAAiB;YAC7B,KAAKA,MAAM,CAAC,iBAAiB;YAC7B,KAAKA,MAAM,CAAC,iBAAiB;QAC/B,CAAC,CAACG,MAAM;QAET,GAAGG,SAAS;;AAGnB,EAAE"}
@@ -1 +1,20 @@
1
- .vkuiTitle{display:block;margin:0}.vkuiTitle--level-1{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_title1--font_family--regular);font-size:24px;font-size:var(--vkui--font_title1--font_size--regular);font-weight:600;font-weight:var(--vkui--font_title1--font_weight--regular);line-height:28px;line-height:var(--vkui--font_title1--line_height--regular)}.vkuiTitle--level-2{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_title2--font_family--regular);font-size:20px;font-size:var(--vkui--font_title2--font_size--regular);font-weight:600;font-weight:var(--vkui--font_title2--font_weight--regular);line-height:24px;line-height:var(--vkui--font_title2--line_height--regular)}.vkuiTitle--level-3{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_title3--font_family--regular);font-size:17px;font-size:var(--vkui--font_title3--font_size--regular);font-weight:600;font-weight:var(--vkui--font_title3--font_weight--regular);line-height:22px;line-height:var(--vkui--font_title3--line_height--regular)}.vkuiTitle--weight-1{font-weight:600;font-weight:var(--vkui--font_weight_accent1)}.vkuiTitle--weight-2{font-weight:500;font-weight:var(--vkui--font_weight_accent2)}.vkuiTitle--weight-3{font-weight:400;font-weight:var(--vkui--font_weight_accent3)}
1
+ .Title--level-1 {
2
+ font-size: var(--vkui--font_title1--font_size--regular);
3
+ line-height: var(--vkui--font_title1--line_height--regular);
4
+ font-weight: var(--vkui--font_title1--font_weight--regular);
5
+ font-family: var(--vkui--font_title1--font_family--regular);
6
+ }
7
+
8
+ .Title--level-2 {
9
+ font-size: var(--vkui--font_title2--font_size--regular);
10
+ line-height: var(--vkui--font_title2--line_height--regular);
11
+ font-weight: var(--vkui--font_title2--font_weight--regular);
12
+ font-family: var(--vkui--font_title2--font_family--regular);
13
+ }
14
+
15
+ .Title--level-3 {
16
+ font-size: var(--vkui--font_title3--font_size--regular);
17
+ line-height: var(--vkui--font_title3--line_height--regular);
18
+ font-weight: var(--vkui--font_title3--font_weight--regular);
19
+ font-family: var(--vkui--font_title3--font_family--regular);
20
+ }
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { HasComponent, HasRootRef } from '../../types';
3
+ export interface HasCaps {
4
+ caps?: boolean;
5
+ }
6
+ export interface TypographyProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent, HasRootRef<HTMLElement> {
7
+ /**
8
+ * Задаёт начертание шрифта, отличное от стандартного.
9
+ */
10
+ weight?: '1' | '2' | '3';
11
+ /**
12
+ * Убирает внешние отступы
13
+ */
14
+ normalize?: boolean;
15
+ }
16
+ export declare const Typography: ({ className, weight, Component, normalize, getRootRef, ...restProps }: TypographyProps) => JSX.Element;
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { classNames } from '@vkontakte/vkjs';
3
+ import styles from './Typography.module.css';
4
+ export const Typography = ({ className , weight , Component ='span' , normalize , getRootRef , ...restProps })=>/*#__PURE__*/ React.createElement(Component, {
5
+ ...restProps,
6
+ ref: getRootRef,
7
+ className: classNames(className, normalize && styles['Typography--normalize'], weight && ({
8
+ '1': styles['Typography--weight-1'],
9
+ '2': styles['Typography--weight-2'],
10
+ '3': styles['Typography--weight-3']
11
+ })[weight])
12
+ });
13
+
14
+ //# sourceMappingURL=Typography.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasComponent, HasRootRef } from '../../types';\nimport styles from './Typography.module.css';\n\nexport interface HasCaps {\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 */\n normalize?: boolean;\n}\n\nexport const Typography = ({\n className,\n weight,\n Component = 'span',\n normalize,\n getRootRef,\n ...restProps\n}: TypographyProps) => (\n <Component\n {...restProps}\n ref={getRootRef}\n className={classNames(\n className,\n normalize && styles['Typography--normalize'],\n weight &&\n {\n '1': styles['Typography--weight-1'],\n '2': styles['Typography--weight-2'],\n '3': styles['Typography--weight-3'],\n }[weight],\n )}\n />\n);\n"],"names":["React","classNames","styles","Typography","className","weight","Component","normalize","getRootRef","restProps","ref"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,OAAOC,YAAY,0BAA0B;AAoB7C,OAAO,MAAMC,aAAa,CAAC,EACzBC,UAAS,EACTC,OAAM,EACNC,WAAY,OAAM,EAClBC,UAAS,EACTC,WAAU,EACV,GAAGC,WACa,iBAChB,oBAACH;QACE,GAAGG,SAAS;QACbC,KAAKF;QACLJ,WAAWH,WACTG,WACAG,aAAaL,MAAM,CAAC,wBAAwB,EAC5CG,UACE,CAAA;YACE,KAAKH,MAAM,CAAC,uBAAuB;YACnC,KAAKA,MAAM,CAAC,uBAAuB;YACnC,KAAKA,MAAM,CAAC,uBAAuB;QACrC,CAAA,CAAC,CAACG,OAAO;OAGf"}
@@ -0,0 +1,18 @@
1
+ .Typography--normalize {
2
+ margin: 0;
3
+ display: block;
4
+ }
5
+
6
+ /* Мы утяжеляем селектор, чтобы перебить другие селекторы */
7
+
8
+ .Typography--weight-1.Typography--weight-1.Typography--weight-1 {
9
+ font-weight: var(--vkui--font_weight_accent1);
10
+ }
11
+
12
+ .Typography--weight-2.Typography--weight-2.Typography--weight-2 {
13
+ font-weight: var(--vkui--font_weight_accent2);
14
+ }
15
+
16
+ .Typography--weight-3.Typography--weight-3.Typography--weight-3 {
17
+ font-weight: var(--vkui--font_weight_accent3);
18
+ }
@@ -10,7 +10,7 @@ export interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {
10
10
  size?: 's' | 'm' | 'l';
11
11
  /**
12
12
  * Вертикальный режим рекомендуется использовать с размером `m`
13
- * TODO v6: удалить
13
+ * TODO [>=6]: удалить
14
14
  * @deprecated
15
15
  */
16
16
  layout?: 'vertical' | 'horizontal';
@@ -28,7 +28,7 @@ export interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {
28
28
  /**
29
29
  * Определяет положение элементов
30
30
  * Режим `column` рекомендуется использовать с размером `m`
31
- * @version 5.3.0
31
+ * @since 5.3.0
32
32
  */
33
33
  direction?: 'row' | 'row-reverse' | 'column';
34
34
  }
@@ -101,12 +101,13 @@ const warn = warnOnce('UsersStack');
101
101
  className: classNames(styles['UsersStack__photo'], styles['UsersStack__photo--others'])
102
102
  }, "+", count) : null;
103
103
  if (process.env.NODE_ENV === 'development' && layout) {
104
+ // TODO [>=6]: Удалить layout
104
105
  warn('Свойство "layout" будет удалено в v6. Используйте свойство "direction"');
105
106
  }
106
107
  const direction = layout && (layout === 'vertical' ? 'column' : 'row') || directionProp;
107
108
  return /*#__PURE__*/ React.createElement("div", {
108
109
  ...restProps,
109
- className: classNames(styles['UsersStack'], {
110
+ className: classNames('vkuiInternalUsersStack', styles['UsersStack'], {
110
111
  s: styles['UsersStack--size-s'],
111
112
  m: styles['UsersStack--size-m'],
112
113
  l: styles['UsersStack--size-l']
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/UsersStack/UsersStack.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useId } from '../../hooks/useId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './UsersStack.module.css';\n\nexport interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Массив ссылок на фотографии\n */\n photos?: string[];\n /**\n * Размер аватарок\n */\n size?: 's' | 'm' | 'l';\n /**\n * Вертикальный режим рекомендуется использовать с размером `m`\n * TODO v6: удалить\n * @deprecated\n */\n layout?: 'vertical' | 'horizontal';\n /**\n * Количество аватарок, которые будут показаны.\n * Если в массиве `photos` больше элементов и используется размер `m`, то будет показано количество остальных элементов\n */\n visibleCount?: number;\n /**\n * Число, которое будет указано в счетчике.\n * По умолчанию высчитывается по формуле `photos.length - visibleCount`.\n * Если число больше 99, то счетчик скроется.\n */\n count?: number;\n /**\n * Определяет положение элементов\n * Режим `column` рекомендуется использовать с размером `m`\n * @version 5.3.0\n */\n direction?: 'row' | 'row-reverse' | 'column';\n}\n\ninterface PathElementProps extends React.SVGAttributes<SVGElement> {\n photoSize: number;\n direction: 'circle' | 'right' | 'left';\n}\n\ntype PhotoSizeType = 16 | 24 | 32;\n\nfunction PathElement({ photoSize, direction, ...props }: PathElementProps) {\n switch (direction) {\n case 'circle':\n const radius = photoSize / 2;\n\n return <circle cx={radius} cy={radius} r={radius} {...props} />;\n\n case 'right':\n switch (photoSize) {\n case 24:\n return (\n <path\n d=\"M22,18.625A12 12 0 0 1 12 24A12 12 0 0 1 12 0A12 12 0 0 1 22 5.375A12 12 0 0 0 22,18.625\"\n {...props}\n />\n );\n\n default:\n return (\n <path\n d=\"M30,23.75A16 16 0 0 1 16 32A16 16 0 0 1 16 0A16 16 0 0 1 30 8.25A16 16 0 0 0 30,23.75\"\n {...props}\n />\n );\n }\n\n default:\n switch (photoSize) {\n case 16:\n return (\n <path\n d=\"M2,13.285A8 8 0 0 0 8 16A8 8 0 0 0 8 0A8 8 0 0 0 2 2.715A8 8 0 0 1 2,13.285\"\n {...props}\n />\n );\n case 24:\n return (\n <path\n d=\"M2,18.625A12 12 0 0 0 12 24A12 12 0 0 0 12 0A12 12 0 0 0 2 5.375A12 12 0 0 1 2,18.625\"\n {...props}\n />\n );\n\n default:\n return (\n <path\n d=\"M2,23.75A16 16 0 0 0 16 32A16 16 0 0 0 16 0A16 16 0 0 0 2 8.25A16 16 0 0 1 2,23.75\"\n {...props}\n />\n );\n }\n }\n}\n\nconst photoSizes: Record<NonNullable<UsersStackProps['size']>, PhotoSizeType> = {\n s: 16,\n m: 24,\n l: 32,\n};\n\nconst warn = warnOnce('UsersStack');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/UsersStack\n */\nexport const UsersStack = ({\n photos = [],\n visibleCount = 3,\n count = Math.max(0, photos.length - visibleCount),\n size = 'm',\n layout,\n children,\n className,\n direction: directionProp = 'row',\n ...restProps\n}: UsersStackProps) => {\n const cmpId = useId();\n\n const canShowOthers = count > 0 && count < 100 && size !== 's';\n const CounterTypography = size === 'l' ? Footnote : Caption;\n\n const photoSize = photoSizes[size];\n const directionClip = canShowOthers ? 'right' : 'left';\n\n const photosElements = photos.slice(0, visibleCount).map((photo, i) => {\n const direction = i === 0 && !canShowOthers ? 'circle' : directionClip;\n\n const id = `UsersStackDefs${cmpId}${i}`;\n const hrefID = `#${id}`;\n const maskID = `UsersStackMask${cmpId}${i}`;\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className={styles['UsersStack__photo']}\n key={i}\n aria-hidden\n >\n <defs>\n <PathElement id={id} direction={direction} photoSize={photoSize} />\n </defs>\n <clipPath id={maskID}>\n <use href={hrefID} />\n </clipPath>\n <g clipPath={`url(#${maskID})`}>\n <use href={hrefID} className={styles['UsersStack__fill']} />\n <image href={photo} width={photoSize} height={photoSize} />\n <use href={hrefID} fill=\"none\" stroke=\"rgba(0, 0, 0, 0.08)\" />\n </g>\n </svg>\n );\n });\n\n const othersElement = canShowOthers ? (\n <CounterTypography\n caps\n weight=\"1\"\n className={classNames(styles['UsersStack__photo'], styles['UsersStack__photo--others'])}\n >\n +{count}\n </CounterTypography>\n ) : null;\n\n if (process.env.NODE_ENV === 'development' && layout) {\n warn('Свойство \"layout\" будет удалено в v6. Используйте свойство \"direction\"');\n }\n\n const direction = (layout && (layout === 'vertical' ? 'column' : 'row')) || directionProp;\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['UsersStack'],\n {\n s: styles['UsersStack--size-s'],\n m: styles['UsersStack--size-m'],\n l: styles['UsersStack--size-l'],\n }[size],\n {\n 'row': styles['UsersStack--direction-row'],\n 'row-reverse': styles['UsersStack--direction-row-reverse'],\n 'column': styles['UsersStack--direction-column'],\n }[direction],\n className,\n )}\n >\n {(photosElements.length > 0 || othersElement) && (\n <div className={styles['UsersStack__photos']} aria-hidden>\n {photosElements}\n {othersElement}\n </div>\n )}\n {hasReactNode(children) && (\n <Footnote className={styles['UsersStack__text']}>{children}</Footnote>\n )}\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","useId","warnOnce","Caption","Footnote","styles","PathElement","photoSize","direction","props","radius","circle","cx","cy","r","path","d","photoSizes","s","m","l","warn","UsersStack","photos","visibleCount","count","Math","max","length","size","layout","children","className","directionProp","restProps","cmpId","canShowOthers","CounterTypography","directionClip","photosElements","slice","map","photo","i","id","hrefID","maskID","svg","xmlns","key","aria-hidden","defs","clipPath","use","href","g","image","width","height","fill","stroke","othersElement","caps","weight","process","env","NODE_ENV","div"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/UsersStack/UsersStack.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useId } from '../../hooks/useId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './UsersStack.module.css';\n\nexport interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Массив ссылок на фотографии\n */\n photos?: string[];\n /**\n * Размер аватарок\n */\n size?: 's' | 'm' | 'l';\n /**\n * Вертикальный режим рекомендуется использовать с размером `m`\n * TODO [>=6]: удалить\n * @deprecated\n */\n layout?: 'vertical' | 'horizontal';\n /**\n * Количество аватарок, которые будут показаны.\n * Если в массиве `photos` больше элементов и используется размер `m`, то будет показано количество остальных элементов\n */\n visibleCount?: number;\n /**\n * Число, которое будет указано в счетчике.\n * По умолчанию высчитывается по формуле `photos.length - visibleCount`.\n * Если число больше 99, то счетчик скроется.\n */\n count?: number;\n /**\n * Определяет положение элементов\n * Режим `column` рекомендуется использовать с размером `m`\n * @since 5.3.0\n */\n direction?: 'row' | 'row-reverse' | 'column';\n}\n\ninterface PathElementProps extends React.SVGAttributes<SVGElement> {\n photoSize: number;\n direction: 'circle' | 'right' | 'left';\n}\n\ntype PhotoSizeType = 16 | 24 | 32;\n\nfunction PathElement({ photoSize, direction, ...props }: PathElementProps) {\n switch (direction) {\n case 'circle':\n const radius = photoSize / 2;\n\n return <circle cx={radius} cy={radius} r={radius} {...props} />;\n\n case 'right':\n switch (photoSize) {\n case 24:\n return (\n <path\n d=\"M22,18.625A12 12 0 0 1 12 24A12 12 0 0 1 12 0A12 12 0 0 1 22 5.375A12 12 0 0 0 22,18.625\"\n {...props}\n />\n );\n\n default:\n return (\n <path\n d=\"M30,23.75A16 16 0 0 1 16 32A16 16 0 0 1 16 0A16 16 0 0 1 30 8.25A16 16 0 0 0 30,23.75\"\n {...props}\n />\n );\n }\n\n default:\n switch (photoSize) {\n case 16:\n return (\n <path\n d=\"M2,13.285A8 8 0 0 0 8 16A8 8 0 0 0 8 0A8 8 0 0 0 2 2.715A8 8 0 0 1 2,13.285\"\n {...props}\n />\n );\n case 24:\n return (\n <path\n d=\"M2,18.625A12 12 0 0 0 12 24A12 12 0 0 0 12 0A12 12 0 0 0 2 5.375A12 12 0 0 1 2,18.625\"\n {...props}\n />\n );\n\n default:\n return (\n <path\n d=\"M2,23.75A16 16 0 0 0 16 32A16 16 0 0 0 16 0A16 16 0 0 0 2 8.25A16 16 0 0 1 2,23.75\"\n {...props}\n />\n );\n }\n }\n}\n\nconst photoSizes: Record<NonNullable<UsersStackProps['size']>, PhotoSizeType> = {\n s: 16,\n m: 24,\n l: 32,\n};\n\nconst warn = warnOnce('UsersStack');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/UsersStack\n */\nexport const UsersStack = ({\n photos = [],\n visibleCount = 3,\n count = Math.max(0, photos.length - visibleCount),\n size = 'm',\n layout,\n children,\n className,\n direction: directionProp = 'row',\n ...restProps\n}: UsersStackProps) => {\n const cmpId = useId();\n\n const canShowOthers = count > 0 && count < 100 && size !== 's';\n const CounterTypography = size === 'l' ? Footnote : Caption;\n\n const photoSize = photoSizes[size];\n const directionClip = canShowOthers ? 'right' : 'left';\n\n const photosElements = photos.slice(0, visibleCount).map((photo, i) => {\n const direction = i === 0 && !canShowOthers ? 'circle' : directionClip;\n\n const id = `UsersStackDefs${cmpId}${i}`;\n const hrefID = `#${id}`;\n const maskID = `UsersStackMask${cmpId}${i}`;\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className={styles['UsersStack__photo']}\n key={i}\n aria-hidden\n >\n <defs>\n <PathElement id={id} direction={direction} photoSize={photoSize} />\n </defs>\n <clipPath id={maskID}>\n <use href={hrefID} />\n </clipPath>\n <g clipPath={`url(#${maskID})`}>\n <use href={hrefID} className={styles['UsersStack__fill']} />\n <image href={photo} width={photoSize} height={photoSize} />\n <use href={hrefID} fill=\"none\" stroke=\"rgba(0, 0, 0, 0.08)\" />\n </g>\n </svg>\n );\n });\n\n const othersElement = canShowOthers ? (\n <CounterTypography\n caps\n weight=\"1\"\n className={classNames(styles['UsersStack__photo'], styles['UsersStack__photo--others'])}\n >\n +{count}\n </CounterTypography>\n ) : null;\n\n if (process.env.NODE_ENV === 'development' && layout) {\n // TODO [>=6]: Удалить layout\n warn('Свойство \"layout\" будет удалено в v6. Используйте свойство \"direction\"');\n }\n\n const direction = (layout && (layout === 'vertical' ? 'column' : 'row')) || directionProp;\n\n return (\n <div\n {...restProps}\n className={classNames(\n 'vkuiInternalUsersStack',\n styles['UsersStack'],\n {\n s: styles['UsersStack--size-s'],\n m: styles['UsersStack--size-m'],\n l: styles['UsersStack--size-l'],\n }[size],\n {\n 'row': styles['UsersStack--direction-row'],\n 'row-reverse': styles['UsersStack--direction-row-reverse'],\n 'column': styles['UsersStack--direction-column'],\n }[direction],\n className,\n )}\n >\n {(photosElements.length > 0 || othersElement) && (\n <div className={styles['UsersStack__photos']} aria-hidden>\n {photosElements}\n {othersElement}\n </div>\n )}\n {hasReactNode(children) && (\n <Footnote className={styles['UsersStack__text']}>{children}</Footnote>\n )}\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","useId","warnOnce","Caption","Footnote","styles","PathElement","photoSize","direction","props","radius","circle","cx","cy","r","path","d","photoSizes","s","m","l","warn","UsersStack","photos","visibleCount","count","Math","max","length","size","layout","children","className","directionProp","restProps","cmpId","canShowOthers","CounterTypography","directionClip","photosElements","slice","map","photo","i","id","hrefID","maskID","svg","xmlns","key","aria-hidden","defs","clipPath","use","href","g","image","width","height","fill","stroke","othersElement","caps","weight","process","env","NODE_ENV","div"],"mappings":"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"}
@@ -1 +1,77 @@
1
- .vkuiUsersStack{align-items:center;color:#818c99;color:var(--vkui--color_text_secondary);display:flex}.vkuiUsersStack--direction-row-reverse{flex-direction:row-reverse}.vkuiUsersStack--direction-column{flex-direction:column;justify-content:center}.vkuiUsersStack__photos{display:flex}.vkuiUsersStack__fill{fill:rgba(0,28,61,.08);fill:var(--vkui--color_image_placeholder_alpha)}.vkuiUsersStack__photo--others{align-items:center;background:#99a2ad;background:var(--vkui--color_icon_secondary);border-radius:50%;color:#fff;color:var(--vkui--color_text_contrast_themed);display:flex;justify-content:center}.vkuiUsersStack--size-s .vkuiUsersStack__photo{height:16px;width:16px}.vkuiUsersStack--size-m .vkuiUsersStack__photo{height:24px;width:24px}.vkuiUsersStack--size-l .vkuiUsersStack__photo{height:32px;width:32px}.vkuiUsersStack__photo+.vkuiUsersStack__photo{margin-left:-2px}.vkuiUsersStack__text{flex:1;min-width:0}.vkuiUsersStack--direction-column .vkuiUsersStack__text{margin-top:8px;text-align:center}.vkuiUsersStack--direction-row .vkuiUsersStack__text{margin-left:8px}.vkuiUsersStack--direction-row-reverse .vkuiUsersStack__text{margin-right:8px}.vkuiInternalModalCardBase .vkuiUsersStack{margin-top:20px}
1
+ .UsersStack {
2
+ display: flex;
3
+ align-items: center;
4
+ color: var(--vkui--color_text_secondary);
5
+ }
6
+
7
+ .UsersStack--direction-row-reverse {
8
+ flex-direction: row-reverse;
9
+ }
10
+
11
+ .UsersStack--direction-column {
12
+ flex-direction: column;
13
+ justify-content: center;
14
+ }
15
+
16
+ .UsersStack__photos {
17
+ display: flex;
18
+ }
19
+
20
+ .UsersStack__fill {
21
+ fill: var(--vkui--color_image_placeholder_alpha);
22
+ }
23
+
24
+ .UsersStack__photo--others {
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: center;
28
+ color: var(--vkui--color_text_contrast_themed);
29
+ background: var(--vkui--color_icon_secondary);
30
+ border-radius: 50%;
31
+ }
32
+
33
+ .UsersStack--size-s .UsersStack__photo {
34
+ width: 16px;
35
+ height: 16px;
36
+ }
37
+
38
+ .UsersStack--size-m .UsersStack__photo {
39
+ width: 24px;
40
+ height: 24px;
41
+ }
42
+
43
+ .UsersStack--size-l .UsersStack__photo {
44
+ width: 32px;
45
+ height: 32px;
46
+ }
47
+
48
+ .UsersStack__photo + .UsersStack__photo {
49
+ margin-left: -2px;
50
+ }
51
+
52
+ .UsersStack__text {
53
+ min-width: 0;
54
+ flex: 1;
55
+ }
56
+
57
+ .UsersStack--direction-column .UsersStack__text {
58
+ text-align: center;
59
+ margin-top: 8px;
60
+ }
61
+
62
+ .UsersStack--direction-row .UsersStack__text {
63
+ margin-left: 8px;
64
+ }
65
+
66
+ .UsersStack--direction-row-reverse .UsersStack__text {
67
+ margin-right: 8px;
68
+ }
69
+
70
+ /**
71
+ * CMP:
72
+ * ModalCardBase
73
+ */
74
+
75
+ :global(.vkuiInternalModalCardBase) .UsersStack {
76
+ margin-top: 20px;
77
+ }
@@ -17,7 +17,6 @@ import { useSplitCol } from '../SplitCol/SplitColContext';
17
17
  import { Touch } from '../Touch/Touch';
18
18
  import { swipeBackExcluded } from './utils';
19
19
  import styles from './View.module.css';
20
- import iosStyles from './ViewIOS.module.css';
21
20
  const SWIPE_BACK_AREA = 70;
22
21
  var SwipeBackResults;
23
22
  (function(SwipeBackResults) {
@@ -115,10 +114,10 @@ const warn = warnOnce('View');
115
114
  ]);
116
115
  const transitionEndHandler = React.useCallback((e)=>{
117
116
  if ((!e || [
118
- 'vkui-animation-ios-next-forward',
119
- 'vkui-animation-ios-prev-back',
120
- 'vkui-animation-view-next-forward',
121
- 'vkui-animation-view-prev-back'
117
+ styles['vkui-animation-ios-next-forward'],
118
+ styles['vkui-animation-ios-prev-back'],
119
+ styles['vkui-animation-view-next-forward'],
120
+ styles['vkui-animation-view-prev-back']
122
121
  ].includes(e.animationName)) && prevPanel !== null) {
123
122
  flushTransition(prevPanel, Boolean(isBack));
124
123
  }
@@ -363,7 +362,7 @@ const warn = warnOnce('View');
363
362
  return /*#__PURE__*/ React.createElement(Touch, {
364
363
  Component: "section",
365
364
  ...restProps,
366
- className: classNames(styles['View'], platform === Platform.IOS && iosStyles['View--ios'], !disableAnimation && animated && styles['View--animated'], !disableAnimation && swipingBack && styles['View--swiping-back'], disableAnimation && styles['View--no-motion'], className),
365
+ className: classNames(styles['View'], platform === Platform.IOS && classNames(styles['View--ios'], 'vkuiInternalView--ios'), !disableAnimation && animated && styles['View--animated'], !disableAnimation && swipingBack && styles['View--swiping-back'], disableAnimation && styles['View--no-motion'], className),
367
366
  onMoveX: onMoveX,
368
367
  onEnd: onEnd
369
368
  }, /*#__PURE__*/ React.createElement("div", {
@@ -374,7 +373,7 @@ const warn = warnOnce('View');
374
373
  const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);
375
374
  const compensateScroll = isPrev || panelId === swipeBackNextPanel || panelId === nextPanel && isBack;
376
375
  return /*#__PURE__*/ React.createElement("div", {
377
- className: classNames(styles['View__panel'], panelId === activePanel && iosStyles['View__panel--active'], panelId === prevPanel && styles['View__panel--prev'], panelId === nextPanel && styles['View__panel--next'], panelId === swipeBackPrevPanel && iosStyles['View__panel--swipe-back-prev'], panelId === swipeBackNextPanel && iosStyles['View__panel--swipe-back-next'], swipeBackResult === SwipeBackResults.success && iosStyles['View__panel--swipe-back-success'], swipeBackResult === SwipeBackResults.fail && iosStyles['View__panel--swipe-back-failed']),
376
+ className: classNames(styles['View__panel'], panelId === activePanel && styles['View__panel--active'], panelId === prevPanel && styles['View__panel--prev'], panelId === nextPanel && styles['View__panel--next'], panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'], panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'], swipeBackResult === SwipeBackResults.success && styles['View__panel--swipe-back-success'], swipeBackResult === SwipeBackResults.fail && styles['View__panel--swipe-back-failed']),
378
377
  onAnimationEnd: isTransitionTarget ? transitionEndHandler : undefined,
379
378
  ref: (el)=>panelId !== undefined && (panelNodes.current[panelId] = el),
380
379
  style: calcPanelSwipeStyles(panelId),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/View/View.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { blurActiveElement, canUseDOM, useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent } from '../../lib/supportEvents';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { useSplitCol } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\nimport iosStyles from './ViewIOS.module.css';\n\nconst SWIPE_BACK_AREA = 70;\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\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 React.HTMLAttributes<HTMLElement>, NavIdProps {\n activePanel: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n *\n * Чтобы остановить свайп назад, возвращайте `\"prevent\"`.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n}\n\nexport interface ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce('View');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/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) => {\n const scrolls = React.useRef(scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {});\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\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 [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackPrevented, setSwipeBackPrevented] = React.useState<boolean>(false);\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<SwipeBackResults | 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 prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (React.Children.toArray(children) as React.ReactElement[]).filter(\n (panel: React.ReactElement) => {\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 === false ||\n !splitCol?.animate ||\n platform === Platform.VKCOM;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\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(undefined);\n\n afterTransition.current = () => {\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, onTransition, scroll],\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n 'vkui-animation-ios-next-forward',\n 'vkui-animation-ios-prev-back',\n 'vkui-animation-view-next-forward',\n 'vkui-animation-view-prev-back',\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel],\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === Platform.IOS ? 600 : 300,\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 (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes('transform') && e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult],\n );\n\n const onMoveX = (event: TouchEvent): void => {\n if (\n platform !== Platform.IOS ||\n swipeBackPrevented ||\n swipeBackExcluded(event) ||\n disableAnimation\n ) {\n return;\n }\n\n if (!configProvider?.isWebView) {\n if (\n (event.startX <= SWIPE_BACK_AREA || event.startX >= window!.innerWidth - SWIPE_BACK_AREA) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n return;\n }\n\n if (!onSwipeBack || (animated && event.startX <= SWIPE_BACK_AREA)) {\n return;\n }\n\n if (!swipingBack && event.startX <= SWIPE_BACK_AREA && history && history.length > 1) {\n // Начался свайп назад\n if (onSwipeBackStart) {\n const payload = onSwipeBackStart(activePanel);\n if (payload === 'prevent') {\n setSwipeBackPrevented(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 let swipeBackShift = 0;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > window!.innerWidth - swipeBackStartX) {\n swipeBackShift = window!.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n };\n\n const onEnd = React.useCallback(\n (event: TouchEvent): void => {\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 || swipeBackStartX + swipeBackShift > window!.innerWidth / 2) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n if (swipeBackPrevented) {\n setSwipeBackPrevented(false);\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n swipeBackPrevented,\n window,\n ],\n );\n\n const calcPanelSwipeStyles = (panelId: string | undefined): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${-50 + (swipeBackShift * 100) / window.innerWidth / 2}%`;\n let prevPanelShadow = (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n };\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (React.Children.toArray(children) as React.ReactElement[])\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().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 if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\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\n afterTransition.current = () => {\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 if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === Platform.IOS ? 600 : 300,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (prevSwipeBackResult === SwipeBackResults.fail && !swipeBackResult && activePanel !== null) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\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 animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n platform === Platform.IOS && iosStyles['View--ios'],\n !disableAnimation && animated && styles['View--animated'],\n !disableAnimation && swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && iosStyles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && iosStyles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && iosStyles['View__panel--swipe-back-next'],\n swipeBackResult === SwipeBackResults.success &&\n iosStyles['View__panel--swipe-back-success'],\n swipeBackResult === SwipeBackResults.fail &&\n iosStyles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (panelNodes.current[panelId] = el)}\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{\n marginTop: compensateScroll ? -(scrolls.current[panelId] ?? 0) : undefined,\n }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","noop","usePlatform","usePrevious","useTimeout","useWaitTransitionFinish","blurActiveElement","canUseDOM","useDOM","getNavId","Platform","animationEvent","useIsomorphicLayoutEffect","warnOnce","useScroll","useConfigProvider","NavTransitionProvider","useSplitCol","Touch","swipeBackExcluded","styles","iosStyles","SWIPE_BACK_AREA","SwipeBackResults","fail","success","scrollsCache","warn","View","activePanel","activePanelProp","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancel","onSwipeBackCancelProp","children","className","restProps","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","animated","setAnimated","useState","visiblePanels","setVisiblePanels","setActivePanel","isBack","setIsBack","undefined","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackPrevented","setSwipeBackPrevented","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","VKCOM","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","IOS","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","onMoveX","event","isWebView","startX","innerWidth","length","payload","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","supported","set","Component","div","isTransitionTarget","compensateScroll","onAnimationEnd","ref","el","style","key","marginTop","entering"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/View/View.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { blurActiveElement, canUseDOM, useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent } from '../../lib/supportEvents';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { useSplitCol } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\n\nconst SWIPE_BACK_AREA = 70;\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\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 React.HTMLAttributes<HTMLElement>, NavIdProps {\n activePanel: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n *\n * Чтобы остановить свайп назад, возвращайте `\"prevent\"`.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n}\n\nexport interface ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce('View');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/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) => {\n const scrolls = React.useRef(scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {});\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\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 [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackPrevented, setSwipeBackPrevented] = React.useState<boolean>(false);\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<SwipeBackResults | 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 prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (React.Children.toArray(children) as React.ReactElement[]).filter(\n (panel: React.ReactElement) => {\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 === false ||\n !splitCol?.animate ||\n platform === Platform.VKCOM;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\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(undefined);\n\n afterTransition.current = () => {\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, onTransition, scroll],\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n styles['vkui-animation-ios-next-forward'],\n styles['vkui-animation-ios-prev-back'],\n styles['vkui-animation-view-next-forward'],\n styles['vkui-animation-view-prev-back'],\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel],\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === Platform.IOS ? 600 : 300,\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 (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes('transform') && e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult],\n );\n\n const onMoveX = (event: TouchEvent): void => {\n if (\n platform !== Platform.IOS ||\n swipeBackPrevented ||\n swipeBackExcluded(event) ||\n disableAnimation\n ) {\n return;\n }\n\n if (!configProvider?.isWebView) {\n if (\n (event.startX <= SWIPE_BACK_AREA || event.startX >= window!.innerWidth - SWIPE_BACK_AREA) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n return;\n }\n\n if (!onSwipeBack || (animated && event.startX <= SWIPE_BACK_AREA)) {\n return;\n }\n\n if (!swipingBack && event.startX <= SWIPE_BACK_AREA && history && history.length > 1) {\n // Начался свайп назад\n if (onSwipeBackStart) {\n const payload = onSwipeBackStart(activePanel);\n if (payload === 'prevent') {\n setSwipeBackPrevented(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 let swipeBackShift = 0;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > window!.innerWidth - swipeBackStartX) {\n swipeBackShift = window!.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n };\n\n const onEnd = React.useCallback(\n (event: TouchEvent): void => {\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 || swipeBackStartX + swipeBackShift > window!.innerWidth / 2) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n if (swipeBackPrevented) {\n setSwipeBackPrevented(false);\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n swipeBackPrevented,\n window,\n ],\n );\n\n const calcPanelSwipeStyles = (panelId: string | undefined): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${-50 + (swipeBackShift * 100) / window.innerWidth / 2}%`;\n let prevPanelShadow = (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n };\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (React.Children.toArray(children) as React.ReactElement[])\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().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 if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\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\n afterTransition.current = () => {\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 if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === Platform.IOS ? 600 : 300,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (prevSwipeBackResult === SwipeBackResults.fail && !swipeBackResult && activePanel !== null) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\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 animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n platform === Platform.IOS && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && animated && styles['View--animated'],\n !disableAnimation && swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === SwipeBackResults.success &&\n styles['View__panel--swipe-back-success'],\n swipeBackResult === SwipeBackResults.fail &&\n styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (panelNodes.current[panelId] = el)}\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{\n marginTop: compensateScroll ? -(scrolls.current[panelId] ?? 0) : undefined,\n }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","noop","usePlatform","usePrevious","useTimeout","useWaitTransitionFinish","blurActiveElement","canUseDOM","useDOM","getNavId","Platform","animationEvent","useIsomorphicLayoutEffect","warnOnce","useScroll","useConfigProvider","NavTransitionProvider","useSplitCol","Touch","swipeBackExcluded","styles","SWIPE_BACK_AREA","SwipeBackResults","fail","success","scrollsCache","warn","View","activePanel","activePanelProp","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancel","onSwipeBackCancelProp","children","className","restProps","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","animated","setAnimated","useState","visiblePanels","setVisiblePanels","setActivePanel","isBack","setIsBack","undefined","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackPrevented","setSwipeBackPrevented","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","VKCOM","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","IOS","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","onMoveX","event","isWebView","startX","innerWidth","length","payload","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","supported","set","Component","div","isTransitionTarget","compensateScroll","onAnimationEnd","ref","el","style","key","marginTop","entering"],"mappings":"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"}