@vkontakte/vkui 5.1.2 → 5.2.1

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 (1245) hide show
  1. package/README.md +6 -1
  2. package/dist/cjs/components/ActionSheet/ActionSheet.js +8 -8
  3. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  4. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js +4 -4
  5. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  6. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +7 -7
  7. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  8. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +5 -6
  9. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  10. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.d.ts +1 -1
  11. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  12. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
  13. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  14. package/dist/cjs/components/Alert/Alert.d.ts +1 -1
  15. package/dist/cjs/components/Alert/Alert.js +10 -10
  16. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  17. package/dist/cjs/components/AppRoot/AppRoot.js +20 -12
  18. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  19. package/dist/cjs/components/AppRoot/AppRootPortal.js +2 -2
  20. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  21. package/dist/cjs/components/AppRoot/ScrollContext.js +1 -1
  22. package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
  23. package/dist/cjs/components/Avatar/Avatar.d.ts +1 -1
  24. package/dist/cjs/components/Avatar/Avatar.js +1 -1
  25. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  26. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  27. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  28. package/dist/cjs/components/Banner/Banner.js +2 -2
  29. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  30. package/dist/cjs/components/BaseGallery/BaseGallery.js +4 -4
  31. package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
  32. package/dist/cjs/components/BaseGallery/helpers.d.ts +1 -1
  33. package/dist/cjs/components/BaseGallery/helpers.js.map +1 -1
  34. package/dist/cjs/components/BaseGallery/types.d.ts +1 -1
  35. package/dist/cjs/components/BaseGallery/types.js.map +1 -1
  36. package/dist/cjs/components/Button/Button.d.ts +1 -1
  37. package/dist/cjs/components/Button/Button.js +12 -6
  38. package/dist/cjs/components/Button/Button.js.map +1 -1
  39. package/dist/cjs/components/ButtonGroup/ButtonGroup.d.ts +1 -1
  40. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  41. package/dist/cjs/components/Calendar/Calendar.d.ts +2 -2
  42. package/dist/cjs/components/Calendar/Calendar.js +6 -6
  43. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  44. package/dist/cjs/components/CalendarDay/CalendarDay.js +1 -1
  45. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  46. package/dist/cjs/components/CalendarDays/CalendarDays.js +3 -3
  47. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  48. package/dist/cjs/components/CalendarHeader/CalendarHeader.js +4 -4
  49. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  50. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +2 -2
  51. package/dist/cjs/components/CalendarRange/CalendarRange.js +3 -3
  52. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  53. package/dist/cjs/components/CalendarTime/CalendarTime.js +3 -3
  54. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
  55. package/dist/cjs/components/CardGrid/CardGrid.js +8 -3
  56. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  57. package/dist/cjs/components/CardScroll/CardScroll.js +2 -6
  58. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  59. package/dist/cjs/components/Cell/Cell.d.ts +1 -1
  60. package/dist/cjs/components/Cell/Cell.js +6 -6
  61. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  62. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +8 -5
  63. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  64. package/dist/cjs/components/Cell/CellDragger/CellDragger.js +1 -1
  65. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  66. package/dist/cjs/components/Checkbox/Checkbox.d.ts +1 -1
  67. package/dist/cjs/components/Checkbox/Checkbox.js +16 -10
  68. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  69. package/dist/cjs/components/Chip/Chip.js +11 -6
  70. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  71. package/dist/cjs/components/ChipsInput/ChipsInput.d.ts +1 -1
  72. package/dist/cjs/components/ChipsInput/ChipsInput.js +1 -1
  73. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  74. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +4 -4
  75. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  76. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +5 -9
  77. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  78. package/dist/cjs/components/ConfigProvider/ConfigProvider.js +5 -5
  79. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  80. package/dist/cjs/components/ConfigProvider/ConfigProviderOverride.js +1 -1
  81. package/dist/cjs/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  82. package/dist/cjs/components/ContentCard/ContentCard.d.ts +1 -1
  83. package/dist/cjs/components/ContentCard/ContentCard.js +4 -3
  84. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  85. package/dist/cjs/components/CustomScrollView/CustomScrollView.js +4 -4
  86. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  87. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +2 -2
  88. package/dist/cjs/components/CustomSelect/CustomSelect.js +11 -10
  89. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  90. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +3 -4
  91. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +22 -73
  92. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  93. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +10 -5
  94. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  95. package/dist/cjs/components/DateInput/DateInput.d.ts +4 -3
  96. package/dist/cjs/components/DateInput/DateInput.js +18 -12
  97. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  98. package/dist/cjs/components/DatePicker/DatePicker.js +2 -2
  99. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  100. package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +3 -3
  101. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +18 -12
  102. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  103. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  104. package/dist/cjs/components/Epic/Epic.js +1 -1
  105. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  106. package/dist/cjs/components/Epic/ScrollSaver.js +1 -1
  107. package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
  108. package/dist/cjs/components/File/File.d.ts +1 -1
  109. package/dist/cjs/components/File/File.js +2 -2
  110. package/dist/cjs/components/File/File.js.map +1 -1
  111. package/dist/cjs/components/FixedLayout/FixedLayout.js +6 -6
  112. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  113. package/dist/cjs/components/FormField/FormField.js +14 -13
  114. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  115. package/dist/cjs/components/FormItem/FormItem.js +11 -6
  116. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  117. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +9 -4
  118. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  119. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
  120. package/dist/cjs/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  121. package/dist/cjs/components/Group/Group.js +14 -8
  122. package/dist/cjs/components/Group/Group.js.map +1 -1
  123. package/dist/cjs/components/Header/Header.js +3 -3
  124. package/dist/cjs/components/Header/Header.js.map +1 -1
  125. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +3 -3
  126. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  127. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +3 -3
  128. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  129. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  130. package/dist/cjs/components/HoverPopper/HoverPopper.js +2 -2
  131. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
  132. package/dist/cjs/components/IconButton/IconButton.js +19 -5
  133. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  134. package/dist/cjs/components/Image/Image.d.ts +1 -1
  135. package/dist/cjs/components/Image/Image.js.map +1 -1
  136. package/dist/cjs/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  137. package/dist/cjs/components/ImageBase/ImageBase.d.ts +1 -1
  138. package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
  139. package/dist/cjs/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +1 -1
  140. package/dist/cjs/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  141. package/dist/cjs/components/ImageBase/validators.js +1 -1
  142. package/dist/cjs/components/ImageBase/validators.js.map +1 -1
  143. package/dist/cjs/components/InfoRow/InfoRow.js +1 -1
  144. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  145. package/dist/cjs/components/Input/Input.d.ts +1 -1
  146. package/dist/cjs/components/Input/Input.js +9 -4
  147. package/dist/cjs/components/Input/Input.js.map +1 -1
  148. package/dist/cjs/components/InputLike/InputLike.js +1 -1
  149. package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
  150. package/dist/cjs/components/Link/Link.js.map +1 -1
  151. package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
  152. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +2 -2
  153. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  154. package/dist/cjs/components/ModalCard/ModalCard.d.ts +1 -1
  155. package/dist/cjs/components/ModalCard/ModalCard.js +9 -7
  156. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  157. package/dist/cjs/components/ModalCardBase/ModalCardBase.d.ts +5 -1
  158. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +15 -8
  159. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  160. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js +1 -1
  161. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  162. package/dist/cjs/components/ModalPage/ModalPage.d.ts +2 -6
  163. package/dist/cjs/components/ModalPage/ModalPage.js +20 -14
  164. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  165. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +4 -4
  166. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  167. package/dist/cjs/components/ModalRoot/ModalRoot.js +13 -14
  168. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  169. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js +2 -2
  170. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  171. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +6 -6
  172. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  173. package/dist/cjs/components/ModalRoot/useModalManager.js +3 -3
  174. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  175. package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +1 -1
  176. package/dist/cjs/components/NativeSelect/NativeSelect.js +12 -9
  177. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  178. package/dist/cjs/components/Pagination/Pagination.js +11 -5
  179. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  180. package/dist/cjs/components/Panel/Panel.d.ts +1 -1
  181. package/dist/cjs/components/Panel/Panel.js +13 -7
  182. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  183. package/dist/cjs/components/PanelHeader/PanelHeader.js +7 -7
  184. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  185. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js +7 -6
  186. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  187. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +3 -3
  188. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  189. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  190. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  191. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +3 -3
  192. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  193. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +13 -7
  194. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  195. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  196. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  197. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  198. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  199. package/dist/cjs/components/Placeholder/Placeholder.js +1 -1
  200. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  201. package/dist/cjs/components/PlatformProvider/PlatformProvider.js +2 -2
  202. package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
  203. package/dist/cjs/components/PopoutRoot/PopoutRoot.js +2 -2
  204. package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
  205. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js +3 -3
  206. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  207. package/dist/cjs/components/Popover/Popover.js +5 -5
  208. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  209. package/dist/cjs/components/Popper/Popper.d.ts +12 -9
  210. package/dist/cjs/components/Popper/Popper.js +94 -121
  211. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  212. package/dist/cjs/components/PopperArrow/PopperArrow.d.ts +15 -5
  213. package/dist/cjs/components/PopperArrow/PopperArrow.js +44 -17
  214. package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
  215. package/dist/cjs/components/Progress/Progress.js +1 -1
  216. package/dist/cjs/components/Progress/Progress.js.map +1 -1
  217. package/dist/cjs/components/PromoBanner/PromoBanner.js +2 -2
  218. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  219. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +1 -1
  220. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +8 -8
  221. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  222. package/dist/cjs/components/Radio/Radio.js +12 -7
  223. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  224. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
  225. package/dist/cjs/components/RangeSlider/UniversalSlider.d.ts +1 -1
  226. package/dist/cjs/components/RangeSlider/UniversalSlider.js +10 -5
  227. package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
  228. package/dist/cjs/components/Removable/Removable.js +4 -8
  229. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  230. package/dist/cjs/components/RichCell/RichCell.js +9 -4
  231. package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
  232. package/dist/cjs/components/RichTooltip/RichTooltip.js +1 -1
  233. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  234. package/dist/cjs/components/Root/Root.js +9 -9
  235. package/dist/cjs/components/Root/Root.js.map +1 -1
  236. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js +5 -5
  237. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  238. package/dist/cjs/components/Search/Search.d.ts +1 -1
  239. package/dist/cjs/components/Search/Search.js +13 -8
  240. package/dist/cjs/components/Search/Search.js.map +1 -1
  241. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +18 -18
  242. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  243. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +10 -4
  244. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  245. package/dist/cjs/components/Select/Select.js +3 -3
  246. package/dist/cjs/components/Select/Select.js.map +1 -1
  247. package/dist/cjs/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  248. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +12 -9
  249. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  250. package/dist/cjs/components/SelectTypography/SelectTypography.js +1 -1
  251. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
  252. package/dist/cjs/components/SimpleCell/SimpleCell.js +13 -7
  253. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  254. package/dist/cjs/components/Snackbar/Snackbar.js +8 -8
  255. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  256. package/dist/cjs/components/Spinner/Spinner.js +1 -1
  257. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  258. package/dist/cjs/components/SplitCol/SplitCol.d.ts +0 -6
  259. package/dist/cjs/components/SplitCol/SplitCol.js +12 -18
  260. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  261. package/dist/cjs/components/SplitCol/SplitColContext.d.ts +7 -0
  262. package/dist/cjs/components/SplitCol/SplitColContext.js +18 -0
  263. package/dist/cjs/components/SplitCol/SplitColContext.js.map +1 -0
  264. package/dist/cjs/components/SplitLayout/SplitLayout.js +1 -1
  265. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  266. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +10 -5
  267. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  268. package/dist/cjs/components/Switch/Switch.js +12 -7
  269. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  270. package/dist/cjs/components/TabbarItem/TabbarItem.js +10 -1
  271. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  272. package/dist/cjs/components/Tabs/Tabs.js +3 -3
  273. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  274. package/dist/cjs/components/TabsItem/TabsItem.js +10 -5
  275. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  276. package/dist/cjs/components/Tappable/Tappable.d.ts +1 -1
  277. package/dist/cjs/components/Tappable/Tappable.js +14 -14
  278. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  279. package/dist/cjs/components/TextTooltip/TextTooltip.js +1 -1
  280. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  281. package/dist/cjs/components/Textarea/Textarea.d.ts +1 -1
  282. package/dist/cjs/components/Textarea/Textarea.js +10 -5
  283. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  284. package/dist/cjs/components/Tooltip/Tooltip.d.ts +3 -3
  285. package/dist/cjs/components/Tooltip/Tooltip.js +120 -156
  286. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  287. package/dist/cjs/components/Touch/Touch.js +3 -3
  288. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  289. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  290. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  291. package/dist/cjs/components/Typography/Headline/Headline.js +9 -4
  292. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  293. package/dist/cjs/components/Typography/Subhead/Subhead.js +8 -3
  294. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  295. package/dist/cjs/components/Typography/Text/Text.js +9 -4
  296. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  297. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  298. package/dist/cjs/components/UsersStack/UsersStack.js +2 -2
  299. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  300. package/dist/cjs/components/View/View.js +13 -13
  301. package/dist/cjs/components/View/View.js.map +1 -1
  302. package/dist/cjs/components/View/ViewInfinite.d.ts +3 -3
  303. package/dist/cjs/components/View/ViewInfinite.js +10 -10
  304. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  305. package/dist/cjs/components/WriteBar/WriteBar.js +4 -4
  306. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  307. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +12 -10
  308. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  309. package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
  310. package/dist/cjs/hoc/withPlatform.js.map +1 -1
  311. package/dist/cjs/hooks/useAdaptivityConditionalRender/helpers.d.ts +2 -2
  312. package/dist/cjs/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  313. package/dist/cjs/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  314. package/dist/cjs/hooks/useAdaptivityWithJSMediaQueries.js +1 -1
  315. package/dist/cjs/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  316. package/dist/cjs/hooks/useAutoDetectAppearance.js +1 -1
  317. package/dist/cjs/hooks/useAutoDetectAppearance.js.map +1 -1
  318. package/dist/cjs/hooks/useCalendar.js.map +1 -1
  319. package/dist/cjs/hooks/useChipsSelect.d.ts +1 -1
  320. package/dist/cjs/hooks/useChipsSelect.js.map +1 -1
  321. package/dist/cjs/hooks/useDateInput.js +1 -1
  322. package/dist/cjs/hooks/useDateInput.js.map +1 -1
  323. package/dist/cjs/hooks/useFocusVisible.js.map +1 -1
  324. package/dist/cjs/hooks/useMediaQueries.js.map +1 -1
  325. package/dist/cjs/hooks/usePatchChildrenRef.js +1 -1
  326. package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -1
  327. package/dist/cjs/hooks/useTimeout.js +1 -1
  328. package/dist/cjs/hooks/useTimeout.js.map +1 -1
  329. package/dist/cjs/hooks/useTodayDate.js.map +1 -1
  330. package/dist/cjs/hooks/useWaitTransitionFinish.js +1 -1
  331. package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
  332. package/dist/cjs/index.d.ts +37 -30
  333. package/dist/cjs/index.js +13 -13
  334. package/dist/cjs/index.js.map +1 -1
  335. package/dist/cjs/lib/SSR.js +3 -3
  336. package/dist/cjs/lib/SSR.js.map +1 -1
  337. package/dist/cjs/lib/adaptivity/constants.d.ts +7 -0
  338. package/dist/cjs/lib/adaptivity/constants.js +6 -1
  339. package/dist/cjs/lib/adaptivity/constants.js.map +1 -1
  340. package/dist/cjs/lib/adaptivity/functions.d.ts +9 -1
  341. package/dist/cjs/lib/adaptivity/functions.js +43 -0
  342. package/dist/cjs/lib/adaptivity/functions.js.map +1 -1
  343. package/dist/cjs/lib/adaptivity/types.d.ts +2 -1
  344. package/dist/cjs/lib/adaptivity/types.js.map +1 -1
  345. package/dist/cjs/lib/calendar.js.map +1 -1
  346. package/dist/cjs/lib/floating/adapters.d.ts +2 -0
  347. package/dist/cjs/lib/floating/adapters.js +63 -0
  348. package/dist/cjs/lib/floating/adapters.js.map +1 -0
  349. package/dist/cjs/lib/floating/functions.d.ts +10 -0
  350. package/dist/cjs/lib/floating/functions.js +36 -0
  351. package/dist/cjs/lib/floating/functions.js.map +1 -0
  352. package/dist/cjs/lib/floating/index.d.ts +4 -0
  353. package/dist/cjs/lib/floating/index.js +75 -0
  354. package/dist/cjs/lib/floating/index.js.map +1 -0
  355. package/dist/cjs/lib/floating/types.d.ts +4 -0
  356. package/dist/cjs/lib/floating/types.js +6 -0
  357. package/dist/cjs/lib/floating/types.js.map +1 -0
  358. package/dist/cjs/lib/platform.js +1 -1
  359. package/dist/cjs/lib/platform.js.map +1 -1
  360. package/dist/cjs/lib/select.js.map +1 -1
  361. package/dist/cjs/lib/useIsomorphicLayoutEffect.d.ts +1 -1
  362. package/dist/cjs/lib/warnOnce.d.ts +7 -0
  363. package/dist/cjs/lib/warnOnce.js +14 -0
  364. package/dist/cjs/lib/warnOnce.js.map +1 -1
  365. package/dist/cjs/shared/breakpoints.d.ts +44 -0
  366. package/dist/cjs/shared/breakpoints.js +79 -13
  367. package/dist/cjs/shared/breakpoints.js.map +1 -1
  368. package/dist/cjs/types.d.ts +9 -1
  369. package/dist/cjs/types.js.map +1 -1
  370. package/dist/components/ActionSheet/ActionSheet.js +8 -8
  371. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  372. package/dist/components/ActionSheet/ActionSheetDropdown.js +4 -4
  373. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  374. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +7 -7
  375. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  376. package/dist/components/ActionSheetItem/ActionSheetItem.js +5 -6
  377. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  378. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts +1 -1
  379. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  380. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
  381. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  382. package/dist/components/Alert/Alert.d.ts +1 -1
  383. package/dist/components/Alert/Alert.js +10 -10
  384. package/dist/components/Alert/Alert.js.map +1 -1
  385. package/dist/components/AppRoot/AppRoot.js +20 -12
  386. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  387. package/dist/components/AppRoot/AppRootPortal.js +2 -2
  388. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  389. package/dist/components/AppRoot/ScrollContext.js +1 -1
  390. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  391. package/dist/components/Avatar/Avatar.d.ts +1 -1
  392. package/dist/components/Avatar/Avatar.js +1 -1
  393. package/dist/components/Avatar/Avatar.js.map +1 -1
  394. package/dist/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  395. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +1 -1
  396. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  397. package/dist/components/Banner/Banner.js +2 -2
  398. package/dist/components/Banner/Banner.js.map +1 -1
  399. package/dist/components/BaseGallery/BaseGallery.js +4 -4
  400. package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
  401. package/dist/components/BaseGallery/helpers.d.ts +1 -1
  402. package/dist/components/BaseGallery/helpers.js.map +1 -1
  403. package/dist/components/BaseGallery/types.d.ts +1 -1
  404. package/dist/components/BaseGallery/types.js.map +1 -1
  405. package/dist/components/Button/Button.d.ts +1 -1
  406. package/dist/components/Button/Button.js +12 -6
  407. package/dist/components/Button/Button.js.map +1 -1
  408. package/dist/components/ButtonGroup/ButtonGroup.d.ts +1 -1
  409. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  410. package/dist/components/Calendar/Calendar.d.ts +2 -2
  411. package/dist/components/Calendar/Calendar.js +7 -7
  412. package/dist/components/Calendar/Calendar.js.map +1 -1
  413. package/dist/components/CalendarDay/CalendarDay.js +1 -1
  414. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  415. package/dist/components/CalendarDays/CalendarDays.js +3 -3
  416. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  417. package/dist/components/CalendarHeader/CalendarHeader.js +5 -5
  418. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  419. package/dist/components/CalendarRange/CalendarRange.d.ts +2 -2
  420. package/dist/components/CalendarRange/CalendarRange.js +4 -4
  421. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  422. package/dist/components/CalendarTime/CalendarTime.js +3 -3
  423. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  424. package/dist/components/CardGrid/CardGrid.js +8 -3
  425. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  426. package/dist/components/CardScroll/CardScroll.js +2 -6
  427. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  428. package/dist/components/Cell/Cell.d.ts +1 -1
  429. package/dist/components/Cell/Cell.js +6 -6
  430. package/dist/components/Cell/Cell.js.map +1 -1
  431. package/dist/components/Cell/CellCheckbox/CellCheckbox.js +8 -5
  432. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  433. package/dist/components/Cell/CellDragger/CellDragger.js +1 -1
  434. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  435. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  436. package/dist/components/Checkbox/Checkbox.js +16 -10
  437. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  438. package/dist/components/Chip/Chip.js +11 -6
  439. package/dist/components/Chip/Chip.js.map +1 -1
  440. package/dist/components/ChipsInput/ChipsInput.d.ts +1 -1
  441. package/dist/components/ChipsInput/ChipsInput.js +1 -1
  442. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  443. package/dist/components/ChipsInputBase/ChipsInputBase.js +4 -4
  444. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  445. package/dist/components/ChipsSelect/ChipsSelect.js +5 -9
  446. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  447. package/dist/components/ConfigProvider/ConfigProvider.js +5 -5
  448. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  449. package/dist/components/ConfigProvider/ConfigProviderOverride.js +1 -1
  450. package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  451. package/dist/components/ContentCard/ContentCard.d.ts +1 -1
  452. package/dist/components/ContentCard/ContentCard.js +4 -3
  453. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  454. package/dist/components/CustomScrollView/CustomScrollView.js +4 -4
  455. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  456. package/dist/components/CustomSelect/CustomSelect.d.ts +2 -2
  457. package/dist/components/CustomSelect/CustomSelect.js +11 -10
  458. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  459. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +3 -4
  460. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +22 -73
  461. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  462. package/dist/components/CustomSelectOption/CustomSelectOption.js +10 -5
  463. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  464. package/dist/components/DateInput/DateInput.d.ts +4 -3
  465. package/dist/components/DateInput/DateInput.js +18 -12
  466. package/dist/components/DateInput/DateInput.js.map +1 -1
  467. package/dist/components/DatePicker/DatePicker.js +2 -2
  468. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  469. package/dist/components/DateRangeInput/DateRangeInput.d.ts +3 -3
  470. package/dist/components/DateRangeInput/DateRangeInput.js +18 -12
  471. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  472. package/dist/components/DropdownIcon/DropdownIcon.js +1 -1
  473. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  474. package/dist/components/Epic/Epic.js +1 -1
  475. package/dist/components/Epic/Epic.js.map +1 -1
  476. package/dist/components/Epic/ScrollSaver.js +1 -1
  477. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  478. package/dist/components/File/File.d.ts +1 -1
  479. package/dist/components/File/File.js +2 -2
  480. package/dist/components/File/File.js.map +1 -1
  481. package/dist/components/FixedLayout/FixedLayout.js +5 -5
  482. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  483. package/dist/components/FormField/FormField.js +14 -13
  484. package/dist/components/FormField/FormField.js.map +1 -1
  485. package/dist/components/FormItem/FormItem.js +11 -6
  486. package/dist/components/FormItem/FormItem.js.map +1 -1
  487. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +9 -4
  488. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  489. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  490. package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  491. package/dist/components/Group/Group.js +14 -8
  492. package/dist/components/Group/Group.js.map +1 -1
  493. package/dist/components/Header/Header.js +3 -3
  494. package/dist/components/Header/Header.js.map +1 -1
  495. package/dist/components/HorizontalCell/HorizontalCell.js +3 -3
  496. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  497. package/dist/components/HorizontalScroll/HorizontalScroll.js +3 -3
  498. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  499. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +1 -1
  500. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  501. package/dist/components/HoverPopper/HoverPopper.js +2 -2
  502. package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
  503. package/dist/components/IconButton/IconButton.js +19 -5
  504. package/dist/components/IconButton/IconButton.js.map +1 -1
  505. package/dist/components/Image/Image.d.ts +1 -1
  506. package/dist/components/Image/Image.js.map +1 -1
  507. package/dist/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  508. package/dist/components/ImageBase/ImageBase.d.ts +1 -1
  509. package/dist/components/ImageBase/ImageBase.js +1 -1
  510. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  511. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +1 -1
  512. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  513. package/dist/components/ImageBase/validators.js +1 -1
  514. package/dist/components/ImageBase/validators.js.map +1 -1
  515. package/dist/components/InfoRow/InfoRow.js +1 -1
  516. package/dist/components/InfoRow/InfoRow.js.map +1 -1
  517. package/dist/components/Input/Input.d.ts +1 -1
  518. package/dist/components/Input/Input.js +9 -4
  519. package/dist/components/Input/Input.js.map +1 -1
  520. package/dist/components/InputLike/InputLike.js +1 -1
  521. package/dist/components/InputLike/InputLike.js.map +1 -1
  522. package/dist/components/Link/Link.js.map +1 -1
  523. package/dist/components/LocaleProvider/LocaleProvider.js.map +1 -1
  524. package/dist/components/MiniInfoCell/MiniInfoCell.js +2 -2
  525. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  526. package/dist/components/ModalCard/ModalCard.d.ts +1 -1
  527. package/dist/components/ModalCard/ModalCard.js +9 -7
  528. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  529. package/dist/components/ModalCardBase/ModalCardBase.d.ts +5 -1
  530. package/dist/components/ModalCardBase/ModalCardBase.js +15 -8
  531. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  532. package/dist/components/ModalDismissButton/ModalDismissButton.js +1 -1
  533. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  534. package/dist/components/ModalPage/ModalPage.d.ts +2 -6
  535. package/dist/components/ModalPage/ModalPage.js +20 -14
  536. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  537. package/dist/components/ModalPageHeader/ModalPageHeader.js +4 -4
  538. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  539. package/dist/components/ModalRoot/ModalRoot.js +13 -14
  540. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  541. package/dist/components/ModalRoot/ModalRootAdaptive.js +2 -2
  542. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  543. package/dist/components/ModalRoot/ModalRootDesktop.js +6 -6
  544. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  545. package/dist/components/ModalRoot/useModalManager.js +3 -3
  546. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  547. package/dist/components/NativeSelect/NativeSelect.d.ts +1 -1
  548. package/dist/components/NativeSelect/NativeSelect.js +12 -9
  549. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  550. package/dist/components/Pagination/Pagination.js +11 -5
  551. package/dist/components/Pagination/Pagination.js.map +1 -1
  552. package/dist/components/Panel/Panel.d.ts +1 -1
  553. package/dist/components/Panel/Panel.js +13 -7
  554. package/dist/components/Panel/Panel.js.map +1 -1
  555. package/dist/components/PanelHeader/PanelHeader.js +7 -7
  556. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  557. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +8 -7
  558. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  559. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +3 -3
  560. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  561. package/dist/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  562. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  563. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +3 -3
  564. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  565. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +13 -7
  566. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  567. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +3 -3
  568. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  569. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  570. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  571. package/dist/components/Placeholder/Placeholder.js +1 -1
  572. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  573. package/dist/components/PlatformProvider/PlatformProvider.js +2 -2
  574. package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
  575. package/dist/components/PopoutRoot/PopoutRoot.js +2 -2
  576. package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
  577. package/dist/components/PopoutWrapper/PopoutWrapper.js +3 -3
  578. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  579. package/dist/components/Popover/Popover.js +5 -5
  580. package/dist/components/Popover/Popover.js.map +1 -1
  581. package/dist/components/Popper/Popper.d.ts +12 -9
  582. package/dist/components/Popper/Popper.js +95 -122
  583. package/dist/components/Popper/Popper.js.map +1 -1
  584. package/dist/components/PopperArrow/PopperArrow.d.ts +15 -5
  585. package/dist/components/PopperArrow/PopperArrow.js +40 -15
  586. package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
  587. package/dist/components/Progress/Progress.js +1 -1
  588. package/dist/components/Progress/Progress.js.map +1 -1
  589. package/dist/components/PromoBanner/PromoBanner.js +2 -2
  590. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  591. package/dist/components/PullToRefresh/PullToRefresh.d.ts +1 -1
  592. package/dist/components/PullToRefresh/PullToRefresh.js +8 -8
  593. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  594. package/dist/components/Radio/Radio.js +12 -7
  595. package/dist/components/Radio/Radio.js.map +1 -1
  596. package/dist/components/RangeSlider/RangeSlider.js.map +1 -1
  597. package/dist/components/RangeSlider/UniversalSlider.d.ts +1 -1
  598. package/dist/components/RangeSlider/UniversalSlider.js +10 -5
  599. package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
  600. package/dist/components/Removable/Removable.js +4 -8
  601. package/dist/components/Removable/Removable.js.map +1 -1
  602. package/dist/components/RichCell/RichCell.js +9 -4
  603. package/dist/components/RichCell/RichCell.js.map +1 -1
  604. package/dist/components/RichTooltip/RichTooltip.js +1 -1
  605. package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
  606. package/dist/components/Root/Root.js +8 -8
  607. package/dist/components/Root/Root.js.map +1 -1
  608. package/dist/components/ScreenSpinner/ScreenSpinner.js +5 -5
  609. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  610. package/dist/components/Search/Search.d.ts +1 -1
  611. package/dist/components/Search/Search.js +13 -8
  612. package/dist/components/Search/Search.js.map +1 -1
  613. package/dist/components/SegmentedControl/SegmentedControl.js +18 -18
  614. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  615. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +10 -4
  616. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  617. package/dist/components/Select/Select.js +3 -3
  618. package/dist/components/Select/Select.js.map +1 -1
  619. package/dist/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  620. package/dist/components/SelectMimicry/SelectMimicry.js +12 -9
  621. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  622. package/dist/components/SelectTypography/SelectTypography.js +1 -1
  623. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  624. package/dist/components/SimpleCell/SimpleCell.js +13 -7
  625. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  626. package/dist/components/Snackbar/Snackbar.js +8 -8
  627. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  628. package/dist/components/Spinner/Spinner.js +1 -1
  629. package/dist/components/Spinner/Spinner.js.map +1 -1
  630. package/dist/components/SplitCol/SplitCol.d.ts +0 -6
  631. package/dist/components/SplitCol/SplitCol.js +10 -14
  632. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  633. package/dist/components/SplitCol/SplitColContext.d.ts +7 -0
  634. package/dist/components/SplitCol/SplitColContext.js +9 -0
  635. package/dist/components/SplitCol/SplitColContext.js.map +1 -0
  636. package/dist/components/SplitLayout/SplitLayout.js +1 -1
  637. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  638. package/dist/components/SubnavigationButton/SubnavigationButton.js +10 -5
  639. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  640. package/dist/components/Switch/Switch.js +12 -7
  641. package/dist/components/Switch/Switch.js.map +1 -1
  642. package/dist/components/TabbarItem/TabbarItem.js +10 -1
  643. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  644. package/dist/components/Tabs/Tabs.js +3 -3
  645. package/dist/components/Tabs/Tabs.js.map +1 -1
  646. package/dist/components/TabsItem/TabsItem.js +10 -5
  647. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  648. package/dist/components/Tappable/Tappable.d.ts +1 -1
  649. package/dist/components/Tappable/Tappable.js +14 -14
  650. package/dist/components/Tappable/Tappable.js.map +1 -1
  651. package/dist/components/TextTooltip/TextTooltip.js +1 -1
  652. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  653. package/dist/components/Textarea/Textarea.d.ts +1 -1
  654. package/dist/components/Textarea/Textarea.js +10 -5
  655. package/dist/components/Textarea/Textarea.js.map +1 -1
  656. package/dist/components/Tooltip/Tooltip.d.ts +3 -3
  657. package/dist/components/Tooltip/Tooltip.js +120 -156
  658. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  659. package/dist/components/Touch/Touch.js +3 -3
  660. package/dist/components/Touch/Touch.js.map +1 -1
  661. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  662. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  663. package/dist/components/Typography/Headline/Headline.js +9 -4
  664. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  665. package/dist/components/Typography/Subhead/Subhead.js +8 -3
  666. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  667. package/dist/components/Typography/Text/Text.js +9 -4
  668. package/dist/components/Typography/Text/Text.js.map +1 -1
  669. package/dist/components/Typography/Title/Title.js.map +1 -1
  670. package/dist/components/UsersStack/UsersStack.js +2 -2
  671. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  672. package/dist/components/View/View.js +12 -12
  673. package/dist/components/View/View.js.map +1 -1
  674. package/dist/components/View/ViewInfinite.d.ts +3 -3
  675. package/dist/components/View/ViewInfinite.js +9 -9
  676. package/dist/components/View/ViewInfinite.js.map +1 -1
  677. package/dist/components/WriteBar/WriteBar.js +4 -4
  678. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  679. package/dist/components/WriteBarIcon/WriteBarIcon.js +12 -10
  680. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  681. package/dist/components.css +142 -2
  682. package/dist/components.css.map +1 -1
  683. package/dist/components.js.tmp +62123 -4
  684. package/dist/cssm/components/ActionSheet/ActionSheet.js +8 -8
  685. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  686. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +4 -4
  687. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  688. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +7 -7
  689. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  690. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +5 -6
  691. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  692. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.d.ts +1 -1
  693. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  694. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
  695. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  696. package/dist/cssm/components/Alert/Alert.d.ts +1 -1
  697. package/dist/cssm/components/Alert/Alert.js +10 -10
  698. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  699. package/dist/cssm/components/Alert/Alert.module.css +1 -1
  700. package/dist/cssm/components/AppRoot/AppRoot.js +20 -12
  701. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  702. package/dist/cssm/components/AppRoot/AppRootPortal.js +2 -2
  703. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  704. package/dist/cssm/components/AppRoot/ScrollContext.js +1 -1
  705. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  706. package/dist/cssm/components/Avatar/Avatar.d.ts +1 -1
  707. package/dist/cssm/components/Avatar/Avatar.js +1 -1
  708. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  709. package/dist/cssm/components/Avatar/Avatar.module.css +1 -1
  710. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  711. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +1 -1
  712. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  713. package/dist/cssm/components/Banner/Banner.js +2 -2
  714. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  715. package/dist/cssm/components/BaseGallery/BaseGallery.js +4 -4
  716. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
  717. package/dist/cssm/components/BaseGallery/helpers.d.ts +1 -1
  718. package/dist/cssm/components/BaseGallery/helpers.js.map +1 -1
  719. package/dist/cssm/components/BaseGallery/types.d.ts +1 -1
  720. package/dist/cssm/components/BaseGallery/types.js.map +1 -1
  721. package/dist/cssm/components/Button/Button.d.ts +1 -1
  722. package/dist/cssm/components/Button/Button.js +12 -6
  723. package/dist/cssm/components/Button/Button.js.map +1 -1
  724. package/dist/cssm/components/Button/Button.module.css +1 -1
  725. package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +1 -1
  726. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  727. package/dist/cssm/components/Calendar/Calendar.d.ts +2 -2
  728. package/dist/cssm/components/Calendar/Calendar.js +7 -7
  729. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  730. package/dist/cssm/components/CalendarDay/CalendarDay.js +1 -1
  731. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  732. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +1 -1
  733. package/dist/cssm/components/CalendarDays/CalendarDays.js +3 -3
  734. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  735. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +5 -5
  736. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  737. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +2 -2
  738. package/dist/cssm/components/CalendarRange/CalendarRange.js +4 -4
  739. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  740. package/dist/cssm/components/CalendarTime/CalendarTime.js +3 -3
  741. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  742. package/dist/cssm/components/CalendarTime/CalendarTime.module.css +1 -1
  743. package/dist/cssm/components/CardGrid/CardGrid.js +8 -3
  744. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  745. package/dist/cssm/components/CardGrid/CardGrid.module.css +1 -1
  746. package/dist/cssm/components/CardScroll/CardScroll.js +2 -6
  747. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  748. package/dist/cssm/components/Cell/Cell.d.ts +1 -1
  749. package/dist/cssm/components/Cell/Cell.js +6 -6
  750. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  751. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +8 -5
  752. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  753. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.module.css +1 -1
  754. package/dist/cssm/components/Cell/CellDragger/CellDragger.js +1 -1
  755. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  756. package/dist/cssm/components/Checkbox/Checkbox.d.ts +1 -1
  757. package/dist/cssm/components/Checkbox/Checkbox.js +16 -10
  758. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  759. package/dist/cssm/components/Checkbox/Checkbox.module.css +1 -1
  760. package/dist/cssm/components/Chip/Chip.js +11 -6
  761. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  762. package/dist/cssm/components/Chip/Chip.module.css +1 -1
  763. package/dist/cssm/components/ChipsInput/ChipsInput.d.ts +1 -1
  764. package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
  765. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  766. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +4 -4
  767. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  768. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +5 -9
  769. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  770. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +5 -5
  771. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  772. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +1 -1
  773. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  774. package/dist/cssm/components/ContentCard/ContentCard.d.ts +1 -1
  775. package/dist/cssm/components/ContentCard/ContentCard.js +4 -3
  776. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  777. package/dist/cssm/components/CustomScrollView/CustomScrollView.js +4 -4
  778. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  779. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +2 -2
  780. package/dist/cssm/components/CustomSelect/CustomSelect.js +11 -10
  781. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  782. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +3 -4
  783. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +22 -73
  784. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  785. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +10 -5
  786. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  787. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +1 -1
  788. package/dist/cssm/components/DateInput/DateInput.d.ts +4 -3
  789. package/dist/cssm/components/DateInput/DateInput.js +19 -12
  790. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  791. package/dist/cssm/components/DateInput/DateInput.module.css +1 -1
  792. package/dist/cssm/components/DatePicker/DatePicker.js +2 -2
  793. package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
  794. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +3 -3
  795. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +18 -12
  796. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  797. package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +1 -1
  798. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +1 -1
  799. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  800. package/dist/cssm/components/Epic/Epic.js +1 -1
  801. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  802. package/dist/cssm/components/Epic/ScrollSaver.js +1 -1
  803. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  804. package/dist/cssm/components/File/File.d.ts +1 -1
  805. package/dist/cssm/components/File/File.js +2 -2
  806. package/dist/cssm/components/File/File.js.map +1 -1
  807. package/dist/cssm/components/FixedLayout/FixedLayout.js +5 -5
  808. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  809. package/dist/cssm/components/FormField/FormField.js +14 -13
  810. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  811. package/dist/cssm/components/FormField/FormField.module.css +1 -1
  812. package/dist/cssm/components/FormItem/FormItem.js +11 -6
  813. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  814. package/dist/cssm/components/FormItem/FormItem.module.css +1 -1
  815. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +9 -4
  816. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  817. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +1 -1
  818. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  819. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  820. package/dist/cssm/components/Group/Group.js +14 -8
  821. package/dist/cssm/components/Group/Group.js.map +1 -1
  822. package/dist/cssm/components/Group/Group.module.css +1 -1
  823. package/dist/cssm/components/Header/Header.js +3 -3
  824. package/dist/cssm/components/Header/Header.js.map +1 -1
  825. package/dist/cssm/components/Header/Header.module.css +1 -1
  826. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -3
  827. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  828. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +1 -1
  829. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -3
  830. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  831. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +1 -1
  832. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  833. package/dist/cssm/components/HoverPopper/HoverPopper.js +2 -2
  834. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
  835. package/dist/cssm/components/IconButton/IconButton.js +19 -5
  836. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  837. package/dist/cssm/components/IconButton/IconButton.module.css +1 -1
  838. package/dist/cssm/components/Image/Image.d.ts +1 -1
  839. package/dist/cssm/components/Image/Image.js.map +1 -1
  840. package/dist/cssm/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  841. package/dist/cssm/components/ImageBase/ImageBase.d.ts +1 -1
  842. package/dist/cssm/components/ImageBase/ImageBase.js +1 -1
  843. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  844. package/dist/cssm/components/ImageBase/ImageBase.module.css +1 -1
  845. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +1 -1
  846. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  847. package/dist/cssm/components/ImageBase/validators.js +1 -1
  848. package/dist/cssm/components/ImageBase/validators.js.map +1 -1
  849. package/dist/cssm/components/InfoRow/InfoRow.js +1 -1
  850. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  851. package/dist/cssm/components/Input/Input.d.ts +1 -1
  852. package/dist/cssm/components/Input/Input.js +9 -4
  853. package/dist/cssm/components/Input/Input.js.map +1 -1
  854. package/dist/cssm/components/Input/Input.module.css +1 -1
  855. package/dist/cssm/components/InputLike/InputLike.js +1 -1
  856. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  857. package/dist/cssm/components/InputLike/InputLike.module.css +1 -1
  858. package/dist/cssm/components/Link/Link.js.map +1 -1
  859. package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
  860. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +2 -2
  861. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  862. package/dist/cssm/components/ModalCard/ModalCard.d.ts +1 -1
  863. package/dist/cssm/components/ModalCard/ModalCard.js +9 -7
  864. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  865. package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +5 -1
  866. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +15 -8
  867. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  868. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -1
  869. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  870. package/dist/cssm/components/ModalPage/ModalPage.d.ts +2 -6
  871. package/dist/cssm/components/ModalPage/ModalPage.js +20 -14
  872. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  873. package/dist/cssm/components/ModalPage/ModalPage.module.css +1 -1
  874. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +4 -4
  875. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  876. package/dist/cssm/components/ModalRoot/ModalRoot.js +13 -14
  877. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  878. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +2 -2
  879. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  880. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +6 -6
  881. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  882. package/dist/cssm/components/ModalRoot/useModalManager.js +3 -3
  883. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  884. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +1 -1
  885. package/dist/cssm/components/NativeSelect/NativeSelect.js +12 -9
  886. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  887. package/dist/cssm/components/Pagination/Pagination.js +11 -5
  888. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  889. package/dist/cssm/components/Pagination/Pagination.module.css +1 -1
  890. package/dist/cssm/components/Panel/Panel.d.ts +1 -1
  891. package/dist/cssm/components/Panel/Panel.js +13 -7
  892. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  893. package/dist/cssm/components/Panel/Panel.module.css +1 -1
  894. package/dist/cssm/components/PanelHeader/PanelHeader.js +7 -7
  895. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  896. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +1 -1
  897. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +8 -7
  898. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  899. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +3 -3
  900. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  901. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +1 -1
  902. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  903. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  904. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +3 -3
  905. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  906. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +1 -1
  907. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +13 -7
  908. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  909. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +1 -1
  910. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +3 -3
  911. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  912. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  913. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  914. package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
  915. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  916. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +2 -2
  917. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  918. package/dist/cssm/components/PopoutRoot/PopoutRoot.js +2 -2
  919. package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
  920. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +3 -3
  921. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  922. package/dist/cssm/components/Popover/Popover.js +5 -5
  923. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  924. package/dist/cssm/components/Popper/Popper.d.ts +12 -9
  925. package/dist/cssm/components/Popper/Popper.js +95 -122
  926. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  927. package/dist/cssm/components/PopperArrow/PopperArrow.d.ts +15 -5
  928. package/dist/cssm/components/PopperArrow/PopperArrow.js +40 -15
  929. package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
  930. package/dist/cssm/components/PopperArrow/PopperArrow.module.css +1 -1
  931. package/dist/cssm/components/Progress/Progress.js +1 -1
  932. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  933. package/dist/cssm/components/PromoBanner/PromoBanner.js +2 -2
  934. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  935. package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts +1 -1
  936. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +8 -8
  937. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  938. package/dist/cssm/components/Radio/Radio.js +12 -7
  939. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  940. package/dist/cssm/components/Radio/Radio.module.css +1 -1
  941. package/dist/cssm/components/RangeSlider/RangeSlider.js.map +1 -1
  942. package/dist/cssm/components/RangeSlider/UniversalSlider.d.ts +1 -1
  943. package/dist/cssm/components/RangeSlider/UniversalSlider.js +10 -5
  944. package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
  945. package/dist/cssm/components/Removable/Removable.js +4 -8
  946. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  947. package/dist/cssm/components/Removable/Removable.module.css +1 -1
  948. package/dist/cssm/components/RichCell/RichCell.js +9 -4
  949. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  950. package/dist/cssm/components/RichCell/RichCell.module.css +1 -1
  951. package/dist/cssm/components/RichTooltip/RichTooltip.js +1 -1
  952. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  953. package/dist/cssm/components/Root/Root.js +8 -8
  954. package/dist/cssm/components/Root/Root.js.map +1 -1
  955. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +5 -5
  956. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  957. package/dist/cssm/components/Search/Search.d.ts +1 -1
  958. package/dist/cssm/components/Search/Search.js +13 -8
  959. package/dist/cssm/components/Search/Search.js.map +1 -1
  960. package/dist/cssm/components/Search/Search.module.css +1 -1
  961. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +18 -18
  962. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  963. package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +1 -1
  964. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +10 -4
  965. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  966. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +1 -1
  967. package/dist/cssm/components/Select/Select.js +3 -3
  968. package/dist/cssm/components/Select/Select.js.map +1 -1
  969. package/dist/cssm/components/Select/Select.module.css +1 -1
  970. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  971. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +12 -9
  972. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  973. package/dist/cssm/components/SelectTypography/SelectTypography.js +1 -1
  974. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  975. package/dist/cssm/components/SelectTypography/SelectTypography.module.css +1 -1
  976. package/dist/cssm/components/SimpleCell/SimpleCell.js +13 -7
  977. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  978. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +1 -1
  979. package/dist/cssm/components/Slider/Slider.module.css +1 -1
  980. package/dist/cssm/components/Snackbar/Snackbar.js +8 -8
  981. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  982. package/dist/cssm/components/Spinner/Spinner.js +1 -1
  983. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  984. package/dist/cssm/components/SplitCol/SplitCol.d.ts +0 -6
  985. package/dist/cssm/components/SplitCol/SplitCol.js +10 -14
  986. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  987. package/dist/cssm/components/SplitCol/SplitCol.module.css +1 -1
  988. package/dist/cssm/components/SplitCol/SplitColContext.d.ts +7 -0
  989. package/dist/cssm/components/SplitCol/SplitColContext.js +9 -0
  990. package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -0
  991. package/dist/cssm/components/SplitLayout/SplitLayout.js +1 -1
  992. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  993. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +10 -5
  994. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  995. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +1 -1
  996. package/dist/cssm/components/Switch/Switch.js +12 -7
  997. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  998. package/dist/cssm/components/Switch/Switch.module.css +1 -1
  999. package/dist/cssm/components/TabbarItem/TabbarItem.js +10 -1
  1000. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  1001. package/dist/cssm/components/Tabs/Tabs.js +3 -3
  1002. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  1003. package/dist/cssm/components/Tabs/Tabs.module.css +1 -1
  1004. package/dist/cssm/components/TabsItem/TabsItem.js +10 -5
  1005. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  1006. package/dist/cssm/components/TabsItem/TabsItem.module.css +1 -1
  1007. package/dist/cssm/components/Tappable/Tappable.d.ts +1 -1
  1008. package/dist/cssm/components/Tappable/Tappable.js +14 -14
  1009. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  1010. package/dist/cssm/components/Tappable/Tappable.module.css +1 -1
  1011. package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -1
  1012. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  1013. package/dist/cssm/components/Textarea/Textarea.d.ts +1 -1
  1014. package/dist/cssm/components/Textarea/Textarea.js +10 -5
  1015. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  1016. package/dist/cssm/components/Textarea/Textarea.module.css +1 -1
  1017. package/dist/cssm/components/Tooltip/Tooltip.d.ts +3 -3
  1018. package/dist/cssm/components/Tooltip/Tooltip.js +126 -156
  1019. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  1020. package/dist/cssm/components/Tooltip/Tooltip.module.css +1 -1
  1021. package/dist/cssm/components/Touch/Touch.js +3 -3
  1022. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  1023. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  1024. package/dist/cssm/components/Typography/Caption/Caption.module.css +1 -1
  1025. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  1026. package/dist/cssm/components/Typography/Footnote/Footnote.module.css +1 -1
  1027. package/dist/cssm/components/Typography/Headline/Headline.js +9 -4
  1028. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  1029. package/dist/cssm/components/Typography/Headline/Headline.module.css +1 -1
  1030. package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +1 -1
  1031. package/dist/cssm/components/Typography/Subhead/Subhead.js +8 -3
  1032. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  1033. package/dist/cssm/components/Typography/Subhead/Subhead.module.css +1 -1
  1034. package/dist/cssm/components/Typography/Text/Text.js +9 -4
  1035. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  1036. package/dist/cssm/components/Typography/Text/Text.module.css +1 -1
  1037. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  1038. package/dist/cssm/components/Typography/Title/Title.module.css +1 -1
  1039. package/dist/cssm/components/UsersStack/UsersStack.js +2 -2
  1040. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  1041. package/dist/cssm/components/View/View.js +12 -12
  1042. package/dist/cssm/components/View/View.js.map +1 -1
  1043. package/dist/cssm/components/View/View.module.css +1 -1
  1044. package/dist/cssm/components/View/ViewInfinite.d.ts +3 -3
  1045. package/dist/cssm/components/View/ViewInfinite.js +9 -9
  1046. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  1047. package/dist/cssm/components/WriteBar/WriteBar.js +4 -4
  1048. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  1049. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +12 -10
  1050. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  1051. package/dist/cssm/helpers/getPlatformClassName.js.map +1 -1
  1052. package/dist/cssm/hoc/withPlatform.js.map +1 -1
  1053. package/dist/cssm/hooks/useAdaptivityConditionalRender/helpers.d.ts +2 -2
  1054. package/dist/cssm/hooks/useAdaptivityConditionalRender/helpers.js +1 -1
  1055. package/dist/cssm/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  1056. package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js +2 -2
  1057. package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  1058. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js +3 -3
  1059. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  1060. package/dist/cssm/hooks/useAutoDetectAppearance.js +1 -1
  1061. package/dist/cssm/hooks/useAutoDetectAppearance.js.map +1 -1
  1062. package/dist/cssm/hooks/useCalendar.js +1 -1
  1063. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  1064. package/dist/cssm/hooks/useChipsSelect.d.ts +1 -1
  1065. package/dist/cssm/hooks/useChipsSelect.js.map +1 -1
  1066. package/dist/cssm/hooks/useDateInput.js +1 -1
  1067. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  1068. package/dist/cssm/hooks/useFocusVisible.js +1 -1
  1069. package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
  1070. package/dist/cssm/hooks/useMediaQueries.js.map +1 -1
  1071. package/dist/cssm/hooks/usePatchChildrenRef.js +1 -1
  1072. package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -1
  1073. package/dist/cssm/hooks/useTimeout.js +1 -1
  1074. package/dist/cssm/hooks/useTimeout.js.map +1 -1
  1075. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  1076. package/dist/cssm/hooks/useWaitTransitionFinish.js +1 -1
  1077. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  1078. package/dist/cssm/index.d.ts +37 -30
  1079. package/dist/cssm/index.js +24 -18
  1080. package/dist/cssm/index.js.map +1 -1
  1081. package/dist/cssm/lib/SSR.js +3 -3
  1082. package/dist/cssm/lib/SSR.js.map +1 -1
  1083. package/dist/cssm/lib/adaptivity/constants.d.ts +7 -0
  1084. package/dist/cssm/lib/adaptivity/constants.js +3 -0
  1085. package/dist/cssm/lib/adaptivity/constants.js.map +1 -1
  1086. package/dist/cssm/lib/adaptivity/functions.d.ts +9 -1
  1087. package/dist/cssm/lib/adaptivity/functions.js +43 -1
  1088. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  1089. package/dist/cssm/lib/adaptivity/types.d.ts +2 -1
  1090. package/dist/cssm/lib/adaptivity/types.js.map +1 -1
  1091. package/dist/cssm/lib/calendar.js +1 -1
  1092. package/dist/cssm/lib/calendar.js.map +1 -1
  1093. package/dist/cssm/lib/floating/adapters.d.ts +2 -0
  1094. package/dist/cssm/lib/floating/adapters.js +56 -0
  1095. package/dist/cssm/lib/floating/adapters.js.map +1 -0
  1096. package/dist/cssm/lib/floating/functions.d.ts +10 -0
  1097. package/dist/cssm/lib/floating/functions.js +28 -0
  1098. package/dist/cssm/lib/floating/functions.js.map +1 -0
  1099. package/dist/cssm/lib/floating/index.d.ts +4 -0
  1100. package/dist/cssm/lib/floating/index.js +4 -0
  1101. package/dist/cssm/lib/floating/index.js.map +1 -0
  1102. package/dist/cssm/lib/floating/types.d.ts +4 -0
  1103. package/dist/cssm/lib/floating/types.js +2 -0
  1104. package/dist/cssm/lib/floating/types.js.map +1 -0
  1105. package/dist/cssm/lib/platform.js +1 -1
  1106. package/dist/cssm/lib/platform.js.map +1 -1
  1107. package/dist/cssm/lib/select.js.map +1 -1
  1108. package/dist/cssm/lib/useIsomorphicLayoutEffect.d.ts +1 -1
  1109. package/dist/cssm/lib/warnOnce.d.ts +7 -0
  1110. package/dist/cssm/lib/warnOnce.js +12 -0
  1111. package/dist/cssm/lib/warnOnce.js.map +1 -1
  1112. package/dist/cssm/shared/breakpoints.d.ts +44 -0
  1113. package/dist/cssm/shared/breakpoints.js +79 -13
  1114. package/dist/cssm/shared/breakpoints.js.map +1 -1
  1115. package/dist/cssm/styles/adaptivity.module.css +1 -1
  1116. package/dist/cssm/styles/common.css +1 -1
  1117. package/dist/cssm/styles/themes.css +1 -1
  1118. package/dist/cssm/types.d.ts +9 -1
  1119. package/dist/cssm/types.js.map +1 -1
  1120. package/dist/helpers/getPlatformClassName.js.map +1 -1
  1121. package/dist/hoc/withPlatform.js.map +1 -1
  1122. package/dist/hooks/useAdaptivityConditionalRender/helpers.d.ts +2 -2
  1123. package/dist/hooks/useAdaptivityConditionalRender/helpers.js +1 -1
  1124. package/dist/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  1125. package/dist/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js +2 -2
  1126. package/dist/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  1127. package/dist/hooks/useAdaptivityWithJSMediaQueries.js +3 -3
  1128. package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  1129. package/dist/hooks/useAutoDetectAppearance.js +1 -1
  1130. package/dist/hooks/useAutoDetectAppearance.js.map +1 -1
  1131. package/dist/hooks/useCalendar.js +1 -1
  1132. package/dist/hooks/useCalendar.js.map +1 -1
  1133. package/dist/hooks/useChipsSelect.d.ts +1 -1
  1134. package/dist/hooks/useChipsSelect.js.map +1 -1
  1135. package/dist/hooks/useDateInput.js +1 -1
  1136. package/dist/hooks/useDateInput.js.map +1 -1
  1137. package/dist/hooks/useFocusVisible.js +1 -1
  1138. package/dist/hooks/useFocusVisible.js.map +1 -1
  1139. package/dist/hooks/useMediaQueries.js.map +1 -1
  1140. package/dist/hooks/usePatchChildrenRef.js +1 -1
  1141. package/dist/hooks/usePatchChildrenRef.js.map +1 -1
  1142. package/dist/hooks/useTimeout.js +1 -1
  1143. package/dist/hooks/useTimeout.js.map +1 -1
  1144. package/dist/hooks/useTodayDate.js.map +1 -1
  1145. package/dist/hooks/useWaitTransitionFinish.js +1 -1
  1146. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  1147. package/dist/index.d.ts +37 -30
  1148. package/dist/index.js +22 -16
  1149. package/dist/index.js.map +1 -1
  1150. package/dist/lib/SSR.js +3 -3
  1151. package/dist/lib/SSR.js.map +1 -1
  1152. package/dist/lib/adaptivity/constants.d.ts +7 -0
  1153. package/dist/lib/adaptivity/constants.js +3 -0
  1154. package/dist/lib/adaptivity/constants.js.map +1 -1
  1155. package/dist/lib/adaptivity/functions.d.ts +9 -1
  1156. package/dist/lib/adaptivity/functions.js +43 -1
  1157. package/dist/lib/adaptivity/functions.js.map +1 -1
  1158. package/dist/lib/adaptivity/types.d.ts +2 -1
  1159. package/dist/lib/adaptivity/types.js.map +1 -1
  1160. package/dist/lib/calendar.js +1 -1
  1161. package/dist/lib/calendar.js.map +1 -1
  1162. package/dist/lib/floating/adapters.d.ts +2 -0
  1163. package/dist/lib/floating/adapters.js +56 -0
  1164. package/dist/lib/floating/adapters.js.map +1 -0
  1165. package/dist/lib/floating/functions.d.ts +10 -0
  1166. package/dist/lib/floating/functions.js +28 -0
  1167. package/dist/lib/floating/functions.js.map +1 -0
  1168. package/dist/lib/floating/index.d.ts +4 -0
  1169. package/dist/lib/floating/index.js +4 -0
  1170. package/dist/lib/floating/index.js.map +1 -0
  1171. package/dist/lib/floating/types.d.ts +4 -0
  1172. package/dist/lib/floating/types.js +2 -0
  1173. package/dist/lib/floating/types.js.map +1 -0
  1174. package/dist/lib/platform.js +1 -1
  1175. package/dist/lib/platform.js.map +1 -1
  1176. package/dist/lib/select.js.map +1 -1
  1177. package/dist/lib/useIsomorphicLayoutEffect.d.ts +1 -1
  1178. package/dist/lib/warnOnce.d.ts +7 -0
  1179. package/dist/lib/warnOnce.js +12 -0
  1180. package/dist/lib/warnOnce.js.map +1 -1
  1181. package/dist/shared/breakpoints.d.ts +44 -0
  1182. package/dist/shared/breakpoints.js +79 -13
  1183. package/dist/shared/breakpoints.js.map +1 -1
  1184. package/dist/stable.js.tmp +69 -21
  1185. package/dist/types.d.ts +9 -1
  1186. package/dist/types.js.map +1 -1
  1187. package/dist/vkui.css +143 -3
  1188. package/dist/vkui.css.map +1 -1
  1189. package/dist/vkui.js.tmp +62039 -0
  1190. package/package.json +4 -5
  1191. package/dist/cjs/helpers/getHoverClassName.d.ts +0 -2
  1192. package/dist/cjs/helpers/getHoverClassName.js +0 -22
  1193. package/dist/cjs/helpers/getHoverClassName.js.map +0 -1
  1194. package/dist/cjs/helpers/getPointerClassName.d.ts +0 -2
  1195. package/dist/cjs/helpers/getPointerClassName.js +0 -22
  1196. package/dist/cjs/helpers/getPointerClassName.js.map +0 -1
  1197. package/dist/cjs/helpers/getSizeXClassName.d.ts +0 -5
  1198. package/dist/cjs/helpers/getSizeXClassName.js +0 -18
  1199. package/dist/cjs/helpers/getSizeXClassName.js.map +0 -1
  1200. package/dist/cjs/helpers/getSizeYClassName.d.ts +0 -5
  1201. package/dist/cjs/helpers/getSizeYClassName.js +0 -18
  1202. package/dist/cjs/helpers/getSizeYClassName.js.map +0 -1
  1203. package/dist/cjs/helpers/getViewHeightClassName.d.ts +0 -3
  1204. package/dist/cjs/helpers/getViewHeightClassName.js +0 -31
  1205. package/dist/cjs/helpers/getViewHeightClassName.js.map +0 -1
  1206. package/dist/cjs/helpers/getViewWidthClassName.d.ts +0 -3
  1207. package/dist/cjs/helpers/getViewWidthClassName.js +0 -52
  1208. package/dist/cjs/helpers/getViewWidthClassName.js.map +0 -1
  1209. package/dist/cssm/helpers/getHoverClassName.d.ts +0 -2
  1210. package/dist/cssm/helpers/getHoverClassName.js +0 -16
  1211. package/dist/cssm/helpers/getHoverClassName.js.map +0 -1
  1212. package/dist/cssm/helpers/getPointerClassName.d.ts +0 -2
  1213. package/dist/cssm/helpers/getPointerClassName.js +0 -16
  1214. package/dist/cssm/helpers/getPointerClassName.js.map +0 -1
  1215. package/dist/cssm/helpers/getSizeXClassName.d.ts +0 -5
  1216. package/dist/cssm/helpers/getSizeXClassName.js +0 -12
  1217. package/dist/cssm/helpers/getSizeXClassName.js.map +0 -1
  1218. package/dist/cssm/helpers/getSizeYClassName.d.ts +0 -5
  1219. package/dist/cssm/helpers/getSizeYClassName.js +0 -12
  1220. package/dist/cssm/helpers/getSizeYClassName.js.map +0 -1
  1221. package/dist/cssm/helpers/getViewHeightClassName.d.ts +0 -3
  1222. package/dist/cssm/helpers/getViewHeightClassName.js +0 -25
  1223. package/dist/cssm/helpers/getViewHeightClassName.js.map +0 -1
  1224. package/dist/cssm/helpers/getViewWidthClassName.d.ts +0 -3
  1225. package/dist/cssm/helpers/getViewWidthClassName.js +0 -46
  1226. package/dist/cssm/helpers/getViewWidthClassName.js.map +0 -1
  1227. package/dist/cssm/styles/components.css +0 -3
  1228. package/dist/helpers/getHoverClassName.d.ts +0 -2
  1229. package/dist/helpers/getHoverClassName.js +0 -16
  1230. package/dist/helpers/getHoverClassName.js.map +0 -1
  1231. package/dist/helpers/getPointerClassName.d.ts +0 -2
  1232. package/dist/helpers/getPointerClassName.js +0 -16
  1233. package/dist/helpers/getPointerClassName.js.map +0 -1
  1234. package/dist/helpers/getSizeXClassName.d.ts +0 -5
  1235. package/dist/helpers/getSizeXClassName.js +0 -12
  1236. package/dist/helpers/getSizeXClassName.js.map +0 -1
  1237. package/dist/helpers/getSizeYClassName.d.ts +0 -5
  1238. package/dist/helpers/getSizeYClassName.js +0 -12
  1239. package/dist/helpers/getSizeYClassName.js.map +0 -1
  1240. package/dist/helpers/getViewHeightClassName.d.ts +0 -3
  1241. package/dist/helpers/getViewHeightClassName.js +0 -25
  1242. package/dist/helpers/getViewHeightClassName.js.map +0 -1
  1243. package/dist/helpers/getViewWidthClassName.d.ts +0 -3
  1244. package/dist/helpers/getViewWidthClassName.js +0 -46
  1245. package/dist/helpers/getViewWidthClassName.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"View.js","names":["React","classNames","noop","animationEvent","Platform","Touch","useConfigProvider","useSplitCol","canUseDOM","useDOM","blurActiveElement","useScroll","NavTransitionProvider","getNavId","warnOnce","usePlatform","swipeBackExcluded","useWaitTransitionFinish","useTimeout","usePrevious","useIsomorphicLayoutEffect","SWIPE_BACK_AREA","SwipeBackResults","scrollsCache","warn","View","activePanelProp","activePanel","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancelProp","onSwipeBackCancel","children","className","restProps","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","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","fail","success","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","isTransitionTarget","compensateScroll","el","marginTop"],"sources":["../../../../src/components/View/View.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { animationEvent } from '../../lib/supportEvents';\nimport { Platform } from '../../lib/platform';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { useSplitCol } from '../SplitCol/SplitCol';\nimport { canUseDOM, useDOM, blurActiveElement } from '../../lib/dom';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { swipeBackExcluded } from './utils';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\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"],"mappings":"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"}
1
+ {"version":3,"file":"View.js","names":["React","classNames","noop","usePlatform","usePrevious","useTimeout","useWaitTransitionFinish","blurActiveElement","canUseDOM","useDOM","getNavId","Platform","animationEvent","useIsomorphicLayoutEffect","warnOnce","useScroll","useConfigProvider","NavTransitionProvider","useSplitCol","Touch","swipeBackExcluded","SWIPE_BACK_AREA","SwipeBackResults","scrollsCache","warn","View","activePanelProp","activePanel","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancelProp","onSwipeBackCancel","children","className","restProps","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","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","fail","success","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","isTransitionTarget","compensateScroll","el","marginTop"],"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"],"mappings":"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"}
@@ -1 +1 @@
1
- .vkuiView--ios .vkuiPanel__in{padding-bottom:0;padding-bottom:var(--vkui_internal--safe_area_inset_bottom);padding:0;padding:0 var(--vkui_internal--safe_area_inset_right) var(--vkui_internal--safe_area_inset_bottom) var(--vkui_internal--safe_area_inset_left)}.vkuiView--ios .vkuiView__panel--swipe-back-prev{box-shadow:-2px 0 12px rgba(0,0,0,.3)}.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-success{transform:translate3d(100%,0,0);transition:transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-success,.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-failed{transform:translateZ(0);transition:transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-failed{transform:translate3d(-50%,0,0);transition:transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--prev{animation:vkui-animation-ios-prev-forward .6s cubic-bezier(.4,0,.2,1);animation:vkui-animation-ios-prev-forward .6s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--next{animation:vkui-animation-ios-next-back .6s cubic-bezier(.4,0,.2,1);animation:vkui-animation-ios-next-back .6s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next{animation:vkui-animation-ios-next-forward .6s cubic-bezier(.4,0,.2,1);animation:vkui-animation-ios-next-forward .6s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev{animation:vkui-animation-ios-prev-back .6s cubic-bezier(.4,0,.2,1) forwards;animation:vkui-animation-ios-prev-back .6s var(--vkui--animation_easing_platform) forwards}.vkuiView--ios .vkuiView__panel--next .vkuiPanel__fade,.vkuiView--ios .vkuiView__panel--prev .vkuiPanel__fade{background:#000;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.vkuiView--ios .vkuiView__panel--prev .vkuiPanel__fade{animation:vkui-animation-ios-fade-in .6s cubic-bezier(.4,0,.2,1);animation:vkui-animation-ios-fade-in .6s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--next .vkuiPanel__fade{animation:vkui-animation-ios-fade-out .6s cubic-bezier(.4,0,.2,1) forwards;animation:vkui-animation-ios-fade-out .6s var(--vkui--animation_easing_platform) forwards}.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev .vkuiPanel__fade,.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next .vkuiPanel__fade{display:none}.vkuiView--ios.vkuiView--no-motion .vkuiView__panel,.vkuiView--ios.vkuiView--no-motion .vkuiView__panel .vkuiPanel__in{animation:none}.vkuiView--ios .vkuiView__panel--active .vkuiPanel__fade{display:none}@keyframes vkui-animation-ios-next-forward{0%{transform:translate3d(100%,0,0)}to{transform:translateZ(0)}}@keyframes vkui-animation-ios-next-back{0%{transform:translate3d(-50%,0,0)}to{transform:translateZ(0)}}@keyframes vkui-animation-ios-prev-forward{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}@keyframes vkui-animation-ios-prev-back{0%{transform:translateZ(0)}to{transform:translate3d(100%,0,0)}}@keyframes vkui-animation-ios-fade-in{0%{opacity:0}to{opacity:.3}}@keyframes vkui-animation-ios-fade-out{0%{opacity:.3}to{opacity:0}}.vkuiView{word-wrap:break-word;height:100%;position:relative;width:100%}.vkuiView--animated,.vkuiView--swiping-back{overflow:hidden}.vkuiView--animated .vkuiView__header,.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__header,.vkuiView--swiping-back .vkuiView__panel{pointer-events:none}.vkuiView__panel,.vkuiView__panels{height:100%;width:100%}.vkuiView__panel{box-sizing:border-box;isolation:isolate;position:relative}.vkuiView__panel-in{height:100%}.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__panel{left:0;overflow:hidden;position:fixed;top:0}.vkuiView__popout{z-index:100;z-index:var(--vkui--z_index_popout)}.vkuiView__modal,.vkuiView__popout{height:100%;left:0;position:fixed;top:0;width:100%}.vkuiView__modal{z-index:99;z-index:var(--vkui--z_index_modal)}.vkuiView__modal:empty{display:none}.vkuiView__panel--next~.vkuiView__panel--prev{animation:vkui-animation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;animation:vkui-animation-view-prev-back .3s var(--vkui--animation_easing_platform) forwards}.vkuiView__panel--prev~.vkuiView__panel--next{animation:vkui-animation-view-next-forward .3s cubic-bezier(.4,0,.2,1);animation:vkui-animation-view-next-forward .3s var(--vkui--animation_easing_platform)}.vkuiView--no-motion .vkuiView__panel{animation:none}@keyframes vkui-animation-view-prev-back{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(80px)}}@keyframes vkui-animation-view-next-forward{0%{opacity:0;transform:translateY(80px)}to{opacity:1;transform:translateY(0)}}
1
+ .vkuiView{word-wrap:break-word;height:100%;position:relative;width:100%}.vkuiView--animated,.vkuiView--swiping-back{overflow:hidden}.vkuiView--animated .vkuiView__header,.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__header,.vkuiView--swiping-back .vkuiView__panel{pointer-events:none}.vkuiView__panel,.vkuiView__panels{height:100%;width:100%}.vkuiView__panel{box-sizing:border-box;isolation:isolate;position:relative}.vkuiView__panel-in{height:100%}.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__panel{left:0;overflow:hidden;position:fixed;top:0}.vkuiView__popout{z-index:100;z-index:var(--vkui--z_index_popout)}.vkuiView__modal,.vkuiView__popout{height:100%;left:0;position:fixed;top:0;width:100%}.vkuiView__modal{z-index:99;z-index:var(--vkui--z_index_modal)}.vkuiView__modal:empty{display:none}.vkuiView__panel--next~.vkuiView__panel--prev{animation:vkui-animation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;animation:vkui-animation-view-prev-back .3s var(--vkui--animation_easing_platform) forwards}.vkuiView__panel--prev~.vkuiView__panel--next{animation:vkui-animation-view-next-forward .3s cubic-bezier(.4,0,.2,1);animation:vkui-animation-view-next-forward .3s var(--vkui--animation_easing_platform)}.vkuiView--no-motion .vkuiView__panel{animation:none}@keyframes vkui-animation-view-prev-back{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(80px)}}@keyframes vkui-animation-view-next-forward{0%{opacity:0;transform:translateY(80px)}to{opacity:1;transform:translateY(0)}}
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
+ import { NavIdProps } from '../../lib/getNavId';
2
3
  import { HasPlatform } from '../../types';
3
- import { ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';
4
- import { SplitColContextProps } from '../SplitCol/SplitCol';
5
4
  import { ScrollContextInterface } from '../AppRoot/ScrollContext';
6
- import { NavIdProps } from '../../lib/getNavId';
5
+ import { ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';
6
+ import { SplitColContextProps } from '../SplitCol/SplitColContext';
7
7
  declare enum SwipeBackResults {
8
8
  fail = 1,
9
9
  success = 2
@@ -11,20 +11,20 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
11
11
  var _excluded = ["popout", "modal", "platform", "activePanel", "splitCol", "configProvider", "history", "id", "nav", "onTransition", "onSwipeBack", "onSwipeBackStart", "onSwipeBackCancel", "window", "document", "scroll", "isBackCheck", "className"];
12
12
  import * as React from 'react';
13
13
  import { classNames } from '@vkontakte/vkjs';
14
- import { transitionEvent, animationEvent } from '../../lib/supportEvents';
15
14
  import { getPlatformClassName } from '../../helpers/getPlatformClassName';
16
- import { Platform } from '../../lib/platform';
17
- import { Touch } from '../Touch/Touch';
18
- import { withPlatform } from '../../hoc/withPlatform';
19
15
  import { withContext } from '../../hoc/withContext';
20
- import { ConfigProviderContext } from '../ConfigProvider/ConfigProviderContext';
21
- import { SplitColContext } from '../SplitCol/SplitCol';
22
- import { AppRootPortal } from '../AppRoot/AppRootPortal';
16
+ import { withPlatform } from '../../hoc/withPlatform';
23
17
  import { canUseDOM, withDOM } from '../../lib/dom';
24
- import { ScrollContext } from '../AppRoot/ScrollContext';
25
- import { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';
26
18
  import { getNavId } from '../../lib/getNavId';
19
+ import { Platform } from '../../lib/platform';
20
+ import { animationEvent, transitionEvent } from '../../lib/supportEvents';
27
21
  import { warnOnce } from '../../lib/warnOnce';
22
+ import { AppRootPortal } from '../AppRoot/AppRootPortal';
23
+ import { ScrollContext } from '../AppRoot/ScrollContext';
24
+ import { ConfigProviderContext } from '../ConfigProvider/ConfigProviderContext';
25
+ import { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';
26
+ import { SplitColContext } from '../SplitCol/SplitColContext';
27
+ import { Touch } from '../Touch/Touch';
28
28
  import { swipeBackExcluded } from './utils';
29
29
  import "./View.module.css";
30
30
  import "./ViewIOS.module.css";
@@ -1 +1 @@
1
- {"version":3,"file":"ViewInfinite.js","names":["React","classNames","transitionEvent","animationEvent","getPlatformClassName","Platform","Touch","withPlatform","withContext","ConfigProviderContext","SplitColContext","AppRootPortal","canUseDOM","withDOM","ScrollContext","NavTransitionProvider","getNavId","warnOnce","swipeBackExcluded","warn","SwipeBackResults","scrollsCache","ViewInfiniteComponent","props","undefined","e","includes","animationName","state","prevPanel","flushTransition","Boolean","isBack","propertyName","target","pickPanel","swipeBackNextPanel","swipeBackResult","fail","onSwipeBackCancel","success","onSwipeBackSuccess","event","window","platform","IOS","swipeBackPrevented","shouldDisableTransitionMotion","configProvider","isWebView","startX","SWIPE_BACK_AREA","innerWidth","browserSwipe","setState","onSwipeBack","animated","swipingBack","history","length","onSwipeBackStart","payload","activePanel","blurActiveElement","prevScrolls","scrolls","scroll","getScroll","y","swipeBackStartX","swipeBackPrevPanel","slice","swipeBackShift","shiftX","speed","duration","visiblePanels","nextPanel","document","Children","toArray","children","id","animationFinishTimeout","clearTimeout","prevProps","prevState","popout","modal","isBackCheck","from","to","firstLayerId","panels","map","panel","find","supported","setTimeout","transitionEndHandler","ANDROID","VKCOM","scrollPosition","prevPanelScrolls","newPanelScrolls","pop","scrollTo","onTransition","waitTransitionFinish","swipingBackTransitionEndHandler","transitionMotionEnabled","splitCol","animate","elem","eventHandler","name","removeEventListener","addEventListener","transitionFinishTimeout","activeElement","blur","panelNodes","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","_1","nav","className","restProps","hasPopout","hasModal","filter","sort","isPrevPanel","isNextPanel","disableAnimation","onMoveX","onEnd","compensateScroll","isTransitionTarget","scrollList","el","calcPanelSwipeStyles","marginTop","Component","ViewInfinite"],"sources":["../../../../src/components/View/ViewInfinite.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { transitionEvent, animationEvent } from '../../lib/supportEvents';\nimport { getPlatformClassName } from '../../helpers/getPlatformClassName';\nimport { Platform } from '../../lib/platform';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { HasPlatform } from '../../types';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { withContext } from '../../hoc/withContext';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { SplitColContext, SplitColContextProps } from '../SplitCol/SplitCol';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { canUseDOM, withDOM, DOMProps } from '../../lib/dom';\nimport { ScrollContext, ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\nimport iosStyles from './ViewIOS.module.css';\n\nconst warn = warnOnce('ViewInfinite');\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: Array<number | undefined>;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nlet scrollsCache: ViewsScrolls = {};\n\nexport type TransitionParams = { from: string | null; to: string | null };\n\nexport interface ViewInfiniteProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n NavIdProps {\n activePanel: string;\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n onTransition?(params: TransitionParams & { isBack: boolean }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n isBackCheck?(params: TransitionParams): boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: Array<string | null>;\n activePanel: string | null;\n isBack?: boolean;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackPrevented: 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\nclass ViewInfiniteComponent extends React.Component<\n ViewInfiniteProps & DOMProps,\n ViewInfiniteState\n> {\n private static readonly SWIPE_BACK_AREA = 70;\n\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: false,\n swipeBackPrevented: false,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private scrolls = scrollsCache[getNavId(this.props, warn) as string] || {};\n private transitionFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n private animationFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n panelNodes: { [id: string]: HTMLDivElement | null } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache[id] = this.scrolls;\n }\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n this.props.popout && !prevProps.popout && this.blurActiveElement();\n this.props.modal && !prevProps.modal && this.blurActiveElement();\n\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({\n from: prevProps.activePanel,\n to: this.props.activePanel,\n });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls[prevProps.activePanel] || [];\n const scrolls = {\n ...this.scrolls,\n [prevProps.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n this.scrolls = scrolls;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n this.animationFinishTimeout = setTimeout(\n this.transitionEndHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n let scrollPosition: undefined | number = undefined;\n\n this.scrolls = {\n ...this.scrolls,\n };\n\n if (prevPanel !== null) {\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n this.scrolls[prevPanel] = prevPanelScrolls;\n }\n if (nextPanel !== null) {\n const newPanelScrolls = [...(this.scrolls[nextPanel] || [])];\n scrollPosition = newPanelScrolls.pop();\n this.scrolls[nextPanel] = newPanelScrolls;\n }\n\n this.setState(\n {\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n },\n () => {\n this.props.scroll?.scrollTo(0, scrollPosition);\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n },\n );\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(\n this.pickPanel(this.state.swipeBackNextPanel),\n this.swipingBackTransitionEndHandler,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevState.swipeBackResult === SwipeBackResults.fail &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n const newPanelScrolls = [...(this.scrolls[this.state.activePanel] || [])];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: newPanelScrolls,\n };\n\n this.props.scroll?.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return (\n this.props.configProvider?.transitionMotionEnabled === false ||\n !this.props.splitCol?.animate ||\n this.props.platform === Platform.VKCOM\n );\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler,\n ): void {\n if (transitionEvent.supported && transitionEvent.name && elem) {\n elem.removeEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n elem.addEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document?.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n const newPanelScrolls = [...(this.scrolls[activePanel] || [])];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls = {\n ...this.scrolls,\n [prevPanel]: prevPanelScrolls,\n [activePanel]: newPanelScrolls,\n };\n }\n\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack: undefined,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n },\n );\n }\n\n transitionEndHandler = (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 this.state.prevPanel !== null\n ) {\n this.flushTransition(this.state.prevPanel, Boolean(this.state.isBack));\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e.propertyName.includes('transform') &&\n e.target === this.pickPanel(this.state.swipeBackNextPanel))\n ) {\n switch (this.state.swipeBackResult) {\n case SwipeBackResults.fail:\n this.onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n onMoveX = (event: TouchEvent): void => {\n if (\n !this.window ||\n this.props.platform !== Platform.IOS ||\n this.state.swipeBackPrevented ||\n swipeBackExcluded(event) ||\n this.shouldDisableTransitionMotion()\n ) {\n return;\n }\n\n if (!this.props.configProvider?.isWebView) {\n if (\n (event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA ||\n event.startX >= this.window.innerWidth - ViewInfiniteComponent.SWIPE_BACK_AREA) &&\n !this.state.browserSwipe\n ) {\n this.setState({ browserSwipe: true });\n }\n\n return;\n }\n\n if (\n !this.props.onSwipeBack ||\n (this.state.animated && event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA)\n ) {\n return;\n }\n\n if (\n !this.state.swipingBack &&\n event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA &&\n this.props.history &&\n this.props.history.length > 1\n ) {\n if (this.props.onSwipeBackStart) {\n const payload = this.props.onSwipeBackStart(this.state.activePanel);\n if (payload === 'prevent') {\n this.setState({ swipeBackPrevented: true });\n return;\n }\n }\n\n if (this.state.activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n this.blurActiveElement();\n const prevScrolls = this.scrolls[this.state.activePanel] || [];\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n }\n\n this.setState({\n swipingBack: true,\n swipeBackStartX: event.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n\n if (this.state.swipingBack) {\n let swipeBackShift;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > this.window.innerWidth - this.state.swipeBackStartX) {\n swipeBackShift = this.window.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n this.setState({ swipeBackShift });\n }\n };\n\n onEnd = (event: TouchEvent): void => {\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / event.duration) * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n this.state.swipeBackStartX + this.state.swipeBackShift > this.window.innerWidth / 2\n ) {\n this.setState({ swipeBackResult: SwipeBackResults.success });\n } else {\n this.setState({ swipeBackResult: SwipeBackResults.fail });\n }\n }\n if (this.state.swipeBackPrevented) {\n this.setState({ swipeBackPrevented: false });\n }\n };\n\n calcPanelSwipeStyles(panelId: string | undefined): React.CSSProperties {\n if (!canUseDOM || !this.window) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (this.state.swipeBackShift * 100) / this.window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (this.window.innerWidth - this.state.swipeBackShift)) / this.window.innerWidth;\n\n if (this.state.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 render() {\n const {\n popout,\n modal,\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n id,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n isBackCheck,\n className,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n isBack,\n animated,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n } = this.state;\n\n const hasPopout = !!popout;\n const hasModal = !!modal;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && this.state.visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n getPlatformClassName(styles['View'], platform),\n !disableAnimation && this.state.animated && styles['View--animated'],\n !disableAnimation && this.state.swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={this.onMoveX}\n onEnd={this.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 compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = (panelId && this.scrolls[panelId]) || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\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 ? this.transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (this.panelNodes[panelId] = el)}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{ marginTop: compensateScroll ? -scroll : undefined }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {hasPopout && <div className={styles['View__popout']}>{popout}</div>}\n {hasModal && <div className={styles['View__modal']}>{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n }\n}\n\nexport const ViewInfinite = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfiniteComponent)),\n SplitColContext,\n 'splitCol',\n ),\n ConfigProviderContext,\n 'configProvider',\n ),\n ScrollContext,\n 'scroll',\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"ViewInfinite.js","names":["React","classNames","getPlatformClassName","withContext","withPlatform","canUseDOM","withDOM","getNavId","Platform","animationEvent","transitionEvent","warnOnce","AppRootPortal","ScrollContext","ConfigProviderContext","NavTransitionProvider","SplitColContext","Touch","swipeBackExcluded","warn","SwipeBackResults","scrollsCache","ViewInfiniteComponent","props","undefined","e","includes","animationName","state","prevPanel","flushTransition","Boolean","isBack","propertyName","target","pickPanel","swipeBackNextPanel","swipeBackResult","fail","onSwipeBackCancel","success","onSwipeBackSuccess","event","window","platform","IOS","swipeBackPrevented","shouldDisableTransitionMotion","configProvider","isWebView","startX","SWIPE_BACK_AREA","innerWidth","browserSwipe","setState","onSwipeBack","animated","swipingBack","history","length","onSwipeBackStart","payload","activePanel","blurActiveElement","prevScrolls","scrolls","scroll","getScroll","y","swipeBackStartX","swipeBackPrevPanel","slice","swipeBackShift","shiftX","speed","duration","visiblePanels","nextPanel","document","Children","toArray","children","id","animationFinishTimeout","clearTimeout","prevProps","prevState","popout","modal","isBackCheck","from","to","firstLayerId","panels","map","panel","find","supported","setTimeout","transitionEndHandler","ANDROID","VKCOM","scrollPosition","prevPanelScrolls","newPanelScrolls","pop","scrollTo","onTransition","waitTransitionFinish","swipingBackTransitionEndHandler","transitionMotionEnabled","splitCol","animate","elem","eventHandler","name","removeEventListener","addEventListener","transitionFinishTimeout","activeElement","blur","panelNodes","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","_1","nav","className","restProps","hasPopout","hasModal","filter","sort","isPrevPanel","isNextPanel","disableAnimation","onMoveX","onEnd","compensateScroll","isTransitionTarget","scrollList","el","calcPanelSwipeStyles","marginTop","Component","ViewInfinite"],"sources":["../../../../src/components/View/ViewInfinite.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { getPlatformClassName } from '../../helpers/getPlatformClassName';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { canUseDOM, DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent, transitionEvent } from '../../lib/supportEvents';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasPlatform } from '../../types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { ScrollContext, ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { SplitColContext, SplitColContextProps } 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 warn = warnOnce('ViewInfinite');\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: Array<number | undefined>;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nlet scrollsCache: ViewsScrolls = {};\n\nexport type TransitionParams = { from: string | null; to: string | null };\n\nexport interface ViewInfiniteProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n NavIdProps {\n activePanel: string;\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n onTransition?(params: TransitionParams & { isBack: boolean }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n isBackCheck?(params: TransitionParams): boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: Array<string | null>;\n activePanel: string | null;\n isBack?: boolean;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackPrevented: 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\nclass ViewInfiniteComponent extends React.Component<\n ViewInfiniteProps & DOMProps,\n ViewInfiniteState\n> {\n private static readonly SWIPE_BACK_AREA = 70;\n\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: false,\n swipeBackPrevented: false,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private scrolls = scrollsCache[getNavId(this.props, warn) as string] || {};\n private transitionFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n private animationFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n panelNodes: { [id: string]: HTMLDivElement | null } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache[id] = this.scrolls;\n }\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n this.props.popout && !prevProps.popout && this.blurActiveElement();\n this.props.modal && !prevProps.modal && this.blurActiveElement();\n\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({\n from: prevProps.activePanel,\n to: this.props.activePanel,\n });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls[prevProps.activePanel] || [];\n const scrolls = {\n ...this.scrolls,\n [prevProps.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n this.scrolls = scrolls;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n this.animationFinishTimeout = setTimeout(\n this.transitionEndHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n let scrollPosition: undefined | number = undefined;\n\n this.scrolls = {\n ...this.scrolls,\n };\n\n if (prevPanel !== null) {\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n this.scrolls[prevPanel] = prevPanelScrolls;\n }\n if (nextPanel !== null) {\n const newPanelScrolls = [...(this.scrolls[nextPanel] || [])];\n scrollPosition = newPanelScrolls.pop();\n this.scrolls[nextPanel] = newPanelScrolls;\n }\n\n this.setState(\n {\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n },\n () => {\n this.props.scroll?.scrollTo(0, scrollPosition);\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n },\n );\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(\n this.pickPanel(this.state.swipeBackNextPanel),\n this.swipingBackTransitionEndHandler,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevState.swipeBackResult === SwipeBackResults.fail &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n const newPanelScrolls = [...(this.scrolls[this.state.activePanel] || [])];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: newPanelScrolls,\n };\n\n this.props.scroll?.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return (\n this.props.configProvider?.transitionMotionEnabled === false ||\n !this.props.splitCol?.animate ||\n this.props.platform === Platform.VKCOM\n );\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler,\n ): void {\n if (transitionEvent.supported && transitionEvent.name && elem) {\n elem.removeEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n elem.addEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document?.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n const newPanelScrolls = [...(this.scrolls[activePanel] || [])];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls = {\n ...this.scrolls,\n [prevPanel]: prevPanelScrolls,\n [activePanel]: newPanelScrolls,\n };\n }\n\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack: undefined,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n },\n );\n }\n\n transitionEndHandler = (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 this.state.prevPanel !== null\n ) {\n this.flushTransition(this.state.prevPanel, Boolean(this.state.isBack));\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e.propertyName.includes('transform') &&\n e.target === this.pickPanel(this.state.swipeBackNextPanel))\n ) {\n switch (this.state.swipeBackResult) {\n case SwipeBackResults.fail:\n this.onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n onMoveX = (event: TouchEvent): void => {\n if (\n !this.window ||\n this.props.platform !== Platform.IOS ||\n this.state.swipeBackPrevented ||\n swipeBackExcluded(event) ||\n this.shouldDisableTransitionMotion()\n ) {\n return;\n }\n\n if (!this.props.configProvider?.isWebView) {\n if (\n (event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA ||\n event.startX >= this.window.innerWidth - ViewInfiniteComponent.SWIPE_BACK_AREA) &&\n !this.state.browserSwipe\n ) {\n this.setState({ browserSwipe: true });\n }\n\n return;\n }\n\n if (\n !this.props.onSwipeBack ||\n (this.state.animated && event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA)\n ) {\n return;\n }\n\n if (\n !this.state.swipingBack &&\n event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA &&\n this.props.history &&\n this.props.history.length > 1\n ) {\n if (this.props.onSwipeBackStart) {\n const payload = this.props.onSwipeBackStart(this.state.activePanel);\n if (payload === 'prevent') {\n this.setState({ swipeBackPrevented: true });\n return;\n }\n }\n\n if (this.state.activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n this.blurActiveElement();\n const prevScrolls = this.scrolls[this.state.activePanel] || [];\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n }\n\n this.setState({\n swipingBack: true,\n swipeBackStartX: event.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n\n if (this.state.swipingBack) {\n let swipeBackShift;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > this.window.innerWidth - this.state.swipeBackStartX) {\n swipeBackShift = this.window.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n this.setState({ swipeBackShift });\n }\n };\n\n onEnd = (event: TouchEvent): void => {\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / event.duration) * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n this.state.swipeBackStartX + this.state.swipeBackShift > this.window.innerWidth / 2\n ) {\n this.setState({ swipeBackResult: SwipeBackResults.success });\n } else {\n this.setState({ swipeBackResult: SwipeBackResults.fail });\n }\n }\n if (this.state.swipeBackPrevented) {\n this.setState({ swipeBackPrevented: false });\n }\n };\n\n calcPanelSwipeStyles(panelId: string | undefined): React.CSSProperties {\n if (!canUseDOM || !this.window) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (this.state.swipeBackShift * 100) / this.window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (this.window.innerWidth - this.state.swipeBackShift)) / this.window.innerWidth;\n\n if (this.state.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 render() {\n const {\n popout,\n modal,\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n id,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n isBackCheck,\n className,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n isBack,\n animated,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n } = this.state;\n\n const hasPopout = !!popout;\n const hasModal = !!modal;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && this.state.visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n getPlatformClassName(styles['View'], platform),\n !disableAnimation && this.state.animated && styles['View--animated'],\n !disableAnimation && this.state.swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={this.onMoveX}\n onEnd={this.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 compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = (panelId && this.scrolls[panelId]) || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\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 ? this.transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (this.panelNodes[panelId] = el)}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{ marginTop: compensateScroll ? -scroll : undefined }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {hasPopout && <div className={styles['View__popout']}>{popout}</div>}\n {hasModal && <div className={styles['View__modal']}>{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n }\n}\n\nexport const ViewInfinite = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfiniteComponent)),\n SplitColContext,\n 'splitCol',\n ),\n ConfigProviderContext,\n 'configProvider',\n ),\n ScrollContext,\n 'scroll',\n);\n"],"mappings":"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"}
@@ -4,12 +4,12 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
5
  var _excluded = ["className", "style", "before", "inlineAfter", "after", "getRootRef", "getRef", "onHeightChange", "shadow", "defaultValue"];
6
6
  import * as React from 'react';
7
- import { Headline } from '../Typography/Headline/Headline';
8
- import { usePlatform } from '../../hooks/usePlatform';
9
- import { useExternRef } from '../../hooks/useExternRef';
10
7
  import { classNames, hasReactNode } from '@vkontakte/vkjs';
11
- import { Platform } from '../../lib/platform';
12
8
  import { useEnsuredControl } from '../../hooks/useEnsuredControl';
9
+ import { useExternRef } from '../../hooks/useExternRef';
10
+ import { usePlatform } from '../../hooks/usePlatform';
11
+ import { Platform } from '../../lib/platform';
12
+ import { Headline } from '../Typography/Headline/Headline';
13
13
  import "./WriteBar.module.css";
14
14
  /**
15
15
  * @see https://vkcom.github.io/VKUI/#/WriteBar
@@ -1 +1 @@
1
- {"version":3,"file":"WriteBar.js","names":["React","Headline","usePlatform","useExternRef","classNames","hasReactNode","Platform","useEnsuredControl","WriteBar","className","style","before","inlineAfter","after","getRootRef","getRef","onHeightChange","shadow","defaultValue","restProps","platform","value","onChange","textareaRef","currentScrollHeight","useRef","resize","useCallback","textareaEl","current","offsetParent","height","scrollHeight","useEffect","IOS"],"sources":["../../../../src/components/WriteBar/WriteBar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport styles from './WriteBar.module.css';\n\nexport interface WriteBarProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLTextAreaElement> {\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS)\n */\n inlineAfter?: React.ReactNode;\n /**\n * Содержимое, отображаемое справа от поля ввода\n */\n after?: React.ReactNode;\n /**\n * Вызывается при смене высоты поля ввода\n */\n onHeightChange?: VoidFunction;\n /**\n * Добавляет тень вокруг поля ввода\n */\n shadow?: boolean;\n\n children?: never;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBar\n */\nexport const WriteBar = ({\n className,\n style,\n before,\n inlineAfter,\n after,\n getRootRef,\n getRef,\n onHeightChange,\n shadow = false,\n defaultValue,\n ...restProps\n}: WriteBarProps) => {\n const platform = usePlatform();\n\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n ...restProps,\n });\n\n const textareaRef = useExternRef(getRef);\n const currentScrollHeight = React.useRef<number>();\n\n const resize = React.useCallback(() => {\n const textareaEl = textareaRef.current;\n if (!textareaEl) {\n return;\n }\n\n if (textareaEl.offsetParent) {\n textareaEl.style.height = '';\n textareaEl.style.height = `${textareaEl.scrollHeight}px`;\n\n if (textareaEl.scrollHeight !== currentScrollHeight.current && onHeightChange) {\n onHeightChange();\n currentScrollHeight.current = textareaEl.scrollHeight;\n }\n }\n }, [onHeightChange, textareaRef]);\n\n React.useEffect(resize, [resize, value]);\n\n return (\n <div\n ref={getRootRef}\n className={classNames(\n styles['WriteBar'],\n platform === Platform.IOS && styles['WriteBar--ios'],\n shadow && styles['WriteBar--shadow'],\n className,\n )}\n style={style}\n >\n <div className={styles['WriteBar__form']}>\n {hasReactNode(before) && <div className={styles['WriteBar__before']}>{before}</div>}\n\n <div className={styles['WriteBar__formIn']}>\n <Headline\n {...restProps}\n Component=\"textarea\"\n className={styles['WriteBar__textarea']}\n onChange={onChange}\n getRootRef={textareaRef}\n value={value}\n />\n {hasReactNode(inlineAfter) && (\n <div className={styles['WriteBar__inlineAfter']}>{inlineAfter}</div>\n )}\n </div>\n\n {hasReactNode(after) && <div className={styles['WriteBar__after']}>{after}</div>}\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,iCAAiC;AAC1D,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC1D,SAASC,QAAQ,QAAQ,oBAAoB;AAE7C,SAASC,iBAAiB,QAAQ,+BAA+B;AAAC;AA+BlE;AACA;AACA;AACA,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,OAYA;EAAA,IAXnBC,SAAS,QAATA,SAAS;IACTC,KAAK,QAALA,KAAK;IACLC,MAAM,QAANA,MAAM;IACNC,WAAW,QAAXA,WAAW;IACXC,KAAK,QAALA,KAAK;IACLC,UAAU,QAAVA,UAAU;IACVC,MAAM,QAANA,MAAM;IACNC,cAAc,QAAdA,cAAc;IAAA,mBACdC,MAAM;IAANA,MAAM,4BAAG,KAAK;IACdC,YAAY,QAAZA,YAAY;IACTC,SAAS;EAEZ,IAAMC,QAAQ,GAAGlB,WAAW,EAAE;EAE9B,yBAA0BK,iBAAiB;MACzCW,YAAY,EAAZA;IAAY,GACTC,SAAS,EACZ;IAAA;IAHKE,KAAK;IAAEC,QAAQ;EAKtB,IAAMC,WAAW,GAAGpB,YAAY,CAACY,MAAM,CAAC;EACxC,IAAMS,mBAAmB,GAAGxB,KAAK,CAACyB,MAAM,EAAU;EAElD,IAAMC,MAAM,GAAG1B,KAAK,CAAC2B,WAAW,CAAC,YAAM;IACrC,IAAMC,UAAU,GAAGL,WAAW,CAACM,OAAO;IACtC,IAAI,CAACD,UAAU,EAAE;MACf;IACF;IAEA,IAAIA,UAAU,CAACE,YAAY,EAAE;MAC3BF,UAAU,CAAClB,KAAK,CAACqB,MAAM,GAAG,EAAE;MAC5BH,UAAU,CAAClB,KAAK,CAACqB,MAAM,aAAMH,UAAU,CAACI,YAAY,OAAI;MAExD,IAAIJ,UAAU,CAACI,YAAY,KAAKR,mBAAmB,CAACK,OAAO,IAAIb,cAAc,EAAE;QAC7EA,cAAc,EAAE;QAChBQ,mBAAmB,CAACK,OAAO,GAAGD,UAAU,CAACI,YAAY;MACvD;IACF;EACF,CAAC,EAAE,CAAChB,cAAc,EAAEO,WAAW,CAAC,CAAC;EAEjCvB,KAAK,CAACiC,SAAS,CAACP,MAAM,EAAE,CAACA,MAAM,EAAEL,KAAK,CAAC,CAAC;EAExC,oBACE;IACE,GAAG,EAAEP,UAAW;IAChB,SAAS,EAAEV,UAAU,iBAEnBgB,QAAQ,KAAKd,QAAQ,CAAC4B,GAAG,uBAA2B,EACpDjB,MAAM,0BAA8B,EACpCR,SAAS,CACT;IACF,KAAK,EAAEC;EAAM,gBAEb;IAAK,SAAS;EAA2B,GACtCL,YAAY,CAACM,MAAM,CAAC,iBAAI;IAAK,SAAS;EAA6B,GAAEA,MAAM,CAAO,eAEnF;IAAK,SAAS;EAA6B,gBACzC,oBAAC,QAAQ,eACHQ,SAAS;IACb,SAAS,EAAC,UAAU;IACpB,SAAS,0BAA+B;IACxC,QAAQ,EAAEG,QAAS;IACnB,UAAU,EAAEC,WAAY;IACxB,KAAK,EAAEF;EAAM,GACb,EACDhB,YAAY,CAACO,WAAW,CAAC,iBACxB;IAAK,SAAS;EAAkC,GAAEA,WAAW,CAC9D,CACG,EAELP,YAAY,CAACQ,KAAK,CAAC,iBAAI;IAAK,SAAS;EAA4B,GAAEA,KAAK,CAAO,CAC5E,CACF;AAEV,CAAC"}
1
+ {"version":3,"file":"WriteBar.js","names":["React","classNames","hasReactNode","useEnsuredControl","useExternRef","usePlatform","Platform","Headline","WriteBar","className","style","before","inlineAfter","after","getRootRef","getRef","onHeightChange","shadow","defaultValue","restProps","platform","value","onChange","textareaRef","currentScrollHeight","useRef","resize","useCallback","textareaEl","current","offsetParent","height","scrollHeight","useEffect","IOS"],"sources":["../../../../src/components/WriteBar/WriteBar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './WriteBar.module.css';\n\nexport interface WriteBarProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLTextAreaElement> {\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS)\n */\n inlineAfter?: React.ReactNode;\n /**\n * Содержимое, отображаемое справа от поля ввода\n */\n after?: React.ReactNode;\n /**\n * Вызывается при смене высоты поля ввода\n */\n onHeightChange?: VoidFunction;\n /**\n * Добавляет тень вокруг поля ввода\n */\n shadow?: boolean;\n\n children?: never;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBar\n */\nexport const WriteBar = ({\n className,\n style,\n before,\n inlineAfter,\n after,\n getRootRef,\n getRef,\n onHeightChange,\n shadow = false,\n defaultValue,\n ...restProps\n}: WriteBarProps) => {\n const platform = usePlatform();\n\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n ...restProps,\n });\n\n const textareaRef = useExternRef(getRef);\n const currentScrollHeight = React.useRef<number>();\n\n const resize = React.useCallback(() => {\n const textareaEl = textareaRef.current;\n if (!textareaEl) {\n return;\n }\n\n if (textareaEl.offsetParent) {\n textareaEl.style.height = '';\n textareaEl.style.height = `${textareaEl.scrollHeight}px`;\n\n if (textareaEl.scrollHeight !== currentScrollHeight.current && onHeightChange) {\n onHeightChange();\n currentScrollHeight.current = textareaEl.scrollHeight;\n }\n }\n }, [onHeightChange, textareaRef]);\n\n React.useEffect(resize, [resize, value]);\n\n return (\n <div\n ref={getRootRef}\n className={classNames(\n styles['WriteBar'],\n platform === Platform.IOS && styles['WriteBar--ios'],\n shadow && styles['WriteBar--shadow'],\n className,\n )}\n style={style}\n >\n <div className={styles['WriteBar__form']}>\n {hasReactNode(before) && <div className={styles['WriteBar__before']}>{before}</div>}\n\n <div className={styles['WriteBar__formIn']}>\n <Headline\n {...restProps}\n Component=\"textarea\"\n className={styles['WriteBar__textarea']}\n onChange={onChange}\n getRootRef={textareaRef}\n value={value}\n />\n {hasReactNode(inlineAfter) && (\n <div className={styles['WriteBar__inlineAfter']}>{inlineAfter}</div>\n )}\n </div>\n\n {hasReactNode(after) && <div className={styles['WriteBar__after']}>{after}</div>}\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC1D,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,QAAQ,QAAQ,oBAAoB;AAE7C,SAASC,QAAQ,QAAQ,iCAAiC;AAAC;AA+B3D;AACA;AACA;AACA,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,OAYA;EAAA,IAXnBC,SAAS,QAATA,SAAS;IACTC,KAAK,QAALA,KAAK;IACLC,MAAM,QAANA,MAAM;IACNC,WAAW,QAAXA,WAAW;IACXC,KAAK,QAALA,KAAK;IACLC,UAAU,QAAVA,UAAU;IACVC,MAAM,QAANA,MAAM;IACNC,cAAc,QAAdA,cAAc;IAAA,mBACdC,MAAM;IAANA,MAAM,4BAAG,KAAK;IACdC,YAAY,QAAZA,YAAY;IACTC,SAAS;EAEZ,IAAMC,QAAQ,GAAGf,WAAW,EAAE;EAE9B,yBAA0BF,iBAAiB;MACzCe,YAAY,EAAZA;IAAY,GACTC,SAAS,EACZ;IAAA;IAHKE,KAAK;IAAEC,QAAQ;EAKtB,IAAMC,WAAW,GAAGnB,YAAY,CAACW,MAAM,CAAC;EACxC,IAAMS,mBAAmB,GAAGxB,KAAK,CAACyB,MAAM,EAAU;EAElD,IAAMC,MAAM,GAAG1B,KAAK,CAAC2B,WAAW,CAAC,YAAM;IACrC,IAAMC,UAAU,GAAGL,WAAW,CAACM,OAAO;IACtC,IAAI,CAACD,UAAU,EAAE;MACf;IACF;IAEA,IAAIA,UAAU,CAACE,YAAY,EAAE;MAC3BF,UAAU,CAAClB,KAAK,CAACqB,MAAM,GAAG,EAAE;MAC5BH,UAAU,CAAClB,KAAK,CAACqB,MAAM,aAAMH,UAAU,CAACI,YAAY,OAAI;MAExD,IAAIJ,UAAU,CAACI,YAAY,KAAKR,mBAAmB,CAACK,OAAO,IAAIb,cAAc,EAAE;QAC7EA,cAAc,EAAE;QAChBQ,mBAAmB,CAACK,OAAO,GAAGD,UAAU,CAACI,YAAY;MACvD;IACF;EACF,CAAC,EAAE,CAAChB,cAAc,EAAEO,WAAW,CAAC,CAAC;EAEjCvB,KAAK,CAACiC,SAAS,CAACP,MAAM,EAAE,CAACA,MAAM,EAAEL,KAAK,CAAC,CAAC;EAExC,oBACE;IACE,GAAG,EAAEP,UAAW;IAChB,SAAS,EAAEb,UAAU,iBAEnBmB,QAAQ,KAAKd,QAAQ,CAAC4B,GAAG,uBAA2B,EACpDjB,MAAM,0BAA8B,EACpCR,SAAS,CACT;IACF,KAAK,EAAEC;EAAM,gBAEb;IAAK,SAAS;EAA2B,GACtCR,YAAY,CAACS,MAAM,CAAC,iBAAI;IAAK,SAAS;EAA6B,GAAEA,MAAM,CAAO,eAEnF;IAAK,SAAS;EAA6B,gBACzC,oBAAC,QAAQ,eACHQ,SAAS;IACb,SAAS,EAAC,UAAU;IACpB,SAAS,0BAA+B;IACxC,QAAQ,EAAEG,QAAS;IACnB,UAAU,EAAEC,WAAY;IACxB,KAAK,EAAEF;EAAM,GACb,EACDnB,YAAY,CAACU,WAAW,CAAC,iBACxB;IAAK,SAAS;EAAkC,GAAEA,WAAW,CAC9D,CACG,EAELV,YAAY,CAACW,KAAK,CAAC,iBAAI;IAAK,SAAS;EAA4B,GAAEA,KAAK,CAAO,CAC5E,CACF;AAEV,CAAC"}
@@ -3,15 +3,14 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
3
3
  var _excluded = ["mode", "children", "count", "className"];
4
4
  import * as React from 'react';
5
5
  import { Icon24Send, Icon28AddCircleOutline, Icon28AttachOutline, Icon28CheckCircleOutline, Icon48WritebarDone, Icon48WritebarSend } from '@vkontakte/icons';
6
- import { usePlatform } from '../../hooks/usePlatform';
7
6
  import { classNames, hasReactNode } from '@vkontakte/vkjs';
7
+ import { usePlatform } from '../../hooks/usePlatform';
8
8
  import { Platform } from '../../lib/platform';
9
+ import { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';
9
10
  import { Counter } from '../Counter/Counter';
10
11
  import { Tappable } from '../Tappable/Tappable';
11
- import { warnOnce } from '../../lib/warnOnce';
12
12
  import "./WriteBarIcon.module.css";
13
13
  var warn = warnOnce('WriteBarIcon');
14
- var IS_DEV = process.env.NODE_ENV === 'development';
15
14
 
16
15
  /**
17
16
  * @see https://vkcom.github.io/VKUI/#/WriteBarIcon
@@ -24,28 +23,31 @@ export var WriteBarIcon = function WriteBarIcon(_ref) {
24
23
  restProps = _objectWithoutProperties(_ref, _excluded);
25
24
  var platform = usePlatform();
26
25
  var icon;
27
- var ariaLabel = undefined;
26
+ var modeLabel = undefined;
28
27
  switch (mode) {
29
28
  case 'attach':
30
29
  icon = platform === Platform.IOS ? /*#__PURE__*/React.createElement(Icon28AddCircleOutline, null) : /*#__PURE__*/React.createElement(Icon28AttachOutline, null);
31
- ariaLabel = 'Прикрепить файл';
30
+ modeLabel = 'Прикрепить файл';
32
31
  break;
33
32
  case 'send':
34
33
  icon = platform === Platform.IOS ? /*#__PURE__*/React.createElement(Icon48WritebarSend, null) : /*#__PURE__*/React.createElement(Icon24Send, null);
35
- ariaLabel = 'Отправить';
34
+ modeLabel = 'Отправить';
36
35
  break;
37
36
  case 'done':
38
37
  icon = platform === Platform.IOS ? /*#__PURE__*/React.createElement(Icon48WritebarDone, null) : /*#__PURE__*/React.createElement(Icon28CheckCircleOutline, null);
39
- ariaLabel = 'Готово';
38
+ modeLabel = 'Готово';
40
39
  break;
41
40
  default:
42
41
  break;
43
42
  }
44
- if (IS_DEV && !restProps['aria-label'] && !ariaLabel) {
45
- warn('a11y: У WriteBarIcon нет aria-label. Кнопка будет недоступной для части пользователей.', 'error');
43
+ if (process.env.NODE_ENV === 'development') {
44
+ var isAccessible = !modeLabel && (!restProps['aria-label'] || restProps['aria-labelledby']);
45
+ if (!isAccessible) {
46
+ warn(COMMON_WARNINGS.a11y['button-name'], 'error');
47
+ }
46
48
  }
47
49
  return /*#__PURE__*/React.createElement(Tappable, _extends({
48
- "aria-label": ariaLabel
50
+ "aria-label": modeLabel
49
51
  }, restProps, {
50
52
  Component: "button",
51
53
  hasHover: false,
@@ -1 +1 @@
1
- {"version":3,"file":"WriteBarIcon.js","names":["React","Icon24Send","Icon28AddCircleOutline","Icon28AttachOutline","Icon28CheckCircleOutline","Icon48WritebarDone","Icon48WritebarSend","usePlatform","classNames","hasReactNode","Platform","Counter","Tappable","warnOnce","warn","IS_DEV","process","env","NODE_ENV","WriteBarIcon","mode","children","count","className","restProps","platform","icon","ariaLabel","undefined","IOS","styles"],"sources":["../../../../src/components/WriteBarIcon/WriteBarIcon.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon24Send,\n Icon28AddCircleOutline,\n Icon28AttachOutline,\n Icon28CheckCircleOutline,\n Icon48WritebarDone,\n Icon48WritebarSend,\n} from '@vkontakte/icons';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { Platform } from '../../lib/platform';\nimport { Counter } from '../Counter/Counter';\nimport { Tappable } from '../Tappable/Tappable';\nimport { warnOnce } from '../../lib/warnOnce';\nimport styles from './WriteBarIcon.module.css';\n\nexport interface WriteBarIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Предустановленные типы кнопок в WriteBar для отрисовки иконки в зависимости от платформы.\n * Если передать валидное значение для этого свойства, `children` игнорируется.\n *\n * - `attach` – иконка прикрепления.\n * - `send` – иконка отправки.\n * - `done` – иконка отправки в режиме редактирования.\n */\n mode?: 'attach' | 'send' | 'done';\n /**\n * Значение счётчика для кнопки. Например, для количества прикреплённых файлов.\n */\n count?: number;\n}\n\nconst warn = warnOnce('WriteBarIcon');\nconst IS_DEV = process.env.NODE_ENV === 'development';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBarIcon\n */\nexport const WriteBarIcon = ({\n mode,\n children,\n count,\n className,\n ...restProps\n}: WriteBarIconProps) => {\n const platform = usePlatform();\n\n let icon: React.ReactNode;\n let ariaLabel: string | undefined = undefined;\n\n switch (mode) {\n case 'attach':\n icon = platform === Platform.IOS ? <Icon28AddCircleOutline /> : <Icon28AttachOutline />;\n ariaLabel = 'Прикрепить файл';\n break;\n\n case 'send':\n icon = platform === Platform.IOS ? <Icon48WritebarSend /> : <Icon24Send />;\n ariaLabel = 'Отправить';\n break;\n\n case 'done':\n icon = platform === Platform.IOS ? <Icon48WritebarDone /> : <Icon28CheckCircleOutline />;\n ariaLabel = 'Готово';\n break;\n\n default:\n break;\n }\n\n if (IS_DEV && !restProps['aria-label'] && !ariaLabel) {\n warn(\n 'a11y: У WriteBarIcon нет aria-label. Кнопка будет недоступной для части пользователей.',\n 'error',\n );\n }\n\n return (\n <Tappable\n aria-label={ariaLabel}\n {...restProps}\n Component=\"button\"\n hasHover={false}\n activeMode={styles['WriteBarIcon__active']}\n className={classNames(\n styles['WriteBarIcon'],\n platform === Platform.IOS && styles['WriteBarIcon--ios'],\n mode && styles[`WriteBarIcon--mode-${mode}`],\n className,\n )}\n >\n <span className={styles['WriteBarIcon__in']}>{icon || children}</span>\n {hasReactNode(count) && (\n <Counter className={styles['WriteBarIcon__counter']} size=\"s\">\n {count}\n </Counter>\n )}\n </Tappable>\n );\n};\n"],"mappings":";;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,UAAU,EACVC,sBAAsB,EACtBC,mBAAmB,EACnBC,wBAAwB,EACxBC,kBAAkB,EAClBC,kBAAkB,QACb,kBAAkB;AACzB,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC1D,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,QAAQ,QAAQ,oBAAoB;AAAC;AAmB9C,IAAMC,IAAI,GAAGD,QAAQ,CAAC,cAAc,CAAC;AACrC,IAAME,MAAM,GAAGC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa;;AAErD;AACA;AACA;AACA,OAAO,IAAMC,YAAY,GAAG,SAAfA,YAAY,OAMA;EAAA,IALvBC,IAAI,QAAJA,IAAI;IACJC,QAAQ,QAARA,QAAQ;IACRC,KAAK,QAALA,KAAK;IACLC,SAAS,QAATA,SAAS;IACNC,SAAS;EAEZ,IAAMC,QAAQ,GAAGlB,WAAW,EAAE;EAE9B,IAAImB,IAAqB;EACzB,IAAIC,SAA6B,GAAGC,SAAS;EAE7C,QAAQR,IAAI;IACV,KAAK,QAAQ;MACXM,IAAI,GAAGD,QAAQ,KAAKf,QAAQ,CAACmB,GAAG,gBAAG,oBAAC,sBAAsB,OAAG,gBAAG,oBAAC,mBAAmB,OAAG;MACvFF,SAAS,GAAG,iBAAiB;MAC7B;IAEF,KAAK,MAAM;MACTD,IAAI,GAAGD,QAAQ,KAAKf,QAAQ,CAACmB,GAAG,gBAAG,oBAAC,kBAAkB,OAAG,gBAAG,oBAAC,UAAU,OAAG;MAC1EF,SAAS,GAAG,WAAW;MACvB;IAEF,KAAK,MAAM;MACTD,IAAI,GAAGD,QAAQ,KAAKf,QAAQ,CAACmB,GAAG,gBAAG,oBAAC,kBAAkB,OAAG,gBAAG,oBAAC,wBAAwB,OAAG;MACxFF,SAAS,GAAG,QAAQ;MACpB;IAEF;MACE;EAAM;EAGV,IAAIZ,MAAM,IAAI,CAACS,SAAS,CAAC,YAAY,CAAC,IAAI,CAACG,SAAS,EAAE;IACpDb,IAAI,CACF,wFAAwF,EACxF,OAAO,CACR;EACH;EAEA,oBACE,oBAAC,QAAQ;IACP,cAAYa;EAAU,GAClBH,SAAS;IACb,SAAS,EAAC,QAAQ;IAClB,QAAQ,EAAE,KAAM;IAChB,UAAU,4BAAiC;IAC3C,SAAS,EAAEhB,UAAU,qBAEnBiB,QAAQ,KAAKf,QAAQ,CAACmB,GAAG,2BAA+B,EACxDT,IAAI,IAAIU,MAAM,8BAAuBV,IAAI,EAAG,EAC5CG,SAAS;EACT,iBAEF;IAAM,SAAS;EAA6B,GAAEG,IAAI,IAAIL,QAAQ,CAAQ,EACrEZ,YAAY,CAACa,KAAK,CAAC,iBAClB,oBAAC,OAAO;IAAC,SAAS,6BAAkC;IAAC,IAAI,EAAC;EAAG,GAC1DA,KAAK,CAET,CACQ;AAEf,CAAC;AAAC;EAAA;EAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"WriteBarIcon.js","names":["React","Icon24Send","Icon28AddCircleOutline","Icon28AttachOutline","Icon28CheckCircleOutline","Icon48WritebarDone","Icon48WritebarSend","classNames","hasReactNode","usePlatform","Platform","COMMON_WARNINGS","warnOnce","Counter","Tappable","warn","WriteBarIcon","mode","children","count","className","restProps","platform","icon","modeLabel","undefined","IOS","process","env","NODE_ENV","isAccessible","a11y","styles"],"sources":["../../../../src/components/WriteBarIcon/WriteBarIcon.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon24Send,\n Icon28AddCircleOutline,\n Icon28AttachOutline,\n Icon28CheckCircleOutline,\n Icon48WritebarDone,\n Icon48WritebarSend,\n} from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { Counter } from '../Counter/Counter';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './WriteBarIcon.module.css';\n\nexport interface WriteBarIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Предустановленные типы кнопок в WriteBar для отрисовки иконки в зависимости от платформы.\n * Если передать валидное значение для этого свойства, `children` игнорируется.\n *\n * - `attach` – иконка прикрепления.\n * - `send` – иконка отправки.\n * - `done` – иконка отправки в режиме редактирования.\n */\n mode?: 'attach' | 'send' | 'done';\n /**\n * Значение счётчика для кнопки. Например, для количества прикреплённых файлов.\n */\n count?: number;\n}\n\nconst warn = warnOnce('WriteBarIcon');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBarIcon\n */\nexport const WriteBarIcon = ({\n mode,\n children,\n count,\n className,\n ...restProps\n}: WriteBarIconProps) => {\n const platform = usePlatform();\n\n let icon: React.ReactNode;\n let modeLabel: string | undefined = undefined;\n\n switch (mode) {\n case 'attach':\n icon = platform === Platform.IOS ? <Icon28AddCircleOutline /> : <Icon28AttachOutline />;\n modeLabel = 'Прикрепить файл';\n break;\n\n case 'send':\n icon = platform === Platform.IOS ? <Icon48WritebarSend /> : <Icon24Send />;\n modeLabel = 'Отправить';\n break;\n\n case 'done':\n icon = platform === Platform.IOS ? <Icon48WritebarDone /> : <Icon28CheckCircleOutline />;\n modeLabel = 'Готово';\n break;\n\n default:\n break;\n }\n\n if (process.env.NODE_ENV === 'development') {\n const isAccessible = !modeLabel && (!restProps['aria-label'] || restProps['aria-labelledby']);\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y['button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n aria-label={modeLabel}\n {...restProps}\n Component=\"button\"\n hasHover={false}\n activeMode={styles['WriteBarIcon__active']}\n className={classNames(\n styles['WriteBarIcon'],\n platform === Platform.IOS && styles['WriteBarIcon--ios'],\n mode && styles[`WriteBarIcon--mode-${mode}`],\n className,\n )}\n >\n <span className={styles['WriteBarIcon__in']}>{icon || children}</span>\n {hasReactNode(count) && (\n <Counter className={styles['WriteBarIcon__counter']} size=\"s\">\n {count}\n </Counter>\n )}\n </Tappable>\n );\n};\n"],"mappings":";;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,UAAU,EACVC,sBAAsB,EACtBC,mBAAmB,EACnBC,wBAAwB,EACxBC,kBAAkB,EAClBC,kBAAkB,QACb,kBAAkB;AACzB,SAASC,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC1D,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,eAAe,EAAEC,QAAQ,QAAQ,oBAAoB;AAC9D,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,QAAQ,QAAQ,sBAAsB;AAAC;AAmBhD,IAAMC,IAAI,GAAGH,QAAQ,CAAC,cAAc,CAAC;;AAErC;AACA;AACA;AACA,OAAO,IAAMI,YAAY,GAAG,SAAfA,YAAY,OAMA;EAAA,IALvBC,IAAI,QAAJA,IAAI;IACJC,QAAQ,QAARA,QAAQ;IACRC,KAAK,QAALA,KAAK;IACLC,SAAS,QAATA,SAAS;IACNC,SAAS;EAEZ,IAAMC,QAAQ,GAAGb,WAAW,EAAE;EAE9B,IAAIc,IAAqB;EACzB,IAAIC,SAA6B,GAAGC,SAAS;EAE7C,QAAQR,IAAI;IACV,KAAK,QAAQ;MACXM,IAAI,GAAGD,QAAQ,KAAKZ,QAAQ,CAACgB,GAAG,gBAAG,oBAAC,sBAAsB,OAAG,gBAAG,oBAAC,mBAAmB,OAAG;MACvFF,SAAS,GAAG,iBAAiB;MAC7B;IAEF,KAAK,MAAM;MACTD,IAAI,GAAGD,QAAQ,KAAKZ,QAAQ,CAACgB,GAAG,gBAAG,oBAAC,kBAAkB,OAAG,gBAAG,oBAAC,UAAU,OAAG;MAC1EF,SAAS,GAAG,WAAW;MACvB;IAEF,KAAK,MAAM;MACTD,IAAI,GAAGD,QAAQ,KAAKZ,QAAQ,CAACgB,GAAG,gBAAG,oBAAC,kBAAkB,OAAG,gBAAG,oBAAC,wBAAwB,OAAG;MACxFF,SAAS,GAAG,QAAQ;MACpB;IAEF;MACE;EAAM;EAGV,IAAIG,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;IAC1C,IAAMC,YAAY,GAAG,CAACN,SAAS,KAAK,CAACH,SAAS,CAAC,YAAY,CAAC,IAAIA,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAE7F,IAAI,CAACS,YAAY,EAAE;MACjBf,IAAI,CAACJ,eAAe,CAACoB,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACpD;EACF;EAEA,oBACE,oBAAC,QAAQ;IACP,cAAYP;EAAU,GAClBH,SAAS;IACb,SAAS,EAAC,QAAQ;IAClB,QAAQ,EAAE,KAAM;IAChB,UAAU,4BAAiC;IAC3C,SAAS,EAAEd,UAAU,qBAEnBe,QAAQ,KAAKZ,QAAQ,CAACgB,GAAG,2BAA+B,EACxDT,IAAI,IAAIe,MAAM,8BAAuBf,IAAI,EAAG,EAC5CG,SAAS;EACT,iBAEF;IAAM,SAAS;EAA6B,GAAEG,IAAI,IAAIL,QAAQ,CAAQ,EACrEV,YAAY,CAACW,KAAK,CAAC,iBAClB,oBAAC,OAAO;IAAC,SAAS,6BAAkC;IAAC,IAAI,EAAC;EAAG,GAC1DA,KAAK,CAET,CACQ;AAEf,CAAC;AAAC;EAAA;EAAA;EAAA;AAAA"}