@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":"ModalRoot.js","names":["React","Touch","TouchRootContext","classNames","setTransformStyle","rubber","Platform","transitionEvent","withPlatform","withContext","ModalRootContext","ConfigProviderContext","WebviewType","ModalType","MODAL_PAGE_DEFAULT_PERCENT_HEIGHT","withDOM","getNavId","warnOnce","FocusTrap","withModalManager","clamp","warn","IS_DEV","process","env","NODE_ENV","numberInRange","number","range","rangeTranslate","ModalRootTouchComponent","props","createRef","undefined","event","originalEvent","preventDefault","modalState","getModalState","activeModal","animateTranslate","translateY","type","PAGE","dynamicContentHeight","enteringModal","waitTransitionFinish","requestAnimationFrame","checkPageContentHeight","e","exitingModal","onPageTouchMove","CARD","onCardTouchMove","onPageTouchEnd","onCardTouchEnd","target","contentElement","contains","contentScrolled","contentScrollStopTimeout","clearTimeout","setTimeout","state","touchDown","dragging","maskElementRef","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","onClose","onExit","isInsideModal","frameIds","platform","IOS","document","window","Children","toArray","children","addEventListener","updateModalTranslate","toggleDocumentScrolling","removeEventListener","prevProps","closeModal","enteringState","onEnter","innerElement","style","transitionDelay","onEntered","delayEnter","timeout","restoreFocusTo","activeElement","focus","enabled","documentScrolling","preventTouch","passive","modalElement","prevModalState","initPageModal","currentModalState","needAnimate","expandable","translateYFrom","setState","nextModalState","nextIsPage","prevIsPage","onExited","exitTranslate","isBack","setMaskOpacity","shiftY","isY","viewportRef","current","stopPropagation","collapsed","expanded","touchStartContentScrollTop","scrollTop","touchMovePositive","headerElement","shiftYPercent","innerHeight","shiftYCurrent","touchShiftYPercent","translateYCurrent","offsetHeight","Math","max","startY","setStateCallback","shiftYEndPercent","expectTranslateY","duration","settlingHeight","expandedRange","collapsedRange","hiddenRange","hidden","eventHandler","supported","onceHandler","name","percent","frameId","cancelAnimationFrame","forceOpacity","history","maskAnimationFrame","opacity","toString","configProvider","webviewType","VKAPPS","onTouchMove","onTouchEnd","onScroll","getModals","map","Modal","modalId","_modalState","isPage","key","Component","ModalRootTouch","initModal","initCardModal","contentHeight","firstElementChild","prevTranslateY","clientHeight","shiftHalf","visiblePart","headerHeight","height","parentElement"],"sources":["../../../src/components/ModalRoot/ModalRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { classNames } from '@vkontakte/vkjs';\nimport { setTransformStyle } from '../../lib/styles';\nimport { rubber } from '../../lib/touch';\nimport { Platform } from '../../lib/platform';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { HasPlatform } from '../../types';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { withContext } from '../../hoc/withContext';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n WebviewType,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { ModalsStateEntry, ModalType, TranslateRange } from './types';\nimport { MODAL_PAGE_DEFAULT_PERCENT_HEIGHT } from './constants';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport { clamp } from '../../helpers/math';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\nconst IS_DEV = process.env.NODE_ENV === 'development';\n\nfunction numberInRange(number: number, range: TranslateRange | undefined) {\n if (!range) {\n return false;\n }\n return number >= range[0] && number <= range[1];\n}\n\nfunction rangeTranslate(number: number) {\n return clamp(number, 0, 98);\n}\n\nexport interface ModalRootProps extends HasPlatform {\n activeModal?: string | null;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?(modalId: string): void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?(modalId: string): void;\n\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n children?: React.ReactNode;\n}\n\ninterface ModalRootState {\n touchDown?: boolean;\n dragging?: boolean;\n}\n\nclass ModalRootTouchComponent extends React.Component<\n ModalRootProps & DOMProps & ModalTransitionProps,\n ModalRootState\n> {\n constructor(props: ModalRootProps & ModalTransitionProps) {\n super(props);\n this.state = {\n touchDown: false,\n dragging: false,\n };\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: this.updateModalHeight,\n registerModal: ({ id, ...data }) => Object.assign(this.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n\n this.frameIds = {};\n }\n\n private documentScrolling = false;\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private readonly viewportRef = React.createRef<HTMLDivElement>();\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private readonly frameIds: {\n [index: string]: number;\n };\n private restoreFocusTo: HTMLElement | undefined | null = undefined;\n\n get timeout(): number {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n getModalState(id: string | undefined | null) {\n if (!id) {\n return undefined;\n }\n return this.props.getModalState(id);\n }\n\n getModals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n componentDidMount() {\n // Отслеживаем изменение размеров viewport (Необходимо для iOS)\n if (this.props.platform === Platform.IOS) {\n this.window?.addEventListener('resize', this.updateModalTranslate, false);\n }\n }\n\n componentWillUnmount() {\n this.toggleDocumentScrolling(true);\n this.window!.removeEventListener('resize', this.updateModalTranslate, false);\n }\n\n componentDidUpdate(prevProps: ModalRootProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n const { enteringModal } = this.props;\n const enteringState = this.getModalState(enteringModal);\n this.props.onEnter();\n this.waitTransitionFinish(enteringState, () => {\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = '';\n }\n this.props.onEntered(enteringModal);\n });\n\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = this.props.delayEnter\n ? `${this.timeout}ms`\n : '';\n this.animateTranslate(enteringState, enteringState.translateY);\n }\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = this.document!.activeElement as HTMLElement;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = null;\n }\n\n this.toggleDocumentScrolling(!this.props.activeModal && !this.props.exitingModal);\n }\n\n /* Отключает скролл документа */\n toggleDocumentScrolling(enabled: boolean) {\n if (this.documentScrolling === enabled) {\n return;\n }\n this.documentScrolling = enabled;\n\n if (enabled) {\n // Здесь нужен последний аргумент с такими же параметрами, потому что\n // некоторые браузеры на странных вендорах типа Meizu не удаляют обработчик.\n // https://github.com/VKCOM/VKUI/issues/444\n this.window!.removeEventListener('touchmove', this.preventTouch, {\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions нет поля passive\n passive: false,\n });\n } else {\n this.window!.addEventListener('touchmove', this.preventTouch, {\n passive: false,\n });\n }\n }\n\n preventTouch = (event: any) => {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault) {\n event.preventDefault();\n }\n return false;\n };\n\n updateModalTranslate = () => {\n const modalState = this.getModalState(this.props.activeModal);\n modalState && this.animateTranslate(modalState, modalState.translateY);\n };\n\n checkPageContentHeight() {\n const modalState = this.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE && modalState?.modalElement) {\n const prevModalState = { ...modalState };\n initPageModal(modalState);\n const currentModalState = { ...modalState };\n\n let needAnimate = false;\n\n if (prevModalState.expandable === currentModalState.expandable) {\n if (prevModalState.translateYFrom !== currentModalState.translateYFrom) {\n needAnimate = true;\n }\n } else {\n needAnimate = true;\n }\n\n if (needAnimate) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n }\n }\n\n updateModalHeight = () => {\n const modalState = this.getModalState(this.props.activeModal);\n\n if (modalState && modalState.type === ModalType.PAGE && modalState.dynamicContentHeight) {\n if (this.props.enteringModal) {\n this.waitTransitionFinish(modalState, () => {\n requestAnimationFrame(() => this.checkPageContentHeight());\n });\n } else {\n requestAnimationFrame(() => this.checkPageContentHeight());\n }\n }\n };\n\n closeModal(id: string) {\n // Сбрасываем состояния, которые могут помешать закрытию модального окна\n this.setState({ touchDown: false });\n\n const prevModalState = this.getModalState(id);\n\n if (!prevModalState) {\n id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');\n return;\n }\n\n const nextModalState = this.getModalState(this.props.activeModal);\n const nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;\n\n const prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n const exitTranslate =\n prevIsPage &&\n nextIsPage &&\n (prevModalState.translateY ?? 0) <= (nextModalState?.translateYFrom ?? 0) &&\n !this.props.isBack\n ? (nextModalState?.translateYFrom ?? 0) + 10\n : 100;\n this.animateTranslate(prevModalState, exitTranslate);\n\n if (!nextModalState) {\n // NOTE: was only for clean exit\n this.setMaskOpacity(prevModalState, 0);\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n if (this.props.exitingModal) {\n return;\n }\n const modalState = this.getModalState(this.props.activeModal);\n if (!modalState) {\n return;\n }\n\n if (modalState.type === ModalType.PAGE) {\n return this.onPageTouchMove(e, modalState);\n }\n\n if (modalState.type === ModalType.CARD) {\n return this.onCardTouchMove(e, modalState);\n }\n };\n\n onPageTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { shiftY, originalEvent } = event;\n const target = originalEvent.target as HTMLElement;\n\n if (!event.isY) {\n if (this.viewportRef.current?.contains(target)) {\n originalEvent.preventDefault();\n }\n return;\n }\n\n if (!modalState.innerElement?.contains(target)) {\n return originalEvent.preventDefault();\n }\n\n originalEvent.stopPropagation();\n\n const { expandable, contentScrolled, collapsed, expanded } = modalState;\n\n if (!this.state.touchDown) {\n modalState.touchStartContentScrollTop = modalState.contentElement?.scrollTop ?? 0;\n this.setState({ touchDown: true });\n }\n\n if (contentScrolled) {\n return;\n }\n\n if (modalState.touchMovePositive === null) {\n modalState.touchMovePositive = shiftY > 0;\n }\n\n if (\n !modalState.expandable ||\n collapsed ||\n (expanded && modalState.touchMovePositive && modalState.touchStartContentScrollTop === 0) ||\n modalState.headerElement?.contains(target)\n ) {\n originalEvent.preventDefault();\n\n if ((!expandable && shiftY < 0) || !this.window) {\n return;\n }\n\n !this.state.dragging && this.setState({ dragging: true });\n\n const shiftYPercent = (shiftY / this.window.innerHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 0.8, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = rangeTranslate((modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onCardTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { originalEvent, shiftY } = event;\n const target = originalEvent.target as HTMLElement;\n if (modalState.innerElement?.contains(target)) {\n if (!this.state.touchDown) {\n this.setState({ touchDown: true, dragging: true });\n }\n\n const shiftYPercent = (shiftY / modalState.innerElement.offsetHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 1.2, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = Math.max(0, (modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onTouchEnd = (e: TouchEvent) => {\n const modalState = this.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE) {\n return this.onPageTouchEnd(e, modalState);\n }\n\n if (modalState?.type === ModalType.CARD) {\n return this.onCardTouchEnd(e, modalState);\n }\n };\n\n onPageTouchEnd(event: TouchEvent, modalState: ModalsStateEntry) {\n const { startY, shiftY } = event;\n\n modalState.contentScrolled = false;\n modalState.touchMovePositive = null;\n\n let setStateCallback;\n\n if (this.state.dragging && this.window) {\n const shiftYEndPercent = ((startY + shiftY) / this.window.innerHeight) * 100;\n\n let translateY = modalState.translateYCurrent ?? 0;\n const expectTranslateY =\n (translateY / event.duration) *\n 240 *\n 0.6 *\n ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = rangeTranslate(translateY + expectTranslateY);\n\n if (modalState.settlingHeight !== 100) {\n if (numberInRange(translateY, modalState.expandedRange)) {\n translateY = modalState.expandedRange?.[0] ?? 0;\n } else if (numberInRange(translateY, modalState.collapsedRange)) {\n translateY = modalState.translateYFrom ?? 0;\n } else if (numberInRange(translateY, modalState.hiddenRange)) {\n translateY = 100;\n } else {\n translateY = modalState.translateYFrom ?? 0;\n }\n } else {\n if (numberInRange(translateY, [0, 25])) {\n translateY = 0;\n } else {\n translateY = 100;\n }\n }\n\n if (translateY !== 100 && shiftYEndPercent >= 75) {\n translateY = 100;\n }\n\n modalState.translateY = translateY;\n modalState.translateYCurrent = translateY;\n modalState.collapsed = translateY > 0 && translateY < shiftYEndPercent;\n modalState.expanded = translateY === 0;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onCardTouchEnd({ duration }: TouchEvent, modalState: ModalsStateEntry) {\n let setStateCallback;\n\n if (this.state.dragging) {\n let translateY = modalState.translateYCurrent ?? 0;\n\n const expectTranslateY =\n (translateY / duration) * 240 * 0.6 * ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = Math.max(0, translateY + expectTranslateY);\n\n if (translateY >= 30) {\n translateY = 100;\n } else {\n translateY = 0;\n }\n\n modalState.translateY = translateY;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onScroll = (e: React.SyntheticEvent) => {\n const activeModal = this.props.activeModal;\n\n const target = e.target as HTMLElement;\n\n if (!activeModal) {\n return;\n }\n const modalState = this.getModalState(activeModal);\n if (modalState?.type === ModalType.PAGE && modalState?.contentElement?.contains(target)) {\n modalState.contentScrolled = true;\n\n if (modalState.contentScrollStopTimeout) {\n clearTimeout(modalState.contentScrollStopTimeout);\n }\n\n modalState.contentScrollStopTimeout = setTimeout(() => {\n if (modalState.contentScrolled) {\n modalState.contentScrolled = false;\n }\n }, 250);\n }\n };\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /**\n * Анимирует сдвиг модалки\n *\n * @param {ModalsStateEntry} modalState\n * @param {number} percent Процент сдвига: 0 – полностью открыта, 100 – полностью закрыта\n */\n animateTranslate(modalState: ModalsStateEntry, percent: number | undefined) {\n const frameId = `animateTranslateFrame${modalState.id}`;\n\n cancelAnimationFrame(this.frameIds[frameId]);\n\n this.frameIds[frameId] = requestAnimationFrame(() => {\n setTransformStyle(modalState.innerElement, `translate3d(0, ${percent}%, 0)`);\n });\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n }\n\n render() {\n const { activeModal, exitingModal, enteringModal } = this.props;\n const { touchDown, dragging } = this.state;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <ModalRootContext.Provider value={this.modalRootContext}>\n <Touch\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.webviewType === WebviewType.VKAPPS &&\n styles['ModalRoot--vkapps'],\n touchDown && styles['ModalRoot--touched'],\n !!(enteringModal || exitingModal) && styles['ModalRoot--switching'],\n )}\n onMove={this.onTouchMove}\n onEnd={this.onTouchEnd}\n onScroll={this.onScroll}\n >\n <div\n className={styles['ModalRoot__mask']}\n onClick={this.props.onExit}\n ref={this.maskElementRef}\n />\n <div className={styles['ModalRoot__viewport']} ref={this.viewportRef}>\n {this.getModals().map((Modal) => {\n const modalId = getNavId(Modal.props, warn);\n const _modalState = this.getModalState(modalId);\n if ((modalId !== activeModal && modalId !== exitingModal) || !_modalState) {\n return null;\n }\n const modalState = { ..._modalState };\n\n const isPage = modalState.type === ModalType.PAGE;\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n key={key}\n getRootRef={(e) => {\n const modalState = this.getModalState(modalId);\n if (modalState) {\n modalState.modalElement = e;\n }\n }}\n onClose={this.props.onExit}\n timeout={this.timeout}\n className={classNames(\n styles['ModalRoot__modal'],\n\n dragging && styles['ModalRoot__modal--dragging'],\n\n isPage && modalState.expandable && styles['ModalRoot__modal--expandable'],\n isPage && modalState.collapsed && styles['ModalRoot__modal--collapsed'],\n )}\n restoreFocus={false}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </Touch>\n </ModalRootContext.Provider>\n </TouchRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootTouch = withContext(\n withPlatform(withDOM<ModalRootProps>(withModalManager(initModal)(ModalRootTouchComponent))),\n ConfigProviderContext,\n 'configProvider',\n);\n\n/**\n * Инициализирует модалку перед анимацией открытия\n */\nfunction initModal(modalState: ModalsStateEntry) {\n switch (modalState.type) {\n case ModalType.PAGE:\n modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;\n return initPageModal(modalState);\n case ModalType.CARD:\n return initCardModal(modalState);\n default:\n IS_DEV &&\n warn(`initActiveModal: modalState.type=\"${modalState.type}\" не поддерживается`, 'error');\n }\n}\n\nfunction initPageModal(modalState: ModalsStateEntry) {\n const { contentElement } = modalState;\n const contentHeight = (contentElement?.firstElementChild as HTMLElement).offsetHeight;\n\n let prevTranslateY = modalState.translateY;\n\n modalState.expandable =\n contentHeight > (contentElement?.clientHeight ?? 0) || modalState.settlingHeight === 100;\n\n let collapsed = false;\n let expanded = false;\n let translateYFrom;\n let translateY;\n let expandedRange: TranslateRange;\n let collapsedRange: TranslateRange;\n let hiddenRange: TranslateRange;\n\n if (modalState.expandable) {\n translateYFrom = 100 - (modalState.settlingHeight ?? 0);\n\n const shiftHalf = translateYFrom / 2;\n const visiblePart = 100 - translateYFrom;\n\n expandedRange = [0, shiftHalf];\n collapsedRange = [shiftHalf, translateYFrom + visiblePart / 4];\n hiddenRange = [translateYFrom + visiblePart / 4, 100];\n\n collapsed = translateYFrom > 0;\n expanded = translateYFrom <= 0;\n translateY = translateYFrom;\n } else {\n const headerHeight = modalState.headerElement?.offsetHeight ?? 0;\n const height = contentHeight + headerHeight;\n\n translateYFrom =\n 100 - (height / (modalState.innerElement?.parentElement?.offsetHeight ?? 0)) * 100;\n translateY = translateYFrom;\n\n expandedRange = [translateY, translateY + 25];\n collapsedRange = [translateY + 25, translateY + 25];\n hiddenRange = [translateY + 25, translateY + 100];\n }\n\n // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран\n if (\n (modalState.expandable && translateY > (prevTranslateY ?? 100)) ||\n modalState.settlingHeight === 100\n ) {\n translateY = 0;\n }\n\n // Если модалка уже раскрыта обновляем состояния\n if (translateY === 0) {\n expanded = true;\n collapsed = false;\n }\n\n modalState.expandedRange = expandedRange;\n modalState.collapsedRange = collapsedRange;\n modalState.hiddenRange = hiddenRange;\n modalState.translateY = translateY;\n modalState.translateYFrom = translateYFrom;\n modalState.collapsed = collapsed;\n modalState.expanded = expanded;\n}\n\nfunction initCardModal(modalState: ModalsStateEntry) {\n modalState.translateY = 0;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ModalRoot.js","names":["React","classNames","clamp","withContext","withPlatform","withDOM","getNavId","Platform","setTransformStyle","transitionEvent","rubber","warnOnce","ConfigProviderContext","WebviewType","FocusTrap","Touch","TouchRootContext","ModalRootContext","MODAL_PAGE_DEFAULT_PERCENT_HEIGHT","ModalType","withModalManager","warn","numberInRange","number","range","rangeTranslate","ModalRootTouchComponent","props","createRef","undefined","event","originalEvent","preventDefault","modalState","getModalState","activeModal","animateTranslate","translateY","type","PAGE","dynamicContentHeight","enteringModal","waitTransitionFinish","requestAnimationFrame","checkPageContentHeight","e","exitingModal","onPageTouchMove","CARD","onCardTouchMove","onPageTouchEnd","onCardTouchEnd","target","contentElement","contains","contentScrolled","contentScrollStopTimeout","clearTimeout","setTimeout","state","touchDown","dragging","maskElementRef","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","onClose","onExit","isInsideModal","frameIds","platform","IOS","document","window","Children","toArray","children","addEventListener","updateModalTranslate","toggleDocumentScrolling","removeEventListener","prevProps","closeModal","enteringState","onEnter","innerElement","style","transitionDelay","onEntered","delayEnter","timeout","restoreFocusTo","activeElement","focus","enabled","documentScrolling","preventTouch","passive","modalElement","prevModalState","initPageModal","currentModalState","needAnimate","expandable","translateYFrom","setState","nextModalState","nextIsPage","prevIsPage","onExited","exitTranslate","isBack","setMaskOpacity","shiftY","isY","viewportRef","current","stopPropagation","collapsed","expanded","touchStartContentScrollTop","scrollTop","touchMovePositive","headerElement","shiftYPercent","innerHeight","shiftYCurrent","touchShiftYPercent","translateYCurrent","offsetHeight","Math","max","startY","setStateCallback","shiftYEndPercent","expectTranslateY","duration","settlingHeight","expandedRange","collapsedRange","hiddenRange","hidden","eventHandler","supported","onceHandler","name","percent","frameId","cancelAnimationFrame","forceOpacity","history","maskAnimationFrame","opacity","toString","configProvider","webviewType","VKAPPS","onTouchMove","onTouchEnd","onScroll","getModals","map","Modal","modalId","_modalState","isPage","key","Component","ModalRootTouch","initModal","initCardModal","process","env","NODE_ENV","contentHeight","firstElementChild","prevTranslateY","clientHeight","shiftHalf","visiblePart","headerHeight","height","parentElement"],"sources":["../../../src/components/ModalRoot/ModalRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { setTransformStyle } from '../../lib/styles';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { rubber } from '../../lib/touch';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasPlatform } from '../../types';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n WebviewType,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { MODAL_PAGE_DEFAULT_PERCENT_HEIGHT } from './constants';\nimport { ModalsStateEntry, ModalType, TranslateRange } from './types';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nfunction numberInRange(number: number, range: TranslateRange | undefined) {\n if (!range) {\n return false;\n }\n return number >= range[0] && number <= range[1];\n}\n\nfunction rangeTranslate(number: number) {\n return clamp(number, 0, 98);\n}\n\nexport interface ModalRootProps extends HasPlatform {\n activeModal?: string | null;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?(modalId: string): void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?(modalId: string): void;\n\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n children?: React.ReactNode;\n}\n\ninterface ModalRootState {\n touchDown?: boolean;\n dragging?: boolean;\n}\n\nclass ModalRootTouchComponent extends React.Component<\n ModalRootProps & DOMProps & ModalTransitionProps,\n ModalRootState\n> {\n constructor(props: ModalRootProps & ModalTransitionProps) {\n super(props);\n this.state = {\n touchDown: false,\n dragging: false,\n };\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: this.updateModalHeight,\n registerModal: ({ id, ...data }) => Object.assign(this.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n\n this.frameIds = {};\n }\n\n private documentScrolling = false;\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private readonly viewportRef = React.createRef<HTMLDivElement>();\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private readonly frameIds: {\n [index: string]: number;\n };\n private restoreFocusTo: HTMLElement | undefined | null = undefined;\n\n get timeout(): number {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n getModalState(id: string | undefined | null) {\n if (!id) {\n return undefined;\n }\n return this.props.getModalState(id);\n }\n\n getModals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n componentDidMount() {\n // Отслеживаем изменение размеров viewport (Необходимо для iOS)\n if (this.props.platform === Platform.IOS) {\n this.window?.addEventListener('resize', this.updateModalTranslate, false);\n }\n }\n\n componentWillUnmount() {\n this.toggleDocumentScrolling(true);\n this.window!.removeEventListener('resize', this.updateModalTranslate, false);\n }\n\n componentDidUpdate(prevProps: ModalRootProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n const { enteringModal } = this.props;\n const enteringState = this.getModalState(enteringModal);\n this.props.onEnter();\n this.waitTransitionFinish(enteringState, () => {\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = '';\n }\n this.props.onEntered(enteringModal);\n });\n\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = this.props.delayEnter\n ? `${this.timeout}ms`\n : '';\n this.animateTranslate(enteringState, enteringState.translateY);\n }\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = this.document!.activeElement as HTMLElement;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = null;\n }\n\n this.toggleDocumentScrolling(!this.props.activeModal && !this.props.exitingModal);\n }\n\n /* Отключает скролл документа */\n toggleDocumentScrolling(enabled: boolean) {\n if (this.documentScrolling === enabled) {\n return;\n }\n this.documentScrolling = enabled;\n\n if (enabled) {\n // Здесь нужен последний аргумент с такими же параметрами, потому что\n // некоторые браузеры на странных вендорах типа Meizu не удаляют обработчик.\n // https://github.com/VKCOM/VKUI/issues/444\n this.window!.removeEventListener('touchmove', this.preventTouch, {\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions нет поля passive\n passive: false,\n });\n } else {\n this.window!.addEventListener('touchmove', this.preventTouch, {\n passive: false,\n });\n }\n }\n\n preventTouch = (event: any) => {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault) {\n event.preventDefault();\n }\n return false;\n };\n\n updateModalTranslate = () => {\n const modalState = this.getModalState(this.props.activeModal);\n modalState && this.animateTranslate(modalState, modalState.translateY);\n };\n\n checkPageContentHeight() {\n const modalState = this.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE && modalState?.modalElement) {\n const prevModalState = { ...modalState };\n initPageModal(modalState);\n const currentModalState = { ...modalState };\n\n let needAnimate = false;\n\n if (prevModalState.expandable === currentModalState.expandable) {\n if (prevModalState.translateYFrom !== currentModalState.translateYFrom) {\n needAnimate = true;\n }\n } else {\n needAnimate = true;\n }\n\n if (needAnimate) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n }\n }\n\n updateModalHeight = () => {\n const modalState = this.getModalState(this.props.activeModal);\n\n if (modalState && modalState.type === ModalType.PAGE && modalState.dynamicContentHeight) {\n if (this.props.enteringModal) {\n this.waitTransitionFinish(modalState, () => {\n requestAnimationFrame(() => this.checkPageContentHeight());\n });\n } else {\n requestAnimationFrame(() => this.checkPageContentHeight());\n }\n }\n };\n\n closeModal(id: string) {\n // Сбрасываем состояния, которые могут помешать закрытию модального окна\n this.setState({ touchDown: false });\n\n const prevModalState = this.getModalState(id);\n\n if (!prevModalState) {\n id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');\n return;\n }\n\n const nextModalState = this.getModalState(this.props.activeModal);\n const nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;\n\n const prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n const exitTranslate =\n prevIsPage &&\n nextIsPage &&\n (prevModalState.translateY ?? 0) <= (nextModalState?.translateYFrom ?? 0) &&\n !this.props.isBack\n ? (nextModalState?.translateYFrom ?? 0) + 10\n : 100;\n this.animateTranslate(prevModalState, exitTranslate);\n\n if (!nextModalState) {\n // NOTE: was only for clean exit\n this.setMaskOpacity(prevModalState, 0);\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n if (this.props.exitingModal) {\n return;\n }\n const modalState = this.getModalState(this.props.activeModal);\n if (!modalState) {\n return;\n }\n\n if (modalState.type === ModalType.PAGE) {\n return this.onPageTouchMove(e, modalState);\n }\n\n if (modalState.type === ModalType.CARD) {\n return this.onCardTouchMove(e, modalState);\n }\n };\n\n onPageTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { shiftY, originalEvent } = event;\n const target = originalEvent.target as HTMLElement;\n\n if (!event.isY) {\n if (this.viewportRef.current?.contains(target)) {\n originalEvent.preventDefault();\n }\n return;\n }\n\n if (!modalState.innerElement?.contains(target)) {\n return originalEvent.preventDefault();\n }\n\n originalEvent.stopPropagation();\n\n const { expandable, contentScrolled, collapsed, expanded } = modalState;\n\n if (!this.state.touchDown) {\n modalState.touchStartContentScrollTop = modalState.contentElement?.scrollTop ?? 0;\n this.setState({ touchDown: true });\n }\n\n if (contentScrolled) {\n return;\n }\n\n if (modalState.touchMovePositive === null) {\n modalState.touchMovePositive = shiftY > 0;\n }\n\n if (\n !modalState.expandable ||\n collapsed ||\n (expanded && modalState.touchMovePositive && modalState.touchStartContentScrollTop === 0) ||\n modalState.headerElement?.contains(target)\n ) {\n originalEvent.preventDefault();\n\n if ((!expandable && shiftY < 0) || !this.window) {\n return;\n }\n\n !this.state.dragging && this.setState({ dragging: true });\n\n const shiftYPercent = (shiftY / this.window.innerHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 0.8, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = rangeTranslate((modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onCardTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { originalEvent, shiftY } = event;\n const target = originalEvent.target as HTMLElement;\n if (modalState.innerElement?.contains(target)) {\n if (!this.state.touchDown) {\n this.setState({ touchDown: true, dragging: true });\n }\n\n const shiftYPercent = (shiftY / modalState.innerElement.offsetHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 1.2, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = Math.max(0, (modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onTouchEnd = (e: TouchEvent) => {\n const modalState = this.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE) {\n return this.onPageTouchEnd(e, modalState);\n }\n\n if (modalState?.type === ModalType.CARD) {\n return this.onCardTouchEnd(e, modalState);\n }\n };\n\n onPageTouchEnd(event: TouchEvent, modalState: ModalsStateEntry) {\n const { startY, shiftY } = event;\n\n modalState.contentScrolled = false;\n modalState.touchMovePositive = null;\n\n let setStateCallback;\n\n if (this.state.dragging && this.window) {\n const shiftYEndPercent = ((startY + shiftY) / this.window.innerHeight) * 100;\n\n let translateY = modalState.translateYCurrent ?? 0;\n const expectTranslateY =\n (translateY / event.duration) *\n 240 *\n 0.6 *\n ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = rangeTranslate(translateY + expectTranslateY);\n\n if (modalState.settlingHeight !== 100) {\n if (numberInRange(translateY, modalState.expandedRange)) {\n translateY = modalState.expandedRange?.[0] ?? 0;\n } else if (numberInRange(translateY, modalState.collapsedRange)) {\n translateY = modalState.translateYFrom ?? 0;\n } else if (numberInRange(translateY, modalState.hiddenRange)) {\n translateY = 100;\n } else {\n translateY = modalState.translateYFrom ?? 0;\n }\n } else {\n if (numberInRange(translateY, [0, 25])) {\n translateY = 0;\n } else {\n translateY = 100;\n }\n }\n\n if (translateY !== 100 && shiftYEndPercent >= 75) {\n translateY = 100;\n }\n\n modalState.translateY = translateY;\n modalState.translateYCurrent = translateY;\n modalState.collapsed = translateY > 0 && translateY < shiftYEndPercent;\n modalState.expanded = translateY === 0;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onCardTouchEnd({ duration }: TouchEvent, modalState: ModalsStateEntry) {\n let setStateCallback;\n\n if (this.state.dragging) {\n let translateY = modalState.translateYCurrent ?? 0;\n\n const expectTranslateY =\n (translateY / duration) * 240 * 0.6 * ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = Math.max(0, translateY + expectTranslateY);\n\n if (translateY >= 30) {\n translateY = 100;\n } else {\n translateY = 0;\n }\n\n modalState.translateY = translateY;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onScroll = (e: React.SyntheticEvent) => {\n const activeModal = this.props.activeModal;\n\n const target = e.target as HTMLElement;\n\n if (!activeModal) {\n return;\n }\n const modalState = this.getModalState(activeModal);\n if (modalState?.type === ModalType.PAGE && modalState?.contentElement?.contains(target)) {\n modalState.contentScrolled = true;\n\n if (modalState.contentScrollStopTimeout) {\n clearTimeout(modalState.contentScrollStopTimeout);\n }\n\n modalState.contentScrollStopTimeout = setTimeout(() => {\n if (modalState.contentScrolled) {\n modalState.contentScrolled = false;\n }\n }, 250);\n }\n };\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /**\n * Анимирует сдвиг модалки\n *\n * @param {ModalsStateEntry} modalState\n * @param {number} percent Процент сдвига: 0 – полностью открыта, 100 – полностью закрыта\n */\n animateTranslate(modalState: ModalsStateEntry, percent: number | undefined) {\n const frameId = `animateTranslateFrame${modalState.id}`;\n\n cancelAnimationFrame(this.frameIds[frameId]);\n\n this.frameIds[frameId] = requestAnimationFrame(() => {\n setTransformStyle(modalState.innerElement, `translate3d(0, ${percent}%, 0)`);\n });\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n }\n\n render() {\n const { activeModal, exitingModal, enteringModal } = this.props;\n const { touchDown, dragging } = this.state;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <ModalRootContext.Provider value={this.modalRootContext}>\n <Touch\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.webviewType === WebviewType.VKAPPS &&\n styles['ModalRoot--vkapps'],\n touchDown && styles['ModalRoot--touched'],\n !!(enteringModal || exitingModal) && styles['ModalRoot--switching'],\n )}\n onMove={this.onTouchMove}\n onEnd={this.onTouchEnd}\n onScroll={this.onScroll}\n >\n <div\n className={styles['ModalRoot__mask']}\n onClick={this.props.onExit}\n ref={this.maskElementRef}\n />\n <div className={styles['ModalRoot__viewport']} ref={this.viewportRef}>\n {this.getModals().map((Modal) => {\n const modalId = getNavId(Modal.props, warn);\n const _modalState = this.getModalState(modalId);\n if ((modalId !== activeModal && modalId !== exitingModal) || !_modalState) {\n return null;\n }\n const modalState = { ..._modalState };\n\n const isPage = modalState.type === ModalType.PAGE;\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n key={key}\n getRootRef={(e) => {\n const modalState = this.getModalState(modalId);\n if (modalState) {\n modalState.modalElement = e;\n }\n }}\n onClose={this.props.onExit}\n timeout={this.timeout}\n className={classNames(\n styles['ModalRoot__modal'],\n\n dragging && styles['ModalRoot__modal--dragging'],\n\n isPage && modalState.expandable && styles['ModalRoot__modal--expandable'],\n isPage && modalState.collapsed && styles['ModalRoot__modal--collapsed'],\n )}\n restoreFocus={false}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </Touch>\n </ModalRootContext.Provider>\n </TouchRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootTouch = withContext(\n withPlatform(withDOM<ModalRootProps>(withModalManager(initModal)(ModalRootTouchComponent))),\n ConfigProviderContext,\n 'configProvider',\n);\n\n/**\n * Инициализирует модалку перед анимацией открытия\n */\nfunction initModal(modalState: ModalsStateEntry) {\n switch (modalState.type) {\n case ModalType.PAGE:\n modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;\n return initPageModal(modalState);\n case ModalType.CARD:\n return initCardModal(modalState);\n default:\n process.env.NODE_ENV === 'development' &&\n warn(`initActiveModal: modalState.type=\"${modalState.type}\" не поддерживается`, 'error');\n }\n}\n\nfunction initPageModal(modalState: ModalsStateEntry) {\n const { contentElement } = modalState;\n const contentHeight = (contentElement?.firstElementChild as HTMLElement).offsetHeight;\n\n let prevTranslateY = modalState.translateY;\n\n modalState.expandable =\n contentHeight > (contentElement?.clientHeight ?? 0) || modalState.settlingHeight === 100;\n\n let collapsed = false;\n let expanded = false;\n let translateYFrom;\n let translateY;\n let expandedRange: TranslateRange;\n let collapsedRange: TranslateRange;\n let hiddenRange: TranslateRange;\n\n if (modalState.expandable) {\n translateYFrom = 100 - (modalState.settlingHeight ?? 0);\n\n const shiftHalf = translateYFrom / 2;\n const visiblePart = 100 - translateYFrom;\n\n expandedRange = [0, shiftHalf];\n collapsedRange = [shiftHalf, translateYFrom + visiblePart / 4];\n hiddenRange = [translateYFrom + visiblePart / 4, 100];\n\n collapsed = translateYFrom > 0;\n expanded = translateYFrom <= 0;\n translateY = translateYFrom;\n } else {\n const headerHeight = modalState.headerElement?.offsetHeight ?? 0;\n const height = contentHeight + headerHeight;\n\n translateYFrom =\n 100 - (height / (modalState.innerElement?.parentElement?.offsetHeight ?? 0)) * 100;\n translateY = translateYFrom;\n\n expandedRange = [translateY, translateY + 25];\n collapsedRange = [translateY + 25, translateY + 25];\n hiddenRange = [translateY + 25, translateY + 100];\n }\n\n // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран\n if (\n (modalState.expandable && translateY > (prevTranslateY ?? 100)) ||\n modalState.settlingHeight === 100\n ) {\n translateY = 0;\n }\n\n // Если модалка уже раскрыта обновляем состояния\n if (translateY === 0) {\n expanded = true;\n collapsed = false;\n }\n\n modalState.expandedRange = expandedRange;\n modalState.collapsedRange = collapsedRange;\n modalState.hiddenRange = hiddenRange;\n modalState.translateY = translateY;\n modalState.translateYFrom = translateYFrom;\n modalState.collapsed = collapsed;\n modalState.expanded = expanded;\n}\n\nfunction initCardModal(modalState: ModalsStateEntry) {\n modalState.translateY = 0;\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
+ import { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';
3
+ import { useScrollLock } from '../AppRoot/ScrollContext';
2
4
  import { ModalRootTouch } from './ModalRoot';
3
5
  import { ModalRootDesktop } from './ModalRootDesktop';
4
- import { useScrollLock } from '../AppRoot/ScrollContext';
5
- import { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';
6
6
  /**
7
7
  * @see https://vkcom.github.io/VKUI/#/ModalRoot
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ModalRootAdaptive.js","names":["React","ModalRootTouch","ModalRootDesktop","useScrollLock","useAdaptivityWithJSMediaQueries","ModalRoot","props","isDesktop","activeModal","RootComponent"],"sources":["../../../src/components/ModalRoot/ModalRootAdaptive.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ModalRootTouch } from './ModalRoot';\nimport { ModalRootDesktop } from './ModalRootDesktop';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\n\nexport interface ModalRootProps {\n activeModal?: string | null;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?(modalId: string): void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?(modalId: string): void;\n children?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalRoot\n */\nexport const ModalRoot = (props: ModalRootProps) => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!!props.activeModal);\n\n const RootComponent = isDesktop ? ModalRootDesktop : ModalRootTouch;\n\n return <RootComponent {...props} />;\n};\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,cAAc,QAAQ,aAAa;AAC5C,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,aAAa,QAAQ,0BAA0B;AACxD,SAASC,+BAA+B,QAAQ,6CAA6C;AA2B7F;AACA;AACA;AACA,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAAS,CAAIC,KAAqB,EAAK;EAClD,4BAAsBF,+BAA+B,EAAE;IAA/CG,SAAS,yBAATA,SAAS;EAEjBJ,aAAa,CAAC,CAAC,CAACG,KAAK,CAACE,WAAW,CAAC;EAElC,IAAMC,aAAa,GAAGF,SAAS,GAAGL,gBAAgB,GAAGD,cAAc;EAEnE,oBAAO,oBAAC,aAAa,EAAKK,KAAK,CAAI;AACrC,CAAC"}
1
+ {"version":3,"file":"ModalRootAdaptive.js","names":["React","useAdaptivityWithJSMediaQueries","useScrollLock","ModalRootTouch","ModalRootDesktop","ModalRoot","props","isDesktop","activeModal","RootComponent"],"sources":["../../../src/components/ModalRoot/ModalRootAdaptive.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { ModalRootTouch } from './ModalRoot';\nimport { ModalRootDesktop } from './ModalRootDesktop';\n\nexport interface ModalRootProps {\n activeModal?: string | null;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?(modalId: string): void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?(modalId: string): void;\n children?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalRoot\n */\nexport const ModalRoot = (props: ModalRootProps) => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!!props.activeModal);\n\n const RootComponent = isDesktop ? ModalRootDesktop : ModalRootTouch;\n\n return <RootComponent {...props} />;\n};\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,+BAA+B,QAAQ,6CAA6C;AAC7F,SAASC,aAAa,QAAQ,0BAA0B;AACxD,SAASC,cAAc,QAAQ,aAAa;AAC5C,SAASC,gBAAgB,QAAQ,oBAAoB;AA2BrD;AACA;AACA;AACA,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAAS,CAAIC,KAAqB,EAAK;EAClD,4BAAsBL,+BAA+B,EAAE;IAA/CM,SAAS,yBAATA,SAAS;EAEjBL,aAAa,CAAC,CAAC,CAACI,KAAK,CAACE,WAAW,CAAC;EAElC,IAAMC,aAAa,GAAGF,SAAS,GAAGH,gBAAgB,GAAGD,cAAc;EAEnE,oBAAO,oBAAC,aAAa,EAAKG,KAAK,CAAI;AACrC,CAAC"}
@@ -8,18 +8,18 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
8
  var _excluded = ["id"];
9
9
  import * as React from 'react';
10
10
  import { classNames } from '@vkontakte/vkjs';
11
- import { transitionEvent } from '../../lib/supportEvents';
12
- import { withPlatform } from '../../hoc/withPlatform';
11
+ import { clamp } from '../../helpers/math';
13
12
  import { withContext } from '../../hoc/withContext';
14
- import { ModalRootContext } from './ModalRootContext';
15
- import { ConfigProviderContext, WebviewType } from '../ConfigProvider/ConfigProviderContext';
16
- import { Platform } from '../../lib/platform';
13
+ import { withPlatform } from '../../hoc/withPlatform';
17
14
  import { withDOM } from '../../lib/dom';
18
15
  import { getNavId } from '../../lib/getNavId';
16
+ import { Platform } from '../../lib/platform';
17
+ import { transitionEvent } from '../../lib/supportEvents';
19
18
  import { warnOnce } from '../../lib/warnOnce';
19
+ import { ConfigProviderContext, WebviewType } from '../ConfigProvider/ConfigProviderContext';
20
20
  import { FocusTrap } from '../FocusTrap/FocusTrap';
21
+ import { ModalRootContext } from './ModalRootContext';
21
22
  import { withModalManager } from './useModalManager';
22
- import { clamp } from '../../helpers/math';
23
23
  var warn = warnOnce('ModalRoot');
24
24
  var ModalRootDesktopComponent = /*#__PURE__*/function (_React$Component) {
25
25
  _inherits(ModalRootDesktopComponent, _React$Component);
@@ -1 +1 @@
1
- {"version":3,"file":"ModalRootDesktop.js","names":["React","classNames","transitionEvent","withPlatform","withContext","ModalRootContext","ConfigProviderContext","WebviewType","Platform","withDOM","getNavId","warnOnce","FocusTrap","withModalManager","clamp","warn","ModalRootDesktopComponent","props","undefined","maskElementRef","createRef","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","getModalState","onClose","onExit","isInsideModal","platform","IOS","Children","toArray","children","prevProps","exitingModal","closeModal","enteringModal","openModal","activeModal","restoreFocusTo","document","activeElement","focus","enteringState","onEnter","requestAnimationFrame","waitTransitionFinish","onEntered","animateModalOpacity","innerElement","style","transition","opacity","prevModalState","onExited","setMaskOpacity","modalState","eventHandler","supported","onceHandler","removeEventListener","name","addEventListener","setTimeout","timeout","display","transitionDelay","delayEnter","forceOpacity","history","maskAnimationFrame","cancelAnimationFrame","current","translateY","translateYCurrent","toString","configProvider","webviewType","VKAPPS","modals","map","Modal","modalId","key","Component","ModalRootDesktop"],"sources":["../../../src/components/ModalRoot/ModalRootDesktop.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { HasPlatform } from '../../types';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { withContext } from '../../hoc/withContext';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n WebviewType,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { ModalsStateEntry } from './types';\nimport { Platform } from '../../lib/platform';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport { clamp } from '../../helpers/math';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nexport interface ModalRootProps extends HasPlatform {\n activeModal?: string | null;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n children?: React.ReactNode;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?(modalId: string): void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?(modalId: string): void;\n}\n\nclass ModalRootDesktopComponent extends React.Component<\n ModalRootProps & DOMProps & ModalTransitionProps\n> {\n constructor(props: ModalRootProps & ModalTransitionProps) {\n super(props);\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: () => undefined,\n registerModal: ({ id, ...data }) => Object.assign(this.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n }\n\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private restoreFocusTo: HTMLElement | undefined = undefined;\n\n private get timeout() {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n private get modals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n getModalState(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.props.getModalState(id);\n }\n\n componentDidUpdate(prevProps: ModalRootProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n this.openModal(prevProps);\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = (this.props.document?.activeElement ?? undefined) as\n | HTMLElement\n | undefined;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = undefined;\n }\n }\n\n openModal(prevProps: ModalRootProps & ModalTransitionProps) {\n const { enteringModal } = this.props;\n if (!enteringModal) {\n return;\n }\n\n const enteringState = this.getModalState(enteringModal);\n this.props.onEnter();\n\n // Анимация открытия модального окна\n if (!prevProps.exitingModal) {\n requestAnimationFrame(() => {\n if (this.props.enteringModal === enteringModal) {\n this.waitTransitionFinish(enteringState, () => this.props.onEntered(enteringModal));\n this.animateModalOpacity(enteringState, true);\n }\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transition = 'none';\n enteringState.innerElement.style.opacity = '1';\n }\n\n this.props.onEntered(enteringModal);\n }\n\n closeModal(id: string) {\n const prevModalState = this.getModalState(id);\n if (!prevModalState) {\n return;\n }\n\n // Анимация закрытия модального окна\n if (!this.props.activeModal) {\n requestAnimationFrame(() => {\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n this.animateModalOpacity(prevModalState, false);\n this.setMaskOpacity(prevModalState, 0);\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n this.props.onExited(id);\n }\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /* Анимирует сдвиг модалки */\n animateModalOpacity(modalState: ModalsStateEntry | undefined, display: boolean) {\n if (modalState?.innerElement) {\n modalState.innerElement.style.transition = '';\n modalState.innerElement.style.transitionDelay =\n display && this.props.delayEnter ? `${this.timeout}ms` : '';\n modalState.innerElement.style.opacity = display ? '1' : '0';\n }\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n }\n\n render() {\n const { exitingModal, activeModal } = this.props;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <ModalRootContext.Provider value={this.modalRootContext}>\n <div\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.webviewType === WebviewType.VKAPPS &&\n styles['ModalRoot--vkapps'],\n styles['ModalRoot--desktop'],\n )}\n >\n <div\n className={styles['ModalRoot__mask']}\n ref={this.maskElementRef}\n onClick={this.props.onExit}\n />\n <div className={styles['ModalRoot__viewport']}>\n {this.modals.map((Modal: React.ReactElement) => {\n const modalId = getNavId(Modal.props, warn);\n if (modalId !== activeModal && modalId !== exitingModal) {\n return null;\n }\n\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n restoreFocus={false}\n onClose={this.props.onExit}\n timeout={this.timeout}\n key={key}\n className={styles['ModalRoot__modal']}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </div>\n </ModalRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootDesktop = withContext(\n withPlatform(withDOM<ModalRootProps>(withModalManager()(ModalRootDesktopComponent))),\n ConfigProviderContext,\n 'configProvider',\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"ModalRootDesktop.js","names":["React","classNames","clamp","withContext","withPlatform","withDOM","getNavId","Platform","transitionEvent","warnOnce","ConfigProviderContext","WebviewType","FocusTrap","ModalRootContext","withModalManager","warn","ModalRootDesktopComponent","props","undefined","maskElementRef","createRef","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","getModalState","onClose","onExit","isInsideModal","platform","IOS","Children","toArray","children","prevProps","exitingModal","closeModal","enteringModal","openModal","activeModal","restoreFocusTo","document","activeElement","focus","enteringState","onEnter","requestAnimationFrame","waitTransitionFinish","onEntered","animateModalOpacity","innerElement","style","transition","opacity","prevModalState","onExited","setMaskOpacity","modalState","eventHandler","supported","onceHandler","removeEventListener","name","addEventListener","setTimeout","timeout","display","transitionDelay","delayEnter","forceOpacity","history","maskAnimationFrame","cancelAnimationFrame","current","translateY","translateYCurrent","toString","configProvider","webviewType","VKAPPS","modals","map","Modal","modalId","key","Component","ModalRootDesktop"],"sources":["../../../src/components/ModalRoot/ModalRootDesktop.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasPlatform } from '../../types';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n WebviewType,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { ModalsStateEntry } from './types';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nexport interface ModalRootProps extends HasPlatform {\n activeModal?: string | null;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n children?: React.ReactNode;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?(modalId: string): void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?(modalId: string): void;\n}\n\nclass ModalRootDesktopComponent extends React.Component<\n ModalRootProps & DOMProps & ModalTransitionProps\n> {\n constructor(props: ModalRootProps & ModalTransitionProps) {\n super(props);\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: () => undefined,\n registerModal: ({ id, ...data }) => Object.assign(this.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n }\n\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private restoreFocusTo: HTMLElement | undefined = undefined;\n\n private get timeout() {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n private get modals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n getModalState(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.props.getModalState(id);\n }\n\n componentDidUpdate(prevProps: ModalRootProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n this.openModal(prevProps);\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = (this.props.document?.activeElement ?? undefined) as\n | HTMLElement\n | undefined;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = undefined;\n }\n }\n\n openModal(prevProps: ModalRootProps & ModalTransitionProps) {\n const { enteringModal } = this.props;\n if (!enteringModal) {\n return;\n }\n\n const enteringState = this.getModalState(enteringModal);\n this.props.onEnter();\n\n // Анимация открытия модального окна\n if (!prevProps.exitingModal) {\n requestAnimationFrame(() => {\n if (this.props.enteringModal === enteringModal) {\n this.waitTransitionFinish(enteringState, () => this.props.onEntered(enteringModal));\n this.animateModalOpacity(enteringState, true);\n }\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transition = 'none';\n enteringState.innerElement.style.opacity = '1';\n }\n\n this.props.onEntered(enteringModal);\n }\n\n closeModal(id: string) {\n const prevModalState = this.getModalState(id);\n if (!prevModalState) {\n return;\n }\n\n // Анимация закрытия модального окна\n if (!this.props.activeModal) {\n requestAnimationFrame(() => {\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n this.animateModalOpacity(prevModalState, false);\n this.setMaskOpacity(prevModalState, 0);\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n this.props.onExited(id);\n }\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /* Анимирует сдвиг модалки */\n animateModalOpacity(modalState: ModalsStateEntry | undefined, display: boolean) {\n if (modalState?.innerElement) {\n modalState.innerElement.style.transition = '';\n modalState.innerElement.style.transitionDelay =\n display && this.props.delayEnter ? `${this.timeout}ms` : '';\n modalState.innerElement.style.opacity = display ? '1' : '0';\n }\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n }\n\n render() {\n const { exitingModal, activeModal } = this.props;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <ModalRootContext.Provider value={this.modalRootContext}>\n <div\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.webviewType === WebviewType.VKAPPS &&\n styles['ModalRoot--vkapps'],\n styles['ModalRoot--desktop'],\n )}\n >\n <div\n className={styles['ModalRoot__mask']}\n ref={this.maskElementRef}\n onClick={this.props.onExit}\n />\n <div className={styles['ModalRoot__viewport']}>\n {this.modals.map((Modal: React.ReactElement) => {\n const modalId = getNavId(Modal.props, warn);\n if (modalId !== activeModal && modalId !== exitingModal) {\n return null;\n }\n\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n restoreFocus={false}\n onClose={this.props.onExit}\n timeout={this.timeout}\n key={key}\n className={styles['ModalRoot__modal']}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </div>\n </ModalRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootDesktop = withContext(\n withPlatform(withDOM<ModalRootProps>(withModalManager()(ModalRootDesktopComponent))),\n ConfigProviderContext,\n 'configProvider',\n);\n"],"mappings":"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"}
@@ -3,11 +3,11 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
4
4
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
5
5
  import * as React from 'react';
6
- import { ModalType } from './types';
7
- import { warnOnce } from '../../lib/warnOnce';
6
+ import { isFunction, noop } from '@vkontakte/vkjs';
8
7
  import { getNavId } from '../../lib/getNavId';
9
8
  import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
10
- import { noop, isFunction } from '@vkontakte/vkjs';
9
+ import { warnOnce } from '../../lib/warnOnce';
10
+ import { ModalType } from './types';
11
11
  function getModals(children) {
12
12
  return React.Children.toArray(children);
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useModalManager.js","names":["React","ModalType","warnOnce","getNavId","useIsomorphicLayoutEffect","noop","isFunction","getModals","children","Children","toArray","warn","modalTransitionReducer","state","action","type","id","activeModal","nextModal","prevModal","exitingModal","history","isBack","Boolean","includes","splice","indexOf","push","enteringModal","useModalManager","onOpen","onOpened","onClose","onClosed","initModal","modalsState","useRef","current","forEach","Modal","modalProps","props","undefined","dynamicContentHeight","settlingHeight","isMissing","safeActiveModal","useReducer","transitionState","dispatchTransition","process","env","NODE_ENV","isCard","CARD","onEntered","useCallback","modalState","onExited","delayEnter","getModalState","onEnter","onExit","withModalManager","Wrapped","WithModalManager","transitionManager"],"sources":["../../../src/components/ModalRoot/useModalManager.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ModalsState, ModalsStateEntry, ModalType } from './types';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { getNavId } from '../../lib/getNavId';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { noop, isFunction } from '@vkontakte/vkjs';\n\ninterface ModalTransitionState {\n activeModal?: string | null;\n enteringModal?: string | null;\n exitingModal?: string | null;\n\n history?: string[];\n isBack?: boolean | null;\n}\n\nexport interface ModalTransitionProps extends ModalTransitionState {\n onEnter: VoidFunction;\n onEntered: (id: string | null) => void;\n onExit: VoidFunction;\n onExited: (id: string | null) => void;\n getModalState: (id: string) => ModalsStateEntry;\n delayEnter: boolean;\n}\n\nfunction getModals(children: React.ReactNode | React.ReactNode[]) {\n return React.Children.toArray(children) as React.ReactElement[];\n}\n\nconst warn = warnOnce('ModalRoot');\n\nexport function modalTransitionReducer(\n state: ModalTransitionState,\n action: {\n type: 'setActive' | 'entered' | 'exited' | 'inited';\n id: string | null;\n },\n): ModalTransitionState {\n if (action.type === 'setActive' && action.id !== state.activeModal) {\n const nextModal = action.id;\n // preserve exiting modal if switching mid-transition\n const prevModal = state.exitingModal || state.activeModal;\n let history = state.history ? [...state.history] : [];\n const isBack = Boolean(nextModal && history.includes(nextModal));\n\n if (nextModal === null) {\n history = [];\n } else if (isBack) {\n history = history.splice(0, history.indexOf(nextModal) + 1);\n } else {\n history.push(nextModal);\n }\n\n return {\n activeModal: nextModal,\n // not entering yet\n enteringModal: null,\n exitingModal: prevModal,\n history,\n isBack,\n };\n }\n if (action.type === 'entered' && action.id === state.enteringModal) {\n return { ...state, enteringModal: null };\n }\n if (action.type === 'exited' && action.id === state.exitingModal) {\n return { ...state, exitingModal: null };\n }\n if (action.type === 'inited' && action.id === state.activeModal) {\n return { ...state, enteringModal: action.id };\n }\n return state;\n}\n\n/**\n * Реализует переход модалок. При смене activeModal m1 -> m2:\n * 1. activeModal: m1, exitingModal: null, enteringModal: null, триггер перехода\n * 2. activeModal: m2, exitingModal: m1, enteringModal: null, рендерим m2 чтобы прошел init, начинаем анимацию выхода\n * одновременный переход между ModalPage:\n * 3a. activeModal: m2, exitingModal: m1, enteringModal: m2\n * 4a. exitingModal и enteringModal переходят в null в порядке завершения анимации\n * ИЛИ дожидаемся скрытия ModalCard\n * 3b. activeModal: m2, exitingModal: null, enteringModal: m2\n * 4b. enteringModal переходит в null после завершения анимации\n * 5. activeModal: m2, exitingModal: null, enteringModal: null, переход закончен\n */\nexport function useModalManager(\n activeModal: string | null | undefined,\n children: React.ReactNode | React.ReactNode[],\n onOpen: (id: string) => void = noop,\n onOpened: (id: string) => void = noop,\n onClose: (id: string) => void = noop,\n onClosed: (id: string) => void = noop,\n initModal: (state: ModalsStateEntry) => void = noop,\n): ModalTransitionProps {\n const modalsState = React.useRef<ModalsState>({}).current;\n getModals(children).forEach((Modal) => {\n const modalProps = Modal.props;\n const id = getNavId(modalProps, warn);\n const state: ModalsStateEntry = (id !== undefined && modalsState[id]) || {\n id: id ?? null,\n };\n\n state.onOpen = Modal.props.onOpen;\n state.onOpened = Modal.props.onOpened;\n state.onClose = Modal.props.onClose;\n state.onClosed = Modal.props.onClosed;\n state.dynamicContentHeight = !!modalProps.dynamicContentHeight;\n // ModalPage props\n if (typeof modalProps.settlingHeight === 'number') {\n state.settlingHeight = modalProps.settlingHeight;\n }\n\n if (state.id !== null) {\n modalsState[state.id] = state;\n }\n });\n\n const isMissing = activeModal && !modalsState[activeModal];\n const safeActiveModal = isMissing ? null : activeModal;\n const [transitionState, dispatchTransition] = React.useReducer(modalTransitionReducer, {\n activeModal: safeActiveModal,\n enteringModal: null,\n exitingModal: null,\n history: safeActiveModal ? [safeActiveModal] : [],\n isBack: false,\n });\n\n // Map props to state, render activeModal for init\n useIsomorphicLayoutEffect(() => {\n // ignore non-existent activeModal\n if (process.env.NODE_ENV === 'development' && isMissing) {\n warn(`Переход невозможен - модальное окно (страница) ${activeModal} не существует`, 'error');\n }\n dispatchTransition({ type: 'setActive', id: safeActiveModal ?? null });\n }, [activeModal]);\n\n // Init activeModal & set enteringModal\n useIsomorphicLayoutEffect(() => {\n if (transitionState.activeModal) {\n initModal(modalsState[transitionState.activeModal]);\n dispatchTransition({ type: 'inited', id: transitionState.activeModal });\n }\n }, [transitionState.activeModal]);\n\n const isCard = (id: string | null | undefined) =>\n id != null && modalsState[id]?.type === ModalType.CARD;\n const onEntered = React.useCallback(\n (id: string | null) => {\n if (id) {\n const modalState = modalsState[id];\n\n if (isFunction(modalState.onOpened)) {\n modalState.onOpened();\n } else if (isFunction(onOpened)) {\n onOpened(id);\n }\n }\n\n dispatchTransition({ type: 'entered', id });\n },\n [modalsState, onOpened],\n );\n const onExited = React.useCallback(\n (id: string | null) => {\n if (id) {\n const modalState = modalsState[id];\n\n if (isFunction(modalState.onClosed)) {\n modalState.onClosed();\n } else if (isFunction(onClosed)) {\n onClosed(id);\n }\n }\n\n dispatchTransition({ type: 'exited', id });\n },\n [modalsState, onClosed],\n );\n const delayEnter = Boolean(\n transitionState.exitingModal && (isCard(activeModal) || isCard(transitionState.exitingModal)),\n );\n const getModalState = React.useCallback((id: string) => modalsState[id], [modalsState]);\n\n function onEnter() {\n const modalState = transitionState.activeModal && modalsState[transitionState.activeModal];\n if (modalState) {\n if (isFunction(modalState.onOpen)) {\n modalState.onOpen();\n } else if (isFunction(onOpen)) {\n onOpen(modalState.id);\n }\n }\n }\n\n function onExit() {\n const modalState = transitionState.activeModal && modalsState[transitionState.activeModal];\n if (modalState) {\n if (isFunction(modalState.onClose)) {\n modalState.onClose();\n } else if (isFunction(onClose)) {\n onClose(modalState.id);\n }\n }\n }\n\n return {\n onEnter,\n onEntered,\n onExit,\n onExited,\n ...transitionState,\n delayEnter,\n getModalState,\n };\n}\n\nexport function withModalManager(initModal: (a: ModalsStateEntry) => void = noop) {\n return function <Props extends ModalTransitionProps>(\n Wrapped: React.ComponentType<Props>,\n ): React.ComponentType<\n Omit<Props, keyof ModalTransitionProps> & {\n activeModal?: string | null;\n children?: React.ReactNode;\n }\n > {\n return function WithModalManager(props) {\n const transitionManager = useModalManager(\n props.activeModal,\n props.children,\n (props as any).onOpen,\n (props as any).onOpened,\n (props as any).onClose,\n (props as any).onClosed,\n initModal,\n );\n return <Wrapped {...(props as any)} {...transitionManager} />;\n };\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useModalManager.js","names":["React","isFunction","noop","getNavId","useIsomorphicLayoutEffect","warnOnce","ModalType","getModals","children","Children","toArray","warn","modalTransitionReducer","state","action","type","id","activeModal","nextModal","prevModal","exitingModal","history","isBack","Boolean","includes","splice","indexOf","push","enteringModal","useModalManager","onOpen","onOpened","onClose","onClosed","initModal","modalsState","useRef","current","forEach","Modal","modalProps","props","undefined","dynamicContentHeight","settlingHeight","isMissing","safeActiveModal","useReducer","transitionState","dispatchTransition","process","env","NODE_ENV","isCard","CARD","onEntered","useCallback","modalState","onExited","delayEnter","getModalState","onEnter","onExit","withModalManager","Wrapped","WithModalManager","transitionManager"],"sources":["../../../src/components/ModalRoot/useModalManager.tsx"],"sourcesContent":["import * as React from 'react';\nimport { isFunction, noop } from '@vkontakte/vkjs';\nimport { getNavId } from '../../lib/getNavId';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ModalsState, ModalsStateEntry, ModalType } from './types';\n\ninterface ModalTransitionState {\n activeModal?: string | null;\n enteringModal?: string | null;\n exitingModal?: string | null;\n\n history?: string[];\n isBack?: boolean | null;\n}\n\nexport interface ModalTransitionProps extends ModalTransitionState {\n onEnter: VoidFunction;\n onEntered: (id: string | null) => void;\n onExit: VoidFunction;\n onExited: (id: string | null) => void;\n getModalState: (id: string) => ModalsStateEntry;\n delayEnter: boolean;\n}\n\nfunction getModals(children: React.ReactNode | React.ReactNode[]) {\n return React.Children.toArray(children) as React.ReactElement[];\n}\n\nconst warn = warnOnce('ModalRoot');\n\nexport function modalTransitionReducer(\n state: ModalTransitionState,\n action: {\n type: 'setActive' | 'entered' | 'exited' | 'inited';\n id: string | null;\n },\n): ModalTransitionState {\n if (action.type === 'setActive' && action.id !== state.activeModal) {\n const nextModal = action.id;\n // preserve exiting modal if switching mid-transition\n const prevModal = state.exitingModal || state.activeModal;\n let history = state.history ? [...state.history] : [];\n const isBack = Boolean(nextModal && history.includes(nextModal));\n\n if (nextModal === null) {\n history = [];\n } else if (isBack) {\n history = history.splice(0, history.indexOf(nextModal) + 1);\n } else {\n history.push(nextModal);\n }\n\n return {\n activeModal: nextModal,\n // not entering yet\n enteringModal: null,\n exitingModal: prevModal,\n history,\n isBack,\n };\n }\n if (action.type === 'entered' && action.id === state.enteringModal) {\n return { ...state, enteringModal: null };\n }\n if (action.type === 'exited' && action.id === state.exitingModal) {\n return { ...state, exitingModal: null };\n }\n if (action.type === 'inited' && action.id === state.activeModal) {\n return { ...state, enteringModal: action.id };\n }\n return state;\n}\n\n/**\n * Реализует переход модалок. При смене activeModal m1 -> m2:\n * 1. activeModal: m1, exitingModal: null, enteringModal: null, триггер перехода\n * 2. activeModal: m2, exitingModal: m1, enteringModal: null, рендерим m2 чтобы прошел init, начинаем анимацию выхода\n * одновременный переход между ModalPage:\n * 3a. activeModal: m2, exitingModal: m1, enteringModal: m2\n * 4a. exitingModal и enteringModal переходят в null в порядке завершения анимации\n * ИЛИ дожидаемся скрытия ModalCard\n * 3b. activeModal: m2, exitingModal: null, enteringModal: m2\n * 4b. enteringModal переходит в null после завершения анимации\n * 5. activeModal: m2, exitingModal: null, enteringModal: null, переход закончен\n */\nexport function useModalManager(\n activeModal: string | null | undefined,\n children: React.ReactNode | React.ReactNode[],\n onOpen: (id: string) => void = noop,\n onOpened: (id: string) => void = noop,\n onClose: (id: string) => void = noop,\n onClosed: (id: string) => void = noop,\n initModal: (state: ModalsStateEntry) => void = noop,\n): ModalTransitionProps {\n const modalsState = React.useRef<ModalsState>({}).current;\n getModals(children).forEach((Modal) => {\n const modalProps = Modal.props;\n const id = getNavId(modalProps, warn);\n const state: ModalsStateEntry = (id !== undefined && modalsState[id]) || {\n id: id ?? null,\n };\n\n state.onOpen = Modal.props.onOpen;\n state.onOpened = Modal.props.onOpened;\n state.onClose = Modal.props.onClose;\n state.onClosed = Modal.props.onClosed;\n state.dynamicContentHeight = !!modalProps.dynamicContentHeight;\n // ModalPage props\n if (typeof modalProps.settlingHeight === 'number') {\n state.settlingHeight = modalProps.settlingHeight;\n }\n\n if (state.id !== null) {\n modalsState[state.id] = state;\n }\n });\n\n const isMissing = activeModal && !modalsState[activeModal];\n const safeActiveModal = isMissing ? null : activeModal;\n const [transitionState, dispatchTransition] = React.useReducer(modalTransitionReducer, {\n activeModal: safeActiveModal,\n enteringModal: null,\n exitingModal: null,\n history: safeActiveModal ? [safeActiveModal] : [],\n isBack: false,\n });\n\n // Map props to state, render activeModal for init\n useIsomorphicLayoutEffect(() => {\n // ignore non-existent activeModal\n if (process.env.NODE_ENV === 'development' && isMissing) {\n warn(`Переход невозможен - модальное окно (страница) ${activeModal} не существует`, 'error');\n }\n dispatchTransition({ type: 'setActive', id: safeActiveModal ?? null });\n }, [activeModal]);\n\n // Init activeModal & set enteringModal\n useIsomorphicLayoutEffect(() => {\n if (transitionState.activeModal) {\n initModal(modalsState[transitionState.activeModal]);\n dispatchTransition({ type: 'inited', id: transitionState.activeModal });\n }\n }, [transitionState.activeModal]);\n\n const isCard = (id: string | null | undefined) =>\n id != null && modalsState[id]?.type === ModalType.CARD;\n const onEntered = React.useCallback(\n (id: string | null) => {\n if (id) {\n const modalState = modalsState[id];\n\n if (isFunction(modalState.onOpened)) {\n modalState.onOpened();\n } else if (isFunction(onOpened)) {\n onOpened(id);\n }\n }\n\n dispatchTransition({ type: 'entered', id });\n },\n [modalsState, onOpened],\n );\n const onExited = React.useCallback(\n (id: string | null) => {\n if (id) {\n const modalState = modalsState[id];\n\n if (isFunction(modalState.onClosed)) {\n modalState.onClosed();\n } else if (isFunction(onClosed)) {\n onClosed(id);\n }\n }\n\n dispatchTransition({ type: 'exited', id });\n },\n [modalsState, onClosed],\n );\n const delayEnter = Boolean(\n transitionState.exitingModal && (isCard(activeModal) || isCard(transitionState.exitingModal)),\n );\n const getModalState = React.useCallback((id: string) => modalsState[id], [modalsState]);\n\n function onEnter() {\n const modalState = transitionState.activeModal && modalsState[transitionState.activeModal];\n if (modalState) {\n if (isFunction(modalState.onOpen)) {\n modalState.onOpen();\n } else if (isFunction(onOpen)) {\n onOpen(modalState.id);\n }\n }\n }\n\n function onExit() {\n const modalState = transitionState.activeModal && modalsState[transitionState.activeModal];\n if (modalState) {\n if (isFunction(modalState.onClose)) {\n modalState.onClose();\n } else if (isFunction(onClose)) {\n onClose(modalState.id);\n }\n }\n }\n\n return {\n onEnter,\n onEntered,\n onExit,\n onExited,\n ...transitionState,\n delayEnter,\n getModalState,\n };\n}\n\nexport function withModalManager(initModal: (a: ModalsStateEntry) => void = noop) {\n return function <Props extends ModalTransitionProps>(\n Wrapped: React.ComponentType<Props>,\n ): React.ComponentType<\n Omit<Props, keyof ModalTransitionProps> & {\n activeModal?: string | null;\n children?: React.ReactNode;\n }\n > {\n return function WithModalManager(props) {\n const transitionManager = useModalManager(\n props.activeModal,\n props.children,\n (props as any).onOpen,\n (props as any).onOpened,\n (props as any).onClose,\n (props as any).onClosed,\n initModal,\n );\n return <Wrapped {...(props as any)} {...transitionManager} />;\n };\n };\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { FormFieldProps } from '../FormField/FormField';
3
2
  import { HasAlign, HasRef, HasRootRef } from '../../types';
3
+ import { FormFieldProps } from '../FormField/FormField';
4
4
  import type { SelectType } from '../Select/Select';
5
5
  export interface NativeSelectProps extends React.SelectHTMLAttributes<HTMLSelectElement>, HasRef<HTMLSelectElement>, HasRootRef<HTMLLabelElement>, HasAlign, Pick<FormFieldProps, 'status'> {
6
6
  placeholder?: string;
@@ -1,20 +1,23 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
5
  var _excluded = ["style", "defaultValue", "align", "placeholder", "children", "className", "getRef", "getRootRef", "disabled", "multiline", "selectType", "status", "onChange", "value"];
5
6
  import * as React from 'react';
6
7
  import { classNames } from '@vkontakte/vkjs';
7
- import { DropdownIcon } from '../DropdownIcon/DropdownIcon';
8
- import { FormField } from '../FormField/FormField';
9
8
  import { getPlatformClassName } from '../../helpers/getPlatformClassName';
10
- import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
9
+ import { useAdaptivity } from '../../hooks/useAdaptivity';
11
10
  import { useEnsuredControl } from '../../hooks/useEnsuredControl';
12
11
  import { useExternRef } from '../../hooks/useExternRef';
13
12
  import { usePlatform } from '../../hooks/usePlatform';
14
- import { useAdaptivity } from '../../hooks/useAdaptivity';
15
- import { getSizeXClassName } from '../../helpers/getSizeXClassName';
16
- import { getSizeYClassName } from '../../helpers/getSizeYClassName';
13
+ import { SizeType } from '../../lib/adaptivity';
14
+ import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
15
+ import { DropdownIcon } from '../DropdownIcon/DropdownIcon';
16
+ import { FormField } from '../FormField/FormField';
17
17
  import { SelectTypography } from '../SelectTypography/SelectTypography';
18
+ var sizeYClassNames = _defineProperty({
19
+ none: "vkuiSelect--sizeY-none"
20
+ }, SizeType.COMPACT, "vkuiSelect--sizeY-compact");
18
21
  /**
19
22
  * @see https://vkcom.github.io/VKUI/#/NativeSelect
20
23
  */
@@ -56,8 +59,8 @@ var NativeSelect = function NativeSelect(_ref) {
56
59
  onChange = _useEnsuredControl2[1];
57
60
  var selectRef = useExternRef(getRef);
58
61
  var _useAdaptivity = useAdaptivity(),
59
- sizeX = _useAdaptivity.sizeX,
60
- sizeY = _useAdaptivity.sizeY;
62
+ _useAdaptivity$sizeY = _useAdaptivity.sizeY,
63
+ sizeY = _useAdaptivity$sizeY === void 0 ? 'none' : _useAdaptivity$sizeY;
61
64
  useIsomorphicLayoutEffect(function () {
62
65
  var _selectRef$current;
63
66
  var selectedOption = (_selectRef$current = selectRef.current) === null || _selectRef$current === void 0 ? void 0 : _selectRef$current.options[selectRef.current.selectedIndex];
@@ -68,7 +71,7 @@ var NativeSelect = function NativeSelect(_ref) {
68
71
  }, [value, children]);
69
72
  return /*#__PURE__*/React.createElement(FormField, {
70
73
  Component: "label",
71
- className: classNames("vkuiSelect", getPlatformClassName("vkuiSelect", platform), empty && "vkuiSelect--empty", multiline && "vkuiSelect--multiline", align && styles["Select--align-".concat(align)], getSizeXClassName("vkuiSelect", sizeX), getSizeYClassName("vkuiSelect", sizeY), className),
74
+ className: classNames("vkuiSelect", getPlatformClassName("vkuiSelect", platform), empty && "vkuiSelect--empty", multiline && "vkuiSelect--multiline", align && styles["Select--align-".concat(align)], sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY], className),
72
75
  style: style,
73
76
  getRootRef: getRootRef,
74
77
  disabled: disabled,
@@ -1 +1 @@
1
- {"version":3,"file":"NativeSelect.js","names":["React","classNames","DropdownIcon","FormField","getPlatformClassName","useIsomorphicLayoutEffect","useEnsuredControl","useExternRef","usePlatform","useAdaptivity","getSizeXClassName","getSizeYClassName","SelectTypography","NativeSelect","style","defaultValue","align","placeholder","children","className","getRef","getRootRef","disabled","multiline","selectType","status","onChangeProp","onChange","valueProp","value","restProps","platform","useState","title","setTitle","empty","setEmpty","selectRef","sizeX","sizeY","selectedOption","current","options","selectedIndex","text","styles"],"sources":["../../../src/components/NativeSelect/NativeSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport { HasAlign, HasRef, HasRootRef } from '../../types';\nimport { getPlatformClassName } from '../../helpers/getPlatformClassName';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { getSizeXClassName } from '../../helpers/getSizeXClassName';\nimport { getSizeYClassName } from '../../helpers/getSizeYClassName';\nimport type { SelectType } from '../Select/Select';\nimport { SelectTypography } from '../SelectTypography/SelectTypography';\nimport styles from '../Select/Select.module.css';\n\nexport interface NativeSelectProps\n extends React.SelectHTMLAttributes<HTMLSelectElement>,\n HasRef<HTMLSelectElement>,\n HasRootRef<HTMLLabelElement>,\n HasAlign,\n Pick<FormFieldProps, 'status'> {\n placeholder?: string;\n multiline?: boolean;\n selectType?: SelectType;\n}\n\nexport interface SelectState {\n value?: React.SelectHTMLAttributes<HTMLSelectElement>['value'];\n title?: string;\n notSelected?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/NativeSelect\n */\nconst NativeSelect = ({\n style,\n defaultValue = '',\n align,\n placeholder,\n children,\n className,\n getRef,\n getRootRef,\n disabled,\n multiline,\n selectType = 'default',\n status,\n onChange: onChangeProp,\n value: valueProp,\n ...restProps\n}: NativeSelectProps) => {\n const platform = usePlatform();\n const [title, setTitle] = React.useState('');\n const [empty, setEmpty] = React.useState(false);\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n disabled,\n onChange: onChangeProp,\n value: valueProp,\n });\n const selectRef = useExternRef(getRef);\n const { sizeX, sizeY } = useAdaptivity();\n\n useIsomorphicLayoutEffect(() => {\n const selectedOption = selectRef.current?.options[selectRef.current.selectedIndex];\n if (selectedOption) {\n setTitle(selectedOption.text);\n setEmpty(selectedOption.value === '' && placeholder != null);\n }\n }, [value, children]);\n\n return (\n <FormField\n Component=\"label\"\n className={classNames(\n styles['Select'],\n getPlatformClassName(styles['Select'], platform),\n empty && styles['Select--empty'],\n multiline && styles['Select--multiline'],\n align && styles[`Select--align-${align}`],\n getSizeXClassName(styles['Select'], sizeX),\n getSizeYClassName(styles['Select'], sizeY),\n className,\n )}\n style={style}\n getRootRef={getRootRef}\n disabled={disabled}\n after={<DropdownIcon />}\n status={status}\n >\n <select\n {...restProps}\n disabled={disabled}\n className={styles['Select__el']}\n onChange={onChange}\n value={value}\n ref={selectRef}\n >\n {placeholder && <option value=\"\">{placeholder}</option>}\n {children}\n </select>\n <div className={styles['Select__container']}>\n <SelectTypography className={styles['Select__title']} selectType={selectType}>\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n\nexport { NativeSelect };\n"],"mappings":"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"}
1
+ {"version":3,"file":"NativeSelect.js","names":["React","classNames","getPlatformClassName","useAdaptivity","useEnsuredControl","useExternRef","usePlatform","SizeType","useIsomorphicLayoutEffect","DropdownIcon","FormField","SelectTypography","sizeYClassNames","none","COMPACT","NativeSelect","style","defaultValue","align","placeholder","children","className","getRef","getRootRef","disabled","multiline","selectType","status","onChangeProp","onChange","valueProp","value","restProps","platform","useState","title","setTitle","empty","setEmpty","selectRef","sizeY","selectedOption","current","options","selectedIndex","text","styles","REGULAR"],"sources":["../../../src/components/NativeSelect/NativeSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { getPlatformClassName } from '../../helpers/getPlatformClassName';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasAlign, HasRef, HasRootRef } from '../../types';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport type { SelectType } from '../Select/Select';\nimport { SelectTypography } from '../SelectTypography/SelectTypography';\nimport styles from '../Select/Select.module.css';\n\nconst sizeYClassNames = {\n none: styles['Select--sizeY-none'],\n [SizeType.COMPACT]: styles['Select--sizeY-compact'],\n};\n\nexport interface NativeSelectProps\n extends React.SelectHTMLAttributes<HTMLSelectElement>,\n HasRef<HTMLSelectElement>,\n HasRootRef<HTMLLabelElement>,\n HasAlign,\n Pick<FormFieldProps, 'status'> {\n placeholder?: string;\n multiline?: boolean;\n selectType?: SelectType;\n}\n\nexport interface SelectState {\n value?: React.SelectHTMLAttributes<HTMLSelectElement>['value'];\n title?: string;\n notSelected?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/NativeSelect\n */\nconst NativeSelect = ({\n style,\n defaultValue = '',\n align,\n placeholder,\n children,\n className,\n getRef,\n getRootRef,\n disabled,\n multiline,\n selectType = 'default',\n status,\n onChange: onChangeProp,\n value: valueProp,\n ...restProps\n}: NativeSelectProps) => {\n const platform = usePlatform();\n const [title, setTitle] = React.useState('');\n const [empty, setEmpty] = React.useState(false);\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n disabled,\n onChange: onChangeProp,\n value: valueProp,\n });\n const selectRef = useExternRef(getRef);\n const { sizeY = 'none' } = useAdaptivity();\n\n useIsomorphicLayoutEffect(() => {\n const selectedOption = selectRef.current?.options[selectRef.current.selectedIndex];\n if (selectedOption) {\n setTitle(selectedOption.text);\n setEmpty(selectedOption.value === '' && placeholder != null);\n }\n }, [value, children]);\n\n return (\n <FormField\n Component=\"label\"\n className={classNames(\n styles['Select'],\n getPlatformClassName(styles['Select'], platform),\n empty && styles['Select--empty'],\n multiline && styles['Select--multiline'],\n align && styles[`Select--align-${align}`],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n style={style}\n getRootRef={getRootRef}\n disabled={disabled}\n after={<DropdownIcon />}\n status={status}\n >\n <select\n {...restProps}\n disabled={disabled}\n className={styles['Select__el']}\n onChange={onChange}\n value={value}\n ref={selectRef}\n >\n {placeholder && <option value=\"\">{placeholder}</option>}\n {children}\n </select>\n <div className={styles['Select__container']}>\n <SelectTypography className={styles['Select__title']} selectType={selectType}>\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n\nexport { NativeSelect };\n"],"mappings":"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"}