@vkontakte/vkui 5.7.2 → 5.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1106) hide show
  1. package/README.md +4 -4
  2. package/dist/cjs/components/Accordion/Accordion.d.ts +1 -1
  3. package/dist/cjs/components/Accordion/Accordion.js +6 -11
  4. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  5. package/dist/cjs/components/ActionSheet/ActionSheet.d.ts +6 -1
  6. package/dist/cjs/components/ActionSheet/ActionSheet.js +12 -9
  7. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  8. package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts +6 -1
  9. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  10. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +2 -1
  11. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  12. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +6 -1
  13. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +15 -4
  14. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  15. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +22 -8
  16. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  17. package/dist/cjs/components/AppRoot/AppRoot.d.ts +19 -2
  18. package/dist/cjs/components/AppRoot/AppRoot.js +58 -20
  19. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  20. package/dist/cjs/components/AppRoot/AppRootContext.d.ts +1 -0
  21. package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
  22. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.d.ts +1 -1
  23. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  24. package/dist/cjs/components/AspectRatio/AspectRatio.d.ts +3 -3
  25. package/dist/cjs/components/AspectRatio/AspectRatio.js +6 -8
  26. package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
  27. package/dist/cjs/components/Badge/Badge.d.ts +3 -2
  28. package/dist/cjs/components/Badge/Badge.js +10 -8
  29. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  30. package/dist/cjs/components/Banner/Banner.d.ts +3 -3
  31. package/dist/cjs/components/Banner/Banner.js +10 -9
  32. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  33. package/dist/cjs/components/BaseGallery/BaseGallery.d.ts +1 -1
  34. package/dist/cjs/components/BaseGallery/BaseGallery.js +10 -9
  35. package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
  36. package/dist/cjs/components/BaseGallery/types.d.ts +2 -2
  37. package/dist/cjs/components/BaseGallery/types.js.map +1 -1
  38. package/dist/cjs/components/Button/Button.js +26 -22
  39. package/dist/cjs/components/Button/Button.js.map +1 -1
  40. package/dist/cjs/components/ButtonGroup/ButtonGroup.d.ts +3 -3
  41. package/dist/cjs/components/ButtonGroup/ButtonGroup.js +21 -21
  42. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  43. package/dist/cjs/components/Calendar/Calendar.d.ts +3 -3
  44. package/dist/cjs/components/Calendar/Calendar.js +4 -6
  45. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  46. package/dist/cjs/components/CalendarDays/CalendarDays.d.ts +3 -2
  47. package/dist/cjs/components/CalendarDays/CalendarDays.js +11 -8
  48. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  49. package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts +3 -2
  50. package/dist/cjs/components/CalendarHeader/CalendarHeader.js +24 -7
  51. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  52. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +3 -3
  53. package/dist/cjs/components/CalendarRange/CalendarRange.js +4 -6
  54. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  55. package/dist/cjs/components/Card/Card.d.ts +4 -4
  56. package/dist/cjs/components/Card/Card.js +7 -9
  57. package/dist/cjs/components/Card/Card.js.map +1 -1
  58. package/dist/cjs/components/CardGrid/CardGrid.d.ts +3 -2
  59. package/dist/cjs/components/CardGrid/CardGrid.js +11 -11
  60. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  61. package/dist/cjs/components/CardScroll/CardScroll.d.ts +3 -2
  62. package/dist/cjs/components/CardScroll/CardScroll.js +10 -9
  63. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  64. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +2 -1
  65. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  66. package/dist/cjs/components/Checkbox/Checkbox.js +3 -4
  67. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  68. package/dist/cjs/components/Chip/Chip.d.ts +3 -2
  69. package/dist/cjs/components/Chip/Chip.js +6 -7
  70. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  71. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +4 -2
  72. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  73. package/dist/cjs/components/ConfigProvider/ConfigProvider.d.ts +7 -0
  74. package/dist/cjs/components/ConfigProvider/ConfigProvider.js +24 -6
  75. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  76. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +47 -3
  77. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js +6 -1
  78. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  79. package/dist/cjs/components/Counter/Counter.d.ts +2 -1
  80. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  81. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +1 -1
  82. package/dist/cjs/components/CustomSelect/CustomSelect.js +1 -1
  83. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  84. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -2
  85. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  86. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.d.ts +2 -2
  87. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  88. package/dist/cjs/components/DatePicker/DatePicker.d.ts +2 -1
  89. package/dist/cjs/components/DatePicker/DatePicker.js +5 -5
  90. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  91. package/dist/cjs/components/Div/Div.d.ts +3 -4
  92. package/dist/cjs/components/Div/Div.js +5 -13
  93. package/dist/cjs/components/Div/Div.js.map +1 -1
  94. package/dist/cjs/components/DropdownIcon/DropdownIcon.d.ts +2 -1
  95. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  96. package/dist/cjs/components/Epic/Epic.d.ts +3 -2
  97. package/dist/cjs/components/Epic/Epic.js +7 -7
  98. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  99. package/dist/cjs/components/FixedLayout/FixedLayout.d.ts +2 -2
  100. package/dist/cjs/components/FixedLayout/FixedLayout.js +5 -4
  101. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  102. package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +2 -2
  103. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  104. package/dist/cjs/components/FocusVisible/FocusVisible.d.ts +2 -1
  105. package/dist/cjs/components/FocusVisible/FocusVisible.js +8 -6
  106. package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
  107. package/dist/cjs/components/FormField/FormField.js +5 -4
  108. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  109. package/dist/cjs/components/FormItem/FormItem.d.ts +6 -1
  110. package/dist/cjs/components/FormItem/FormItem.js +11 -10
  111. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  112. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -3
  113. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +6 -6
  114. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  115. package/dist/cjs/components/FormStatus/FormStatus.d.ts +2 -2
  116. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  117. package/dist/cjs/components/Gradient/Gradient.d.ts +3 -2
  118. package/dist/cjs/components/Gradient/Gradient.js +15 -14
  119. package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
  120. package/dist/cjs/components/Group/Group.d.ts +3 -3
  121. package/dist/cjs/components/Group/Group.js +35 -21
  122. package/dist/cjs/components/Group/Group.js.map +1 -1
  123. package/dist/cjs/components/Header/Header.d.ts +3 -3
  124. package/dist/cjs/components/Header/Header.js +12 -11
  125. package/dist/cjs/components/Header/Header.js.map +1 -1
  126. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +6 -5
  127. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  128. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +3 -3
  129. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +4 -4
  130. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  131. package/dist/cjs/components/ImageBase/ImageBase.d.ts +2 -2
  132. package/dist/cjs/components/ImageBase/ImageBase.js +5 -7
  133. package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
  134. package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +3 -2
  135. package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +8 -9
  136. package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  137. package/dist/cjs/components/InfoRow/InfoRow.d.ts +2 -1
  138. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  139. package/dist/cjs/components/InputLike/InputLike.d.ts +3 -3
  140. package/dist/cjs/components/InputLike/InputLike.js +6 -8
  141. package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
  142. package/dist/cjs/components/List/List.d.ts +3 -2
  143. package/dist/cjs/components/List/List.js +5 -5
  144. package/dist/cjs/components/List/List.js.map +1 -1
  145. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.d.ts +2 -1
  146. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +14 -11
  147. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  148. package/dist/cjs/components/ModalCard/ModalCard.d.ts +1 -1
  149. package/dist/cjs/components/ModalCard/ModalCard.js +5 -7
  150. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  151. package/dist/cjs/components/ModalCardBase/ModalCardBase.d.ts +3 -3
  152. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +4 -6
  153. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  154. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.d.ts +2 -1
  155. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  156. package/dist/cjs/components/ModalPage/ModalPage.d.ts +3 -2
  157. package/dist/cjs/components/ModalPage/ModalPage.js +9 -6
  158. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  159. package/dist/cjs/components/ModalRoot/ModalRoot.js +6 -4
  160. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  161. package/dist/cjs/components/ModalRoot/ModalRootContext.js +3 -0
  162. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  163. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +2 -2
  164. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  165. package/dist/cjs/components/ModalRoot/types.d.ts +1 -0
  166. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  167. package/dist/cjs/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts +8 -0
  168. package/dist/cjs/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js +43 -0
  169. package/dist/cjs/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js.map +1 -0
  170. package/dist/cjs/components/Pagination/Pagination.d.ts +3 -3
  171. package/dist/cjs/components/Pagination/Pagination.js +17 -33
  172. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  173. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageButton.d.ts +12 -0
  174. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageButton.js +48 -0
  175. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -0
  176. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts +6 -0
  177. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageEllipsis.js +32 -0
  178. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -0
  179. package/dist/cjs/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts +5 -0
  180. package/dist/cjs/components/Pagination/PaginationPage/usePaginationPageClasses.js +20 -0
  181. package/dist/cjs/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -0
  182. package/dist/cjs/components/Pagination/utils.d.ts +1 -0
  183. package/dist/cjs/components/Pagination/utils.js +15 -0
  184. package/dist/cjs/components/Pagination/utils.js.map +1 -0
  185. package/dist/cjs/components/Panel/Panel.d.ts +3 -3
  186. package/dist/cjs/components/Panel/Panel.js +7 -7
  187. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  188. package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +3 -3
  189. package/dist/cjs/components/PanelHeader/PanelHeader.js +15 -10
  190. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  191. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.d.ts +3 -2
  192. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +4 -6
  193. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  194. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.d.ts +2 -1
  195. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  196. package/dist/cjs/components/Placeholder/Placeholder.d.ts +24 -11
  197. package/dist/cjs/components/Placeholder/Placeholder.js +49 -21
  198. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  199. package/dist/cjs/components/PopoutRoot/PopoutRoot.d.ts +3 -3
  200. package/dist/cjs/components/PopoutRoot/PopoutRoot.js +12 -17
  201. package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
  202. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.d.ts +3 -2
  203. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js +16 -16
  204. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  205. package/dist/cjs/components/Popper/Popper.d.ts +7 -3
  206. package/dist/cjs/components/Popper/Popper.js +19 -10
  207. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  208. package/dist/cjs/components/Progress/Progress.d.ts +3 -3
  209. package/dist/cjs/components/Progress/Progress.js +9 -10
  210. package/dist/cjs/components/Progress/Progress.js.map +1 -1
  211. package/dist/cjs/components/PromoBanner/PromoBanner.d.ts +3 -2
  212. package/dist/cjs/components/PromoBanner/PromoBanner.js +5 -6
  213. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  214. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +25 -0
  215. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +5 -2
  216. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  217. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.d.ts +7 -7
  218. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js +14 -6
  219. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  220. package/dist/cjs/components/RadioGroup/RadioGroup.d.ts +3 -2
  221. package/dist/cjs/components/RadioGroup/RadioGroup.js +6 -7
  222. package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  223. package/dist/cjs/components/Removable/Removable.d.ts +3 -3
  224. package/dist/cjs/components/Removable/Removable.js +4 -8
  225. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  226. package/dist/cjs/components/RichCell/RichCell.d.ts +1 -1
  227. package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.d.ts +3 -1
  228. package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.js +5 -11
  229. package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  230. package/dist/cjs/components/RichTooltip/RichTooltip.js +7 -6
  231. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  232. package/dist/cjs/components/Root/Root.d.ts +3 -2
  233. package/dist/cjs/components/Root/Root.js +13 -10
  234. package/dist/cjs/components/Root/Root.js.map +1 -1
  235. package/dist/cjs/components/RootComponent/RootComponent.d.ts +9 -0
  236. package/dist/cjs/components/RootComponent/RootComponent.js +29 -0
  237. package/dist/cjs/components/RootComponent/RootComponent.js.map +1 -0
  238. package/dist/cjs/components/ScrollArrow/ScrollArrow.d.ts +1 -1
  239. package/dist/cjs/components/ScrollArrow/ScrollArrow.js +13 -12
  240. package/dist/cjs/components/ScrollArrow/ScrollArrow.js.map +1 -1
  241. package/dist/cjs/components/Search/Search.d.ts +3 -3
  242. package/dist/cjs/components/Search/Search.js +4 -2
  243. package/dist/cjs/components/Search/Search.js.map +1 -1
  244. package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts +3 -3
  245. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +4 -6
  246. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  247. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
  248. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +4 -2
  249. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  250. package/dist/cjs/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  251. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  252. package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +2 -2
  253. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
  254. package/dist/cjs/components/Separator/Separator.d.ts +3 -2
  255. package/dist/cjs/components/Separator/Separator.js +5 -5
  256. package/dist/cjs/components/Separator/Separator.js.map +1 -1
  257. package/dist/cjs/components/Slider/Slider.d.ts +4 -3
  258. package/dist/cjs/components/Slider/Slider.js +5 -2
  259. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  260. package/dist/cjs/components/Slider/SliderThumb/SliderThumb.d.ts +2 -1
  261. package/dist/cjs/components/Slider/SliderThumb/SliderThumb.js +56 -5
  262. package/dist/cjs/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  263. package/dist/cjs/components/Snackbar/Snackbar.d.ts +3 -2
  264. package/dist/cjs/components/Snackbar/Snackbar.js +8 -7
  265. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  266. package/dist/cjs/components/Spacing/Spacing.d.ts +3 -3
  267. package/dist/cjs/components/Spacing/Spacing.js +5 -6
  268. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  269. package/dist/cjs/components/Spinner/Spinner.d.ts +3 -2
  270. package/dist/cjs/components/Spinner/Spinner.js +6 -6
  271. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  272. package/dist/cjs/components/SplitCol/SplitCol.d.ts +2 -1
  273. package/dist/cjs/components/SplitCol/SplitCol.js +8 -6
  274. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  275. package/dist/cjs/components/SplitLayout/SplitLayout.d.ts +2 -2
  276. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  277. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.d.ts +3 -2
  278. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +7 -9
  279. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  280. package/dist/cjs/components/Tabbar/Tabbar.d.ts +3 -2
  281. package/dist/cjs/components/Tabbar/Tabbar.js +6 -7
  282. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  283. package/dist/cjs/components/TabbarItem/TabbarItem.d.ts +1 -1
  284. package/dist/cjs/components/TabbarItem/TabbarItem.js +7 -7
  285. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  286. package/dist/cjs/components/Tabs/Tabs.d.ts +3 -3
  287. package/dist/cjs/components/Tabs/Tabs.js +4 -6
  288. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  289. package/dist/cjs/components/TabsItem/TabsItem.d.ts +2 -1
  290. package/dist/cjs/components/TabsItem/TabsItem.js +6 -5
  291. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  292. package/dist/cjs/components/Tappable/Tappable.d.ts +6 -1
  293. package/dist/cjs/components/Tappable/Tappable.js +12 -9
  294. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  295. package/dist/cjs/components/TextTooltip/TextTooltip.js +7 -6
  296. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  297. package/dist/cjs/components/Tooltip/Tooltip.d.ts +1 -1
  298. package/dist/cjs/components/Tooltip/Tooltip.js +5 -3
  299. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  300. package/dist/cjs/components/TooltipBase/TooltipBase.d.ts +8 -1
  301. package/dist/cjs/components/TooltipBase/TooltipBase.js +21 -8
  302. package/dist/cjs/components/TooltipBase/TooltipBase.js.map +1 -1
  303. package/dist/cjs/components/Typography/Caption/Caption.js +6 -5
  304. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  305. package/dist/cjs/components/Typography/Headline/Headline.js +5 -4
  306. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  307. package/dist/cjs/components/Typography/Title/Title.js +6 -5
  308. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  309. package/dist/cjs/components/Typography/Typography.d.ts +1 -1
  310. package/dist/cjs/components/Typography/Typography.js +12 -13
  311. package/dist/cjs/components/Typography/Typography.js.map +1 -1
  312. package/dist/cjs/components/UsersStack/UsersStack.d.ts +3 -2
  313. package/dist/cjs/components/UsersStack/UsersStack.js +14 -12
  314. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  315. package/dist/cjs/components/View/View.d.ts +2 -1
  316. package/dist/cjs/components/View/View.js +7 -3
  317. package/dist/cjs/components/View/View.js.map +1 -1
  318. package/dist/cjs/components/View/ViewInfinite.d.ts +10 -3
  319. package/dist/cjs/components/View/ViewInfinite.js +17 -6
  320. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  321. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  322. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +8 -9
  323. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  324. package/dist/cjs/helpers/appearance.d.ts +4 -0
  325. package/dist/cjs/helpers/appearance.js.map +1 -1
  326. package/dist/cjs/hooks/useAppearance.d.ts +1 -1
  327. package/dist/cjs/hooks/useAutoDetectAppearance.d.ts +4 -0
  328. package/dist/cjs/hooks/useAutoDetectAppearance.js.map +1 -1
  329. package/dist/cjs/hooks/useBridgeAdaptivity.d.ts +5 -1
  330. package/dist/cjs/hooks/useBridgeAdaptivity.js +25 -20
  331. package/dist/cjs/hooks/useBridgeAdaptivity.js.map +1 -1
  332. package/dist/cjs/hooks/useInsets.d.ts +5 -1
  333. package/dist/cjs/hooks/useInsets.js +11 -11
  334. package/dist/cjs/hooks/useInsets.js.map +1 -1
  335. package/dist/cjs/index.d.ts +6 -3
  336. package/dist/cjs/index.js +14 -0
  337. package/dist/cjs/index.js.map +1 -1
  338. package/dist/cjs/lib/adaptivity/functions.d.ts +8 -0
  339. package/dist/cjs/lib/adaptivity/functions.js +30 -0
  340. package/dist/cjs/lib/adaptivity/functions.js.map +1 -1
  341. package/dist/cjs/lib/appearance/index.d.ts +1 -0
  342. package/dist/cjs/lib/appearance/index.js +6 -0
  343. package/dist/cjs/lib/appearance/index.js.map +1 -0
  344. package/dist/cjs/lib/appearance/types.d.ts +1 -0
  345. package/dist/cjs/lib/appearance/types.js +6 -0
  346. package/dist/cjs/lib/appearance/types.js.map +1 -0
  347. package/dist/cjs/lib/floating/index.d.ts +1 -1
  348. package/dist/cjs/lib/floating/index.js +3 -0
  349. package/dist/cjs/lib/floating/index.js.map +1 -1
  350. package/dist/cjs/lib/platform.js +11 -7
  351. package/dist/cjs/lib/platform.js.map +1 -1
  352. package/dist/cjs/lib/select.d.ts +1 -1
  353. package/dist/cjs/lib/taptic.d.ts +4 -0
  354. package/dist/cjs/lib/taptic.js.map +1 -1
  355. package/dist/cjs/lib/utils.d.ts +2 -0
  356. package/dist/cjs/lib/utils.js +22 -0
  357. package/dist/cjs/lib/utils.js.map +1 -1
  358. package/dist/cjs/types.d.ts +1 -0
  359. package/dist/cjs/types.js.map +1 -1
  360. package/dist/components/Accordion/Accordion.d.ts +1 -1
  361. package/dist/components/Accordion/Accordion.js +6 -11
  362. package/dist/components/Accordion/Accordion.js.map +1 -1
  363. package/dist/components/ActionSheet/ActionSheet.d.ts +6 -1
  364. package/dist/components/ActionSheet/ActionSheet.js +12 -9
  365. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  366. package/dist/components/ActionSheet/ActionSheetContext.d.ts +6 -1
  367. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  368. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +2 -1
  369. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  370. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +6 -1
  371. package/dist/components/ActionSheetItem/ActionSheetItem.js +15 -4
  372. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  373. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +22 -8
  374. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  375. package/dist/components/AppRoot/AppRoot.d.ts +19 -2
  376. package/dist/components/AppRoot/AppRoot.js +58 -20
  377. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  378. package/dist/components/AppRoot/AppRootContext.d.ts +1 -0
  379. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  380. package/dist/components/AppearanceProvider/AppearanceProvider.d.ts +1 -1
  381. package/dist/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  382. package/dist/components/AspectRatio/AspectRatio.d.ts +3 -3
  383. package/dist/components/AspectRatio/AspectRatio.js +6 -8
  384. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  385. package/dist/components/Badge/Badge.d.ts +3 -2
  386. package/dist/components/Badge/Badge.js +10 -8
  387. package/dist/components/Badge/Badge.js.map +1 -1
  388. package/dist/components/Banner/Banner.d.ts +3 -3
  389. package/dist/components/Banner/Banner.js +10 -9
  390. package/dist/components/Banner/Banner.js.map +1 -1
  391. package/dist/components/BaseGallery/BaseGallery.d.ts +1 -1
  392. package/dist/components/BaseGallery/BaseGallery.js +10 -9
  393. package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
  394. package/dist/components/BaseGallery/types.d.ts +2 -2
  395. package/dist/components/BaseGallery/types.js.map +1 -1
  396. package/dist/components/Button/Button.js +26 -22
  397. package/dist/components/Button/Button.js.map +1 -1
  398. package/dist/components/ButtonGroup/ButtonGroup.d.ts +3 -3
  399. package/dist/components/ButtonGroup/ButtonGroup.js +21 -21
  400. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  401. package/dist/components/Calendar/Calendar.d.ts +3 -3
  402. package/dist/components/Calendar/Calendar.js +4 -6
  403. package/dist/components/Calendar/Calendar.js.map +1 -1
  404. package/dist/components/CalendarDays/CalendarDays.d.ts +3 -2
  405. package/dist/components/CalendarDays/CalendarDays.js +11 -8
  406. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  407. package/dist/components/CalendarHeader/CalendarHeader.d.ts +3 -2
  408. package/dist/components/CalendarHeader/CalendarHeader.js +24 -7
  409. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  410. package/dist/components/CalendarRange/CalendarRange.d.ts +3 -3
  411. package/dist/components/CalendarRange/CalendarRange.js +4 -6
  412. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  413. package/dist/components/Card/Card.d.ts +4 -4
  414. package/dist/components/Card/Card.js +7 -9
  415. package/dist/components/Card/Card.js.map +1 -1
  416. package/dist/components/CardGrid/CardGrid.d.ts +3 -2
  417. package/dist/components/CardGrid/CardGrid.js +11 -11
  418. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  419. package/dist/components/CardScroll/CardScroll.d.ts +3 -2
  420. package/dist/components/CardScroll/CardScroll.js +10 -9
  421. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  422. package/dist/components/Cell/CellDragger/CellDragger.d.ts +2 -1
  423. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  424. package/dist/components/Checkbox/Checkbox.js +3 -4
  425. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  426. package/dist/components/Chip/Chip.d.ts +3 -2
  427. package/dist/components/Chip/Chip.js +6 -7
  428. package/dist/components/Chip/Chip.js.map +1 -1
  429. package/dist/components/ChipsInputBase/ChipsInputBase.js +4 -2
  430. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  431. package/dist/components/ConfigProvider/ConfigProvider.d.ts +7 -0
  432. package/dist/components/ConfigProvider/ConfigProvider.js +25 -7
  433. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  434. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +47 -3
  435. package/dist/components/ConfigProvider/ConfigProviderContext.js +6 -1
  436. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  437. package/dist/components/Counter/Counter.d.ts +2 -1
  438. package/dist/components/Counter/Counter.js.map +1 -1
  439. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  440. package/dist/components/CustomSelect/CustomSelect.js +1 -1
  441. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  442. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -2
  443. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  444. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +2 -2
  445. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  446. package/dist/components/DatePicker/DatePicker.d.ts +2 -1
  447. package/dist/components/DatePicker/DatePicker.js +6 -6
  448. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  449. package/dist/components/Div/Div.d.ts +3 -4
  450. package/dist/components/Div/Div.js +5 -13
  451. package/dist/components/Div/Div.js.map +1 -1
  452. package/dist/components/DropdownIcon/DropdownIcon.d.ts +2 -1
  453. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  454. package/dist/components/Epic/Epic.d.ts +3 -2
  455. package/dist/components/Epic/Epic.js +7 -7
  456. package/dist/components/Epic/Epic.js.map +1 -1
  457. package/dist/components/FixedLayout/FixedLayout.d.ts +2 -2
  458. package/dist/components/FixedLayout/FixedLayout.js +5 -4
  459. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  460. package/dist/components/FocusTrap/FocusTrap.d.ts +2 -2
  461. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  462. package/dist/components/FocusVisible/FocusVisible.d.ts +2 -1
  463. package/dist/components/FocusVisible/FocusVisible.js +8 -6
  464. package/dist/components/FocusVisible/FocusVisible.js.map +1 -1
  465. package/dist/components/FormField/FormField.js +5 -4
  466. package/dist/components/FormField/FormField.js.map +1 -1
  467. package/dist/components/FormItem/FormItem.d.ts +6 -1
  468. package/dist/components/FormItem/FormItem.js +11 -10
  469. package/dist/components/FormItem/FormItem.js.map +1 -1
  470. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -3
  471. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +6 -6
  472. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  473. package/dist/components/FormStatus/FormStatus.d.ts +2 -2
  474. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  475. package/dist/components/Gradient/Gradient.d.ts +3 -2
  476. package/dist/components/Gradient/Gradient.js +15 -14
  477. package/dist/components/Gradient/Gradient.js.map +1 -1
  478. package/dist/components/Group/Group.d.ts +3 -3
  479. package/dist/components/Group/Group.js +35 -21
  480. package/dist/components/Group/Group.js.map +1 -1
  481. package/dist/components/Header/Header.d.ts +3 -3
  482. package/dist/components/Header/Header.js +12 -11
  483. package/dist/components/Header/Header.js.map +1 -1
  484. package/dist/components/HorizontalCell/HorizontalCell.js +6 -5
  485. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  486. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +3 -3
  487. package/dist/components/HorizontalScroll/HorizontalScroll.js +4 -4
  488. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  489. package/dist/components/ImageBase/ImageBase.d.ts +2 -2
  490. package/dist/components/ImageBase/ImageBase.js +5 -7
  491. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  492. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +3 -2
  493. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +8 -9
  494. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  495. package/dist/components/InfoRow/InfoRow.d.ts +2 -1
  496. package/dist/components/InfoRow/InfoRow.js.map +1 -1
  497. package/dist/components/InputLike/InputLike.d.ts +3 -3
  498. package/dist/components/InputLike/InputLike.js +6 -8
  499. package/dist/components/InputLike/InputLike.js.map +1 -1
  500. package/dist/components/List/List.d.ts +3 -2
  501. package/dist/components/List/List.js +5 -5
  502. package/dist/components/List/List.js.map +1 -1
  503. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +2 -1
  504. package/dist/components/MiniInfoCell/MiniInfoCell.js +14 -11
  505. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  506. package/dist/components/ModalCard/ModalCard.d.ts +1 -1
  507. package/dist/components/ModalCard/ModalCard.js +5 -7
  508. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  509. package/dist/components/ModalCardBase/ModalCardBase.d.ts +3 -3
  510. package/dist/components/ModalCardBase/ModalCardBase.js +4 -6
  511. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  512. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +2 -1
  513. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  514. package/dist/components/ModalPage/ModalPage.d.ts +3 -2
  515. package/dist/components/ModalPage/ModalPage.js +9 -6
  516. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  517. package/dist/components/ModalRoot/ModalRoot.js +7 -5
  518. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  519. package/dist/components/ModalRoot/ModalRootContext.js +3 -0
  520. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  521. package/dist/components/ModalRoot/ModalRootDesktop.js +3 -3
  522. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  523. package/dist/components/ModalRoot/types.d.ts +1 -0
  524. package/dist/components/ModalRoot/types.js.map +1 -1
  525. package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts +8 -0
  526. package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js +24 -0
  527. package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js.map +1 -0
  528. package/dist/components/Pagination/Pagination.d.ts +3 -3
  529. package/dist/components/Pagination/Pagination.js +17 -33
  530. package/dist/components/Pagination/Pagination.js.map +1 -1
  531. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts +12 -0
  532. package/dist/components/Pagination/PaginationPage/PaginationPageButton.js +37 -0
  533. package/dist/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -0
  534. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts +6 -0
  535. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.js +21 -0
  536. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -0
  537. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts +5 -0
  538. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.js +10 -0
  539. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -0
  540. package/dist/components/Pagination/utils.d.ts +1 -0
  541. package/dist/components/Pagination/utils.js +5 -0
  542. package/dist/components/Pagination/utils.js.map +1 -0
  543. package/dist/components/Panel/Panel.d.ts +3 -3
  544. package/dist/components/Panel/Panel.js +7 -7
  545. package/dist/components/Panel/Panel.js.map +1 -1
  546. package/dist/components/PanelHeader/PanelHeader.d.ts +3 -3
  547. package/dist/components/PanelHeader/PanelHeader.js +16 -11
  548. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  549. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts +3 -2
  550. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +4 -6
  551. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  552. package/dist/components/PanelHeaderContext/PanelHeaderContext.d.ts +2 -1
  553. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  554. package/dist/components/Placeholder/Placeholder.d.ts +24 -11
  555. package/dist/components/Placeholder/Placeholder.js +49 -21
  556. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  557. package/dist/components/PopoutRoot/PopoutRoot.d.ts +3 -3
  558. package/dist/components/PopoutRoot/PopoutRoot.js +12 -17
  559. package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
  560. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +3 -2
  561. package/dist/components/PopoutWrapper/PopoutWrapper.js +16 -16
  562. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  563. package/dist/components/Popper/Popper.d.ts +7 -3
  564. package/dist/components/Popper/Popper.js +20 -11
  565. package/dist/components/Popper/Popper.js.map +1 -1
  566. package/dist/components/Progress/Progress.d.ts +3 -3
  567. package/dist/components/Progress/Progress.js +9 -10
  568. package/dist/components/Progress/Progress.js.map +1 -1
  569. package/dist/components/PromoBanner/PromoBanner.d.ts +3 -2
  570. package/dist/components/PromoBanner/PromoBanner.js +5 -6
  571. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  572. package/dist/components/PullToRefresh/PullToRefresh.d.ts +25 -0
  573. package/dist/components/PullToRefresh/PullToRefresh.js +5 -2
  574. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  575. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts +7 -7
  576. package/dist/components/PullToRefresh/PullToRefreshSpinner.js +14 -6
  577. package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  578. package/dist/components/RadioGroup/RadioGroup.d.ts +3 -2
  579. package/dist/components/RadioGroup/RadioGroup.js +6 -7
  580. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  581. package/dist/components/Removable/Removable.d.ts +3 -3
  582. package/dist/components/Removable/Removable.js +4 -8
  583. package/dist/components/Removable/Removable.js.map +1 -1
  584. package/dist/components/RichCell/RichCell.d.ts +1 -1
  585. package/dist/components/RichCell/RichCellIcon/RichCellIcon.d.ts +3 -1
  586. package/dist/components/RichCell/RichCellIcon/RichCellIcon.js +5 -11
  587. package/dist/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  588. package/dist/components/RichTooltip/RichTooltip.js +7 -6
  589. package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
  590. package/dist/components/Root/Root.d.ts +3 -2
  591. package/dist/components/Root/Root.js +13 -10
  592. package/dist/components/Root/Root.js.map +1 -1
  593. package/dist/components/RootComponent/RootComponent.d.ts +9 -0
  594. package/dist/components/RootComponent/RootComponent.js +20 -0
  595. package/dist/components/RootComponent/RootComponent.js.map +1 -0
  596. package/dist/components/ScrollArrow/ScrollArrow.d.ts +1 -1
  597. package/dist/components/ScrollArrow/ScrollArrow.js +13 -12
  598. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  599. package/dist/components/Search/Search.d.ts +3 -3
  600. package/dist/components/Search/Search.js +4 -2
  601. package/dist/components/Search/Search.js.map +1 -1
  602. package/dist/components/SegmentedControl/SegmentedControl.d.ts +3 -3
  603. package/dist/components/SegmentedControl/SegmentedControl.js +4 -6
  604. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  605. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
  606. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +4 -2
  607. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  608. package/dist/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  609. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  610. package/dist/components/SelectTypography/SelectTypography.d.ts +2 -2
  611. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  612. package/dist/components/Separator/Separator.d.ts +3 -2
  613. package/dist/components/Separator/Separator.js +5 -5
  614. package/dist/components/Separator/Separator.js.map +1 -1
  615. package/dist/components/Slider/Slider.d.ts +4 -3
  616. package/dist/components/Slider/Slider.js +5 -2
  617. package/dist/components/Slider/Slider.js.map +1 -1
  618. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts +2 -1
  619. package/dist/components/Slider/SliderThumb/SliderThumb.js +56 -5
  620. package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  621. package/dist/components/Snackbar/Snackbar.d.ts +3 -2
  622. package/dist/components/Snackbar/Snackbar.js +8 -7
  623. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  624. package/dist/components/Spacing/Spacing.d.ts +3 -3
  625. package/dist/components/Spacing/Spacing.js +5 -6
  626. package/dist/components/Spacing/Spacing.js.map +1 -1
  627. package/dist/components/Spinner/Spinner.d.ts +3 -2
  628. package/dist/components/Spinner/Spinner.js +6 -6
  629. package/dist/components/Spinner/Spinner.js.map +1 -1
  630. package/dist/components/SplitCol/SplitCol.d.ts +2 -1
  631. package/dist/components/SplitCol/SplitCol.js +8 -6
  632. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  633. package/dist/components/SplitLayout/SplitLayout.d.ts +2 -2
  634. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  635. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +3 -2
  636. package/dist/components/SubnavigationBar/SubnavigationBar.js +7 -9
  637. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  638. package/dist/components/Tabbar/Tabbar.d.ts +3 -2
  639. package/dist/components/Tabbar/Tabbar.js +6 -7
  640. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  641. package/dist/components/TabbarItem/TabbarItem.d.ts +1 -1
  642. package/dist/components/TabbarItem/TabbarItem.js +7 -7
  643. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  644. package/dist/components/Tabs/Tabs.d.ts +3 -3
  645. package/dist/components/Tabs/Tabs.js +4 -6
  646. package/dist/components/Tabs/Tabs.js.map +1 -1
  647. package/dist/components/TabsItem/TabsItem.d.ts +2 -1
  648. package/dist/components/TabsItem/TabsItem.js +6 -5
  649. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  650. package/dist/components/Tappable/Tappable.d.ts +6 -1
  651. package/dist/components/Tappable/Tappable.js +12 -9
  652. package/dist/components/Tappable/Tappable.js.map +1 -1
  653. package/dist/components/TextTooltip/TextTooltip.js +7 -6
  654. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  655. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  656. package/dist/components/Tooltip/Tooltip.js +6 -4
  657. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  658. package/dist/components/TooltipBase/TooltipBase.d.ts +8 -1
  659. package/dist/components/TooltipBase/TooltipBase.js +10 -5
  660. package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
  661. package/dist/components/Typography/Caption/Caption.js +6 -5
  662. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  663. package/dist/components/Typography/Headline/Headline.js +5 -4
  664. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  665. package/dist/components/Typography/Title/Title.js +6 -5
  666. package/dist/components/Typography/Title/Title.js.map +1 -1
  667. package/dist/components/Typography/Typography.d.ts +1 -1
  668. package/dist/components/Typography/Typography.js +12 -13
  669. package/dist/components/Typography/Typography.js.map +1 -1
  670. package/dist/components/UsersStack/UsersStack.d.ts +3 -2
  671. package/dist/components/UsersStack/UsersStack.js +14 -12
  672. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  673. package/dist/components/View/View.d.ts +2 -1
  674. package/dist/components/View/View.js +7 -3
  675. package/dist/components/View/View.js.map +1 -1
  676. package/dist/components/View/ViewInfinite.d.ts +10 -3
  677. package/dist/components/View/ViewInfinite.js +7 -4
  678. package/dist/components/View/ViewInfinite.js.map +1 -1
  679. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  680. package/dist/components/VisuallyHidden/VisuallyHidden.js +8 -9
  681. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  682. package/dist/components.css +19 -18
  683. package/dist/components.css.map +1 -1
  684. package/dist/components.js.tmp +6990 -4428
  685. package/dist/cssm/components/Accordion/Accordion.d.ts +1 -1
  686. package/dist/cssm/components/Accordion/Accordion.js +5 -5
  687. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  688. package/dist/cssm/components/ActionSheet/ActionSheet.d.ts +6 -1
  689. package/dist/cssm/components/ActionSheet/ActionSheet.js +11 -9
  690. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  691. package/dist/cssm/components/ActionSheet/ActionSheetContext.d.ts +6 -1
  692. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  693. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +1 -0
  694. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  695. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +6 -1
  696. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +13 -3
  697. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  698. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +22 -8
  699. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  700. package/dist/cssm/components/AppRoot/AppRoot.d.ts +19 -2
  701. package/dist/cssm/components/AppRoot/AppRoot.js +49 -15
  702. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  703. package/dist/cssm/components/AppRoot/AppRootContext.d.ts +1 -0
  704. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  705. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.d.ts +1 -1
  706. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  707. package/dist/cssm/components/AspectRatio/AspectRatio.d.ts +3 -3
  708. package/dist/cssm/components/AspectRatio/AspectRatio.js +5 -5
  709. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  710. package/dist/cssm/components/Badge/Badge.d.ts +3 -2
  711. package/dist/cssm/components/Badge/Badge.js +8 -5
  712. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  713. package/dist/cssm/components/Banner/Banner.d.ts +3 -3
  714. package/dist/cssm/components/Banner/Banner.js +9 -7
  715. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  716. package/dist/cssm/components/BaseGallery/BaseGallery.d.ts +1 -1
  717. package/dist/cssm/components/BaseGallery/BaseGallery.js +10 -8
  718. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
  719. package/dist/cssm/components/BaseGallery/types.d.ts +2 -2
  720. package/dist/cssm/components/BaseGallery/types.js.map +1 -1
  721. package/dist/cssm/components/Button/Button.js +26 -22
  722. package/dist/cssm/components/Button/Button.js.map +1 -1
  723. package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +3 -3
  724. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +19 -16
  725. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  726. package/dist/cssm/components/Calendar/Calendar.d.ts +3 -3
  727. package/dist/cssm/components/Calendar/Calendar.js +4 -4
  728. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  729. package/dist/cssm/components/CalendarDays/CalendarDays.d.ts +3 -2
  730. package/dist/cssm/components/CalendarDays/CalendarDays.js +9 -6
  731. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  732. package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts +3 -2
  733. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +6 -4
  734. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  735. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +3 -3
  736. package/dist/cssm/components/CalendarRange/CalendarRange.js +4 -5
  737. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  738. package/dist/cssm/components/Card/Card.d.ts +4 -4
  739. package/dist/cssm/components/Card/Card.js +6 -5
  740. package/dist/cssm/components/Card/Card.js.map +1 -1
  741. package/dist/cssm/components/Card/Card.module.css +1 -1
  742. package/dist/cssm/components/CardGrid/CardGrid.d.ts +3 -2
  743. package/dist/cssm/components/CardGrid/CardGrid.js +10 -8
  744. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  745. package/dist/cssm/components/CardGrid/CardGrid.module.css +0 -7
  746. package/dist/cssm/components/CardScroll/CardScroll.d.ts +3 -2
  747. package/dist/cssm/components/CardScroll/CardScroll.js +9 -7
  748. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  749. package/dist/cssm/components/Cell/CellDragger/CellDragger.d.ts +2 -1
  750. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  751. package/dist/cssm/components/Checkbox/Checkbox.js +2 -3
  752. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  753. package/dist/cssm/components/Chip/Chip.d.ts +3 -2
  754. package/dist/cssm/components/Chip/Chip.js +5 -5
  755. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  756. package/dist/cssm/components/Chip/Chip.module.css +24 -0
  757. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +4 -2
  758. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  759. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +1 -4
  760. package/dist/cssm/components/ConfigProvider/ConfigProvider.d.ts +7 -0
  761. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +32 -7
  762. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  763. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.d.ts +47 -3
  764. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +6 -1
  765. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  766. package/dist/cssm/components/Counter/Counter.d.ts +2 -1
  767. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  768. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  769. package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -1
  770. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  771. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -2
  772. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  773. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.d.ts +2 -2
  774. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  775. package/dist/cssm/components/DatePicker/DatePicker.d.ts +2 -1
  776. package/dist/cssm/components/DatePicker/DatePicker.js +5 -4
  777. package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
  778. package/dist/cssm/components/Div/Div.d.ts +3 -4
  779. package/dist/cssm/components/Div/Div.js +5 -8
  780. package/dist/cssm/components/Div/Div.js.map +1 -1
  781. package/dist/cssm/components/DropdownIcon/DropdownIcon.d.ts +2 -1
  782. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  783. package/dist/cssm/components/Epic/Epic.d.ts +3 -2
  784. package/dist/cssm/components/Epic/Epic.js +4 -4
  785. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  786. package/dist/cssm/components/FixedLayout/FixedLayout.d.ts +2 -2
  787. package/dist/cssm/components/FixedLayout/FixedLayout.js +5 -4
  788. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  789. package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +2 -2
  790. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  791. package/dist/cssm/components/FocusVisible/FocusVisible.d.ts +2 -1
  792. package/dist/cssm/components/FocusVisible/FocusVisible.js +8 -6
  793. package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
  794. package/dist/cssm/components/FormField/FormField.js +5 -4
  795. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  796. package/dist/cssm/components/FormItem/FormItem.d.ts +6 -1
  797. package/dist/cssm/components/FormItem/FormItem.js +9 -7
  798. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  799. package/dist/cssm/components/FormItem/FormItem.module.css +3 -0
  800. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -3
  801. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +5 -4
  802. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  803. package/dist/cssm/components/FormStatus/FormStatus.d.ts +2 -2
  804. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  805. package/dist/cssm/components/Gradient/Gradient.d.ts +3 -2
  806. package/dist/cssm/components/Gradient/Gradient.js +14 -11
  807. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  808. package/dist/cssm/components/Group/Group.d.ts +3 -3
  809. package/dist/cssm/components/Group/Group.js +34 -19
  810. package/dist/cssm/components/Group/Group.js.map +1 -1
  811. package/dist/cssm/components/Group/Group.module.css +36 -4
  812. package/dist/cssm/components/Header/Header.d.ts +3 -3
  813. package/dist/cssm/components/Header/Header.js +10 -8
  814. package/dist/cssm/components/Header/Header.js.map +1 -1
  815. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +6 -5
  816. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  817. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +3 -3
  818. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +4 -3
  819. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  820. package/dist/cssm/components/ImageBase/ImageBase.d.ts +2 -2
  821. package/dist/cssm/components/ImageBase/ImageBase.js +5 -5
  822. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  823. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +3 -2
  824. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +7 -6
  825. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  826. package/dist/cssm/components/InfoRow/InfoRow.d.ts +2 -1
  827. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  828. package/dist/cssm/components/Input/Input.module.css +15 -0
  829. package/dist/cssm/components/InputLike/InputLike.d.ts +3 -3
  830. package/dist/cssm/components/InputLike/InputLike.js +5 -5
  831. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  832. package/dist/cssm/components/List/List.d.ts +3 -2
  833. package/dist/cssm/components/List/List.js +4 -3
  834. package/dist/cssm/components/List/List.js.map +1 -1
  835. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.d.ts +2 -1
  836. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +14 -11
  837. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  838. package/dist/cssm/components/ModalCard/ModalCard.d.ts +1 -1
  839. package/dist/cssm/components/ModalCard/ModalCard.js +4 -4
  840. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  841. package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +3 -3
  842. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +4 -4
  843. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  844. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.d.ts +2 -1
  845. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  846. package/dist/cssm/components/ModalPage/ModalPage.d.ts +3 -2
  847. package/dist/cssm/components/ModalPage/ModalPage.js +8 -4
  848. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  849. package/dist/cssm/components/ModalPage/ModalPage.module.css +7 -3
  850. package/dist/cssm/components/ModalRoot/ModalRoot.js +6 -4
  851. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  852. package/dist/cssm/components/ModalRoot/ModalRoot.module.css +1 -1
  853. package/dist/cssm/components/ModalRoot/ModalRootContext.js +2 -1
  854. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  855. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +3 -3
  856. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  857. package/dist/cssm/components/ModalRoot/types.d.ts +1 -0
  858. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  859. package/dist/cssm/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts +8 -0
  860. package/dist/cssm/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js +22 -0
  861. package/dist/cssm/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js.map +1 -0
  862. package/dist/cssm/components/Pagination/Pagination.d.ts +3 -3
  863. package/dist/cssm/components/Pagination/Pagination.js +16 -31
  864. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  865. package/dist/cssm/components/Pagination/Pagination.module.css +0 -51
  866. package/dist/cssm/components/Pagination/PaginationPage/PaginationPage.module.css +43 -0
  867. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.d.ts +12 -0
  868. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js +30 -0
  869. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -0
  870. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts +6 -0
  871. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.js +17 -0
  872. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -0
  873. package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts +5 -0
  874. package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.js +10 -0
  875. package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -0
  876. package/dist/cssm/components/Pagination/utils.d.ts +1 -0
  877. package/dist/cssm/components/Pagination/utils.js +5 -0
  878. package/dist/cssm/components/Pagination/utils.js.map +1 -0
  879. package/dist/cssm/components/Panel/Panel.d.ts +3 -3
  880. package/dist/cssm/components/Panel/Panel.js +6 -4
  881. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  882. package/dist/cssm/components/Panel/Panel.module.css +9 -2
  883. package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +3 -3
  884. package/dist/cssm/components/PanelHeader/PanelHeader.js +17 -10
  885. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  886. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +0 -4
  887. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.d.ts +3 -2
  888. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +4 -4
  889. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  890. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.d.ts +2 -1
  891. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  892. package/dist/cssm/components/Placeholder/Placeholder.d.ts +24 -11
  893. package/dist/cssm/components/Placeholder/Placeholder.js +32 -15
  894. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  895. package/dist/cssm/components/PopoutRoot/PopoutRoot.d.ts +3 -3
  896. package/dist/cssm/components/PopoutRoot/PopoutRoot.js +12 -15
  897. package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
  898. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.d.ts +3 -2
  899. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +15 -14
  900. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  901. package/dist/cssm/components/Popper/Popper.d.ts +7 -3
  902. package/dist/cssm/components/Popper/Popper.js +18 -10
  903. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  904. package/dist/cssm/components/Progress/Progress.d.ts +3 -3
  905. package/dist/cssm/components/Progress/Progress.js +9 -8
  906. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  907. package/dist/cssm/components/PromoBanner/PromoBanner.d.ts +3 -2
  908. package/dist/cssm/components/PromoBanner/PromoBanner.js +4 -4
  909. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  910. package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts +25 -0
  911. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +5 -2
  912. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  913. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.d.ts +7 -7
  914. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js +6 -5
  915. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  916. package/dist/cssm/components/RadioGroup/RadioGroup.d.ts +3 -2
  917. package/dist/cssm/components/RadioGroup/RadioGroup.js +4 -3
  918. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  919. package/dist/cssm/components/Removable/Removable.d.ts +3 -3
  920. package/dist/cssm/components/Removable/Removable.js +4 -6
  921. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  922. package/dist/cssm/components/RichCell/RichCell.d.ts +1 -1
  923. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.d.ts +3 -1
  924. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js +6 -6
  925. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  926. package/dist/cssm/components/RichTooltip/RichTooltip.js +7 -6
  927. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  928. package/dist/cssm/components/Root/Root.d.ts +3 -2
  929. package/dist/cssm/components/Root/Root.js +12 -8
  930. package/dist/cssm/components/Root/Root.js.map +1 -1
  931. package/dist/cssm/components/RootComponent/RootComponent.d.ts +9 -0
  932. package/dist/cssm/components/RootComponent/RootComponent.js +11 -0
  933. package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -0
  934. package/dist/cssm/components/ScrollArrow/ScrollArrow.d.ts +1 -1
  935. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +13 -10
  936. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  937. package/dist/cssm/components/Search/Search.d.ts +3 -3
  938. package/dist/cssm/components/Search/Search.js +2 -1
  939. package/dist/cssm/components/Search/Search.js.map +1 -1
  940. package/dist/cssm/components/SegmentedControl/SegmentedControl.d.ts +3 -3
  941. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +4 -4
  942. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  943. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
  944. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +2 -1
  945. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  946. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  947. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  948. package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +2 -2
  949. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  950. package/dist/cssm/components/Separator/Separator.d.ts +3 -2
  951. package/dist/cssm/components/Separator/Separator.js +3 -2
  952. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  953. package/dist/cssm/components/Slider/Slider.d.ts +4 -3
  954. package/dist/cssm/components/Slider/Slider.js +3 -1
  955. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  956. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.d.ts +2 -1
  957. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +54 -5
  958. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  959. package/dist/cssm/components/Snackbar/Snackbar.d.ts +3 -2
  960. package/dist/cssm/components/Snackbar/Snackbar.js +8 -6
  961. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  962. package/dist/cssm/components/Spacing/Spacing.d.ts +3 -3
  963. package/dist/cssm/components/Spacing/Spacing.js +4 -4
  964. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  965. package/dist/cssm/components/Spinner/Spinner.d.ts +3 -2
  966. package/dist/cssm/components/Spinner/Spinner.js +5 -4
  967. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  968. package/dist/cssm/components/SplitCol/SplitCol.d.ts +2 -1
  969. package/dist/cssm/components/SplitCol/SplitCol.js +7 -5
  970. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  971. package/dist/cssm/components/SplitLayout/SplitLayout.d.ts +2 -2
  972. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  973. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.d.ts +3 -2
  974. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +6 -6
  975. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  976. package/dist/cssm/components/Tabbar/Tabbar.d.ts +3 -2
  977. package/dist/cssm/components/Tabbar/Tabbar.js +5 -4
  978. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  979. package/dist/cssm/components/TabbarItem/TabbarItem.d.ts +1 -1
  980. package/dist/cssm/components/TabbarItem/TabbarItem.js +5 -4
  981. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  982. package/dist/cssm/components/Tabs/Tabs.d.ts +3 -3
  983. package/dist/cssm/components/Tabs/Tabs.js +4 -4
  984. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  985. package/dist/cssm/components/TabsItem/TabsItem.d.ts +2 -1
  986. package/dist/cssm/components/TabsItem/TabsItem.js +6 -5
  987. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  988. package/dist/cssm/components/Tappable/Tappable.d.ts +6 -1
  989. package/dist/cssm/components/Tappable/Tappable.js +10 -8
  990. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  991. package/dist/cssm/components/Tappable/Tappable.module.css +4 -0
  992. package/dist/cssm/components/TextTooltip/TextTooltip.js +7 -6
  993. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  994. package/dist/cssm/components/Tooltip/Tooltip.d.ts +1 -1
  995. package/dist/cssm/components/Tooltip/Tooltip.js +4 -3
  996. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  997. package/dist/cssm/components/TooltipBase/TooltipBase.d.ts +8 -1
  998. package/dist/cssm/components/TooltipBase/TooltipBase.js +9 -4
  999. package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
  1000. package/dist/cssm/components/TooltipBase/TooltipBase.module.css +0 -1
  1001. package/dist/cssm/components/Typography/Caption/Caption.js +6 -5
  1002. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  1003. package/dist/cssm/components/Typography/Headline/Headline.js +5 -4
  1004. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  1005. package/dist/cssm/components/Typography/Title/Title.js +6 -5
  1006. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  1007. package/dist/cssm/components/Typography/Typography.d.ts +1 -1
  1008. package/dist/cssm/components/Typography/Typography.js +10 -8
  1009. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  1010. package/dist/cssm/components/Typography/Typography.module.css +6 -0
  1011. package/dist/cssm/components/UsersStack/UsersStack.d.ts +3 -2
  1012. package/dist/cssm/components/UsersStack/UsersStack.js +14 -11
  1013. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  1014. package/dist/cssm/components/View/View.d.ts +2 -1
  1015. package/dist/cssm/components/View/View.js +7 -3
  1016. package/dist/cssm/components/View/View.js.map +1 -1
  1017. package/dist/cssm/components/View/ViewInfinite.d.ts +10 -3
  1018. package/dist/cssm/components/View/ViewInfinite.js +7 -4
  1019. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  1020. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  1021. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +4 -6
  1022. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  1023. package/dist/cssm/helpers/appearance.d.ts +4 -0
  1024. package/dist/cssm/helpers/appearance.js +4 -1
  1025. package/dist/cssm/helpers/appearance.js.map +1 -1
  1026. package/dist/cssm/hooks/useAppearance.d.ts +1 -1
  1027. package/dist/cssm/hooks/useAutoDetectAppearance.d.ts +4 -0
  1028. package/dist/cssm/hooks/useAutoDetectAppearance.js +4 -1
  1029. package/dist/cssm/hooks/useAutoDetectAppearance.js.map +1 -1
  1030. package/dist/cssm/hooks/useBridgeAdaptivity.d.ts +5 -1
  1031. package/dist/cssm/hooks/useBridgeAdaptivity.js +29 -22
  1032. package/dist/cssm/hooks/useBridgeAdaptivity.js.map +1 -1
  1033. package/dist/cssm/hooks/useInsets.d.ts +5 -1
  1034. package/dist/cssm/hooks/useInsets.js +15 -13
  1035. package/dist/cssm/hooks/useInsets.js.map +1 -1
  1036. package/dist/cssm/index.d.ts +6 -3
  1037. package/dist/cssm/index.js +3 -1
  1038. package/dist/cssm/index.js.map +1 -1
  1039. package/dist/cssm/lib/adaptivity/functions.d.ts +8 -0
  1040. package/dist/cssm/lib/adaptivity/functions.js +29 -1
  1041. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  1042. package/dist/cssm/lib/appearance/index.d.ts +1 -0
  1043. package/dist/cssm/lib/appearance/index.js +3 -0
  1044. package/dist/cssm/lib/appearance/index.js.map +1 -0
  1045. package/dist/cssm/lib/appearance/types.d.ts +1 -0
  1046. package/dist/cssm/lib/appearance/types.js +3 -0
  1047. package/dist/cssm/lib/appearance/types.js.map +1 -0
  1048. package/dist/cssm/lib/floating/index.d.ts +1 -1
  1049. package/dist/cssm/lib/floating/index.js +1 -1
  1050. package/dist/cssm/lib/floating/index.js.map +1 -1
  1051. package/dist/cssm/lib/platform.js +9 -7
  1052. package/dist/cssm/lib/platform.js.map +1 -1
  1053. package/dist/cssm/lib/select.d.ts +1 -1
  1054. package/dist/cssm/lib/taptic.d.ts +4 -0
  1055. package/dist/cssm/lib/taptic.js +4 -1
  1056. package/dist/cssm/lib/taptic.js.map +1 -1
  1057. package/dist/cssm/lib/utils.d.ts +2 -0
  1058. package/dist/cssm/lib/utils.js +14 -0
  1059. package/dist/cssm/lib/utils.js.map +1 -1
  1060. package/dist/cssm/styles/common.css +8 -2
  1061. package/dist/cssm/styles/themes.css +226 -133
  1062. package/dist/cssm/types.d.ts +1 -0
  1063. package/dist/cssm/types.js.map +1 -1
  1064. package/dist/helpers/appearance.d.ts +4 -0
  1065. package/dist/helpers/appearance.js +4 -1
  1066. package/dist/helpers/appearance.js.map +1 -1
  1067. package/dist/hooks/useAppearance.d.ts +1 -1
  1068. package/dist/hooks/useAutoDetectAppearance.d.ts +4 -0
  1069. package/dist/hooks/useAutoDetectAppearance.js +4 -1
  1070. package/dist/hooks/useAutoDetectAppearance.js.map +1 -1
  1071. package/dist/hooks/useBridgeAdaptivity.d.ts +5 -1
  1072. package/dist/hooks/useBridgeAdaptivity.js +29 -21
  1073. package/dist/hooks/useBridgeAdaptivity.js.map +1 -1
  1074. package/dist/hooks/useInsets.d.ts +5 -1
  1075. package/dist/hooks/useInsets.js +15 -12
  1076. package/dist/hooks/useInsets.js.map +1 -1
  1077. package/dist/index.d.ts +6 -3
  1078. package/dist/index.js +3 -1
  1079. package/dist/index.js.map +1 -1
  1080. package/dist/lib/adaptivity/functions.d.ts +8 -0
  1081. package/dist/lib/adaptivity/functions.js +29 -1
  1082. package/dist/lib/adaptivity/functions.js.map +1 -1
  1083. package/dist/lib/appearance/index.d.ts +1 -0
  1084. package/dist/lib/appearance/index.js +3 -0
  1085. package/dist/lib/appearance/index.js.map +1 -0
  1086. package/dist/lib/appearance/types.d.ts +1 -0
  1087. package/dist/lib/appearance/types.js +3 -0
  1088. package/dist/lib/appearance/types.js.map +1 -0
  1089. package/dist/lib/floating/index.d.ts +1 -1
  1090. package/dist/lib/floating/index.js +1 -1
  1091. package/dist/lib/floating/index.js.map +1 -1
  1092. package/dist/lib/platform.js +11 -7
  1093. package/dist/lib/platform.js.map +1 -1
  1094. package/dist/lib/select.d.ts +1 -1
  1095. package/dist/lib/taptic.d.ts +4 -0
  1096. package/dist/lib/taptic.js +4 -1
  1097. package/dist/lib/taptic.js.map +1 -1
  1098. package/dist/lib/utils.d.ts +2 -0
  1099. package/dist/lib/utils.js +16 -0
  1100. package/dist/lib/utils.js.map +1 -1
  1101. package/dist/types.d.ts +1 -0
  1102. package/dist/types.js.map +1 -1
  1103. package/dist/vkui.css +20 -19
  1104. package/dist/vkui.css.map +1 -1
  1105. package/dist/vkui.js.tmp +6990 -4428
  1106. package/package.json +3 -3
@@ -6,4 +6,4 @@ export interface ModalCardProps extends NavIdProps, ModalCardBaseProps {
6
6
  /**
7
7
  * @see https://vkcom.github.io/VKUI/#/ModalCard
8
8
  */
9
- export declare const ModalCard: ({ icon, header, subheader, children, actions, onClose, nav, id, className, size, getRootRef, ...restProps }: ModalCardProps) => React.JSX.Element;
9
+ export declare const ModalCard: ({ icon, header, subheader, children, actions, onClose, nav, id, size, ...restProps }: ModalCardProps) => React.JSX.Element;
@@ -7,6 +7,7 @@ import { warnOnce } from '../../lib/warnOnce';
7
7
  import { ModalCardBase } from '../ModalCardBase/ModalCardBase';
8
8
  import { ModalRootContext, useModalRegistry } from '../ModalRoot/ModalRootContext';
9
9
  import { ModalType } from '../ModalRoot/types';
10
+ import { RootComponent } from '../RootComponent/RootComponent';
10
11
  import styles from './ModalCard.module.css';
11
12
  const platformClassNames = {
12
13
  ios: styles['ModalCard--ios'],
@@ -16,7 +17,7 @@ const platformClassNames = {
16
17
  const warn = warnOnce('ModalCard');
17
18
  /**
18
19
  * @see https://vkcom.github.io/VKUI/#/ModalCard
19
- */ export const ModalCard = ({ icon, header, subheader, children, actions, onClose, nav, id, className, size, getRootRef, ...restProps })=>{
20
+ */ export const ModalCard = ({ icon, header, subheader, children, actions, onClose, nav, id, size, ...restProps })=>{
20
21
  const { isDesktop } = useAdaptivityWithJSMediaQueries();
21
22
  const platform = usePlatform();
22
23
  const modalContext = React.useContext(ModalRootContext);
@@ -24,11 +25,10 @@ const warn = warnOnce('ModalCard');
24
25
  nav,
25
26
  id
26
27
  }, warn), ModalType.CARD);
27
- return /*#__PURE__*/ React.createElement("div", {
28
+ return /*#__PURE__*/ React.createElement(RootComponent, {
28
29
  ...restProps,
29
- ref: getRootRef,
30
30
  id: id,
31
- className: classNames(styles['ModalCard'], platformClassNames.hasOwnProperty(platform) ? platformClassNames[platform] : platformClassNames.android, isDesktop && styles['ModalCard--desktop'], className)
31
+ baseClassName: classNames(styles['ModalCard'], platformClassNames.hasOwnProperty(platform) ? platformClassNames[platform] : platformClassNames.android, isDesktop && styles['ModalCard--desktop'])
32
32
  }, /*#__PURE__*/ React.createElement(ModalCardBase, {
33
33
  className: styles['ModalCard__in'],
34
34
  getRootRef: refs.innerElement,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalCard/ModalCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ModalCardBase, ModalCardBaseProps } from '../ModalCardBase/ModalCardBase';\nimport { ModalRootContext, useModalRegistry } from '../ModalRoot/ModalRootContext';\nimport { ModalType } from '../ModalRoot/types';\nimport styles from './ModalCard.module.css';\n\nconst platformClassNames = {\n ios: styles['ModalCard--ios'],\n android: styles['ModalCard--android'],\n vkcom: styles['ModalCard--vkcom'],\n};\n\nexport interface ModalCardProps extends NavIdProps, ModalCardBaseProps {}\n\nconst warn = warnOnce('ModalCard');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalCard\n */\nexport const ModalCard = ({\n icon,\n header,\n subheader,\n children,\n actions,\n onClose,\n nav,\n id,\n className,\n size,\n getRootRef,\n ...restProps\n}: ModalCardProps) => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const platform = usePlatform();\n\n const modalContext = React.useContext(ModalRootContext);\n const { refs } = useModalRegistry(getNavId({ nav, id }, warn), ModalType.CARD);\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n id={id}\n className={classNames(\n styles['ModalCard'],\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n isDesktop && styles['ModalCard--desktop'],\n className,\n )}\n >\n <ModalCardBase\n className={styles['ModalCard__in']}\n getRootRef={refs.innerElement}\n icon={icon}\n header={header}\n subheader={subheader}\n actions={actions}\n onClose={onClose || modalContext.onClose}\n size={size}\n >\n {children}\n </ModalCardBase>\n </div>\n );\n};\n"],"names":["React","classNames","useAdaptivityWithJSMediaQueries","usePlatform","getNavId","warnOnce","ModalCardBase","ModalRootContext","useModalRegistry","ModalType","styles","platformClassNames","ios","android","vkcom","warn","ModalCard","icon","header","subheader","children","actions","onClose","nav","id","className","size","getRootRef","restProps","isDesktop","platform","modalContext","useContext","refs","CARD","div","ref","hasOwnProperty","innerElement"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAoB,qBAAqB;AAC1D,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,aAAa,QAA4B,iCAAiC;AACnF,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,gCAAgC;AACnF,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,OAAOC,YAAY,yBAAyB;AAE5C,MAAMC,qBAAqB;IACzBC,KAAKF,MAAM,CAAC,iBAAiB;IAC7BG,SAASH,MAAM,CAAC,qBAAqB;IACrCI,OAAOJ,MAAM,CAAC,mBAAmB;AACnC;AAIA,MAAMK,OAAOV,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMW,YAAY,CAAC,EACxBC,IAAI,EACJC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,GAAG,EACHC,EAAE,EACFC,SAAS,EACTC,IAAI,EACJC,UAAU,EACV,GAAGC,WACY;IACf,MAAM,EAAEC,SAAS,EAAE,GAAG3B;IACtB,MAAM4B,WAAW3B;IAEjB,MAAM4B,eAAe/B,MAAMgC,UAAU,CAACzB;IACtC,MAAM,EAAE0B,IAAI,EAAE,GAAGzB,iBAAiBJ,SAAS;QAAEmB;QAAKC;IAAG,GAAGT,OAAON,UAAUyB,IAAI;IAE7E,qBACE,oBAACC;QACE,GAAGP,SAAS;QACbQ,KAAKT;QACLH,IAAIA;QACJC,WAAWxB,WACTS,MAAM,CAAC,YAAY,EACnBC,mBAAmB0B,cAAc,CAACP,YAC9BnB,kBAAkB,CAACmB,SAAS,GAC5BnB,mBAAmBE,OAAO,EAC9BgB,aAAanB,MAAM,CAAC,qBAAqB,EACzCe;qBAGF,oBAACnB;QACCmB,WAAWf,MAAM,CAAC,gBAAgB;QAClCiB,YAAYM,KAAKK,YAAY;QAC7BrB,MAAMA;QACNC,QAAQA;QACRC,WAAWA;QACXE,SAASA;QACTC,SAASA,WAAWS,aAAaT,OAAO;QACxCI,MAAMA;OAELN;AAIT,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/ModalCard/ModalCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ModalCardBase, ModalCardBaseProps } from '../ModalCardBase/ModalCardBase';\nimport { ModalRootContext, useModalRegistry } from '../ModalRoot/ModalRootContext';\nimport { ModalType } from '../ModalRoot/types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './ModalCard.module.css';\n\nconst platformClassNames = {\n ios: styles['ModalCard--ios'],\n android: styles['ModalCard--android'],\n vkcom: styles['ModalCard--vkcom'],\n};\n\nexport interface ModalCardProps extends NavIdProps, ModalCardBaseProps {}\n\nconst warn = warnOnce('ModalCard');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalCard\n */\nexport const ModalCard = ({\n icon,\n header,\n subheader,\n children,\n actions,\n onClose,\n nav,\n id,\n size,\n ...restProps\n}: ModalCardProps) => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const platform = usePlatform();\n\n const modalContext = React.useContext(ModalRootContext);\n const { refs } = useModalRegistry(getNavId({ nav, id }, warn), ModalType.CARD);\n\n return (\n <RootComponent\n {...restProps}\n id={id}\n baseClassName={classNames(\n styles['ModalCard'],\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n isDesktop && styles['ModalCard--desktop'],\n )}\n >\n <ModalCardBase\n className={styles['ModalCard__in']}\n getRootRef={refs.innerElement}\n icon={icon}\n header={header}\n subheader={subheader}\n actions={actions}\n onClose={onClose || modalContext.onClose}\n size={size}\n >\n {children}\n </ModalCardBase>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useAdaptivityWithJSMediaQueries","usePlatform","getNavId","warnOnce","ModalCardBase","ModalRootContext","useModalRegistry","ModalType","RootComponent","styles","platformClassNames","ios","android","vkcom","warn","ModalCard","icon","header","subheader","children","actions","onClose","nav","id","size","restProps","isDesktop","platform","modalContext","useContext","refs","CARD","baseClassName","hasOwnProperty","className","getRootRef","innerElement"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAoB,qBAAqB;AAC1D,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,aAAa,QAA4B,iCAAiC;AACnF,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,gCAAgC;AACnF,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,OAAOC,YAAY,yBAAyB;AAE5C,MAAMC,qBAAqB;IACzBC,KAAKF,MAAM,CAAC,iBAAiB;IAC7BG,SAASH,MAAM,CAAC,qBAAqB;IACrCI,OAAOJ,MAAM,CAAC,mBAAmB;AACnC;AAIA,MAAMK,OAAOX,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMY,YAAY,CAAC,EACxBC,IAAI,EACJC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,GAAG,EACHC,EAAE,EACFC,IAAI,EACJ,GAAGC,WACY;IACf,MAAM,EAAEC,SAAS,EAAE,GAAG1B;IACtB,MAAM2B,WAAW1B;IAEjB,MAAM2B,eAAe9B,MAAM+B,UAAU,CAACxB;IACtC,MAAM,EAAEyB,IAAI,EAAE,GAAGxB,iBAAiBJ,SAAS;QAAEoB;QAAKC;IAAG,GAAGT,OAAOP,UAAUwB,IAAI;IAE7E,qBACE,oBAACvB;QACE,GAAGiB,SAAS;QACbF,IAAIA;QACJS,eAAejC,WACbU,MAAM,CAAC,YAAY,EACnBC,mBAAmBuB,cAAc,CAACN,YAC9BjB,kBAAkB,CAACiB,SAAS,GAC5BjB,mBAAmBE,OAAO,EAC9Bc,aAAajB,MAAM,CAAC,qBAAqB;qBAG3C,oBAACL;QACC8B,WAAWzB,MAAM,CAAC,gBAAgB;QAClC0B,YAAYL,KAAKM,YAAY;QAC7BpB,MAAMA;QACNC,QAAQA;QACRC,WAAWA;QACXE,SAASA;QACTC,SAASA,WAAWO,aAAaP,OAAO;QACxCG,MAAMA;OAELL;AAIT,EAAE"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { HasRootRef } from '../../types';
3
- export interface ModalCardBaseProps extends React.HTMLAttributes<HTMLDivElement>, HasRootRef<HTMLDivElement> {
2
+ import { HTMLAttributesWithRootRef } from '../../types';
3
+ export interface ModalCardBaseProps extends HTMLAttributesWithRootRef<HTMLDivElement> {
4
4
  /**
5
5
  * Иконка.
6
6
  *
@@ -40,4 +40,4 @@ export interface ModalCardBaseProps extends React.HTMLAttributes<HTMLDivElement>
40
40
  /**
41
41
  * @see https://vkcom.github.io/VKUI/#/ModalCardBase
42
42
  */
43
- export declare const ModalCardBase: ({ getRootRef, icon, header, subheader, children, actions, onClose, dismissLabel, className, style, size: sizeProp, ...restProps }: ModalCardBaseProps) => React.JSX.Element;
43
+ export declare const ModalCardBase: ({ icon, header, subheader, children, actions, onClose, dismissLabel, style, size: sizeProp, ...restProps }: ModalCardBaseProps) => React.JSX.Element;
@@ -9,21 +9,21 @@ import { Platform } from '../../lib/platform';
9
9
  import { AdaptivityContext } from '../AdaptivityProvider/AdaptivityContext';
10
10
  import { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';
11
11
  import { PanelHeaderButton } from '../PanelHeaderButton/PanelHeaderButton';
12
+ import { RootComponent } from '../RootComponent/RootComponent';
12
13
  import { Subhead } from '../Typography/Subhead/Subhead';
13
14
  import { Title } from '../Typography/Title/Title';
14
15
  import styles from './ModalCardBase.module.css';
15
16
  /**
16
17
  * @see https://vkcom.github.io/VKUI/#/ModalCardBase
17
- */ export const ModalCardBase = ({ getRootRef, icon, header, subheader, children, actions, onClose, dismissLabel = 'Скрыть', className, style, size: sizeProp, ...restProps })=>{
18
+ */ export const ModalCardBase = ({ icon, header, subheader, children, actions, onClose, dismissLabel = 'Скрыть', style, size: sizeProp, ...restProps })=>{
18
19
  const platform = usePlatform();
19
20
  const { isDesktop } = useAdaptivityWithJSMediaQueries();
20
21
  const isSoftwareKeyboardOpened = useKeyboard().isOpened;
21
22
  const canShowCloseButtonIOS = platform === Platform.IOS && !isDesktop;
22
23
  const size = isDesktop ? sizeProp : undefined;
23
- return /*#__PURE__*/ React.createElement("div", {
24
+ return /*#__PURE__*/ React.createElement(RootComponent, {
24
25
  ...restProps,
25
- className: classNames('vkuiInternalModalCardBase', platform === Platform.IOS && styles['ModalCardBase--ios'], isDesktop && styles['ModalCardBase--desktop'], className),
26
- ref: getRootRef,
26
+ baseClassName: classNames('vkuiInternalModalCardBase', platform === Platform.IOS && styles['ModalCardBase--ios'], isDesktop && styles['ModalCardBase--desktop']),
27
27
  style: {
28
28
  ...style,
29
29
  maxWidth: size
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalCardBase/ModalCardBase.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Dismiss } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useKeyboard } from '../../hooks/useKeyboard';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { HasRootRef } from '../../types';\nimport { AdaptivityContext } from '../AdaptivityProvider/AdaptivityContext';\nimport { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';\nimport { PanelHeaderButton } from '../PanelHeaderButton/PanelHeaderButton';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './ModalCardBase.module.css';\n\nexport interface ModalCardBaseProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n /**\n * Иконка.\n *\n * Может быть компонентом иконки, например, `<Icon56MoneyTransferOutline />`, или `<Avatar size={72} src=\"\" />`\n */\n icon?: React.ReactNode;\n\n /**\n * Заголовок карточки\n */\n header?: React.ReactNode;\n\n /**\n * Подзаголовок\n */\n subheader?: React.ReactNode;\n\n /**\n * Кнопки-действия. Принимает [`Button`](https://vkcom.github.io/VKUI/#/Button) с параметрами:\n *\n * - `size=\"l\" mode=\"primary\" stretched`\n * - `size=\"l\" mode=\"secondary\" stretched`\n *\n * Для набора кнопок используйте [`ButtonGroup`](https://vkcom.github.io/VKUI/#/ButtonGroup) с параметрами:\n *\n * - `gap=\"s\" mode=\"horizontal\" stretched`\n * - `gap=\"m\" mode=\"vertical\" stretched`\n */\n actions?: React.ReactNode;\n\n onClose?: VoidFunction;\n\n /**\n * `aria-label` для кнопки закрытия. Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n\n /**\n * Задаёт контенту максимальную ширину для десктопной версии.\n */\n size?: number;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalCardBase\n */\nexport const ModalCardBase = ({\n getRootRef,\n icon,\n header,\n subheader,\n children,\n actions,\n onClose,\n dismissLabel = 'Скрыть',\n className,\n style,\n size: sizeProp,\n ...restProps\n}: ModalCardBaseProps) => {\n const platform = usePlatform();\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const isSoftwareKeyboardOpened = useKeyboard().isOpened;\n\n const canShowCloseButtonIOS = platform === Platform.IOS && !isDesktop;\n\n const size = isDesktop ? sizeProp : undefined;\n\n return (\n <div\n {...restProps}\n className={classNames(\n 'vkuiInternalModalCardBase',\n platform === Platform.IOS && styles['ModalCardBase--ios'],\n isDesktop && styles['ModalCardBase--desktop'],\n className,\n )}\n ref={getRootRef}\n style={{\n ...style,\n maxWidth: size,\n }}\n >\n <div\n className={classNames(\n styles['ModalCardBase__container'],\n isSoftwareKeyboardOpened && styles['ModalCardBase__container--softwareKeyboardOpened'],\n )}\n >\n {hasReactNode(icon) && <div className={styles['ModalCardBase__icon']}>{icon}</div>}\n {hasReactNode(header) && (\n <Title\n level=\"2\"\n weight=\"2\"\n className={classNames(\n styles['ModalCardBase__header'],\n 'vkuiInternalModalCardBase__header',\n )}\n >\n {header}\n </Title>\n )}\n {hasReactNode(subheader) && (\n <AdaptivityContext.Provider value={{ sizeY: SizeType.REGULAR }}>\n <Subhead\n className={classNames(\n styles['ModalCardBase__subheader'],\n 'vkuiInternalModalCardBase__subheader',\n )}\n >\n {subheader}\n </Subhead>\n </AdaptivityContext.Provider>\n )}\n\n {children}\n\n {hasReactNode(actions) && <div className={styles['ModalCardBase__actions']}>{actions}</div>}\n\n {isDesktop && <ModalDismissButton onClick={onClose} />}\n {canShowCloseButtonIOS && (\n <PanelHeaderButton\n aria-label={dismissLabel}\n className={styles['ModalCardBase__dismiss']}\n onClick={onClose}\n >\n <Icon24Dismiss />\n </PanelHeaderButton>\n )}\n </div>\n </div>\n );\n};\n"],"names":["React","Icon24Dismiss","classNames","hasReactNode","useAdaptivityWithJSMediaQueries","useKeyboard","usePlatform","SizeType","Platform","AdaptivityContext","ModalDismissButton","PanelHeaderButton","Subhead","Title","styles","ModalCardBase","getRootRef","icon","header","subheader","children","actions","onClose","dismissLabel","className","style","size","sizeProp","restProps","platform","isDesktop","isSoftwareKeyboardOpened","isOpened","canShowCloseButtonIOS","IOS","undefined","div","ref","maxWidth","level","weight","Provider","value","sizeY","REGULAR","onClick","aria-label"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,iBAAiB,QAAQ,0CAA0C;AAC5E,SAASC,kBAAkB,QAAQ,2CAA2C;AAC9E,SAASC,iBAAiB,QAAQ,yCAAyC;AAC3E,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,KAAK,QAAQ,4BAA4B;AAClD,OAAOC,YAAY,6BAA6B;AAgDhD;;CAEC,GACD,OAAO,MAAMC,gBAAgB,CAAC,EAC5BC,UAAU,EACVC,IAAI,EACJC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,eAAe,QAAQ,EACvBC,SAAS,EACTC,KAAK,EACLC,MAAMC,QAAQ,EACd,GAAGC,WACgB;IACnB,MAAMC,WAAWvB;IACjB,MAAM,EAAEwB,SAAS,EAAE,GAAG1B;IACtB,MAAM2B,2BAA2B1B,cAAc2B,QAAQ;IAEvD,MAAMC,wBAAwBJ,aAAarB,SAAS0B,GAAG,IAAI,CAACJ;IAE5D,MAAMJ,OAAOI,YAAYH,WAAWQ;IAEpC,qBACE,oBAACC;QACE,GAAGR,SAAS;QACbJ,WAAWtB,WACT,6BACA2B,aAAarB,SAAS0B,GAAG,IAAIpB,MAAM,CAAC,qBAAqB,EACzDgB,aAAahB,MAAM,CAAC,yBAAyB,EAC7CU;QAEFa,KAAKrB;QACLS,OAAO;YACL,GAAGA,KAAK;YACRa,UAAUZ;QACZ;qBAEA,oBAACU;QACCZ,WAAWtB,WACTY,MAAM,CAAC,2BAA2B,EAClCiB,4BAA4BjB,MAAM,CAAC,mDAAmD;OAGvFX,aAAac,uBAAS,oBAACmB;QAAIZ,WAAWV,MAAM,CAAC,sBAAsB;OAAGG,OACtEd,aAAae,yBACZ,oBAACL;QACC0B,OAAM;QACNC,QAAO;QACPhB,WAAWtB,WACTY,MAAM,CAAC,wBAAwB,EAC/B;OAGDI,SAGJf,aAAagB,4BACZ,oBAACV,kBAAkBgC,QAAQ;QAACC,OAAO;YAAEC,OAAOpC,SAASqC,OAAO;QAAC;qBAC3D,oBAAChC;QACCY,WAAWtB,WACTY,MAAM,CAAC,2BAA2B,EAClC;OAGDK,aAKNC,UAEAjB,aAAakB,0BAAY,oBAACe;QAAIZ,WAAWV,MAAM,CAAC,yBAAyB;OAAGO,UAE5ES,2BAAa,oBAACpB;QAAmBmC,SAASvB;QAC1CW,uCACC,oBAACtB;QACCmC,cAAYvB;QACZC,WAAWV,MAAM,CAAC,yBAAyB;QAC3C+B,SAASvB;qBAET,oBAACrB;AAMb,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/ModalCardBase/ModalCardBase.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Dismiss } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useKeyboard } from '../../hooks/useKeyboard';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityContext } from '../AdaptivityProvider/AdaptivityContext';\nimport { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';\nimport { PanelHeaderButton } from '../PanelHeaderButton/PanelHeaderButton';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './ModalCardBase.module.css';\n\nexport interface ModalCardBaseProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Иконка.\n *\n * Может быть компонентом иконки, например, `<Icon56MoneyTransferOutline />`, или `<Avatar size={72} src=\"\" />`\n */\n icon?: React.ReactNode;\n\n /**\n * Заголовок карточки\n */\n header?: React.ReactNode;\n\n /**\n * Подзаголовок\n */\n subheader?: React.ReactNode;\n\n /**\n * Кнопки-действия. Принимает [`Button`](https://vkcom.github.io/VKUI/#/Button) с параметрами:\n *\n * - `size=\"l\" mode=\"primary\" stretched`\n * - `size=\"l\" mode=\"secondary\" stretched`\n *\n * Для набора кнопок используйте [`ButtonGroup`](https://vkcom.github.io/VKUI/#/ButtonGroup) с параметрами:\n *\n * - `gap=\"s\" mode=\"horizontal\" stretched`\n * - `gap=\"m\" mode=\"vertical\" stretched`\n */\n actions?: React.ReactNode;\n\n onClose?: VoidFunction;\n\n /**\n * `aria-label` для кнопки закрытия. Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n\n /**\n * Задаёт контенту максимальную ширину для десктопной версии.\n */\n size?: number;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalCardBase\n */\nexport const ModalCardBase = ({\n icon,\n header,\n subheader,\n children,\n actions,\n onClose,\n dismissLabel = 'Скрыть',\n style,\n size: sizeProp,\n ...restProps\n}: ModalCardBaseProps) => {\n const platform = usePlatform();\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const isSoftwareKeyboardOpened = useKeyboard().isOpened;\n\n const canShowCloseButtonIOS = platform === Platform.IOS && !isDesktop;\n\n const size = isDesktop ? sizeProp : undefined;\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n 'vkuiInternalModalCardBase',\n platform === Platform.IOS && styles['ModalCardBase--ios'],\n isDesktop && styles['ModalCardBase--desktop'],\n )}\n style={{\n ...style,\n maxWidth: size,\n }}\n >\n <div\n className={classNames(\n styles['ModalCardBase__container'],\n isSoftwareKeyboardOpened && styles['ModalCardBase__container--softwareKeyboardOpened'],\n )}\n >\n {hasReactNode(icon) && <div className={styles['ModalCardBase__icon']}>{icon}</div>}\n {hasReactNode(header) && (\n <Title\n level=\"2\"\n weight=\"2\"\n className={classNames(\n styles['ModalCardBase__header'],\n 'vkuiInternalModalCardBase__header',\n )}\n >\n {header}\n </Title>\n )}\n {hasReactNode(subheader) && (\n <AdaptivityContext.Provider value={{ sizeY: SizeType.REGULAR }}>\n <Subhead\n className={classNames(\n styles['ModalCardBase__subheader'],\n 'vkuiInternalModalCardBase__subheader',\n )}\n >\n {subheader}\n </Subhead>\n </AdaptivityContext.Provider>\n )}\n\n {children}\n\n {hasReactNode(actions) && <div className={styles['ModalCardBase__actions']}>{actions}</div>}\n\n {isDesktop && <ModalDismissButton onClick={onClose} />}\n {canShowCloseButtonIOS && (\n <PanelHeaderButton\n aria-label={dismissLabel}\n className={styles['ModalCardBase__dismiss']}\n onClick={onClose}\n >\n <Icon24Dismiss />\n </PanelHeaderButton>\n )}\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","Icon24Dismiss","classNames","hasReactNode","useAdaptivityWithJSMediaQueries","useKeyboard","usePlatform","SizeType","Platform","AdaptivityContext","ModalDismissButton","PanelHeaderButton","RootComponent","Subhead","Title","styles","ModalCardBase","icon","header","subheader","children","actions","onClose","dismissLabel","style","size","sizeProp","restProps","platform","isDesktop","isSoftwareKeyboardOpened","isOpened","canShowCloseButtonIOS","IOS","undefined","baseClassName","maxWidth","div","className","level","weight","Provider","value","sizeY","REGULAR","onClick","aria-label"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,iBAAiB,QAAQ,0CAA0C;AAC5E,SAASC,kBAAkB,QAAQ,2CAA2C;AAC9E,SAASC,iBAAiB,QAAQ,yCAAyC;AAC3E,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,KAAK,QAAQ,4BAA4B;AAClD,OAAOC,YAAY,6BAA6B;AA8ChD;;CAEC,GACD,OAAO,MAAMC,gBAAgB,CAAC,EAC5BC,IAAI,EACJC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,eAAe,QAAQ,EACvBC,KAAK,EACLC,MAAMC,QAAQ,EACd,GAAGC,WACgB;IACnB,MAAMC,WAAWtB;IACjB,MAAM,EAAEuB,SAAS,EAAE,GAAGzB;IACtB,MAAM0B,2BAA2BzB,cAAc0B,QAAQ;IAEvD,MAAMC,wBAAwBJ,aAAapB,SAASyB,GAAG,IAAI,CAACJ;IAE5D,MAAMJ,OAAOI,YAAYH,WAAWQ;IAEpC,qBACE,oBAACtB;QACE,GAAGe,SAAS;QACbQ,eAAejC,WACb,6BACA0B,aAAapB,SAASyB,GAAG,IAAIlB,MAAM,CAAC,qBAAqB,EACzDc,aAAad,MAAM,CAAC,yBAAyB;QAE/CS,OAAO;YACL,GAAGA,KAAK;YACRY,UAAUX;QACZ;qBAEA,oBAACY;QACCC,WAAWpC,WACTa,MAAM,CAAC,2BAA2B,EAClCe,4BAA4Bf,MAAM,CAAC,mDAAmD;OAGvFZ,aAAac,uBAAS,oBAACoB;QAAIC,WAAWvB,MAAM,CAAC,sBAAsB;OAAGE,OACtEd,aAAae,yBACZ,oBAACJ;QACCyB,OAAM;QACNC,QAAO;QACPF,WAAWpC,WACTa,MAAM,CAAC,wBAAwB,EAC/B;OAGDG,SAGJf,aAAagB,4BACZ,oBAACV,kBAAkBgC,QAAQ;QAACC,OAAO;YAAEC,OAAOpC,SAASqC,OAAO;QAAC;qBAC3D,oBAAC/B;QACCyB,WAAWpC,WACTa,MAAM,CAAC,2BAA2B,EAClC;OAGDI,aAKNC,UAEAjB,aAAakB,0BAAY,oBAACgB;QAAIC,WAAWvB,MAAM,CAAC,yBAAyB;OAAGM,UAE5EQ,2BAAa,oBAACnB;QAAmBmC,SAASvB;QAC1CU,uCACC,oBAACrB;QACCmC,cAAYvB;QACZe,WAAWvB,MAAM,CAAC,yBAAyB;QAC3C8B,SAASvB;qBAET,oBAACrB;AAMb,EAAE"}
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
- export type ModalDismissButtonProps = React.HTMLAttributes<HTMLButtonElement>;
2
+ import { HTMLAttributesWithRootRef } from '../../types';
3
+ export type ModalDismissButtonProps = HTMLAttributesWithRootRef<HTMLButtonElement>;
3
4
  /**
4
5
  * @see https://vkcom.github.io/VKUI/#/ModalDismissButton
5
6
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalDismissButton/ModalDismissButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon20Cancel } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './ModalDismissButton.module.css';\n\nexport type ModalDismissButtonProps = React.HTMLAttributes<HTMLButtonElement>;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalDismissButton\n */\nexport const ModalDismissButton = ({\n 'aria-label': ariaLabel = 'Закрыть',\n className,\n ...restProps\n}: ModalDismissButtonProps) => {\n return (\n <Tappable\n className={classNames(styles['ModalDismissButton'], className)}\n {...restProps}\n aria-label={ariaLabel}\n activeMode={styles['ModalDismissButton--active']}\n hoverMode={styles['ModalDismissButton--hover']}\n >\n <Icon20Cancel />\n </Tappable>\n );\n};\n"],"names":["React","Icon20Cancel","classNames","Tappable","styles","ModalDismissButton","ariaLabel","className","restProps","aria-label","activeMode","hoverMode"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,OAAOC,YAAY,kCAAkC;AAIrD;;CAEC,GACD,OAAO,MAAMC,qBAAqB,CAAC,EACjC,cAAcC,YAAY,SAAS,EACnCC,SAAS,EACT,GAAGC,WACqB;IACxB,qBACE,oBAACL;QACCI,WAAWL,WAAWE,MAAM,CAAC,qBAAqB,EAAEG;QACnD,GAAGC,SAAS;QACbC,cAAYH;QACZI,YAAYN,MAAM,CAAC,6BAA6B;QAChDO,WAAWP,MAAM,CAAC,4BAA4B;qBAE9C,oBAACH;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/ModalDismissButton/ModalDismissButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon20Cancel } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './ModalDismissButton.module.css';\n\nexport type ModalDismissButtonProps = HTMLAttributesWithRootRef<HTMLButtonElement>;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalDismissButton\n */\nexport const ModalDismissButton = ({\n 'aria-label': ariaLabel = 'Закрыть',\n className,\n ...restProps\n}: ModalDismissButtonProps) => {\n return (\n <Tappable\n className={classNames(styles['ModalDismissButton'], className)}\n {...restProps}\n aria-label={ariaLabel}\n activeMode={styles['ModalDismissButton--active']}\n hoverMode={styles['ModalDismissButton--hover']}\n >\n <Icon20Cancel />\n </Tappable>\n );\n};\n"],"names":["React","Icon20Cancel","classNames","Tappable","styles","ModalDismissButton","ariaLabel","className","restProps","aria-label","activeMode","hoverMode"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,OAAOC,YAAY,kCAAkC;AAIrD;;CAEC,GACD,OAAO,MAAMC,qBAAqB,CAAC,EACjC,cAAcC,YAAY,SAAS,EACnCC,SAAS,EACT,GAAGC,WACqB;IACxB,qBACE,oBAACL;QACCI,WAAWL,WAAWE,MAAM,CAAC,qBAAqB,EAAEG;QACnD,GAAGC,SAAS;QACbC,cAAYH;QACZI,YAAYN,MAAM,CAAC,6BAA6B;QAChDO,WAAWP,MAAM,CAAC,4BAA4B;qBAE9C,oBAACH;AAGP,EAAE"}
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { NavIdProps } from '../../lib/getNavId';
3
- export interface ModalPageProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {
3
+ import { HTMLAttributesWithRootRef } from '../../types';
4
+ export interface ModalPageProps extends HTMLAttributesWithRootRef<HTMLDivElement>, NavIdProps {
4
5
  /**
5
6
  * Шапка модальной страницы, `<ModalPageHeader />`
6
7
  */
@@ -42,4 +43,4 @@ export interface ModalPageProps extends React.HTMLAttributes<HTMLDivElement>, Na
42
43
  /**
43
44
  * @see https://vkcom.github.io/VKUI/#/ModalPage
44
45
  */
45
- export declare const ModalPage: ({ children, header, size: sizeProp, onOpen, onOpened, onClose, onClosed, settlingHeight, dynamicContentHeight, getModalContentRef, nav, id: idProp, hideCloseButton, className, ...restProps }: ModalPageProps) => React.JSX.Element;
46
+ export declare const ModalPage: ({ children, header, size: sizeProp, onOpen, onOpened, onClose, onClosed, settlingHeight, dynamicContentHeight, getModalContentRef, nav, id: idProp, hideCloseButton, ...restProps }: ModalPageProps) => React.JSX.Element;
@@ -12,6 +12,7 @@ import { warnOnce } from '../../lib/warnOnce';
12
12
  import { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';
13
13
  import { ModalRootContext, useModalRegistry } from '../ModalRoot/ModalRootContext';
14
14
  import { ModalType } from '../ModalRoot/types';
15
+ import { RootComponent } from '../RootComponent/RootComponent';
15
16
  import { ModalPageContext } from './ModalPageContext';
16
17
  import styles from './ModalPage.module.css';
17
18
  const sizeClassName = {
@@ -22,7 +23,7 @@ const sizeClassName = {
22
23
  const warn = warnOnce('ModalPage');
23
24
  /**
24
25
  * @see https://vkcom.github.io/VKUI/#/ModalPage
25
- */ export const ModalPage = ({ children, header, size: sizeProp = 's', onOpen, onOpened, onClose, onClosed, settlingHeight, dynamicContentHeight, getModalContentRef, nav, id: idProp, hideCloseButton = false, className, ...restProps })=>{
26
+ */ export const ModalPage = ({ children, header, size: sizeProp = 's', onOpen, onOpened, onClose, onClosed, settlingHeight, dynamicContentHeight, getModalContentRef, nav, id: idProp, hideCloseButton = false, ...restProps })=>{
26
27
  const generatingId = useId();
27
28
  const id = idProp || generatingId;
28
29
  const { updateModalHeight } = React.useContext(ModalRootContext);
@@ -53,13 +54,13 @@ const warn = warnOnce('ModalPage');
53
54
  ]);
54
55
  return /*#__PURE__*/ React.createElement(ModalPageContext.Provider, {
55
56
  value: contextValue
56
- }, /*#__PURE__*/ React.createElement("div", {
57
+ }, /*#__PURE__*/ React.createElement(RootComponent, {
57
58
  ...restProps,
58
59
  role: "dialog",
59
60
  "aria-modal": "true",
60
61
  "aria-labelledby": contextValue.labelId,
61
62
  id: id,
62
- className: classNames(styles['ModalPage'], platform === Platform.IOS && styles['ModalPage--ios'], isDesktop && styles['ModalPage--desktop'], sizeX === SizeType.REGULAR && 'vkuiInternalModalPage--sizeX-regular', typeof size === 'string' && sizeClassName[size], className)
63
+ baseClassName: classNames(styles['ModalPage'], platform === Platform.IOS && styles['ModalPage--ios'], isDesktop && styles['ModalPage--desktop'], sizeX === SizeType.REGULAR && 'vkuiInternalModalPage--sizeX-regular', typeof size === 'string' && sizeClassName[size])
63
64
  }, /*#__PURE__*/ React.createElement("div", {
64
65
  className: styles['ModalPage__in-wrap'],
65
66
  style: {
@@ -78,7 +79,10 @@ const warn = warnOnce('ModalPage');
78
79
  ref: multiRef(refs.contentElement, getModalContentRef)
79
80
  }, /*#__PURE__*/ React.createElement("div", {
80
81
  className: styles['ModalPage__content-in']
81
- }, children))), isCloseButtonShown && /*#__PURE__*/ React.createElement(ModalDismissButton, {
82
+ }, children)), /*#__PURE__*/ React.createElement("div", {
83
+ ref: refs.bottomInset,
84
+ className: styles['ModalPage__bottom-inset']
85
+ })), isCloseButtonShown && /*#__PURE__*/ React.createElement(ModalDismissButton, {
82
86
  onClick: onClose || modalContext.onClose
83
87
  })))));
84
88
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalPage/ModalPage.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useId } from '../../hooks/useId';\nimport { useOrientationChange } from '../../hooks/useOrientationChange';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { multiRef } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';\nimport { ModalRootContext, useModalRegistry } from '../ModalRoot/ModalRootContext';\nimport { ModalType } from '../ModalRoot/types';\nimport { ModalPageContext } from './ModalPageContext';\nimport styles from './ModalPage.module.css';\n\nconst sizeClassName = {\n s: styles['ModalPage--size-s'],\n m: styles['ModalPage--size-m'],\n l: styles['ModalPage--size-l'],\n};\n\nexport interface ModalPageProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {\n /**\n * Шапка модальной страницы, `<ModalPageHeader />`\n */\n header?: React.ReactNode;\n /**\n * Задаёт контенту максимальную ширину для десктопной версии.\n */\n size?: 's' | 'm' | 'l' | number;\n /**\n * Будет вызвано при начале открытия модалки.\n */\n onOpen?: VoidFunction;\n /**\n * Будет вызвано при окончательном открытии модалки.\n */\n onOpened?: VoidFunction;\n /**\n * Будет вызвано при начале закрытия модалки.\n */\n onClose?: VoidFunction;\n /**\n * Будет вызвано при окончательном закрытии модалки.\n */\n onClosed?: VoidFunction;\n /**\n * Процент, на который изначально будет открыта модальная страница. При `settlingHeight={100}` модальная страница раскрывается на всю высоту.\n */\n settlingHeight?: number;\n /**\n * Если высота контента в модальной странице может поменяться, нужно установить это свойство\n */\n dynamicContentHeight?: boolean;\n getModalContentRef?: React.Ref<HTMLDivElement>;\n /**\n * Скрывает кнопку закрытия (актуально для iOS, т.к. можно отрисовать кнопку закрытия внутри модалки)\n */\n hideCloseButton?: boolean;\n}\n\nconst warn = warnOnce('ModalPage');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalPage\n */\nexport const ModalPage = ({\n children,\n header,\n size: sizeProp = 's',\n onOpen,\n onOpened,\n onClose,\n onClosed,\n settlingHeight, // 75\n dynamicContentHeight,\n getModalContentRef,\n nav,\n id: idProp,\n hideCloseButton = false,\n className,\n ...restProps\n}: ModalPageProps) => {\n const generatingId = useId();\n const id = idProp || generatingId;\n\n const { updateModalHeight } = React.useContext(ModalRootContext);\n\n const platform = usePlatform();\n const orientation = useOrientationChange();\n const { sizeX, isDesktop } = useAdaptivityWithJSMediaQueries();\n\n React.useEffect(() => {\n if (dynamicContentHeight) {\n updateModalHeight();\n }\n }, [children, dynamicContentHeight, orientation, updateModalHeight]);\n\n const isCloseButtonShown = !hideCloseButton && isDesktop;\n const size = isDesktop ? sizeProp : 's';\n\n const modalContext = React.useContext(ModalRootContext);\n const { refs } = useModalRegistry(getNavId({ nav, id }, warn), ModalType.PAGE);\n\n const contextValue = React.useMemo(() => ({ labelId: `${id}-label` }), [id]);\n\n return (\n <ModalPageContext.Provider value={contextValue}>\n <div\n {...restProps}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={contextValue.labelId}\n id={id}\n className={classNames(\n styles['ModalPage'],\n platform === Platform.IOS && styles['ModalPage--ios'],\n isDesktop && styles['ModalPage--desktop'],\n sizeX === SizeType.REGULAR && 'vkuiInternalModalPage--sizeX-regular',\n typeof size === 'string' && sizeClassName[size],\n className,\n )}\n >\n <div\n className={styles['ModalPage__in-wrap']}\n style={{\n maxWidth: typeof size === 'number' ? size : undefined,\n }}\n ref={refs.innerElement}\n >\n <div className={styles['ModalPage__in']}>\n <div className={styles['ModalPage__header']} ref={refs.headerElement}>\n {header}\n </div>\n\n <div className={styles['ModalPage__content-wrap']}>\n <div\n className={styles['ModalPage__content']}\n ref={multiRef<HTMLDivElement>(refs.contentElement, getModalContentRef)}\n >\n <div className={styles['ModalPage__content-in']}>{children}</div>\n </div>\n </div>\n {isCloseButtonShown && <ModalDismissButton onClick={onClose || modalContext.onClose} />}\n </div>\n </div>\n </div>\n </ModalPageContext.Provider>\n );\n};\n"],"names":["React","classNames","useAdaptivityWithJSMediaQueries","useId","useOrientationChange","usePlatform","SizeType","getNavId","Platform","multiRef","warnOnce","ModalDismissButton","ModalRootContext","useModalRegistry","ModalType","ModalPageContext","styles","sizeClassName","s","m","l","warn","ModalPage","children","header","size","sizeProp","onOpen","onOpened","onClose","onClosed","settlingHeight","dynamicContentHeight","getModalContentRef","nav","id","idProp","hideCloseButton","className","restProps","generatingId","updateModalHeight","useContext","platform","orientation","sizeX","isDesktop","useEffect","isCloseButtonShown","modalContext","refs","PAGE","contextValue","useMemo","labelId","Provider","value","div","role","aria-modal","aria-labelledby","IOS","REGULAR","style","maxWidth","undefined","ref","innerElement","headerElement","contentElement","onClick"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/ModalPage/ModalPage.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useId } from '../../hooks/useId';\nimport { useOrientationChange } from '../../hooks/useOrientationChange';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { multiRef } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';\nimport { ModalRootContext, useModalRegistry } from '../ModalRoot/ModalRootContext';\nimport { ModalType } from '../ModalRoot/types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { ModalPageContext } from './ModalPageContext';\nimport styles from './ModalPage.module.css';\n\nconst sizeClassName = {\n s: styles['ModalPage--size-s'],\n m: styles['ModalPage--size-m'],\n l: styles['ModalPage--size-l'],\n};\n\nexport interface ModalPageProps extends HTMLAttributesWithRootRef<HTMLDivElement>, NavIdProps {\n /**\n * Шапка модальной страницы, `<ModalPageHeader />`\n */\n header?: React.ReactNode;\n /**\n * Задаёт контенту максимальную ширину для десктопной версии.\n */\n size?: 's' | 'm' | 'l' | number;\n /**\n * Будет вызвано при начале открытия модалки.\n */\n onOpen?: VoidFunction;\n /**\n * Будет вызвано при окончательном открытии модалки.\n */\n onOpened?: VoidFunction;\n /**\n * Будет вызвано при начале закрытия модалки.\n */\n onClose?: VoidFunction;\n /**\n * Будет вызвано при окончательном закрытии модалки.\n */\n onClosed?: VoidFunction;\n /**\n * Процент, на который изначально будет открыта модальная страница. При `settlingHeight={100}` модальная страница раскрывается на всю высоту.\n */\n settlingHeight?: number;\n /**\n * Если высота контента в модальной странице может поменяться, нужно установить это свойство\n */\n dynamicContentHeight?: boolean;\n getModalContentRef?: React.Ref<HTMLDivElement>;\n /**\n * Скрывает кнопку закрытия (актуально для iOS, т.к. можно отрисовать кнопку закрытия внутри модалки)\n */\n hideCloseButton?: boolean;\n}\n\nconst warn = warnOnce('ModalPage');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalPage\n */\nexport const ModalPage = ({\n children,\n header,\n size: sizeProp = 's',\n onOpen,\n onOpened,\n onClose,\n onClosed,\n settlingHeight, // 75\n dynamicContentHeight,\n getModalContentRef,\n nav,\n id: idProp,\n hideCloseButton = false,\n ...restProps\n}: ModalPageProps) => {\n const generatingId = useId();\n const id = idProp || generatingId;\n\n const { updateModalHeight } = React.useContext(ModalRootContext);\n\n const platform = usePlatform();\n const orientation = useOrientationChange();\n const { sizeX, isDesktop } = useAdaptivityWithJSMediaQueries();\n\n React.useEffect(() => {\n if (dynamicContentHeight) {\n updateModalHeight();\n }\n }, [children, dynamicContentHeight, orientation, updateModalHeight]);\n\n const isCloseButtonShown = !hideCloseButton && isDesktop;\n const size = isDesktop ? sizeProp : 's';\n\n const modalContext = React.useContext(ModalRootContext);\n const { refs } = useModalRegistry(getNavId({ nav, id }, warn), ModalType.PAGE);\n\n const contextValue = React.useMemo(() => ({ labelId: `${id}-label` }), [id]);\n\n return (\n <ModalPageContext.Provider value={contextValue}>\n <RootComponent\n {...restProps}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={contextValue.labelId}\n id={id}\n baseClassName={classNames(\n styles['ModalPage'],\n platform === Platform.IOS && styles['ModalPage--ios'],\n isDesktop && styles['ModalPage--desktop'],\n sizeX === SizeType.REGULAR && 'vkuiInternalModalPage--sizeX-regular',\n typeof size === 'string' && sizeClassName[size],\n )}\n >\n <div\n className={styles['ModalPage__in-wrap']}\n style={{\n maxWidth: typeof size === 'number' ? size : undefined,\n }}\n ref={refs.innerElement}\n >\n <div className={styles['ModalPage__in']}>\n <div className={styles['ModalPage__header']} ref={refs.headerElement}>\n {header}\n </div>\n\n <div className={styles['ModalPage__content-wrap']}>\n <div\n className={styles['ModalPage__content']}\n ref={multiRef<HTMLDivElement>(refs.contentElement, getModalContentRef)}\n >\n <div className={styles['ModalPage__content-in']}>{children}</div>\n </div>\n <div ref={refs.bottomInset} className={styles['ModalPage__bottom-inset']} />\n </div>\n {isCloseButtonShown && <ModalDismissButton onClick={onClose || modalContext.onClose} />}\n </div>\n </div>\n </RootComponent>\n </ModalPageContext.Provider>\n );\n};\n"],"names":["React","classNames","useAdaptivityWithJSMediaQueries","useId","useOrientationChange","usePlatform","SizeType","getNavId","Platform","multiRef","warnOnce","ModalDismissButton","ModalRootContext","useModalRegistry","ModalType","RootComponent","ModalPageContext","styles","sizeClassName","s","m","l","warn","ModalPage","children","header","size","sizeProp","onOpen","onOpened","onClose","onClosed","settlingHeight","dynamicContentHeight","getModalContentRef","nav","id","idProp","hideCloseButton","restProps","generatingId","updateModalHeight","useContext","platform","orientation","sizeX","isDesktop","useEffect","isCloseButtonShown","modalContext","refs","PAGE","contextValue","useMemo","labelId","Provider","value","role","aria-modal","aria-labelledby","baseClassName","IOS","REGULAR","div","className","style","maxWidth","undefined","ref","innerElement","headerElement","contentElement","bottomInset","onClick"],"mappings":"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"}
@@ -123,10 +123,14 @@
123
123
  height: 100%;
124
124
  }
125
125
 
126
- .ModalPage__content-in::after {
127
- content: '';
126
+ /* существует для того, чтобы использовать в расчёте translateY
127
+ * чтобы поднять ModalPage не только на высоту контента, но и на высоту bottom-inset
128
+ * особенно важно для ModalPage c динамической высотой
129
+ */
130
+
131
+ .ModalPage__bottom-inset {
128
132
  height: var(--vkui_internal--safe_area_inset_bottom);
129
- display: block;
133
+ flex-shrink: 0;
130
134
  }
131
135
 
132
136
  /**
@@ -10,7 +10,7 @@ import { setTransformStyle } from '../../lib/styles';
10
10
  import { transitionEvent } from '../../lib/supportEvents';
11
11
  import { rubber } from '../../lib/touch';
12
12
  import { warnOnce } from '../../lib/warnOnce';
13
- import { ConfigProviderContext, WebviewType } from '../ConfigProvider/ConfigProviderContext';
13
+ import { ConfigProviderContext } from '../ConfigProvider/ConfigProviderContext';
14
14
  import { FocusTrap } from '../FocusTrap/FocusTrap';
15
15
  import { Touch } from '../Touch/Touch';
16
16
  import TouchRootContext from '../Touch/TouchContext';
@@ -444,7 +444,7 @@ class ModalRootTouchComponent extends React.Component {
444
444
  }, /*#__PURE__*/ React.createElement(ModalRootContext.Provider, {
445
445
  value: this.modalRootContext
446
446
  }, /*#__PURE__*/ React.createElement(Touch, {
447
- className: classNames(styles['ModalRoot'], this.props.configProvider?.webviewType === WebviewType.VKAPPS && styles['ModalRoot--vkapps'], touchDown && classNames(styles['ModalRoot--touched'], 'vkuiInternalModalRoot--touched'), !!(enteringModal || exitingModal) && classNames(styles['ModalRoot--switching'], 'vkuiInternalModalRoot--switching')),
447
+ className: classNames(styles['ModalRoot'], this.props.configProvider?.hasCustomPanelHeaderAfter && styles['ModalRoot--hasCustomPanelHeaderAfterSlot'], touchDown && classNames(styles['ModalRoot--touched'], 'vkuiInternalModalRoot--touched'), !!(enteringModal || exitingModal) && classNames(styles['ModalRoot--switching'], 'vkuiInternalModalRoot--switching')),
448
448
  onMove: this.onTouchMove,
449
449
  onEnd: this.onTouchEnd,
450
450
  onScroll: this.onScroll
@@ -497,8 +497,10 @@ export const ModalRootTouch = withContext(withPlatform(withDOM(withModalManager(
497
497
  }
498
498
  }
499
499
  function initPageModal(modalState) {
500
- const { contentElement } = modalState;
501
- const contentHeight = (contentElement?.firstElementChild).offsetHeight;
500
+ const { contentElement, bottomInset } = modalState;
501
+ const contentElementHeight = (contentElement?.firstElementChild).offsetHeight;
502
+ const bottomInsetHeight = bottomInset?.offsetHeight || 0;
503
+ const contentHeight = contentElementHeight + bottomInsetHeight;
502
504
  let prevTranslateY = modalState.translateY;
503
505
  modalState.expandable = contentHeight > (contentElement?.clientHeight ?? 0) || modalState.settlingHeight === 100 || modalState.expanded;
504
506
  let collapsed = false;
@@ -1 +1 @@
1
- {"version":3,"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 { ConfigProviderContext, WebviewType } 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 { ModalRootWithDOMProps, 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\ninterface ModalRootState {\n touchDown?: boolean;\n dragging?: boolean;\n modalOpenedLog: string[];\n}\n\nclass ModalRootTouchComponent extends React.Component<\n ModalRootWithDOMProps & DOMProps & ModalTransitionProps,\n ModalRootState\n> {\n constructor(props: ModalRootWithDOMProps & ModalTransitionProps) {\n super(props);\n this.state = {\n touchDown: false,\n dragging: false,\n modalOpenedLog: [],\n };\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: this.updateModalHeight,\n registerModal: ({ id, ...data }) => Object.assign(this.props.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(): Document {\n return this.props.document as Document;\n }\n\n get window(): Window {\n return this.props.window as Window;\n }\n\n getModals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n componentDidMount() {\n // Отслеживаем изменение размеров viewport\n this.window?.addEventListener('resize', this.updateModalHeight, false);\n }\n\n componentWillUnmount() {\n this.toggleDocumentScrolling(true);\n this.window.removeEventListener('resize', this.updateModalHeight, false);\n }\n\n componentDidUpdate(prevProps: ModalRootWithDOMProps & 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.props.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 checkPageContentHeight() {\n const modalState = this.props.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.props.getModalState(this.props.activeModal);\n\n if (modalState && modalState.type === ModalType.PAGE) {\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.props.getModalState(id);\n\n if (!prevModalState) {\n id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');\n return;\n }\n if (!this.state.modalOpenedLog.length) {\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, id],\n }));\n }\n const nextModalState = this.props.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 this.setState({ modalOpenedLog: [] });\n prevModalState.translateY = undefined;\n } else if (nextModalState.id && !this.state.modalOpenedLog.includes(nextModalState.id)) {\n nextModalState.translateY = undefined;\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, nextModalState.id!],\n }));\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n if (this.props.exitingModal) {\n return;\n }\n const modalState = this.props.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.props.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.props.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 &&\n classNames(styles['ModalRoot--touched'], 'vkuiInternalModalRoot--touched'),\n !!(enteringModal || exitingModal) &&\n classNames(styles['ModalRoot--switching'], 'vkuiInternalModalRoot--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.props.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.props.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 && 'vkuiInternalModalRoot__modal--dragging',\n\n isPage && modalState.expandable && 'vkuiInternalModalRoot__modal--expandable',\n isPage && modalState.collapsed && 'vkuiInternalModalRoot__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(\n withDOM<ModalRootWithDOMProps>(withModalManager(initModal)(ModalRootTouchComponent)),\n ),\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) ||\n modalState.settlingHeight === 100 ||\n modalState.expanded;\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"],"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","styles","warn","numberInRange","number","range","rangeTranslate","ModalRootTouchComponent","Component","constructor","props","state","touchDown","dragging","modalOpenedLog","maskElementRef","createRef","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","getModalState","onClose","onExit","isInsideModal","frameIds","documentScrolling","viewportRef","maskAnimationFrame","undefined","restoreFocusTo","timeout","platform","IOS","document","window","getModals","Children","toArray","children","componentDidMount","addEventListener","componentWillUnmount","toggleDocumentScrolling","removeEventListener","componentDidUpdate","prevProps","exitingModal","closeModal","enteringModal","enteringState","onEnter","waitTransitionFinish","innerElement","style","transitionDelay","onEntered","delayEnter","animateTranslate","translateY","activeModal","activeElement","focus","enabled","preventTouch","passive","event","originalEvent","preventDefault","checkPageContentHeight","modalState","type","PAGE","modalElement","prevModalState","initPageModal","currentModalState","needAnimate","expandable","translateYFrom","requestAnimationFrame","setState","length","prevState","nextModalState","nextIsPage","prevIsPage","onExited","exitTranslate","isBack","setMaskOpacity","includes","onTouchMove","e","onPageTouchMove","CARD","onCardTouchMove","shiftY","target","isY","current","contains","stopPropagation","contentScrolled","collapsed","expanded","touchStartContentScrollTop","contentElement","scrollTop","touchMovePositive","headerElement","shiftYPercent","innerHeight","shiftYCurrent","touchShiftYPercent","translateYCurrent","offsetHeight","Math","max","onTouchEnd","onPageTouchEnd","onCardTouchEnd","startY","setStateCallback","shiftYEndPercent","expectTranslateY","duration","settlingHeight","expandedRange","collapsedRange","hiddenRange","hidden","onScroll","contentScrollStopTimeout","clearTimeout","setTimeout","eventHandler","supported","onceHandler","name","percent","frameId","cancelAnimationFrame","forceOpacity","history","opacity","toString","render","Provider","value","className","configProvider","webviewType","VKAPPS","onMove","onEnd","div","onClick","ref","map","Modal","modalId","_modalState","isPage","key","getRootRef","restoreFocus","ModalRootTouch","initModal","initCardModal","process","env","NODE_ENV","contentHeight","firstElementChild","prevTranslateY","clientHeight","shiftHalf","visiblePart","headerHeight","height","parentElement"],"mappings":"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"}
1
+ {"version":3,"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 { ConfigProviderContext } 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 { ModalRootWithDOMProps, 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\ninterface ModalRootState {\n touchDown?: boolean;\n dragging?: boolean;\n modalOpenedLog: string[];\n}\n\nclass ModalRootTouchComponent extends React.Component<\n ModalRootWithDOMProps & DOMProps & ModalTransitionProps,\n ModalRootState\n> {\n constructor(props: ModalRootWithDOMProps & ModalTransitionProps) {\n super(props);\n this.state = {\n touchDown: false,\n dragging: false,\n modalOpenedLog: [],\n };\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: this.updateModalHeight,\n registerModal: ({ id, ...data }) => Object.assign(this.props.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(): Document {\n return this.props.document as Document;\n }\n\n get window(): Window {\n return this.props.window as Window;\n }\n\n getModals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n componentDidMount() {\n // Отслеживаем изменение размеров viewport\n this.window?.addEventListener('resize', this.updateModalHeight, false);\n }\n\n componentWillUnmount() {\n this.toggleDocumentScrolling(true);\n this.window.removeEventListener('resize', this.updateModalHeight, false);\n }\n\n componentDidUpdate(prevProps: ModalRootWithDOMProps & 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.props.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 checkPageContentHeight() {\n const modalState = this.props.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.props.getModalState(this.props.activeModal);\n\n if (modalState && modalState.type === ModalType.PAGE) {\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.props.getModalState(id);\n\n if (!prevModalState) {\n id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');\n return;\n }\n if (!this.state.modalOpenedLog.length) {\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, id],\n }));\n }\n const nextModalState = this.props.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 this.setState({ modalOpenedLog: [] });\n prevModalState.translateY = undefined;\n } else if (nextModalState.id && !this.state.modalOpenedLog.includes(nextModalState.id)) {\n nextModalState.translateY = undefined;\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, nextModalState.id!],\n }));\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n if (this.props.exitingModal) {\n return;\n }\n const modalState = this.props.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.props.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.props.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?.hasCustomPanelHeaderAfter &&\n styles['ModalRoot--hasCustomPanelHeaderAfterSlot'],\n touchDown &&\n classNames(styles['ModalRoot--touched'], 'vkuiInternalModalRoot--touched'),\n !!(enteringModal || exitingModal) &&\n classNames(styles['ModalRoot--switching'], 'vkuiInternalModalRoot--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.props.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.props.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 && 'vkuiInternalModalRoot__modal--dragging',\n\n isPage && modalState.expandable && 'vkuiInternalModalRoot__modal--expandable',\n isPage && modalState.collapsed && 'vkuiInternalModalRoot__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(\n withDOM<ModalRootWithDOMProps>(withModalManager(initModal)(ModalRootTouchComponent)),\n ),\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, bottomInset } = modalState;\n const contentElementHeight = (contentElement?.firstElementChild as HTMLElement).offsetHeight;\n const bottomInsetHeight = bottomInset?.offsetHeight || 0;\n const contentHeight = contentElementHeight + bottomInsetHeight;\n let prevTranslateY = modalState.translateY;\n\n modalState.expandable =\n contentHeight > (contentElement?.clientHeight ?? 0) ||\n modalState.settlingHeight === 100 ||\n modalState.expanded;\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"],"names":["React","classNames","clamp","withContext","withPlatform","withDOM","getNavId","Platform","setTransformStyle","transitionEvent","rubber","warnOnce","ConfigProviderContext","FocusTrap","Touch","TouchRootContext","ModalRootContext","MODAL_PAGE_DEFAULT_PERCENT_HEIGHT","ModalType","withModalManager","styles","warn","numberInRange","number","range","rangeTranslate","ModalRootTouchComponent","Component","constructor","props","state","touchDown","dragging","modalOpenedLog","maskElementRef","createRef","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","getModalState","onClose","onExit","isInsideModal","frameIds","documentScrolling","viewportRef","maskAnimationFrame","undefined","restoreFocusTo","timeout","platform","IOS","document","window","getModals","Children","toArray","children","componentDidMount","addEventListener","componentWillUnmount","toggleDocumentScrolling","removeEventListener","componentDidUpdate","prevProps","exitingModal","closeModal","enteringModal","enteringState","onEnter","waitTransitionFinish","innerElement","style","transitionDelay","onEntered","delayEnter","animateTranslate","translateY","activeModal","activeElement","focus","enabled","preventTouch","passive","event","originalEvent","preventDefault","checkPageContentHeight","modalState","type","PAGE","modalElement","prevModalState","initPageModal","currentModalState","needAnimate","expandable","translateYFrom","requestAnimationFrame","setState","length","prevState","nextModalState","nextIsPage","prevIsPage","onExited","exitTranslate","isBack","setMaskOpacity","includes","onTouchMove","e","onPageTouchMove","CARD","onCardTouchMove","shiftY","target","isY","current","contains","stopPropagation","contentScrolled","collapsed","expanded","touchStartContentScrollTop","contentElement","scrollTop","touchMovePositive","headerElement","shiftYPercent","innerHeight","shiftYCurrent","touchShiftYPercent","translateYCurrent","offsetHeight","Math","max","onTouchEnd","onPageTouchEnd","onCardTouchEnd","startY","setStateCallback","shiftYEndPercent","expectTranslateY","duration","settlingHeight","expandedRange","collapsedRange","hiddenRange","hidden","onScroll","contentScrollStopTimeout","clearTimeout","setTimeout","eventHandler","supported","onceHandler","name","percent","frameId","cancelAnimationFrame","forceOpacity","history","opacity","toString","render","Provider","value","className","configProvider","hasCustomPanelHeaderAfter","onMove","onEnd","div","onClick","ref","map","Modal","modalId","_modalState","isPage","key","getRootRef","restoreFocus","ModalRootTouch","initModal","initCardModal","process","env","NODE_ENV","bottomInset","contentElementHeight","firstElementChild","bottomInsetHeight","contentHeight","prevTranslateY","clientHeight","shiftHalf","visiblePart","headerHeight","height","parentElement"],"mappings":"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"}
@@ -41,7 +41,7 @@
41
41
  top: var(--vkui_internal--safe_area_inset_top);
42
42
  }
43
43
 
44
- :not(.ModalRoot--desktop).ModalRoot--vkapps .ModalRoot__viewport {
44
+ :not(.ModalRoot--desktop).ModalRoot--hasCustomPanelHeaderAfterSlot .ModalRoot__viewport {
45
45
  top: calc(
46
46
  var(--vkui_internal--safe_area_inset_top) + var(--vkui--size_panel_header_height--regular)
47
47
  );
@@ -33,7 +33,8 @@ export const ModalRootContext = /*#__PURE__*/ React.createContext({
33
33
  modalElement: (e)=>elements.modalElement = e,
34
34
  innerElement: (e)=>elements.innerElement = e,
35
35
  headerElement: (e)=>elements.headerElement = e,
36
- contentElement: (e)=>elements.contentElement = e
36
+ contentElement: (e)=>elements.contentElement = e,
37
+ bottomInset: (e)=>elements.bottomInset = e
37
38
  }).current;
38
39
  return {
39
40
  refs