@vkontakte/vkui 7.1.3 → 7.2.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 (1131) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +2 -2
  2. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  3. package/dist/components/Accordion/Accordion.js.map +1 -1
  4. package/dist/components/ActionSheet/ActionSheet.d.ts +1 -1
  5. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  6. package/dist/components/ActionSheet/ActionSheet.js +1 -1
  7. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  8. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts.map +1 -1
  9. package/dist/components/ActionSheet/ActionSheetDropdownMenu.d.ts +1 -1
  10. package/dist/components/ActionSheet/ActionSheetDropdownMenu.d.ts.map +1 -1
  11. package/dist/components/ActionSheet/ActionSheetDropdownMenu.js +10 -4
  12. package/dist/components/ActionSheet/ActionSheetDropdownMenu.js.map +1 -1
  13. package/dist/components/ActionSheet/ActionSheetDropdownSheet.d.ts +1 -1
  14. package/dist/components/ActionSheet/ActionSheetDropdownSheet.d.ts.map +1 -1
  15. package/dist/components/ActionSheet/ActionSheetDropdownSheet.js +10 -4
  16. package/dist/components/ActionSheet/ActionSheetDropdownSheet.js.map +1 -1
  17. package/dist/components/ActionSheet/types.d.ts +4 -0
  18. package/dist/components/ActionSheet/types.d.ts.map +1 -1
  19. package/dist/components/ActionSheet/types.js.map +1 -1
  20. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  21. package/dist/components/ActionSheetItem/helpers.d.ts.map +1 -1
  22. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts.map +1 -1
  23. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts.map +1 -1
  24. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts.map +1 -1
  25. package/dist/components/Alert/Alert.d.ts +14 -2
  26. package/dist/components/Alert/Alert.d.ts.map +1 -1
  27. package/dist/components/Alert/Alert.js +15 -104
  28. package/dist/components/Alert/Alert.js.map +1 -1
  29. package/dist/components/Alert/AlertAction.d.ts.map +1 -1
  30. package/dist/components/Alert/AlertActions.d.ts.map +1 -1
  31. package/dist/components/Alert/AlertBase.d.ts +7 -0
  32. package/dist/components/Alert/AlertBase.d.ts.map +1 -0
  33. package/dist/components/Alert/AlertBase.js +131 -0
  34. package/dist/components/Alert/AlertBase.js.map +1 -0
  35. package/dist/components/Alert/AlertTypography.d.ts +2 -1
  36. package/dist/components/Alert/AlertTypography.d.ts.map +1 -1
  37. package/dist/components/Alert/AlertTypography.js.map +1 -1
  38. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  39. package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
  40. package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js +1 -1
  41. package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -1
  42. package/dist/components/AppRoot/ScrollContext.d.ts +1 -0
  43. package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
  44. package/dist/components/AppRoot/ScrollContext.js +127 -39
  45. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  46. package/dist/components/AppRoot/helpers.d.ts.map +1 -1
  47. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts.map +1 -1
  48. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +4 -1
  49. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  50. package/dist/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
  51. package/dist/components/Badge/Badge.d.ts.map +1 -1
  52. package/dist/components/Banner/Banner.d.ts.map +1 -1
  53. package/dist/components/Button/Button.d.ts.map +1 -1
  54. package/dist/components/ButtonGroup/ButtonGroup.d.ts +4 -1
  55. package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  56. package/dist/components/ButtonGroup/ButtonGroup.js +1 -0
  57. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  58. package/dist/components/Calendar/Calendar.d.ts +7 -2
  59. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  60. package/dist/components/Calendar/Calendar.js +98 -92
  61. package/dist/components/Calendar/Calendar.js.map +1 -1
  62. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  63. package/dist/components/CalendarDay/CalendarDay.js +1 -3
  64. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  65. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  66. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  67. package/dist/components/CalendarHeader/CalendarHeader.js +1 -3
  68. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  69. package/dist/components/CalendarRange/CalendarRange.d.ts +3 -2
  70. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  71. package/dist/components/CalendarRange/CalendarRange.js +102 -108
  72. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  73. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  74. package/dist/components/Card/Card.d.ts.map +1 -1
  75. package/dist/components/CardGrid/CardGrid.d.ts.map +1 -1
  76. package/dist/components/CardScroll/CardScroll.d.ts +5 -1
  77. package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
  78. package/dist/components/CardScroll/CardScroll.js +32 -29
  79. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  80. package/dist/components/CarouselBase/CarouselBase.d.ts.map +1 -1
  81. package/dist/components/CarouselBase/CarouselBase.js +71 -46
  82. package/dist/components/CarouselBase/CarouselBase.js.map +1 -1
  83. package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -1
  84. package/dist/components/CarouselBase/helpers.d.ts +20 -5
  85. package/dist/components/CarouselBase/helpers.d.ts.map +1 -1
  86. package/dist/components/CarouselBase/helpers.js +70 -44
  87. package/dist/components/CarouselBase/helpers.js.map +1 -1
  88. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts.map +1 -1
  89. package/dist/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  90. package/dist/components/CellButton/CellButton.d.ts.map +1 -1
  91. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +300 -0
  92. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts.map +1 -0
  93. package/dist/components/CellButtonGroup/CellButtonGroup.js +20 -0
  94. package/dist/components/CellButtonGroup/CellButtonGroup.js.map +1 -0
  95. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.d.ts +8 -0
  96. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.d.ts.map +1 -0
  97. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js +20 -0
  98. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js.map +1 -0
  99. package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  100. package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  101. package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
  102. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts.map +1 -1
  103. package/dist/components/ChipsInputBase/helpers.d.ts.map +1 -1
  104. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  105. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  106. package/dist/components/ChipsSelect/ChipsSelect.js +3 -1
  107. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  108. package/dist/components/ChipsSelect/constants.d.ts.map +1 -1
  109. package/dist/components/ChipsSelect/useChipsSelect.d.ts +3 -2
  110. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  111. package/dist/components/ChipsSelect/useChipsSelect.js +9 -3
  112. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  113. package/dist/components/Clickable/Clickable.d.ts +1 -1
  114. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  115. package/dist/components/Clickable/Clickable.js +28 -28
  116. package/dist/components/Clickable/Clickable.js.map +1 -1
  117. package/dist/components/Clickable/RealClickable.d.ts.map +1 -1
  118. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.d.ts.map +1 -1
  119. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
  120. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  121. package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
  122. package/dist/components/ConfigProvider/ConfigProvider.js +5 -2
  123. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  124. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +11 -1
  125. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts.map +1 -1
  126. package/dist/components/ConfigProvider/ConfigProviderContext.js +12 -7
  127. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  128. package/dist/components/ContentCard/ContentCard.d.ts +6 -1
  129. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
  130. package/dist/components/ContentCard/ContentCard.js +6 -4
  131. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  132. package/dist/components/Counter/Counter.d.ts.map +1 -1
  133. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  134. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  135. package/dist/components/CustomSelect/CustomSelect.js +105 -69
  136. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  137. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  138. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
  139. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  140. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -1
  141. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  142. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts.map +1 -1
  143. package/dist/components/DateInput/DateInput.d.ts +11 -2
  144. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  145. package/dist/components/DateInput/DateInput.js +108 -82
  146. package/dist/components/DateInput/DateInput.js.map +1 -1
  147. package/dist/components/DateInput/hooks.d.ts +15 -0
  148. package/dist/components/DateInput/hooks.d.ts.map +1 -0
  149. package/dist/components/DateInput/hooks.js +54 -0
  150. package/dist/components/DateInput/hooks.js.map +1 -0
  151. package/dist/components/DateRangeInput/DateRangeInput.d.ts +2 -2
  152. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  153. package/dist/components/DateRangeInput/DateRangeInput.js +100 -82
  154. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  155. package/dist/components/DirectionProvider/DirectionProvider.d.ts +13 -0
  156. package/dist/components/DirectionProvider/DirectionProvider.d.ts.map +1 -0
  157. package/dist/components/DirectionProvider/DirectionProvider.js +15 -0
  158. package/dist/components/DirectionProvider/DirectionProvider.js.map +1 -0
  159. package/dist/components/Div/Div.d.ts.map +1 -1
  160. package/dist/components/DropdownIcon/DropdownIcon.d.ts.map +1 -1
  161. package/dist/components/Epic/Epic.d.ts.map +1 -1
  162. package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
  163. package/dist/components/File/File.d.ts.map +1 -1
  164. package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  165. package/dist/components/Flex/Flex.d.ts.map +1 -1
  166. package/dist/components/Flex/Flex.js +3 -5
  167. package/dist/components/Flex/Flex.js.map +1 -1
  168. package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  169. package/dist/components/FloatingArrow/DefaultIcon.d.ts.map +1 -1
  170. package/dist/components/FloatingArrow/FloatingArrow.d.ts.map +1 -1
  171. package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  172. package/dist/components/Footer/Footer.d.ts.map +1 -1
  173. package/dist/components/FormField/FormField.d.ts.map +1 -1
  174. package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts.map +1 -1
  175. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
  176. package/dist/components/FormStatus/FormStatus.d.ts.map +1 -1
  177. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  178. package/dist/components/Gradient/Gradient.d.ts.map +1 -1
  179. package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.d.ts.map +1 -1
  180. package/dist/components/Header/Header.d.ts.map +1 -1
  181. package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
  182. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
  183. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +13 -1
  184. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  185. package/dist/components/HorizontalScroll/HorizontalScroll.js +32 -24
  186. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  187. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  188. package/dist/components/ImageBase/ImageBase.d.ts +5 -0
  189. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  190. package/dist/components/ImageBase/ImageBase.js +6 -4
  191. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  192. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts.map +1 -1
  193. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.d.ts.map +1 -1
  194. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +3 -4
  195. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  196. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts +1 -0
  197. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts.map +1 -1
  198. package/dist/components/ImageBase/ImageBaseOverlay/hooks.js +25 -0
  199. package/dist/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  200. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts +4 -0
  201. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts.map +1 -1
  202. package/dist/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  203. package/dist/components/InfoRow/InfoRow.d.ts.map +1 -1
  204. package/dist/components/Input/Input.d.ts.map +1 -1
  205. package/dist/components/InputLike/InputLikeDivider.d.ts.map +1 -1
  206. package/dist/components/Link/Link.d.ts.map +1 -1
  207. package/dist/components/List/List.d.ts.map +1 -1
  208. package/dist/components/Mark/Mark.d.ts.map +1 -1
  209. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
  210. package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
  211. package/dist/components/ModalCard/ModalCard.js +2 -1
  212. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  213. package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
  214. package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
  215. package/dist/components/ModalCard/ModalCardInternal.js +4 -2
  216. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
  217. package/dist/components/ModalCard/types.d.ts +1 -1
  218. package/dist/components/ModalCard/types.d.ts.map +1 -1
  219. package/dist/components/ModalCard/types.js.map +1 -1
  220. package/dist/components/ModalCardBase/ModalCardBase.d.ts +9 -1
  221. package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
  222. package/dist/components/ModalCardBase/ModalCardBase.js +33 -8
  223. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  224. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +5 -3
  225. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
  226. package/dist/components/ModalDismissButton/ModalDismissButton.js +7 -7
  227. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  228. package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
  229. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +17 -0
  230. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts.map +1 -0
  231. package/dist/components/ModalOutsideButton/ModalOutsideButton.js +30 -0
  232. package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -0
  233. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.d.ts +6 -0
  234. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.d.ts.map +1 -0
  235. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.js +22 -0
  236. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.js.map +1 -0
  237. package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -1
  238. package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
  239. package/dist/components/ModalPage/ModalPageBase.d.ts +8 -0
  240. package/dist/components/ModalPage/ModalPageBase.d.ts.map +1 -0
  241. package/dist/components/ModalPage/ModalPageBase.js +66 -0
  242. package/dist/components/ModalPage/ModalPageBase.js.map +1 -0
  243. package/dist/components/ModalPage/ModalPageInternal.d.ts +1 -1
  244. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
  245. package/dist/components/ModalPage/ModalPageInternal.js +24 -32
  246. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
  247. package/dist/components/ModalPage/types.d.ts +12 -1
  248. package/dist/components/ModalPage/types.d.ts.map +1 -1
  249. package/dist/components/ModalPage/types.js.map +1 -1
  250. package/dist/components/ModalPageContent/ModalPageContent.d.ts.map +1 -1
  251. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -1
  252. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  253. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  254. package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.d.ts.map +1 -1
  255. package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
  256. package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
  257. package/dist/components/NavTransitionContext/NavTransitionContext.d.ts.map +1 -1
  258. package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts.map +1 -1
  259. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +2 -2
  260. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  261. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +22 -8
  262. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  263. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  264. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js +12 -3
  265. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  266. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.d.ts +7 -0
  267. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.d.ts.map +1 -0
  268. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.js +9 -0
  269. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.js.map +1 -0
  270. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  271. package/dist/components/Pagination/Pagination.js +5 -2
  272. package/dist/components/Pagination/Pagination.js.map +1 -1
  273. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
  274. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts.map +1 -1
  275. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts.map +1 -1
  276. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts.map +1 -1
  277. package/dist/components/Panel/Panel.d.ts.map +1 -1
  278. package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
  279. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
  280. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +3 -1
  281. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  282. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  283. package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts.map +1 -1
  284. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts.map +1 -1
  285. package/dist/components/PanelHeaderContext/PanelHeaderContext.d.ts.map +1 -1
  286. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
  287. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts.map +1 -1
  288. package/dist/components/Placeholder/Placeholder.d.ts.map +1 -1
  289. package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
  290. package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
  291. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +15 -2
  292. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
  293. package/dist/components/PopoutWrapper/PopoutWrapper.js +10 -2
  294. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  295. package/dist/components/Popover/Popover.d.ts +1 -1
  296. package/dist/components/Popover/Popover.d.ts.map +1 -1
  297. package/dist/components/Popover/Popover.js +4 -4
  298. package/dist/components/Popover/Popover.js.map +1 -1
  299. package/dist/components/Popover/usePopover.d.ts +1 -1
  300. package/dist/components/Popover/usePopover.d.ts.map +1 -1
  301. package/dist/components/Popover/usePopover.js +69 -44
  302. package/dist/components/Popover/usePopover.js.map +1 -1
  303. package/dist/components/Popper/Popper.d.ts +2 -2
  304. package/dist/components/Popper/Popper.d.ts.map +1 -1
  305. package/dist/components/Popper/Popper.js +18 -5
  306. package/dist/components/Popper/Popper.js.map +1 -1
  307. package/dist/components/Progress/Progress.d.ts +7 -3
  308. package/dist/components/Progress/Progress.d.ts.map +1 -1
  309. package/dist/components/Progress/Progress.js +30 -11
  310. package/dist/components/Progress/Progress.js.map +1 -1
  311. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  312. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts.map +1 -1
  313. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  314. package/dist/components/Removable/Removable.d.ts.map +1 -1
  315. package/dist/components/Removable/Removable.js +8 -4
  316. package/dist/components/Removable/Removable.js.map +1 -1
  317. package/dist/components/RichCell/RichCellIcon/RichCellIcon.d.ts.map +1 -1
  318. package/dist/components/Root/Root.d.ts.map +1 -1
  319. package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
  320. package/dist/components/ScreenSpinner/Icon48CancelCircle.d.ts.map +1 -1
  321. package/dist/components/ScreenSpinner/Icon48DoneOutline.d.ts.map +1 -1
  322. package/dist/components/ScreenSpinner/ScreenSpinner.js +1 -0
  323. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  324. package/dist/components/ScrollArrow/ScrollArrow.d.ts.map +1 -1
  325. package/dist/components/ScrollArrow/ScrollArrow.js +4 -1
  326. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  327. package/dist/components/Search/Search.d.ts +9 -1
  328. package/dist/components/Search/Search.d.ts.map +1 -1
  329. package/dist/components/Search/Search.js +9 -2
  330. package/dist/components/Search/Search.js.map +1 -1
  331. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  332. package/dist/components/SegmentedControl/SegmentedControl.js +10 -7
  333. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  334. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  335. package/dist/components/Select/Select.d.ts.map +1 -1
  336. package/dist/components/SelectMimicry/SelectMimicry.d.ts.map +1 -1
  337. package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  338. package/dist/components/Separator/Separator.d.ts.map +1 -1
  339. package/dist/components/SimpleCell/Chevron/Chevron.d.ts.map +1 -1
  340. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  341. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  342. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  343. package/dist/components/Slider/Slider.d.ts +1 -1
  344. package/dist/components/Slider/Slider.d.ts.map +1 -1
  345. package/dist/components/Slider/Slider.js +22 -18
  346. package/dist/components/Slider/Slider.js.map +1 -1
  347. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts.map +1 -1
  348. package/dist/components/Slider/SliderThumb/SliderThumb.js +5 -1
  349. package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  350. package/dist/components/Slider/helpers.d.ts.map +1 -1
  351. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
  352. package/dist/components/Snackbar/Snackbar.js +6 -3
  353. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  354. package/dist/components/Snackbar/utils.d.ts +3 -2
  355. package/dist/components/Snackbar/utils.d.ts.map +1 -1
  356. package/dist/components/Snackbar/utils.js +11 -8
  357. package/dist/components/Snackbar/utils.js.map +1 -1
  358. package/dist/components/Spacing/Spacing.d.ts.map +1 -1
  359. package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
  360. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  361. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts.map +1 -1
  362. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
  363. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
  364. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  365. package/dist/components/Switch/Switch.d.ts.map +1 -1
  366. package/dist/components/Switch/Switch.js +4 -1
  367. package/dist/components/Switch/Switch.js.map +1 -1
  368. package/dist/components/Tabbar/Tabbar.d.ts.map +1 -1
  369. package/dist/components/TabbarItem/TabbarItem.d.ts.map +1 -1
  370. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  371. package/dist/components/Tabs/Tabs.js +3 -1
  372. package/dist/components/Tabs/Tabs.js.map +1 -1
  373. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  374. package/dist/components/Tappable/Ripple.d.ts.map +1 -1
  375. package/dist/components/Tappable/Tappable.d.ts.map +1 -1
  376. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  377. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  378. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  379. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  380. package/dist/components/Tooltip/Tooltip.js +8 -101
  381. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  382. package/dist/components/Tooltip/useTooltip.d.ts +14 -0
  383. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -0
  384. package/dist/components/Tooltip/useTooltip.js +126 -0
  385. package/dist/components/Tooltip/useTooltip.js.map +1 -0
  386. package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
  387. package/dist/components/Touch/Touch.d.ts.map +1 -1
  388. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  389. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  390. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts.map +1 -1
  391. package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  392. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  393. package/dist/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  394. package/dist/components/Typography/Subhead/Subhead.d.ts.map +1 -1
  395. package/dist/components/Typography/Text/Text.d.ts.map +1 -1
  396. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  397. package/dist/components/Typography/Typography.d.ts.map +1 -1
  398. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
  399. package/dist/components/UsersStack/UsersStack.d.ts +1 -1
  400. package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
  401. package/dist/components/UsersStack/UsersStack.js +5 -9
  402. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  403. package/dist/components/View/View.d.ts.map +1 -1
  404. package/dist/components/View/utils.d.ts.map +1 -1
  405. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  406. package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
  407. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
  408. package/dist/components.css +1 -1
  409. package/dist/components.css.map +1 -1
  410. package/dist/context/CalendarDirectionContext.d.ts +1 -1
  411. package/dist/context/CalendarDirectionContext.d.ts.map +1 -1
  412. package/dist/context/CalendarDirectionContext.js.map +1 -1
  413. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  414. package/dist/cssm/components/Accordion/Accordion.module.css +6 -6
  415. package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -1
  416. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  417. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +9 -9
  418. package/dist/cssm/components/ActionSheet/ActionSheetDropdownMenu.js +7 -3
  419. package/dist/cssm/components/ActionSheet/ActionSheetDropdownMenu.js.map +1 -1
  420. package/dist/cssm/components/ActionSheet/ActionSheetDropdownSheet.js +7 -3
  421. package/dist/cssm/components/ActionSheet/ActionSheetDropdownSheet.js.map +1 -1
  422. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  423. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +18 -18
  424. package/dist/cssm/components/Alert/Alert.js +12 -92
  425. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  426. package/dist/cssm/components/Alert/Alert.module.css +27 -29
  427. package/dist/cssm/components/Alert/AlertBase.js +111 -0
  428. package/dist/cssm/components/Alert/AlertBase.js.map +1 -0
  429. package/dist/cssm/components/Alert/AlertTypography.js.map +1 -1
  430. package/dist/cssm/components/AppRoot/AppRoot.module.css +2 -2
  431. package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js +1 -1
  432. package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -1
  433. package/dist/cssm/components/AppRoot/ScrollContext.js +129 -37
  434. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  435. package/dist/cssm/components/AspectRatio/AspectRatio.module.css +2 -2
  436. package/dist/cssm/components/Avatar/Avatar.module.css +1 -1
  437. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +8 -3
  438. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +4 -1
  439. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  440. package/dist/cssm/components/Banner/Banner.module.css +19 -19
  441. package/dist/cssm/components/Button/Button.module.css +11 -11
  442. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -0
  443. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  444. package/dist/cssm/components/Calendar/Calendar.js +96 -92
  445. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  446. package/dist/cssm/components/Calendar/Calendar.module.css +8 -8
  447. package/dist/cssm/components/CalendarDay/CalendarDay.js +1 -3
  448. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  449. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +11 -11
  450. package/dist/cssm/components/CalendarDays/CalendarDays.module.css +7 -7
  451. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +1 -3
  452. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  453. package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +4 -4
  454. package/dist/cssm/components/CalendarRange/CalendarRange.js +103 -110
  455. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  456. package/dist/cssm/components/CalendarRange/CalendarRange.module.css +5 -5
  457. package/dist/cssm/components/CalendarTime/CalendarTime.module.css +1 -1
  458. package/dist/cssm/components/Card/Card.module.css +7 -7
  459. package/dist/cssm/components/CardGrid/CardGrid.module.css +3 -3
  460. package/dist/cssm/components/CardScroll/CardScroll.js +30 -28
  461. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  462. package/dist/cssm/components/CardScroll/CardScroll.module.css +16 -16
  463. package/dist/cssm/components/CarouselBase/CarouselBase.js +71 -44
  464. package/dist/cssm/components/CarouselBase/CarouselBase.js.map +1 -1
  465. package/dist/cssm/components/CarouselBase/CarouselBase.module.css +11 -11
  466. package/dist/cssm/components/CarouselBase/helpers.js +70 -44
  467. package/dist/cssm/components/CarouselBase/helpers.js.map +1 -1
  468. package/dist/cssm/components/Cell/Cell.module.css +18 -2
  469. package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +2 -2
  470. package/dist/cssm/components/CellButton/CellButton.module.css +8 -8
  471. package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js +20 -0
  472. package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js.map +1 -0
  473. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js +15 -0
  474. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js.map +1 -0
  475. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.module.css +5 -0
  476. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +2 -2
  477. package/dist/cssm/components/ChipsInputBase/Chip/Chip.module.css +16 -16
  478. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +12 -12
  479. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -1
  480. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  481. package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +1 -1
  482. package/dist/cssm/components/ChipsSelect/useChipsSelect.js +9 -3
  483. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  484. package/dist/cssm/components/Clickable/Clickable.js +29 -22
  485. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  486. package/dist/cssm/components/Clickable/Clickable.module.css +1 -1
  487. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
  488. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  489. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +5 -2
  490. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  491. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +12 -7
  492. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  493. package/dist/cssm/components/ContentBadge/ContentBadge.module.css +7 -7
  494. package/dist/cssm/components/ContentCard/ContentCard.js +5 -4
  495. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  496. package/dist/cssm/components/ContentCard/ContentCard.module.css +6 -6
  497. package/dist/cssm/components/Counter/Counter.module.css +4 -4
  498. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +2 -2
  499. package/dist/cssm/components/CustomSelect/CustomSelect.js +105 -69
  500. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  501. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +2 -2
  502. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +13 -13
  503. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
  504. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  505. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +2 -2
  506. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +9 -9
  507. package/dist/cssm/components/DateInput/DateInput.js +104 -81
  508. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  509. package/dist/cssm/components/DateInput/DateInput.module.css +40 -6
  510. package/dist/cssm/components/DateInput/hooks.js +54 -0
  511. package/dist/cssm/components/DateInput/hooks.js.map +1 -0
  512. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +99 -82
  513. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  514. package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +3 -3
  515. package/dist/cssm/components/DirectionProvider/DirectionProvider.js +15 -0
  516. package/dist/cssm/components/DirectionProvider/DirectionProvider.js.map +1 -0
  517. package/dist/cssm/components/DropZone/DropZone.module.css +2 -2
  518. package/dist/cssm/components/FixedLayout/FixedLayout.module.css +3 -3
  519. package/dist/cssm/components/Flex/Flex.js +3 -5
  520. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  521. package/dist/cssm/components/Flex/Flex.module.css +40 -23
  522. package/dist/cssm/components/FloatingArrow/FloatingArrow.module.css +1 -1
  523. package/dist/cssm/components/Footer/Footer.module.css +1 -1
  524. package/dist/cssm/components/FormField/FormField.module.css +24 -24
  525. package/dist/cssm/components/FormItem/FormItem.module.css +10 -10
  526. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +5 -5
  527. package/dist/cssm/components/GridAvatar/GridAvatar.module.css +2 -2
  528. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +2 -2
  529. package/dist/cssm/components/Group/Group.module.css +16 -16
  530. package/dist/cssm/components/Header/Header.module.css +6 -6
  531. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +3 -3
  532. package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.module.css +2 -2
  533. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +28 -23
  534. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  535. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
  536. package/dist/cssm/components/IconButton/IconButton.module.css +11 -11
  537. package/dist/cssm/components/ImageBase/ImageBase.js +5 -4
  538. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  539. package/dist/cssm/components/ImageBase/ImageBase.module.css +15 -6
  540. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +5 -5
  541. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +8 -8
  542. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +3 -4
  543. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  544. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +2 -2
  545. package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js +25 -0
  546. package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  547. package/dist/cssm/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  548. package/dist/cssm/components/InfoRow/InfoRow.module.css +3 -3
  549. package/dist/cssm/components/Input/Input.module.css +5 -5
  550. package/dist/cssm/components/InputLike/InputLike.module.css +3 -3
  551. package/dist/cssm/components/Link/Link.module.css +6 -6
  552. package/dist/cssm/components/Mark/Mark.module.css +2 -2
  553. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +5 -5
  554. package/dist/cssm/components/ModalCard/ModalCard.js +1 -0
  555. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  556. package/dist/cssm/components/ModalCard/ModalCard.module.css +4 -4
  557. package/dist/cssm/components/ModalCard/ModalCardInternal.js +3 -2
  558. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  559. package/dist/cssm/components/ModalCard/types.js.map +1 -1
  560. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +30 -7
  561. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  562. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +7 -7
  563. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +5 -6
  564. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  565. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +0 -29
  566. package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +1 -1
  567. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js +24 -0
  568. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -0
  569. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.module.css +31 -0
  570. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.js +16 -0
  571. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.js.map +1 -0
  572. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.module.css +6 -0
  573. package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +2 -2
  574. package/dist/cssm/components/ModalPage/ModalPage.module.css +15 -16
  575. package/dist/cssm/components/ModalPage/ModalPageBase.js +49 -0
  576. package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -0
  577. package/dist/cssm/components/ModalPage/ModalPageInternal.js +21 -32
  578. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  579. package/dist/cssm/components/ModalPage/types.js.map +1 -1
  580. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.module.css +4 -4
  581. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +2 -3
  582. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +20 -7
  583. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  584. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.module.css +1 -1
  585. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js +13 -4
  586. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  587. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContext.js +9 -0
  588. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContext.js.map +1 -0
  589. package/dist/cssm/components/Pagination/Pagination.js +5 -2
  590. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  591. package/dist/cssm/components/Pagination/Pagination.module.css +1 -1
  592. package/dist/cssm/components/Pagination/PaginationPage/PaginationPage.module.css +9 -9
  593. package/dist/cssm/components/Panel/Panel.module.css +3 -3
  594. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +30 -30
  595. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +3 -1
  596. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  597. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +16 -8
  598. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +10 -10
  599. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +7 -7
  600. package/dist/cssm/components/Placeholder/Placeholder.module.css +3 -3
  601. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  602. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  603. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +9 -2
  604. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  605. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +14 -9
  606. package/dist/cssm/components/Popover/Popover.js +4 -4
  607. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  608. package/dist/cssm/components/Popover/Popover.module.css +1 -1
  609. package/dist/cssm/components/Popover/usePopover.js +62 -44
  610. package/dist/cssm/components/Popover/usePopover.js.map +1 -1
  611. package/dist/cssm/components/Popper/Popper.js +15 -5
  612. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  613. package/dist/cssm/components/Progress/Progress.js +29 -9
  614. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  615. package/dist/cssm/components/Progress/Progress.module.css +20 -9
  616. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +14 -14
  617. package/dist/cssm/components/Radio/Radio.module.css +1 -1
  618. package/dist/cssm/components/Radio/RadioInput/RadioInput.module.css +1 -1
  619. package/dist/cssm/components/RadioGroup/RadioGroup.module.css +1 -1
  620. package/dist/cssm/components/Removable/Removable.js +8 -4
  621. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  622. package/dist/cssm/components/Removable/Removable.module.css +19 -6
  623. package/dist/cssm/components/RichCell/RichCell.module.css +10 -10
  624. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.module.css +4 -4
  625. package/dist/cssm/components/Root/Root.module.css +10 -10
  626. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -0
  627. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  628. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +12 -12
  629. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +4 -1
  630. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  631. package/dist/cssm/components/ScrollArrow/ScrollArrow.module.css +15 -14
  632. package/dist/cssm/components/Search/Search.js +7 -2
  633. package/dist/cssm/components/Search/Search.js.map +1 -1
  634. package/dist/cssm/components/Search/Search.module.css +44 -32
  635. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +10 -7
  636. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  637. package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +16 -7
  638. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +14 -14
  639. package/dist/cssm/components/Select/Select.module.css +15 -15
  640. package/dist/cssm/components/SelectionControl/SelectionControl.module.css +2 -2
  641. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +5 -5
  642. package/dist/cssm/components/Separator/Separator.module.css +3 -3
  643. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +18 -16
  644. package/dist/cssm/components/SimpleGrid/SimpleGrid.module.css +2 -2
  645. package/dist/cssm/components/Skeleton/Skeleton.module.css +8 -8
  646. package/dist/cssm/components/Slider/Slider.js +20 -17
  647. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  648. package/dist/cssm/components/Slider/Slider.module.css +25 -4
  649. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +5 -1
  650. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  651. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.module.css +8 -8
  652. package/dist/cssm/components/Snackbar/Snackbar.js +6 -3
  653. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  654. package/dist/cssm/components/Snackbar/Snackbar.module.css +23 -6
  655. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +9 -8
  656. package/dist/cssm/components/Snackbar/utils.js +11 -8
  657. package/dist/cssm/components/Snackbar/utils.js.map +1 -1
  658. package/dist/cssm/components/Spacing/Spacing.module.css +1 -1
  659. package/dist/cssm/components/Spinner/Spinner.module.css +2 -2
  660. package/dist/cssm/components/SplitCol/SplitCol.module.css +9 -9
  661. package/dist/cssm/components/SplitLayout/SplitLayout.module.css +2 -2
  662. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +4 -4
  663. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -1
  664. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  665. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +10 -6
  666. package/dist/cssm/components/Switch/Switch.js +4 -1
  667. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  668. package/dist/cssm/components/Switch/Switch.module.css +25 -17
  669. package/dist/cssm/components/Tabbar/Tabbar.module.css +5 -5
  670. package/dist/cssm/components/TabbarItem/TabbarItem.module.css +16 -16
  671. package/dist/cssm/components/Tabs/Tabs.js +3 -1
  672. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  673. package/dist/cssm/components/Tabs/Tabs.module.css +1 -1
  674. package/dist/cssm/components/TabsItem/TabsItem.module.css +21 -20
  675. package/dist/cssm/components/Tappable/Tappable.module.css +6 -6
  676. package/dist/cssm/components/Textarea/Textarea.module.css +7 -3
  677. package/dist/cssm/components/ToolButton/ToolButton.module.css +7 -7
  678. package/dist/cssm/components/Tooltip/Tooltip.js +7 -80
  679. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  680. package/dist/cssm/components/Tooltip/useTooltip.js +97 -0
  681. package/dist/cssm/components/Tooltip/useTooltip.js.map +1 -0
  682. package/dist/cssm/components/TooltipBase/TooltipBase.module.css +9 -9
  683. package/dist/cssm/components/Typography/Caption/Caption.module.css +96 -96
  684. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.module.css +64 -64
  685. package/dist/cssm/components/Typography/EllipsisText/EllipsisText.module.css +3 -3
  686. package/dist/cssm/components/Typography/Footnote/Footnote.module.css +32 -32
  687. package/dist/cssm/components/Typography/Headline/Headline.module.css +20 -20
  688. package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +16 -16
  689. package/dist/cssm/components/Typography/Subhead/Subhead.module.css +16 -16
  690. package/dist/cssm/components/Typography/Text/Text.module.css +16 -16
  691. package/dist/cssm/components/Typography/Title/Title.module.css +48 -48
  692. package/dist/cssm/components/Typography/Typography.module.css +1 -1
  693. package/dist/cssm/components/UnstyledTextField/UnstyledTextField.module.css +5 -5
  694. package/dist/cssm/components/UsersStack/UsersStack.js +4 -7
  695. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  696. package/dist/cssm/components/UsersStack/UsersStack.module.css +4 -4
  697. package/dist/cssm/components/View/View.module.css +8 -8
  698. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +10 -10
  699. package/dist/cssm/components/WriteBar/WriteBar.module.css +10 -11
  700. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +9 -9
  701. package/dist/cssm/context/CalendarDirectionContext.js.map +1 -1
  702. package/dist/cssm/helpers/getValueByKey.js +17 -0
  703. package/dist/cssm/helpers/getValueByKey.js.map +1 -0
  704. package/dist/cssm/hooks/useAutoDetectDirection.js +21 -0
  705. package/dist/cssm/hooks/useAutoDetectDirection.js.map +1 -0
  706. package/dist/cssm/hooks/useConfigDirection.js +7 -0
  707. package/dist/cssm/hooks/useConfigDirection.js.map +1 -0
  708. package/dist/cssm/hooks/useFloatingElement.js +70 -0
  709. package/dist/cssm/hooks/useFloatingElement.js.map +1 -0
  710. package/dist/cssm/hooks/useFocusVisible.js +10 -1
  711. package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
  712. package/dist/cssm/hooks/useReferenceElement.js +13 -0
  713. package/dist/cssm/hooks/useReferenceElement.js.map +1 -0
  714. package/dist/cssm/hooks/useTabsNavigation.js +3 -3
  715. package/dist/cssm/hooks/useTabsNavigation.js.map +1 -1
  716. package/dist/cssm/hooks/useTodayDate.js +4 -4
  717. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  718. package/dist/cssm/index.js +6 -1
  719. package/dist/cssm/index.js.map +1 -1
  720. package/dist/cssm/lib/SSR.js +2 -1
  721. package/dist/cssm/lib/SSR.js.map +1 -1
  722. package/dist/cssm/lib/date.js +15 -0
  723. package/dist/cssm/lib/date.js.map +1 -1
  724. package/dist/cssm/lib/direction/index.js +3 -0
  725. package/dist/cssm/lib/direction/index.js.map +1 -0
  726. package/dist/cssm/lib/floating/adapters.js.map +1 -1
  727. package/dist/cssm/lib/floating/customResizeObserver.js +2 -5
  728. package/dist/cssm/lib/floating/customResizeObserver.js.map +1 -1
  729. package/dist/cssm/lib/floating/functions.js +1 -1
  730. package/dist/cssm/lib/floating/functions.js.map +1 -1
  731. package/dist/cssm/lib/floating/types/component.js.map +1 -1
  732. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -2
  733. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  734. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -1
  735. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  736. package/dist/cssm/lib/floating/useReferenceHiddenChangeCallback.js +21 -0
  737. package/dist/cssm/lib/floating/useReferenceHiddenChangeCallback.js.map +1 -0
  738. package/dist/cssm/lib/object.js +9 -0
  739. package/dist/cssm/lib/object.js.map +1 -0
  740. package/dist/cssm/lib/select.js.map +1 -1
  741. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js +13 -23
  742. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js.map +1 -1
  743. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js +4 -5
  744. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
  745. package/dist/cssm/lib/tokens/TokensClassProvider.module.css +1 -1
  746. package/dist/cssm/styles/common.css +2 -2
  747. package/dist/cssm/styles/themes.css +22 -5
  748. package/dist/helpers/getMergedSameEventsByProps.d.ts.map +1 -1
  749. package/dist/helpers/getValueByKey.d.ts +5 -0
  750. package/dist/helpers/getValueByKey.d.ts.map +1 -0
  751. package/dist/helpers/getValueByKey.js +17 -0
  752. package/dist/helpers/getValueByKey.js.map +1 -0
  753. package/dist/helpers/math.d.ts.map +1 -1
  754. package/dist/hooks/useAdaptivityConditionalRender/helpers.d.ts.map +1 -1
  755. package/dist/hooks/useAutoDetectColorScheme.d.ts.map +1 -1
  756. package/dist/hooks/useAutoDetectDirection.d.ts +3 -0
  757. package/dist/hooks/useAutoDetectDirection.d.ts.map +1 -0
  758. package/dist/hooks/useAutoDetectDirection.js +21 -0
  759. package/dist/hooks/useAutoDetectDirection.js.map +1 -0
  760. package/dist/hooks/useBooleanState.d.ts.map +1 -1
  761. package/dist/hooks/useConfigDirection.d.ts +3 -0
  762. package/dist/hooks/useConfigDirection.d.ts.map +1 -0
  763. package/dist/hooks/useConfigDirection.js +7 -0
  764. package/dist/hooks/useConfigDirection.js.map +1 -0
  765. package/dist/hooks/useDraggableWithDomApi/autoScroll.d.ts.map +1 -1
  766. package/dist/hooks/useDraggableWithDomApi/useDraggableWithDomApi.d.ts.map +1 -1
  767. package/dist/hooks/useDraggableWithDomApi/utils.d.ts.map +1 -1
  768. package/dist/hooks/useFloatingElement.d.ts +26 -0
  769. package/dist/hooks/useFloatingElement.d.ts.map +1 -0
  770. package/dist/hooks/useFloatingElement.js +71 -0
  771. package/dist/hooks/useFloatingElement.js.map +1 -0
  772. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  773. package/dist/hooks/useFocusVisible.d.ts +9 -1
  774. package/dist/hooks/useFocusVisible.d.ts.map +1 -1
  775. package/dist/hooks/useFocusVisible.js +10 -1
  776. package/dist/hooks/useFocusVisible.js.map +1 -1
  777. package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
  778. package/dist/hooks/useGlobalOnClickOutside.d.ts.map +1 -1
  779. package/dist/hooks/useMutationObserver.d.ts.map +1 -1
  780. package/dist/hooks/useNativeFormResetListener.d.ts.map +1 -1
  781. package/dist/hooks/usePagination.d.ts.map +1 -1
  782. package/dist/hooks/usePatchChildren.d.ts.map +1 -1
  783. package/dist/hooks/useReferenceElement.d.ts +3 -0
  784. package/dist/hooks/useReferenceElement.d.ts.map +1 -0
  785. package/dist/hooks/useReferenceElement.js +13 -0
  786. package/dist/hooks/useReferenceElement.js.map +1 -0
  787. package/dist/hooks/useTabsNavigation.d.ts +1 -1
  788. package/dist/hooks/useTabsNavigation.d.ts.map +1 -1
  789. package/dist/hooks/useTabsNavigation.js +3 -3
  790. package/dist/hooks/useTabsNavigation.js.map +1 -1
  791. package/dist/hooks/useTodayDate.d.ts.map +1 -1
  792. package/dist/hooks/useTodayDate.js +4 -4
  793. package/dist/hooks/useTodayDate.js.map +1 -1
  794. package/dist/index.d.ts +9 -2
  795. package/dist/index.d.ts.map +1 -1
  796. package/dist/index.js +6 -1
  797. package/dist/index.js.map +1 -1
  798. package/dist/lib/SSR.d.ts +2 -0
  799. package/dist/lib/SSR.d.ts.map +1 -1
  800. package/dist/lib/SSR.js +2 -1
  801. package/dist/lib/SSR.js.map +1 -1
  802. package/dist/lib/accessibility.d.ts.map +1 -1
  803. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
  804. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  805. package/dist/lib/calendar.d.ts.map +1 -1
  806. package/dist/lib/callMultiple.d.ts.map +1 -1
  807. package/dist/lib/children.d.ts.map +1 -1
  808. package/dist/lib/createPortal.d.ts.map +1 -1
  809. package/dist/lib/date.d.ts +2 -0
  810. package/dist/lib/date.d.ts.map +1 -1
  811. package/dist/lib/date.js +15 -0
  812. package/dist/lib/date.js.map +1 -1
  813. package/dist/lib/direction/index.d.ts +2 -0
  814. package/dist/lib/direction/index.d.ts.map +1 -0
  815. package/dist/lib/direction/index.js +3 -0
  816. package/dist/lib/direction/index.js.map +1 -0
  817. package/dist/lib/dom.d.ts.map +1 -1
  818. package/dist/lib/floating/adapters.d.ts +1 -0
  819. package/dist/lib/floating/adapters.d.ts.map +1 -1
  820. package/dist/lib/floating/adapters.js.map +1 -1
  821. package/dist/lib/floating/customResizeObserver.d.ts +1 -1
  822. package/dist/lib/floating/customResizeObserver.d.ts.map +1 -1
  823. package/dist/lib/floating/customResizeObserver.js +2 -5
  824. package/dist/lib/floating/customResizeObserver.js.map +1 -1
  825. package/dist/lib/floating/functions.d.ts +8 -1
  826. package/dist/lib/floating/functions.d.ts.map +1 -1
  827. package/dist/lib/floating/functions.js +1 -1
  828. package/dist/lib/floating/functions.js.map +1 -1
  829. package/dist/lib/floating/types/component.d.ts +10 -0
  830. package/dist/lib/floating/types/component.d.ts.map +1 -1
  831. package/dist/lib/floating/types/component.js.map +1 -1
  832. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +3 -1
  833. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  834. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -2
  835. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  836. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts.map +1 -1
  837. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -1
  838. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  839. package/dist/lib/floating/useFloatingWithInteractions/useResolveTriggerType.d.ts.map +1 -1
  840. package/dist/lib/floating/useReferenceHiddenChangeCallback.d.ts +4 -0
  841. package/dist/lib/floating/useReferenceHiddenChangeCallback.d.ts.map +1 -0
  842. package/dist/lib/floating/useReferenceHiddenChangeCallback.js +21 -0
  843. package/dist/lib/floating/useReferenceHiddenChangeCallback.js.map +1 -0
  844. package/dist/lib/fx.d.ts.map +1 -1
  845. package/dist/lib/isRefObject.d.ts.map +1 -1
  846. package/dist/lib/object.d.ts +2 -0
  847. package/dist/lib/object.d.ts.map +1 -0
  848. package/dist/lib/object.js +9 -0
  849. package/dist/lib/object.js.map +1 -0
  850. package/dist/lib/rafSchd.d.ts.map +1 -1
  851. package/dist/lib/react/simulateReactInput.d.ts.map +1 -1
  852. package/dist/lib/select.d.ts +1 -0
  853. package/dist/lib/select.d.ts.map +1 -1
  854. package/dist/lib/select.js.map +1 -1
  855. package/dist/lib/sheet/controllers/BottomSheetController.d.ts.map +1 -1
  856. package/dist/lib/sheet/controllers/BottomSheetController.js +13 -23
  857. package/dist/lib/sheet/controllers/BottomSheetController.js.map +1 -1
  858. package/dist/lib/sheet/controllers/CSSTransitionController.d.ts.map +1 -1
  859. package/dist/lib/sheet/controllers/CSSTransitionController.js +4 -5
  860. package/dist/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
  861. package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
  862. package/dist/lib/touch/functions.d.ts.map +1 -1
  863. package/dist/lib/utils.d.ts.map +1 -1
  864. package/dist/vkui.css +1 -1
  865. package/dist/vkui.css.map +1 -1
  866. package/package.json +5 -4
  867. package/src/components/Accordion/Accordion.module.css +6 -6
  868. package/src/components/Accordion/Accordion.tsx +2 -2
  869. package/src/components/ActionSheet/ActionSheet.module.css +9 -9
  870. package/src/components/ActionSheet/ActionSheet.tsx +5 -2
  871. package/src/components/ActionSheet/ActionSheetDropdownMenu.tsx +11 -3
  872. package/src/components/ActionSheet/ActionSheetDropdownSheet.tsx +11 -3
  873. package/src/components/ActionSheet/types.ts +4 -0
  874. package/src/components/ActionSheetItem/ActionSheetItem.module.css +17 -17
  875. package/src/components/Alert/Alert.module.css +25 -25
  876. package/src/components/Alert/Alert.tsx +33 -118
  877. package/src/components/Alert/AlertBase.tsx +156 -0
  878. package/src/components/Alert/AlertTypography.tsx +2 -1
  879. package/src/components/AppRoot/AppRoot.module.css +2 -2
  880. package/src/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.tsx +1 -1
  881. package/src/components/AppRoot/ScrollContext.tsx +162 -50
  882. package/src/components/AspectRatio/AspectRatio.module.css +2 -2
  883. package/src/components/Avatar/Avatar.module.css +1 -1
  884. package/src/components/Avatar/AvatarBadge/AvatarBadge.module.css +8 -3
  885. package/src/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.tsx +4 -1
  886. package/src/components/Banner/Banner.module.css +17 -17
  887. package/src/components/Button/Button.module.css +11 -11
  888. package/src/components/ButtonGroup/ButtonGroup.tsx +2 -0
  889. package/src/components/Calendar/Calendar.module.css +7 -7
  890. package/src/components/Calendar/Calendar.tsx +108 -98
  891. package/src/components/CalendarDay/CalendarDay.module.css +11 -11
  892. package/src/components/CalendarDay/CalendarDay.tsx +1 -3
  893. package/src/components/CalendarDays/CalendarDays.module.css +7 -7
  894. package/src/components/CalendarHeader/CalendarHeader.module.css +4 -4
  895. package/src/components/CalendarHeader/CalendarHeader.tsx +1 -3
  896. package/src/components/CalendarRange/CalendarRange.module.css +5 -5
  897. package/src/components/CalendarRange/CalendarRange.tsx +97 -106
  898. package/src/components/CalendarTime/CalendarTime.module.css +1 -1
  899. package/src/components/Card/Card.module.css +7 -7
  900. package/src/components/CardGrid/CardGrid.module.css +3 -3
  901. package/src/components/CardScroll/CardScroll.module.css +16 -16
  902. package/src/components/CardScroll/CardScroll.tsx +49 -29
  903. package/src/components/CarouselBase/CarouselBase.module.css +11 -11
  904. package/src/components/CarouselBase/CarouselBase.tsx +107 -44
  905. package/src/components/CarouselBase/helpers.ts +108 -46
  906. package/src/components/Cell/Cell.module.css +16 -2
  907. package/src/components/Cell/CellDragger/CellDragger.module.css +2 -2
  908. package/src/components/CellButton/CellButton.module.css +7 -7
  909. package/src/components/CellButtonGroup/CellButtonGroup.tsx +20 -0
  910. package/src/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.module.css +5 -0
  911. package/src/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.tsx +21 -0
  912. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +2 -2
  913. package/src/components/ChipsInputBase/Chip/Chip.module.css +16 -16
  914. package/src/components/ChipsInputBase/ChipsInputBase.module.css +10 -10
  915. package/src/components/ChipsSelect/ChipsSelect.module.css +1 -1
  916. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -0
  917. package/src/components/ChipsSelect/useChipsSelect.ts +12 -1
  918. package/src/components/Clickable/Clickable.module.css +1 -1
  919. package/src/components/Clickable/Clickable.tsx +37 -25
  920. package/src/components/ColorSchemeProvider/ColorSchemeProvider.tsx +1 -1
  921. package/src/components/ConfigProvider/ConfigProvider.tsx +4 -1
  922. package/src/components/ConfigProvider/ConfigProviderContext.tsx +29 -15
  923. package/src/components/ContentBadge/ContentBadge.module.css +7 -7
  924. package/src/components/ContentCard/ContentCard.module.css +6 -6
  925. package/src/components/ContentCard/ContentCard.tsx +9 -3
  926. package/src/components/Counter/Counter.module.css +4 -4
  927. package/src/components/CustomScrollView/CustomScrollView.module.css +2 -2
  928. package/src/components/CustomSelect/CustomSelect.module.css +2 -2
  929. package/src/components/CustomSelect/CustomSelect.tsx +151 -93
  930. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -12
  931. package/src/components/CustomSelectDropdown/CustomSelectDropdown.module.css +2 -2
  932. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -0
  933. package/src/components/CustomSelectOption/CustomSelectOption.module.css +8 -8
  934. package/src/components/DateInput/DateInput.module.css +38 -5
  935. package/src/components/DateInput/DateInput.tsx +123 -87
  936. package/src/components/DateInput/hooks.ts +84 -0
  937. package/src/components/DateRangeInput/DateRangeInput.module.css +3 -3
  938. package/src/components/DateRangeInput/DateRangeInput.tsx +104 -81
  939. package/src/components/DirectionProvider/DirectionProvider.tsx +17 -0
  940. package/src/components/DropZone/DropZone.module.css +2 -2
  941. package/src/components/FixedLayout/FixedLayout.module.css +3 -3
  942. package/src/components/Flex/Flex.module.css +26 -14
  943. package/src/components/Flex/Flex.tsx +3 -6
  944. package/src/components/FloatingArrow/FloatingArrow.module.css +1 -1
  945. package/src/components/Footer/Footer.module.css +1 -1
  946. package/src/components/FormField/FormField.module.css +24 -24
  947. package/src/components/FormItem/FormItem.module.css +10 -10
  948. package/src/components/FormLayoutGroup/FormLayoutGroup.module.css +5 -5
  949. package/src/components/GridAvatar/GridAvatar.module.css +2 -2
  950. package/src/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +2 -2
  951. package/src/components/Group/Group.module.css +16 -16
  952. package/src/components/Header/Header.module.css +5 -5
  953. package/src/components/HorizontalCell/HorizontalCell.module.css +3 -3
  954. package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.module.css +2 -2
  955. package/src/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
  956. package/src/components/HorizontalScroll/HorizontalScroll.tsx +47 -19
  957. package/src/components/IconButton/IconButton.module.css +9 -9
  958. package/src/components/ImageBase/ImageBase.module.css +15 -6
  959. package/src/components/ImageBase/ImageBase.tsx +16 -5
  960. package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +5 -5
  961. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +8 -8
  962. package/src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +2 -2
  963. package/src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.tsx +5 -4
  964. package/src/components/ImageBase/ImageBaseOverlay/hooks.ts +31 -0
  965. package/src/components/ImageBase/ImageBaseOverlay/types.ts +4 -0
  966. package/src/components/InfoRow/InfoRow.module.css +3 -3
  967. package/src/components/Input/Input.module.css +5 -5
  968. package/src/components/InputLike/InputLike.module.css +3 -3
  969. package/src/components/Link/Link.module.css +6 -6
  970. package/src/components/Mark/Mark.module.css +2 -2
  971. package/src/components/MiniInfoCell/MiniInfoCell.module.css +5 -5
  972. package/src/components/ModalCard/ModalCard.module.css +4 -4
  973. package/src/components/ModalCard/ModalCard.tsx +1 -0
  974. package/src/components/ModalCard/ModalCardInternal.tsx +2 -0
  975. package/src/components/ModalCard/types.ts +2 -1
  976. package/src/components/ModalCardBase/ModalCardBase.module.css +7 -7
  977. package/src/components/ModalCardBase/ModalCardBase.tsx +50 -10
  978. package/src/components/ModalDismissButton/ModalDismissButton.module.css +0 -28
  979. package/src/components/ModalDismissButton/ModalDismissButton.tsx +11 -9
  980. package/src/components/ModalOutlet/ModalOutlet.module.css +1 -1
  981. package/src/components/ModalOutsideButton/ModalOutsideButton.module.css +30 -0
  982. package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +38 -0
  983. package/src/components/ModalOutsideButtons/ModalOutsideButtons.module.css +6 -0
  984. package/src/components/ModalOutsideButtons/ModalOutsideButtons.tsx +14 -0
  985. package/src/components/ModalOverlay/ModalOverlay.module.css +2 -2
  986. package/src/components/ModalPage/ModalPage.module.css +15 -16
  987. package/src/components/ModalPage/ModalPageBase.tsx +92 -0
  988. package/src/components/ModalPage/ModalPageInternal.tsx +23 -42
  989. package/src/components/ModalPage/types.ts +12 -0
  990. package/src/components/ModalPageFooter/ModalPageFooter.module.css +4 -4
  991. package/src/components/ModalPageHeader/ModalPageHeader.module.css +2 -3
  992. package/src/components/OnboardingTooltip/OnboardingTooltip.module.css +1 -1
  993. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +21 -12
  994. package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +10 -1
  995. package/src/components/OnboardingTooltip/OnboardingTooltipContext.tsx +11 -0
  996. package/src/components/Pagination/Pagination.module.css +1 -1
  997. package/src/components/Pagination/Pagination.tsx +5 -2
  998. package/src/components/Pagination/PaginationPage/PaginationPage.module.css +8 -8
  999. package/src/components/Panel/Panel.module.css +3 -3
  1000. package/src/components/PanelHeader/PanelHeader.module.css +27 -27
  1001. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +3 -0
  1002. package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +14 -8
  1003. package/src/components/PanelHeaderContent/PanelHeaderContent.module.css +10 -10
  1004. package/src/components/PanelHeaderContext/PanelHeaderContext.module.css +7 -7
  1005. package/src/components/Placeholder/Placeholder.module.css +3 -3
  1006. package/src/components/PlatformProvider/PlatformProvider.tsx +1 -1
  1007. package/src/components/PopoutWrapper/PopoutWrapper.module.css +14 -9
  1008. package/src/components/PopoutWrapper/PopoutWrapper.tsx +25 -2
  1009. package/src/components/Popover/Popover.module.css +1 -1
  1010. package/src/components/Popover/Popover.tsx +6 -4
  1011. package/src/components/Popover/usePopover.tsx +106 -85
  1012. package/src/components/Popper/Popper.tsx +17 -6
  1013. package/src/components/Progress/Progress.module.css +20 -9
  1014. package/src/components/Progress/Progress.tsx +38 -9
  1015. package/src/components/PullToRefresh/PullToRefresh.module.css +14 -14
  1016. package/src/components/Radio/Radio.module.css +1 -1
  1017. package/src/components/Radio/RadioInput/RadioInput.module.css +1 -1
  1018. package/src/components/RadioGroup/RadioGroup.module.css +1 -1
  1019. package/src/components/Removable/Removable.module.css +19 -6
  1020. package/src/components/Removable/Removable.tsx +10 -3
  1021. package/src/components/RichCell/RichCell.module.css +10 -10
  1022. package/src/components/RichCell/RichCellIcon/RichCellIcon.module.css +4 -4
  1023. package/src/components/Root/Root.module.css +10 -10
  1024. package/src/components/ScreenSpinner/ScreenSpinner.module.css +11 -11
  1025. package/src/components/ScreenSpinner/ScreenSpinner.tsx +1 -1
  1026. package/src/components/ScrollArrow/ScrollArrow.module.css +15 -14
  1027. package/src/components/ScrollArrow/ScrollArrow.tsx +10 -1
  1028. package/src/components/Search/Search.module.css +40 -28
  1029. package/src/components/Search/Search.tsx +16 -0
  1030. package/src/components/SegmentedControl/SegmentedControl.module.css +16 -7
  1031. package/src/components/SegmentedControl/SegmentedControl.tsx +11 -13
  1032. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +11 -11
  1033. package/src/components/Select/Select.module.css +14 -14
  1034. package/src/components/SelectionControl/SelectionControl.module.css +2 -2
  1035. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +5 -5
  1036. package/src/components/Separator/Separator.module.css +3 -3
  1037. package/src/components/SimpleCell/SimpleCell.module.css +18 -16
  1038. package/src/components/SimpleGrid/SimpleGrid.module.css +2 -2
  1039. package/src/components/Skeleton/Skeleton.module.css +8 -8
  1040. package/src/components/Slider/Slider.module.css +25 -4
  1041. package/src/components/Slider/Slider.tsx +23 -15
  1042. package/src/components/Slider/SliderThumb/SliderThumb.module.css +7 -7
  1043. package/src/components/Slider/SliderThumb/SliderThumb.tsx +5 -5
  1044. package/src/components/Snackbar/Snackbar.module.css +23 -6
  1045. package/src/components/Snackbar/Snackbar.tsx +7 -0
  1046. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +9 -8
  1047. package/src/components/Snackbar/utils.ts +24 -6
  1048. package/src/components/Spacing/Spacing.module.css +1 -1
  1049. package/src/components/Spinner/Spinner.module.css +2 -2
  1050. package/src/components/SplitCol/SplitCol.module.css +9 -9
  1051. package/src/components/SplitLayout/SplitLayout.module.css +2 -2
  1052. package/src/components/SubnavigationBar/SubnavigationBar.module.css +4 -4
  1053. package/src/components/SubnavigationButton/SubnavigationButton.module.css +9 -5
  1054. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -0
  1055. package/src/components/Switch/Switch.module.css +25 -17
  1056. package/src/components/Switch/Switch.tsx +4 -0
  1057. package/src/components/Tabbar/Tabbar.module.css +5 -5
  1058. package/src/components/TabbarItem/TabbarItem.module.css +16 -16
  1059. package/src/components/Tabs/Tabs.module.css +1 -1
  1060. package/src/components/Tabs/Tabs.tsx +3 -1
  1061. package/src/components/TabsItem/TabsItem.module.css +21 -20
  1062. package/src/components/Tappable/Tappable.module.css +6 -6
  1063. package/src/components/Textarea/Textarea.module.css +7 -3
  1064. package/src/components/ToolButton/ToolButton.module.css +7 -7
  1065. package/src/components/Tooltip/Tooltip.tsx +9 -142
  1066. package/src/components/Tooltip/useTooltip.tsx +168 -0
  1067. package/src/components/TooltipBase/TooltipBase.module.css +9 -9
  1068. package/src/components/Typography/Caption/Caption.module.css +96 -96
  1069. package/src/components/Typography/DisplayTitle/DisplayTitle.module.css +64 -64
  1070. package/src/components/Typography/EllipsisText/EllipsisText.module.css +3 -3
  1071. package/src/components/Typography/Footnote/Footnote.module.css +32 -32
  1072. package/src/components/Typography/Headline/Headline.module.css +20 -20
  1073. package/src/components/Typography/Paragraph/Paragraph.module.css +16 -16
  1074. package/src/components/Typography/Subhead/Subhead.module.css +16 -16
  1075. package/src/components/Typography/Text/Text.module.css +16 -16
  1076. package/src/components/Typography/Title/Title.module.css +48 -48
  1077. package/src/components/Typography/Typography.module.css +1 -1
  1078. package/src/components/UnstyledTextField/UnstyledTextField.module.css +4 -4
  1079. package/src/components/UsersStack/UsersStack.module.css +4 -4
  1080. package/src/components/UsersStack/UsersStack.tsx +3 -7
  1081. package/src/components/View/View.module.css +8 -8
  1082. package/src/components/VisuallyHidden/VisuallyHidden.module.css +8 -8
  1083. package/src/components/WriteBar/WriteBar.module.css +10 -10
  1084. package/src/components/WriteBarIcon/WriteBarIcon.module.css +9 -9
  1085. package/src/context/CalendarDirectionContext.ts +1 -1
  1086. package/src/helpers/getValueByKey.ts +25 -0
  1087. package/src/hooks/useAutoDetectDirection.ts +18 -0
  1088. package/src/hooks/useConfigDirection.ts +8 -0
  1089. package/src/hooks/useFloatingElement.tsx +172 -0
  1090. package/src/hooks/useFocusVisible.ts +12 -1
  1091. package/src/hooks/useReferenceElement.tsx +13 -0
  1092. package/src/hooks/useTabsNavigation.ts +5 -3
  1093. package/src/hooks/useTodayDate.ts +34 -31
  1094. package/src/index.ts +9 -2
  1095. package/src/lib/SSR.tsx +11 -2
  1096. package/src/lib/date.ts +23 -0
  1097. package/src/lib/direction/index.ts +1 -0
  1098. package/src/lib/floating/adapters.ts +2 -0
  1099. package/src/lib/floating/customResizeObserver.ts +2 -1
  1100. package/src/lib/floating/functions.ts +15 -7
  1101. package/src/lib/floating/types/component.ts +10 -0
  1102. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +6 -1
  1103. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +2 -3
  1104. package/src/lib/floating/useReferenceHiddenChangeCallback.ts +26 -0
  1105. package/src/lib/object.ts +14 -0
  1106. package/src/lib/select.ts +2 -0
  1107. package/src/lib/sheet/controllers/BottomSheetController.ts +4 -1
  1108. package/src/lib/sheet/controllers/CSSTransitionController.ts +7 -4
  1109. package/src/lib/tokens/TokensClassProvider.module.css +1 -1
  1110. package/src/styles/common.css +2 -2
  1111. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.d.ts +0 -10
  1112. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.d.ts.map +0 -1
  1113. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -38
  1114. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.js.map +0 -1
  1115. package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -39
  1116. package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js.map +0 -1
  1117. package/dist/cssm/hooks/useDirection.js +0 -55
  1118. package/dist/cssm/hooks/useDirection.js.map +0 -1
  1119. package/dist/cssm/lib/tokens/index.js +0 -5
  1120. package/dist/cssm/lib/tokens/index.js.map +0 -1
  1121. package/dist/hooks/useDirection.d.ts +0 -39
  1122. package/dist/hooks/useDirection.d.ts.map +0 -1
  1123. package/dist/hooks/useDirection.js +0 -55
  1124. package/dist/hooks/useDirection.js.map +0 -1
  1125. package/dist/lib/tokens/index.d.ts +0 -5
  1126. package/dist/lib/tokens/index.d.ts.map +0 -1
  1127. package/dist/lib/tokens/index.js +0 -5
  1128. package/dist/lib/tokens/index.js.map +0 -1
  1129. package/src/components/ModalCardBase/ModalCardBaseCloseButton.tsx +0 -51
  1130. package/src/hooks/useDirection.ts +0 -63
  1131. package/src/lib/tokens/index.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Snackbar/Snackbar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusWithin } from '../../hooks/useFocusWithin';\nimport { useGlobalEscKeyDown } from '../../hooks/useGlobalEscKeyDown';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { getRelativeBoundingClientRect } from '../../lib/dom';\nimport { UIPanGestureRecognizer } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Basic, type BasicProps } from './subcomponents/Basic/Basic';\nimport type { ShiftData, SnackbarPlacement } from './types';\nimport {\n getInitialShiftData,\n getMovedShiftData,\n resolveOffsetYCssStyle,\n shouldBeClosedByShiftData,\n} from './utils';\nimport styles from './Snackbar.module.css';\n\nconst placementClassNames = {\n 'top-start': styles.placementTopStart,\n 'top': styles.placementTop,\n 'top-end': styles.placementTopEnd,\n 'bottom-start': styles.placementBottomStart,\n 'bottom': styles.placementBottom,\n 'bottom-end': styles.placementBottomEnd,\n};\n\nconst animationStateClassNames = {\n enter: styles.stateEnter,\n entering: styles.stateEntering,\n entered: styles.stateEntered,\n exit: styles.stateExit,\n exiting: styles.stateExiting,\n exited: undefined,\n};\n\nexport interface SnackbarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'role'>,\n BasicProps {\n /**\n * Задаёт расположение компонента.\n *\n * > Note: в мобильном режиме:\n * > - `\"top-start\"`/`\"top-end\"` перебивается на `\"top\"`, чтобы поведение было схожим с нативными\n * > уведомлениями;\n * > - `\"bottom\"` перебивается на `\"bottom-start\"`, чтобы избежать вызова системных\n * > функций, таких как **Pull To Refresh** и **Режим управления одной рукой**.\n * > - `\"bottom-start\"`/`\"bottom-end\"` закрываются смахиванием в любое из направлений\n * > по горизонтальной оси.\n */\n placement?: SnackbarPlacement;\n /**\n * Название кнопки действия в уведомлении\n * Не может использоваться одновременно с `subtitle`\n */\n action?: React.ReactNode;\n /**\n * Будет вызвано при клике на кнопку действия\n */\n onActionClick?: (event: React.MouseEvent) => void;\n /**\n * Время в миллисекундах, через которое плашка скроется\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления\n */\n onClose: () => void;\n /**\n * Величина отступа снизу. Используется для позиционирования элемента в случае, когда нежелательно, чтобы Snackbar при появлении перекрывал важные элементы интерфейса.\n */\n offsetY?: React.CSSProperties['bottom'];\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Snackbar\n */\nexport const Snackbar: React.FC<SnackbarProps> & { Basic: typeof Basic } = ({\n placement = 'bottom-start',\n children,\n layout,\n action,\n before,\n after,\n duration = 4000,\n onActionClick,\n onClose,\n mode = 'default',\n subtitle,\n offsetY,\n getRootRef,\n ...restProps\n}: SnackbarProps) => {\n const platform = usePlatform();\n\n const [open, setOpen] = React.useState(true);\n const [touched, setTouched] = React.useState(false);\n\n const rootRef = useExternRef(getRootRef);\n const focused = useFocusWithin(rootRef);\n const inRef = React.useRef<HTMLDivElement>(null);\n const panGestureRecognizer = React.useRef<UIPanGestureRecognizer | null>(null);\n\n const shiftDataRef = React.useRef<ShiftData | null>(null);\n\n const rafRef = React.useRef<ReturnType<typeof requestAnimationFrame> | null>(null);\n const closeTimeoutIdRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const mediaQueries = useMediaQueries();\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n open ? 'enter' : 'exit',\n {\n onExited: onClose,\n },\n );\n\n const clearRAF = React.useCallback(() => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n }, []);\n\n const updateShiftAxisCSSProperties = React.useCallback(\n (x: number | null, y: number | null, direction: number | null) => {\n rafRef.current = requestAnimationFrame(() => {\n if (rootRef.current) {\n x === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_x')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_x', `${x}px`);\n y === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_y')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_y', `${y}px`);\n direction === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_direction')\n : /* istanbul ignore next: TODO чтобы протестировать кейс, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n rootRef.current.style.setProperty(\n '--vkui_internal--snackbar_direction',\n `${direction}`,\n );\n }\n });\n },\n [rootRef],\n );\n\n const close = React.useCallback(() => {\n setOpen(false);\n }, []);\n\n const handleActionClick = (event: React.MouseEvent) => {\n close();\n if (action) {\n onActionClick?.(event);\n }\n };\n\n const handleTouchStart = (event: React.UIEvent<HTMLDivElement>) => {\n panGestureRecognizer.current = new UIPanGestureRecognizer();\n panGestureRecognizer.current.setStartCoords(event.nativeEvent);\n shiftDataRef.current = getInitialShiftData(\n rootRef.current!.offsetWidth,\n rootRef.current!.offsetHeight,\n mediaQueries,\n );\n setTouched(true);\n };\n\n const handleTouchMove = (event: React.UIEvent<HTMLDivElement>) => {\n if (shiftDataRef.current && panGestureRecognizer.current) {\n panGestureRecognizer.current.setInitialTimeOnce();\n panGestureRecognizer.current.setEndCoords(event.nativeEvent);\n shiftDataRef.current = getMovedShiftData(\n placement,\n shiftDataRef.current,\n panGestureRecognizer.current.delta(),\n );\n\n if (shiftDataRef.current.shifted) {\n updateShiftAxisCSSProperties(\n shiftDataRef.current.x,\n shiftDataRef.current.y,\n shiftDataRef.current.direction,\n );\n }\n }\n };\n\n const handleTouchEnd = () => {\n if (\n touched &&\n shiftDataRef.current &&\n panGestureRecognizer.current &&\n shouldBeClosedByShiftData(\n placement,\n shiftDataRef.current,\n getRelativeBoundingClientRect(rootRef.current!, inRef.current!),\n panGestureRecognizer.current.velocity(),\n )\n ) {\n close();\n }\n\n setTouched(false);\n };\n\n useIsomorphicLayoutEffect(\n function closeAfterDelay() {\n if (!open || focused || touched || animationState !== 'entered') {\n return;\n }\n closeTimeoutIdRef.current = setTimeout(close, duration);\n return function preventCloseAfterDelayOnUnmount() {\n clearTimeout(closeTimeoutIdRef.current);\n };\n },\n [open, focused, touched, animationState, close, duration],\n );\n\n useIsomorphicLayoutEffect(\n function clearUserInteractionDataAfterTouchEnd() {\n if (!touched) {\n clearRAF();\n shiftDataRef.current = null;\n panGestureRecognizer.current = null;\n\n if (open) {\n updateShiftAxisCSSProperties(null, null, null);\n }\n }\n },\n [touched, open, updateShiftAxisCSSProperties, clearRAF],\n );\n\n React.useEffect(() => clearRAF, [clearRAF]);\n\n useGlobalEscKeyDown(open, close);\n\n if (animationState === 'exited') {\n return null;\n }\n\n return (\n <RootComponent\n {...restProps}\n role=\"presentation\"\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n touched && styles.touched,\n placementClassNames[placement],\n animationStateClassNames[animationState],\n )}\n baseStyle={resolveOffsetYCssStyle(placement, offsetY)}\n getRootRef={rootRef}\n >\n <div\n role=\"alert\"\n className={styles.in}\n ref={inRef}\n // mobile\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n // desktop\n onMouseDown={handleTouchStart}\n onMouseMove={handleTouchMove}\n onMouseUp={handleTouchEnd}\n onMouseLeave={handleTouchEnd}\n {...animationHandlers}\n >\n <Basic\n mode={mode}\n layout={layout}\n before={before}\n after={after}\n subtitle={subtitle}\n action={\n action && (\n <Button\n align=\"left\"\n mode=\"link\"\n appearance={\n mode === 'dark'\n ? /* istanbul ignore next: проверяется в e2e */\n 'overlay'\n : 'accent'\n }\n size=\"s\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )\n }\n >\n {children}\n </Basic>\n </div>\n </RootComponent>\n );\n};\n\nSnackbar.Basic = Basic;\n"],"names":["React","classNames","useExternRef","useFocusWithin","useGlobalEscKeyDown","useMediaQueries","usePlatform","useCSSKeyframesAnimationController","getRelativeBoundingClientRect","UIPanGestureRecognizer","useIsomorphicLayoutEffect","Button","RootComponent","Basic","getInitialShiftData","getMovedShiftData","resolveOffsetYCssStyle","shouldBeClosedByShiftData","styles","placementClassNames","placementTopStart","placementTop","placementTopEnd","placementBottomStart","placementBottom","placementBottomEnd","animationStateClassNames","enter","stateEnter","entering","stateEntering","entered","stateEntered","exit","stateExit","exiting","stateExiting","exited","undefined","Snackbar","placement","children","layout","action","before","after","duration","onActionClick","onClose","mode","subtitle","offsetY","getRootRef","restProps","platform","open","setOpen","useState","touched","setTouched","rootRef","focused","inRef","useRef","panGestureRecognizer","shiftDataRef","rafRef","closeTimeoutIdRef","mediaQueries","animationState","animationHandlers","onExited","clearRAF","useCallback","current","cancelAnimationFrame","updateShiftAxisCSSProperties","x","y","direction","requestAnimationFrame","style","removeProperty","setProperty","close","handleActionClick","event","handleTouchStart","setStartCoords","nativeEvent","offsetWidth","offsetHeight","handleTouchMove","setInitialTimeOnce","setEndCoords","delta","shifted","handleTouchEnd","velocity","closeAfterDelay","setTimeout","preventCloseAfterDelayOnUnmount","clearTimeout","clearUserInteractionDataAfterTouchEnd","useEffect","role","baseClassName","host","ios","baseStyle","div","className","in","ref","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","align","appearance","size","onClick"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,mBAAmB,QAAQ,qCAAkC;AACtE,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,kCAAkC,QAAQ,+BAAsB;AACzE,SAASC,6BAA6B,QAAQ,mBAAgB;AAC9D,SAASC,sBAAsB,QAAQ,2BAAkB;AACzD,SAASC,yBAAyB,QAAQ,yCAAsC;AAEhF,SAASC,MAAM,QAAQ,sBAAmB;AAC1C,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,KAAK,QAAyB,iCAA8B;AAErE,SACEC,mBAAmB,EACnBC,iBAAiB,EACjBC,sBAAsB,EACtBC,yBAAyB,QACpB,aAAU;AACjB,OAAOC,YAAY,wBAAwB;AAE3C,MAAMC,sBAAsB;IAC1B,aAAaD,OAAOE,iBAAiB;IACrC,OAAOF,OAAOG,YAAY;IAC1B,WAAWH,OAAOI,eAAe;IACjC,gBAAgBJ,OAAOK,oBAAoB;IAC3C,UAAUL,OAAOM,eAAe;IAChC,cAAcN,OAAOO,kBAAkB;AACzC;AAEA,MAAMC,2BAA2B;IAC/BC,OAAOT,OAAOU,UAAU;IACxBC,UAAUX,OAAOY,aAAa;IAC9BC,SAASb,OAAOc,YAAY;IAC5BC,MAAMf,OAAOgB,SAAS;IACtBC,SAASjB,OAAOkB,YAAY;IAC5BC,QAAQC;AACV;AAwCA;;CAEC,GACD,OAAO,MAAMC,WAA8D,CAAC,EAC1EC,YAAY,cAAc,EAC1BC,QAAQ,EACRC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,KAAK,EACLC,WAAW,IAAI,EACfC,aAAa,EACbC,OAAO,EACPC,OAAO,SAAS,EAChBC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACV,GAAGC,WACW;IACd,MAAMC,WAAWhD;IAEjB,MAAM,CAACiD,MAAMC,QAAQ,GAAGxD,MAAMyD,QAAQ,CAAC;IACvC,MAAM,CAACC,SAASC,WAAW,GAAG3D,MAAMyD,QAAQ,CAAC;IAE7C,MAAMG,UAAU1D,aAAakD;IAC7B,MAAMS,UAAU1D,eAAeyD;IAC/B,MAAME,QAAQ9D,MAAM+D,MAAM,CAAiB;IAC3C,MAAMC,uBAAuBhE,MAAM+D,MAAM,CAAgC;IAEzE,MAAME,eAAejE,MAAM+D,MAAM,CAAmB;IAEpD,MAAMG,SAASlE,MAAM+D,MAAM,CAAkD;IAC7E,MAAMI,oBAAoBnE,MAAM+D,MAAM,CAA4CzB;IAClF,MAAM8B,eAAe/D;IACrB,MAAM,CAACgE,gBAAgBC,kBAAkB,GAAG/D,mCAC1CgD,OAAO,UAAU,QACjB;QACEgB,UAAUvB;IACZ;IAGF,MAAMwB,WAAWxE,MAAMyE,WAAW,CAAC;QACjC,IAAIP,OAAOQ,OAAO,KAAK,MAAM;YAC3BC,qBAAqBT,OAAOQ,OAAO;YACnCR,OAAOQ,OAAO,GAAG;QACnB;IACF,GAAG,EAAE;IAEL,MAAME,+BAA+B5E,MAAMyE,WAAW,CACpD,CAACI,GAAkBC,GAAkBC;QACnCb,OAAOQ,OAAO,GAAGM,sBAAsB;YACrC,IAAIpB,QAAQc,OAAO,EAAE;gBACnBG,MAAM,OACFjB,QAAQc,OAAO,CAACO,KAAK,CAACC,cAAc,CAAC,uCACrCtB,QAAQc,OAAO,CAACO,KAAK,CAACE,WAAW,CAAC,qCAAqC,GAAGN,EAAE,EAAE,CAAC;gBACnFC,MAAM,OACFlB,QAAQc,OAAO,CAACO,KAAK,CAACC,cAAc,CAAC,uCACrCtB,QAAQc,OAAO,CAACO,KAAK,CAACE,WAAW,CAAC,qCAAqC,GAAGL,EAAE,EAAE,CAAC;gBACnFC,cAAc,OACVnB,QAAQc,OAAO,CAACO,KAAK,CAACC,cAAc,CAAC,yCACrC,+IAA+I,GAC/ItB,QAAQc,OAAO,CAACO,KAAK,CAACE,WAAW,CAC/B,uCACA,GAAGJ,WAAW;YAEtB;QACF;IACF,GACA;QAACnB;KAAQ;IAGX,MAAMwB,QAAQpF,MAAMyE,WAAW,CAAC;QAC9BjB,QAAQ;IACV,GAAG,EAAE;IAEL,MAAM6B,oBAAoB,CAACC;QACzBF;QACA,IAAIzC,QAAQ;YACVI,gBAAgBuC;QAClB;IACF;IAEA,MAAMC,mBAAmB,CAACD;QACxBtB,qBAAqBU,OAAO,GAAG,IAAIjE;QACnCuD,qBAAqBU,OAAO,CAACc,cAAc,CAACF,MAAMG,WAAW;QAC7DxB,aAAaS,OAAO,GAAG5D,oBACrB8C,QAAQc,OAAO,CAAEgB,WAAW,EAC5B9B,QAAQc,OAAO,CAAEiB,YAAY,EAC7BvB;QAEFT,WAAW;IACb;IAEA,MAAMiC,kBAAkB,CAACN;QACvB,IAAIrB,aAAaS,OAAO,IAAIV,qBAAqBU,OAAO,EAAE;YACxDV,qBAAqBU,OAAO,CAACmB,kBAAkB;YAC/C7B,qBAAqBU,OAAO,CAACoB,YAAY,CAACR,MAAMG,WAAW;YAC3DxB,aAAaS,OAAO,GAAG3D,kBACrByB,WACAyB,aAAaS,OAAO,EACpBV,qBAAqBU,OAAO,CAACqB,KAAK;YAGpC,IAAI9B,aAAaS,OAAO,CAACsB,OAAO,EAAE;gBAChCpB,6BACEX,aAAaS,OAAO,CAACG,CAAC,EACtBZ,aAAaS,OAAO,CAACI,CAAC,EACtBb,aAAaS,OAAO,CAACK,SAAS;YAElC;QACF;IACF;IAEA,MAAMkB,iBAAiB;QACrB,IACEvC,WACAO,aAAaS,OAAO,IACpBV,qBAAqBU,OAAO,IAC5BzD,0BACEuB,WACAyB,aAAaS,OAAO,EACpBlE,8BAA8BoD,QAAQc,OAAO,EAAGZ,MAAMY,OAAO,GAC7DV,qBAAqBU,OAAO,CAACwB,QAAQ,KAEvC;YACAd;QACF;QAEAzB,WAAW;IACb;IAEAjD,0BACE,SAASyF;QACP,IAAI,CAAC5C,QAAQM,WAAWH,WAAWW,mBAAmB,WAAW;YAC/D;QACF;QACAF,kBAAkBO,OAAO,GAAG0B,WAAWhB,OAAOtC;QAC9C,OAAO,SAASuD;YACdC,aAAanC,kBAAkBO,OAAO;QACxC;IACF,GACA;QAACnB;QAAMM;QAASH;QAASW;QAAgBe;QAAOtC;KAAS;IAG3DpC,0BACE,SAAS6F;QACP,IAAI,CAAC7C,SAAS;YACZc;YACAP,aAAaS,OAAO,GAAG;YACvBV,qBAAqBU,OAAO,GAAG;YAE/B,IAAInB,MAAM;gBACRqB,6BAA6B,MAAM,MAAM;YAC3C;QACF;IACF,GACA;QAAClB;QAASH;QAAMqB;QAA8BJ;KAAS;IAGzDxE,MAAMwG,SAAS,CAAC,IAAMhC,UAAU;QAACA;KAAS;IAE1CpE,oBAAoBmD,MAAM6B;IAE1B,IAAIf,mBAAmB,UAAU;QAC/B,OAAO;IACT;IAEA,qBACE,KAACzD;QACE,GAAGyC,SAAS;QACboD,MAAK;QACLC,eAAezG,WACbiB,OAAOyF,IAAI,EACXrD,aAAa,SAASpC,OAAO0F,GAAG,EAChClD,WAAWxC,OAAOwC,OAAO,EACzBvC,mBAAmB,CAACqB,UAAU,EAC9Bd,wBAAwB,CAAC2C,eAAe;QAE1CwC,WAAW7F,uBAAuBwB,WAAWW;QAC7CC,YAAYQ;kBAEZ,cAAA,KAACkD;YACCL,MAAK;YACLM,WAAW7F,OAAO8F,EAAE;YACpBC,KAAKnD;YACL,SAAS;YACToD,cAAc3B;YACd4B,aAAavB;YACbwB,YAAYnB;YACZ,UAAU;YACVoB,aAAa9B;YACb+B,aAAa1B;YACb2B,WAAWtB;YACXuB,cAAcvB;YACb,GAAG3B,iBAAiB;sBAErB,cAAA,KAACzD;gBACCoC,MAAMA;gBACNP,QAAQA;gBACRE,QAAQA;gBACRC,OAAOA;gBACPK,UAAUA;gBACVP,QACEA,wBACE,KAAChC;oBACC8G,OAAM;oBACNxE,MAAK;oBACLyE,YACEzE,SAAS,SACL,2CAA2C,GAC3C,YACA;oBAEN0E,MAAK;oBACLC,SAASvC;8BAER1C;;0BAKNF;;;;AAKX,EAAE;AAEFF,SAAS1B,KAAK,GAAGA"}
1
+ {"version":3,"sources":["../../../../src/components/Snackbar/Snackbar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusWithin } from '../../hooks/useFocusWithin';\nimport { useGlobalEscKeyDown } from '../../hooks/useGlobalEscKeyDown';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { getRelativeBoundingClientRect } from '../../lib/dom';\nimport { UIPanGestureRecognizer } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Basic, type BasicProps } from './subcomponents/Basic/Basic';\nimport type { ShiftData, SnackbarPlacement } from './types';\nimport {\n getInitialShiftData,\n getMovedShiftData,\n resolveOffsetYCssStyle,\n shouldBeClosedByShiftData,\n} from './utils';\nimport styles from './Snackbar.module.css';\n\nconst placementClassNames = {\n 'top-start': styles.placementTopStart,\n 'top': styles.placementTop,\n 'top-end': styles.placementTopEnd,\n 'bottom-start': styles.placementBottomStart,\n 'bottom': styles.placementBottom,\n 'bottom-end': styles.placementBottomEnd,\n};\n\nconst animationStateClassNames = {\n enter: styles.stateEnter,\n entering: styles.stateEntering,\n entered: styles.stateEntered,\n exit: styles.stateExit,\n exiting: styles.stateExiting,\n exited: undefined,\n};\n\nexport interface SnackbarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'role'>,\n BasicProps {\n /**\n * Задаёт расположение компонента.\n *\n * > Note: в мобильном режиме:\n * > - `\"top-start\"`/`\"top-end\"` перебивается на `\"top\"`, чтобы поведение было схожим с нативными\n * > уведомлениями;\n * > - `\"bottom\"` перебивается на `\"bottom-start\"`, чтобы избежать вызова системных\n * > функций, таких как **Pull To Refresh** и **Режим управления одной рукой**.\n * > - `\"bottom-start\"`/`\"bottom-end\"` закрываются смахиванием в любое из направлений\n * > по горизонтальной оси.\n */\n placement?: SnackbarPlacement;\n /**\n * Название кнопки действия в уведомлении\n * Не может использоваться одновременно с `subtitle`\n */\n action?: React.ReactNode;\n /**\n * Будет вызвано при клике на кнопку действия\n */\n onActionClick?: (event: React.MouseEvent) => void;\n /**\n * Время в миллисекундах, через которое плашка скроется\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления\n */\n onClose: () => void;\n /**\n * Величина отступа снизу. Используется для позиционирования элемента в случае, когда нежелательно, чтобы Snackbar при появлении перекрывал важные элементы интерфейса.\n */\n offsetY?: React.CSSProperties['bottom'];\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Snackbar\n */\nexport const Snackbar: React.FC<SnackbarProps> & { Basic: typeof Basic } = ({\n placement = 'bottom-start',\n children,\n layout,\n action,\n before,\n after,\n duration = 4000,\n onActionClick,\n onClose,\n mode = 'default',\n subtitle,\n offsetY,\n getRootRef,\n ...restProps\n}: SnackbarProps) => {\n const platform = usePlatform();\n\n const [open, setOpen] = React.useState(true);\n const [touched, setTouched] = React.useState(false);\n\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const rootRef = useExternRef(getRootRef);\n const focused = useFocusWithin(rootRef);\n const inRef = React.useRef<HTMLDivElement>(null);\n const panGestureRecognizer = React.useRef<UIPanGestureRecognizer | null>(null);\n\n const shiftDataRef = React.useRef<ShiftData | null>(null);\n\n const rafRef = React.useRef<ReturnType<typeof requestAnimationFrame> | null>(null);\n const closeTimeoutIdRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const mediaQueries = useMediaQueries();\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n open ? 'enter' : 'exit',\n {\n onExited: onClose,\n },\n );\n\n const clearRAF = React.useCallback(() => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n }, []);\n\n const updateShiftAxisCSSProperties = React.useCallback(\n (x: number | null, y: number | null, direction: number | null) => {\n rafRef.current = requestAnimationFrame(() => {\n if (rootRef.current) {\n x === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_x')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_x', `${x}px`);\n y === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_y')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_y', `${y}px`);\n direction === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_direction')\n : /* istanbul ignore next: TODO чтобы протестировать кейс, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n rootRef.current.style.setProperty(\n '--vkui_internal--snackbar_direction',\n `${direction}`,\n );\n }\n });\n },\n [rootRef],\n );\n\n const close = React.useCallback(() => {\n setOpen(false);\n }, []);\n\n const handleActionClick = (event: React.MouseEvent) => {\n close();\n if (action) {\n onActionClick?.(event);\n }\n };\n\n const handleTouchStart = (event: React.UIEvent<HTMLDivElement>) => {\n panGestureRecognizer.current = new UIPanGestureRecognizer();\n panGestureRecognizer.current.setStartCoords(event.nativeEvent);\n shiftDataRef.current = getInitialShiftData(\n rootRef.current!.offsetWidth,\n rootRef.current!.offsetHeight,\n mediaQueries,\n );\n setTouched(true);\n };\n\n const handleTouchMove = (event: React.UIEvent<HTMLDivElement>) => {\n if (shiftDataRef.current && panGestureRecognizer.current) {\n panGestureRecognizer.current.setInitialTimeOnce();\n panGestureRecognizer.current.setEndCoords(event.nativeEvent);\n shiftDataRef.current = getMovedShiftData(\n placement,\n shiftDataRef.current,\n panGestureRecognizer.current.delta(),\n isRtl,\n );\n\n if (shiftDataRef.current.shifted) {\n updateShiftAxisCSSProperties(\n shiftDataRef.current.x,\n shiftDataRef.current.y,\n shiftDataRef.current.direction,\n );\n }\n }\n };\n\n const handleTouchEnd = () => {\n if (\n touched &&\n shiftDataRef.current &&\n panGestureRecognizer.current &&\n shouldBeClosedByShiftData(\n placement,\n shiftDataRef.current,\n getRelativeBoundingClientRect(rootRef.current!, inRef.current!),\n panGestureRecognizer.current.velocity(),\n isRtl,\n )\n ) {\n close();\n }\n\n setTouched(false);\n };\n\n useIsomorphicLayoutEffect(\n function closeAfterDelay() {\n if (!open || focused || touched || animationState !== 'entered') {\n return;\n }\n closeTimeoutIdRef.current = setTimeout(close, duration);\n return function preventCloseAfterDelayOnUnmount() {\n clearTimeout(closeTimeoutIdRef.current);\n };\n },\n [open, focused, touched, animationState, close, duration],\n );\n\n useIsomorphicLayoutEffect(\n function clearUserInteractionDataAfterTouchEnd() {\n if (!touched) {\n clearRAF();\n shiftDataRef.current = null;\n panGestureRecognizer.current = null;\n\n if (open) {\n updateShiftAxisCSSProperties(null, null, null);\n }\n }\n },\n [touched, open, updateShiftAxisCSSProperties, clearRAF],\n );\n\n React.useEffect(() => clearRAF, [clearRAF]);\n\n useGlobalEscKeyDown(open, close);\n\n if (animationState === 'exited') {\n return null;\n }\n\n return (\n <RootComponent\n {...restProps}\n role=\"presentation\"\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n touched && styles.touched,\n placementClassNames[placement],\n animationStateClassNames[animationState],\n isRtl && styles.rtl,\n )}\n baseStyle={resolveOffsetYCssStyle(placement, offsetY)}\n getRootRef={rootRef}\n >\n <div\n role=\"alert\"\n className={styles.in}\n ref={inRef}\n // mobile\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n // desktop\n onMouseDown={handleTouchStart}\n onMouseMove={handleTouchMove}\n onMouseUp={handleTouchEnd}\n onMouseLeave={handleTouchEnd}\n {...animationHandlers}\n >\n <Basic\n mode={mode}\n layout={layout}\n before={before}\n after={after}\n subtitle={subtitle}\n action={\n action && (\n <Button\n align=\"left\"\n mode=\"link\"\n appearance={\n mode === 'dark'\n ? /* istanbul ignore next: проверяется в e2e */\n 'overlay'\n : 'accent'\n }\n size=\"s\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )\n }\n >\n {children}\n </Basic>\n </div>\n </RootComponent>\n );\n};\n\nSnackbar.Basic = Basic;\n"],"names":["React","classNames","useConfigDirection","useExternRef","useFocusWithin","useGlobalEscKeyDown","useMediaQueries","usePlatform","useCSSKeyframesAnimationController","getRelativeBoundingClientRect","UIPanGestureRecognizer","useIsomorphicLayoutEffect","Button","RootComponent","Basic","getInitialShiftData","getMovedShiftData","resolveOffsetYCssStyle","shouldBeClosedByShiftData","styles","placementClassNames","placementTopStart","placementTop","placementTopEnd","placementBottomStart","placementBottom","placementBottomEnd","animationStateClassNames","enter","stateEnter","entering","stateEntering","entered","stateEntered","exit","stateExit","exiting","stateExiting","exited","undefined","Snackbar","placement","children","layout","action","before","after","duration","onActionClick","onClose","mode","subtitle","offsetY","getRootRef","restProps","platform","open","setOpen","useState","touched","setTouched","direction","isRtl","rootRef","focused","inRef","useRef","panGestureRecognizer","shiftDataRef","rafRef","closeTimeoutIdRef","mediaQueries","animationState","animationHandlers","onExited","clearRAF","useCallback","current","cancelAnimationFrame","updateShiftAxisCSSProperties","x","y","requestAnimationFrame","style","removeProperty","setProperty","close","handleActionClick","event","handleTouchStart","setStartCoords","nativeEvent","offsetWidth","offsetHeight","handleTouchMove","setInitialTimeOnce","setEndCoords","delta","shifted","handleTouchEnd","velocity","closeAfterDelay","setTimeout","preventCloseAfterDelayOnUnmount","clearTimeout","clearUserInteractionDataAfterTouchEnd","useEffect","role","baseClassName","host","ios","rtl","baseStyle","div","className","in","ref","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","align","appearance","size","onClick"],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  --vkui_internal--snackbar_animation_from: translate3d(0, 0, 0);
8
8
  --vkui_internal--snackbar_animation_to: translate3d(0, 0, 0);
9
9
  --vkui_internal--snackbar_animation_duration: 340ms;
10
+ --vkui_internal--snackbar_animation_text_direction: 1;
10
11
 
11
12
  position: fixed;
12
13
  inset-inline: var(--vkui_internal--safe_area_inset_left)
@@ -21,6 +22,10 @@
21
22
  --vkui_internal--snackbar_animation_duration: 400ms;
22
23
  }
23
24
 
25
+ .rtl {
26
+ --vkui_internal--snackbar_animation_text_direction: -1;
27
+ }
28
+
24
29
  .placementTopStart,
25
30
  .placementTop,
26
31
  .placementTopEnd {
@@ -31,11 +36,15 @@
31
36
  }
32
37
 
33
38
  .placementBottomStart {
34
- --vkui_internal--snackbar_direction: -1;
39
+ --vkui_internal--snackbar_direction: calc(
40
+ -1 * var(--vkui_internal--snackbar_animation_text_direction)
41
+ );
35
42
  }
36
43
 
37
44
  .placementBottomEnd {
38
- --vkui_internal--snackbar_direction: 1;
45
+ --vkui_internal--snackbar_direction: calc(
46
+ 1 * var(--vkui_internal--snackbar_animation_text_direction)
47
+ );
39
48
  }
40
49
 
41
50
  .placementBottomStart,
@@ -73,7 +82,11 @@
73
82
 
74
83
  .placementTopStart,
75
84
  .placementBottomStart {
76
- --vkui_internal--snackbar_animation_from: translate3d(-100%, 0, 0);
85
+ --vkui_internal--snackbar_animation_from: translate3d(
86
+ calc(-100% * var(--vkui_internal--snackbar_animation_text_direction)),
87
+ 0,
88
+ 0
89
+ );
77
90
  --vkui_internal--snackbar_animation_to: translate3d(
78
91
  var(--vkui_internal--snackbar_shift_x),
79
92
  0,
@@ -86,7 +99,11 @@
86
99
 
87
100
  .placementTopEnd,
88
101
  .placementBottomEnd {
89
- --vkui_internal--snackbar_animation_from: translate3d(100%, 0, 0);
102
+ --vkui_internal--snackbar_animation_from: translate3d(
103
+ calc(100% * var(--vkui_internal--snackbar_animation_text_direction)),
104
+ 0,
105
+ 0
106
+ );
90
107
  --vkui_internal--snackbar_animation_to: translate3d(
91
108
  var(--vkui_internal--snackbar_shift_x),
92
109
  0,
@@ -147,9 +164,9 @@
147
164
  }
148
165
 
149
166
  .stateEntered .in {
150
- transition-property: transform;
151
- transition-duration: var(--vkui_internal--snackbar_animation_duration);
152
167
  transition-timing-function: var(--vkui--animation_easing_platform);
168
+ transition-duration: var(--vkui_internal--snackbar_animation_duration);
169
+ transition-property: transform;
153
170
  }
154
171
 
155
172
  .touched .in {
@@ -9,13 +9,13 @@
9
9
  );
10
10
 
11
11
  box-sizing: border-box;
12
- padding: 12px;
13
- min-block-size: 56px;
14
12
  display: flex;
15
13
  align-items: center;
14
+ min-block-size: 56px;
15
+ padding: 12px;
16
16
  background: var(--vkui--color_background_contrast_themed);
17
- box-shadow: var(--vkui--elevation4);
18
17
  border-radius: var(--vkui--size_card_border_radius--regular);
18
+ box-shadow: var(--vkui--elevation4);
19
19
  }
20
20
 
21
21
  .sizeYRegular {
@@ -57,25 +57,26 @@
57
57
  }
58
58
 
59
59
  .content {
60
- flex: 1;
61
60
  display: flex;
61
+ flex: 1;
62
62
  align-items: center;
63
+ word-break: break-word;
63
64
  }
64
65
 
65
66
  .contentText {
67
+ display: -webkit-box;
66
68
  flex: 1;
67
- color: var(--vkui--color_text_primary);
68
69
  inline-size: 100%;
69
- display: -webkit-box;
70
+ overflow: hidden;
70
71
  -webkit-line-clamp: 3;
72
+ color: var(--vkui--color_text_primary);
71
73
  -webkit-box-orient: vertical;
72
- overflow: hidden;
73
74
  }
74
75
 
75
76
  .contentSubtitle {
76
- color: var(--vkui--color_text_subhead);
77
77
  -webkit-margin-before: 2px;
78
78
  margin-block-start: 2px;
79
+ color: var(--vkui--color_text_subhead);
79
80
  }
80
81
 
81
82
  .modeDark .contentText {
@@ -18,6 +18,9 @@ export function resolveOffsetYCssStyle(placement, offsetY) {
18
18
  };
19
19
  }
20
20
  }
21
+ export function revertRtlValue(value, isRtl) {
22
+ return isRtl ? -1 * value : value;
23
+ }
21
24
  export function getInitialShiftData(width, height, mediaQueries) {
22
25
  return {
23
26
  shifted: false,
@@ -29,12 +32,12 @@ export function getInitialShiftData(width, height, mediaQueries) {
29
32
  height
30
33
  };
31
34
  }
32
- export function getMovedShiftData(placement, shiftData, nextShift) {
35
+ export function getMovedShiftData(placement, shiftData, nextShift, isRtl = false) {
33
36
  /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */ if (shiftData.isDesktop) {
34
37
  if (placement.endsWith('start')) {
35
- shiftData.x = rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0);
38
+ shiftData.x = isRtl ? rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width) : rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0);
36
39
  } else if (placement.endsWith('end')) {
37
- shiftData.x = rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width);
40
+ shiftData.x = isRtl ? rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0) : rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width);
38
41
  }
39
42
  if (placement.startsWith('bottom')) {
40
43
  shiftData.y = rubberbandIfOutOfBounds(nextShift.y, 0, shiftData.height);
@@ -52,7 +55,7 @@ export function getMovedShiftData(placement, shiftData, nextShift) {
52
55
  return shiftData;
53
56
  }
54
57
  const MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE = 200;
55
- export function shouldBeClosedByShiftData(placement, shiftData, relativeClientRect, velocity) {
58
+ export function shouldBeClosedByShiftData(placement, shiftData, relativeClientRect, velocity, isRtl = false) {
56
59
  if (!shiftData.shifted) {
57
60
  return false;
58
61
  }
@@ -66,11 +69,11 @@ export function shouldBeClosedByShiftData(placement, shiftData, relativeClientRe
66
69
  };
67
70
  /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */ if (shiftData.isDesktop) {
68
71
  if (placement.endsWith('start')) {
69
- shouldBeClosedThreshold.x = relativeClientRect.x < -relativeClientRect.width / 2;
70
- shouldBeClosedByVelocity.x = relativeClientRect.x < 0 ? velocity.x < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;
72
+ shouldBeClosedThreshold.x = revertRtlValue(relativeClientRect.x, isRtl) < -relativeClientRect.width / 2;
73
+ shouldBeClosedByVelocity.x = revertRtlValue(relativeClientRect.x, isRtl) < 0 ? revertRtlValue(velocity.x, isRtl) < revertRtlValue(-MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl) : false;
71
74
  } else if (placement.endsWith('end')) {
72
- shouldBeClosedThreshold.x = relativeClientRect.x > relativeClientRect.width / 2;
73
- shouldBeClosedByVelocity.x = relativeClientRect.x > 0 ? velocity.x > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;
75
+ shouldBeClosedThreshold.x = revertRtlValue(relativeClientRect.x, isRtl) > relativeClientRect.width / 2;
76
+ shouldBeClosedByVelocity.x = revertRtlValue(relativeClientRect.x, isRtl) > 0 ? revertRtlValue(velocity.x, isRtl) > revertRtlValue(MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl) : false;
74
77
  }
75
78
  if (placement.startsWith('bottom')) {
76
79
  shouldBeClosedThreshold.y = relativeClientRect.y > relativeClientRect.height / 2;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Snackbar/utils.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { MediaQueries } from '../../lib/adaptivity';\nimport { rubberbandIfOutOfBounds } from '../../lib/animation';\nimport type { ShiftData, SnackbarPlacement } from './types';\n\nexport function resolveOffsetYCssStyle(\n placement: SnackbarPlacement,\n offsetY?: React.CSSProperties['inset'],\n): React.CSSProperties | undefined {\n if (offsetY === undefined) {\n return undefined;\n }\n switch (placement) {\n case 'top-start':\n case 'top':\n case 'top-end':\n return { top: offsetY };\n case 'bottom-start':\n case 'bottom':\n case 'bottom-end':\n return { bottom: offsetY };\n }\n}\n\nexport function getInitialShiftData(\n width: number,\n height: number,\n mediaQueries: MediaQueries,\n): ShiftData {\n return {\n shifted: false,\n direction: null,\n isDesktop: mediaQueries.smallTabletPlus.matches, // eslint-disable-line no-restricted-properties,\n x: 0,\n y: 0,\n width,\n height,\n };\n}\n\nexport function getMovedShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n nextShift: { x: number; y: number },\n): ShiftData {\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shiftData.x = rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0);\n } else if (placement.endsWith('end')) {\n shiftData.x = rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width);\n }\n\n if (placement.startsWith('bottom')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, 0, shiftData.height);\n }\n } else if (placement.startsWith('bottom')) {\n shiftData.x = nextShift.x;\n\n const movingToLeft = nextShift.x < 0 ? -1 : null;\n const movingToRight = nextShift.x > 0 ? 1 : null;\n shiftData.direction = movingToLeft || movingToRight;\n }\n\n if (placement.startsWith('top')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, -shiftData.height, 0);\n }\n\n shiftData.shifted = true;\n\n return shiftData;\n}\n\nconst MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE = 200;\n\nexport function shouldBeClosedByShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n relativeClientRect: DOMRect,\n velocity: { x: number; y: number },\n): boolean {\n if (!shiftData.shifted) {\n return false;\n }\n\n const shouldBeClosedThreshold = { x: false, y: false };\n const shouldBeClosedByVelocity = { x: false, y: false };\n\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shouldBeClosedThreshold.x = relativeClientRect.x < -relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n relativeClientRect.x < 0 ? velocity.x < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n } else if (placement.endsWith('end')) {\n shouldBeClosedThreshold.x = relativeClientRect.x > relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n relativeClientRect.x > 0 ? velocity.x > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n\n if (placement.startsWith('bottom')) {\n shouldBeClosedThreshold.y = relativeClientRect.y > relativeClientRect.height / 2;\n shouldBeClosedByVelocity.y =\n relativeClientRect.y > 0 ? velocity.y > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n } else if (placement.startsWith('bottom')) {\n shouldBeClosedThreshold.x =\n relativeClientRect.x < -relativeClientRect.width / 2 ||\n relativeClientRect.x > relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n (relativeClientRect.x < 0 && velocity.x < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE) ||\n (relativeClientRect.x > 0 && velocity.x > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE);\n }\n\n if (placement.startsWith('top')) {\n shouldBeClosedThreshold.y = relativeClientRect.y < -relativeClientRect.height / 2;\n shouldBeClosedByVelocity.y =\n relativeClientRect.y < 0 ? velocity.y < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n\n return (\n shouldBeClosedThreshold.x ||\n shouldBeClosedByVelocity.x ||\n shouldBeClosedThreshold.y ||\n /* istanbul ignore next: подсвечивает жёлтым и пишет \"branch not covered\" */\n shouldBeClosedByVelocity.y\n );\n}\n"],"names":["rubberbandIfOutOfBounds","resolveOffsetYCssStyle","placement","offsetY","undefined","top","bottom","getInitialShiftData","width","height","mediaQueries","shifted","direction","isDesktop","smallTabletPlus","matches","x","y","getMovedShiftData","shiftData","nextShift","endsWith","startsWith","movingToLeft","movingToRight","MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE","shouldBeClosedByShiftData","relativeClientRect","velocity","shouldBeClosedThreshold","shouldBeClosedByVelocity"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Snackbar/utils.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { MediaQueries } from '../../lib/adaptivity';\nimport { rubberbandIfOutOfBounds } from '../../lib/animation';\nimport type { ShiftData, SnackbarPlacement } from './types';\n\nexport function resolveOffsetYCssStyle(\n placement: SnackbarPlacement,\n offsetY?: React.CSSProperties['inset'],\n): React.CSSProperties | undefined {\n if (offsetY === undefined) {\n return undefined;\n }\n switch (placement) {\n case 'top-start':\n case 'top':\n case 'top-end':\n return { top: offsetY };\n case 'bottom-start':\n case 'bottom':\n case 'bottom-end':\n return { bottom: offsetY };\n }\n}\n\nexport function revertRtlValue(value: number, isRtl: boolean) {\n return isRtl ? -1 * value : value;\n}\n\nexport function getInitialShiftData(\n width: number,\n height: number,\n mediaQueries: MediaQueries,\n): ShiftData {\n return {\n shifted: false,\n direction: null,\n isDesktop: mediaQueries.smallTabletPlus.matches, // eslint-disable-line no-restricted-properties,\n x: 0,\n y: 0,\n width,\n height,\n };\n}\n\nexport function getMovedShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n nextShift: { x: number; y: number },\n isRtl = false,\n): ShiftData {\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shiftData.x = isRtl\n ? rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width)\n : rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0);\n } else if (placement.endsWith('end')) {\n shiftData.x = isRtl\n ? rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0)\n : rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width);\n }\n\n if (placement.startsWith('bottom')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, 0, shiftData.height);\n }\n } else if (placement.startsWith('bottom')) {\n shiftData.x = nextShift.x;\n\n const movingToLeft = nextShift.x < 0 ? -1 : null;\n const movingToRight = nextShift.x > 0 ? 1 : null;\n shiftData.direction = movingToLeft || movingToRight;\n }\n\n if (placement.startsWith('top')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, -shiftData.height, 0);\n }\n\n shiftData.shifted = true;\n\n return shiftData;\n}\n\nconst MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE = 200;\n\nexport function shouldBeClosedByShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n relativeClientRect: DOMRect,\n velocity: { x: number; y: number },\n isRtl = false,\n): boolean {\n if (!shiftData.shifted) {\n return false;\n }\n\n const shouldBeClosedThreshold = { x: false, y: false };\n const shouldBeClosedByVelocity = { x: false, y: false };\n\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shouldBeClosedThreshold.x =\n revertRtlValue(relativeClientRect.x, isRtl) < -relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n revertRtlValue(relativeClientRect.x, isRtl) < 0\n ? revertRtlValue(velocity.x, isRtl) <\n revertRtlValue(-MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl)\n : false;\n } else if (placement.endsWith('end')) {\n shouldBeClosedThreshold.x =\n revertRtlValue(relativeClientRect.x, isRtl) > relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n revertRtlValue(relativeClientRect.x, isRtl) > 0\n ? revertRtlValue(velocity.x, isRtl) >\n revertRtlValue(MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl)\n : false;\n }\n\n if (placement.startsWith('bottom')) {\n shouldBeClosedThreshold.y = relativeClientRect.y > relativeClientRect.height / 2;\n shouldBeClosedByVelocity.y =\n relativeClientRect.y > 0 ? velocity.y > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n } else if (placement.startsWith('bottom')) {\n shouldBeClosedThreshold.x =\n relativeClientRect.x < -relativeClientRect.width / 2 ||\n relativeClientRect.x > relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n (relativeClientRect.x < 0 && velocity.x < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE) ||\n (relativeClientRect.x > 0 && velocity.x > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE);\n }\n\n if (placement.startsWith('top')) {\n shouldBeClosedThreshold.y = relativeClientRect.y < -relativeClientRect.height / 2;\n shouldBeClosedByVelocity.y =\n relativeClientRect.y < 0 ? velocity.y < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n\n return (\n shouldBeClosedThreshold.x ||\n shouldBeClosedByVelocity.x ||\n shouldBeClosedThreshold.y ||\n /* istanbul ignore next: подсвечивает жёлтым и пишет \"branch not covered\" */\n shouldBeClosedByVelocity.y\n );\n}\n"],"names":["rubberbandIfOutOfBounds","resolveOffsetYCssStyle","placement","offsetY","undefined","top","bottom","revertRtlValue","value","isRtl","getInitialShiftData","width","height","mediaQueries","shifted","direction","isDesktop","smallTabletPlus","matches","x","y","getMovedShiftData","shiftData","nextShift","endsWith","startsWith","movingToLeft","movingToRight","MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE","shouldBeClosedByShiftData","relativeClientRect","velocity","shouldBeClosedThreshold","shouldBeClosedByVelocity"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  .host {
2
2
  position: relative;
3
- padding-block: calc(var(--vkui_internal--spacing_size) / 2);
4
3
  box-sizing: border-box;
4
+ padding-block: calc(var(--vkui_internal--spacing_size) / 2);
5
5
  }
@@ -1,9 +1,9 @@
1
1
  .host {
2
- inline-size: 100%;
3
- block-size: 100%;
4
2
  display: flex;
5
3
  align-items: center;
6
4
  justify-content: center;
5
+ inline-size: 100%;
6
+ block-size: 100%;
7
7
  color: var(--vkui--color_icon_medium);
8
8
  }
9
9
 
@@ -1,9 +1,9 @@
1
1
  .host {
2
- block-size: 100%;
3
- inline-size: 1px;
2
+ position: relative;
4
3
  flex-grow: 1;
5
4
  flex-shrink: 1;
6
- position: relative;
5
+ inline-size: 1px;
6
+ block-size: 100%;
7
7
  }
8
8
 
9
9
  .viewWidthSmallTabletPlus.spacedAuto {
@@ -35,19 +35,19 @@
35
35
  }
36
36
 
37
37
  .fixed {
38
- block-size: 100%;
39
- inline-size: 1px;
40
38
  flex-grow: 1;
41
39
  flex-shrink: 1;
40
+ inline-size: 1px;
41
+ block-size: 100%;
42
42
  }
43
43
 
44
44
  .fixedInner {
45
- block-size: inherit;
45
+ position: fixed;
46
+ inset-block-start: 0;
46
47
  inline-size: inherit;
47
48
  min-inline-size: inherit;
48
49
  max-inline-size: inherit;
49
- position: fixed;
50
- transform: translateZ(0);
50
+ block-size: inherit;
51
51
  overflow: hidden;
52
- inset-block-start: 0;
52
+ transform: translateZ(0);
53
53
  }
@@ -1,13 +1,13 @@
1
1
  .host {
2
+ position: relative;
2
3
  inline-size: 100%;
3
4
  block-size: 100%;
4
- position: relative;
5
5
  }
6
6
 
7
7
  .inner {
8
+ display: flex;
8
9
  inline-size: 100%;
9
10
  block-size: 100%;
10
- display: flex;
11
11
  }
12
12
 
13
13
  /* Hack with using PanelHeaderSimple */
@@ -5,21 +5,21 @@
5
5
  }
6
6
 
7
7
  .scrollIn {
8
- margin: 0;
8
+ display: flex;
9
9
  padding-block: calc(var(--vkui--size_subnavigation_bar_padding_vertical--regular) + 8px);
10
10
  padding-inline: 0;
11
- display: flex;
11
+ margin: 0;
12
12
  }
13
13
 
14
14
  .scrollIn::before,
15
15
  .scrollIn::after {
16
- content: '';
17
16
  min-inline-size: var(--vkui--size_base_padding_horizontal--regular);
17
+ content: '';
18
18
  }
19
19
 
20
20
  .item {
21
- list-style-type: none;
22
21
  display: flex;
22
+ list-style-type: none;
23
23
  }
24
24
 
25
25
  .item + .item {
@@ -45,7 +45,7 @@ const SubnavigationButtonTypography = ({ textLevel, ...restProps })=>{
45
45
  ...restProps,
46
46
  hasActive: false,
47
47
  focusVisibleMode: "outside",
48
- baseClassName: classNames(styles.host, sizeStyles[size], modeStyles[mode], appearanceStyles[appearance], selected && styles.selected, sizeY !== 'regular' && sizeYClassNames[sizeY]),
48
+ baseClassName: classNames(styles.host, sizeStyles[size], modeStyles[mode], appearanceStyles[appearance], selected && styles.selected, sizeY !== 'regular' && sizeYClassNames[sizeY], restProps.disabled && styles.disabled),
49
49
  children: /*#__PURE__*/ _jsxs("span", {
50
50
  className: styles.in,
51
51
  children: [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Dropdown } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport type { HasChildren, HasComponent } from '../../types';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport styles from './SubnavigationButton.module.css';\n\nconst appearanceStyles = {\n accent: styles.appearanceAccent,\n neutral: styles.appearanceNeutral,\n};\n\nconst modeStyles = {\n primary: styles.modePrimary,\n outline: styles.modeOutline,\n tertiary: styles.modeTertiary,\n};\n\nconst sizeStyles = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n};\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface SubnavigationButtonProps extends Omit<TappableProps, 'size'> {\n mode?: 'primary' | 'outline' | 'tertiary';\n appearance?: 'accent' | 'neutral';\n size?: 's' | 'm' | 'l';\n selected?: boolean;\n /**\n * Размер шрифта. Этим свойством рекомендуется пользоваться, чтобы отрегулировать размер шрифта у кнопок в `<SubnavigationBar fixed />`\n */\n textLevel?: '1' | '2' | '3';\n /**\n * Рекомендуется использовать только иконки с размером 24\n */\n before?: React.ReactNode;\n /**\n * Рекомендуется использовать только `<Counter size=\"s\" />` или `<Badge />`\n */\n after?: React.ReactNode;\n chevron?: boolean;\n}\n\ntype SubnavigationButtonTypographyProps = Pick<\n SubnavigationButtonProps,\n 'textLevel' | 'className'\n> &\n HasComponent &\n HasChildren;\n\nconst SubnavigationButtonTypography = ({\n textLevel,\n ...restProps\n}: SubnavigationButtonTypographyProps) => {\n if (textLevel === '1') {\n return <Subhead {...restProps} />;\n }\n\n return <Caption level={textLevel === '2' ? '1' : '2'} {...restProps} />;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SubnavigationButton\n */\nexport const SubnavigationButton = ({\n mode = 'primary',\n appearance = 'accent',\n size = 'm',\n selected,\n textLevel = '1',\n before,\n after,\n chevron,\n children,\n ...restProps\n}: SubnavigationButtonProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n {...restProps}\n hasActive={false}\n focusVisibleMode=\"outside\"\n baseClassName={classNames(\n styles.host,\n sizeStyles[size],\n modeStyles[mode],\n appearanceStyles[appearance],\n selected && styles.selected,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n )}\n >\n <span className={styles.in}>\n {before && <span className={styles.before}>{before}</span>}\n <SubnavigationButtonTypography\n textLevel={textLevel}\n className={styles.label}\n Component=\"span\"\n >\n {children}\n </SubnavigationButtonTypography>\n {after && <span className={styles.after}>{after}</span>}\n {chevron && <Icon16Dropdown className={styles.chevronIcon} />}\n </span>\n </Tappable>\n );\n};\n"],"names":["React","Icon16Dropdown","classNames","useAdaptivity","Tappable","Caption","Subhead","styles","appearanceStyles","accent","appearanceAccent","neutral","appearanceNeutral","modeStyles","primary","modePrimary","outline","modeOutline","tertiary","modeTertiary","sizeStyles","s","sizeS","m","sizeM","l","sizeL","sizeYClassNames","none","sizeYNone","compact","sizeYCompact","SubnavigationButtonTypography","textLevel","restProps","level","SubnavigationButton","mode","appearance","size","selected","before","after","chevron","children","sizeY","hasActive","focusVisibleMode","baseClassName","host","span","className","in","label","Component","chevronIcon"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAE1D,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,OAAO,QAAQ,mCAAgC;AACxD,OAAOC,YAAY,mCAAmC;AAEtD,MAAMC,mBAAmB;IACvBC,QAAQF,OAAOG,gBAAgB;IAC/BC,SAASJ,OAAOK,iBAAiB;AACnC;AAEA,MAAMC,aAAa;IACjBC,SAASP,OAAOQ,WAAW;IAC3BC,SAAST,OAAOU,WAAW;IAC3BC,UAAUX,OAAOY,YAAY;AAC/B;AAEA,MAAMC,aAAa;IACjBC,GAAGd,OAAOe,KAAK;IACfC,GAAGhB,OAAOiB,KAAK;IACfC,GAAGlB,OAAOmB,KAAK;AACjB;AAEA,MAAMC,kBAAkB;IACtBC,MAAMrB,OAAOsB,SAAS;IACtBC,SAASvB,OAAOwB,YAAY;AAC9B;AA6BA,MAAMC,gCAAgC,CAAC,EACrCC,SAAS,EACT,GAAGC,WACgC;IACnC,IAAID,cAAc,KAAK;QACrB,qBAAO,KAAC3B;YAAS,GAAG4B,SAAS;;IAC/B;IAEA,qBAAO,KAAC7B;QAAQ8B,OAAOF,cAAc,MAAM,MAAM;QAAM,GAAGC,SAAS;;AACrE;AAEA;;CAEC,GACD,OAAO,MAAME,sBAAsB,CAAC,EAClCC,OAAO,SAAS,EAChBC,aAAa,QAAQ,EACrBC,OAAO,GAAG,EACVC,QAAQ,EACRP,YAAY,GAAG,EACfQ,MAAM,EACNC,KAAK,EACLC,OAAO,EACPC,QAAQ,EACR,GAAGV,WACsB;IACzB,MAAM,EAAEW,QAAQ,MAAM,EAAE,GAAG1C;IAE3B,qBACE,KAACC;QACE,GAAG8B,SAAS;QACbY,WAAW;QACXC,kBAAiB;QACjBC,eAAe9C,WACbK,OAAO0C,IAAI,EACX7B,UAAU,CAACmB,KAAK,EAChB1B,UAAU,CAACwB,KAAK,EAChB7B,gBAAgB,CAAC8B,WAAW,EAC5BE,YAAYjC,OAAOiC,QAAQ,EAC3BK,UAAU,aAAalB,eAAe,CAACkB,MAAM;kBAG/C,cAAA,MAACK;YAAKC,WAAW5C,OAAO6C,EAAE;;gBACvBX,wBAAU,KAACS;oBAAKC,WAAW5C,OAAOkC,MAAM;8BAAGA;;8BAC5C,KAACT;oBACCC,WAAWA;oBACXkB,WAAW5C,OAAO8C,KAAK;oBACvBC,WAAU;8BAETV;;gBAEFF,uBAAS,KAACQ;oBAAKC,WAAW5C,OAAOmC,KAAK;8BAAGA;;gBACzCC,yBAAW,KAAC1C;oBAAekD,WAAW5C,OAAOgD,WAAW;;;;;AAIjE,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Dropdown } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport type { HasChildren, HasComponent } from '../../types';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport styles from './SubnavigationButton.module.css';\n\nconst appearanceStyles = {\n accent: styles.appearanceAccent,\n neutral: styles.appearanceNeutral,\n};\n\nconst modeStyles = {\n primary: styles.modePrimary,\n outline: styles.modeOutline,\n tertiary: styles.modeTertiary,\n};\n\nconst sizeStyles = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n};\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface SubnavigationButtonProps extends Omit<TappableProps, 'size'> {\n mode?: 'primary' | 'outline' | 'tertiary';\n appearance?: 'accent' | 'neutral';\n size?: 's' | 'm' | 'l';\n selected?: boolean;\n /**\n * Размер шрифта. Этим свойством рекомендуется пользоваться, чтобы отрегулировать размер шрифта у кнопок в `<SubnavigationBar fixed />`\n */\n textLevel?: '1' | '2' | '3';\n /**\n * Рекомендуется использовать только иконки с размером 24\n */\n before?: React.ReactNode;\n /**\n * Рекомендуется использовать только `<Counter size=\"s\" />` или `<Badge />`\n */\n after?: React.ReactNode;\n chevron?: boolean;\n}\n\ntype SubnavigationButtonTypographyProps = Pick<\n SubnavigationButtonProps,\n 'textLevel' | 'className'\n> &\n HasComponent &\n HasChildren;\n\nconst SubnavigationButtonTypography = ({\n textLevel,\n ...restProps\n}: SubnavigationButtonTypographyProps) => {\n if (textLevel === '1') {\n return <Subhead {...restProps} />;\n }\n\n return <Caption level={textLevel === '2' ? '1' : '2'} {...restProps} />;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SubnavigationButton\n */\nexport const SubnavigationButton = ({\n mode = 'primary',\n appearance = 'accent',\n size = 'm',\n selected,\n textLevel = '1',\n before,\n after,\n chevron,\n children,\n ...restProps\n}: SubnavigationButtonProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n {...restProps}\n hasActive={false}\n focusVisibleMode=\"outside\"\n baseClassName={classNames(\n styles.host,\n sizeStyles[size],\n modeStyles[mode],\n appearanceStyles[appearance],\n selected && styles.selected,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n restProps.disabled && styles.disabled,\n )}\n >\n <span className={styles.in}>\n {before && <span className={styles.before}>{before}</span>}\n <SubnavigationButtonTypography\n textLevel={textLevel}\n className={styles.label}\n Component=\"span\"\n >\n {children}\n </SubnavigationButtonTypography>\n {after && <span className={styles.after}>{after}</span>}\n {chevron && <Icon16Dropdown className={styles.chevronIcon} />}\n </span>\n </Tappable>\n );\n};\n"],"names":["React","Icon16Dropdown","classNames","useAdaptivity","Tappable","Caption","Subhead","styles","appearanceStyles","accent","appearanceAccent","neutral","appearanceNeutral","modeStyles","primary","modePrimary","outline","modeOutline","tertiary","modeTertiary","sizeStyles","s","sizeS","m","sizeM","l","sizeL","sizeYClassNames","none","sizeYNone","compact","sizeYCompact","SubnavigationButtonTypography","textLevel","restProps","level","SubnavigationButton","mode","appearance","size","selected","before","after","chevron","children","sizeY","hasActive","focusVisibleMode","baseClassName","host","disabled","span","className","in","label","Component","chevronIcon"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAE1D,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,OAAO,QAAQ,mCAAgC;AACxD,OAAOC,YAAY,mCAAmC;AAEtD,MAAMC,mBAAmB;IACvBC,QAAQF,OAAOG,gBAAgB;IAC/BC,SAASJ,OAAOK,iBAAiB;AACnC;AAEA,MAAMC,aAAa;IACjBC,SAASP,OAAOQ,WAAW;IAC3BC,SAAST,OAAOU,WAAW;IAC3BC,UAAUX,OAAOY,YAAY;AAC/B;AAEA,MAAMC,aAAa;IACjBC,GAAGd,OAAOe,KAAK;IACfC,GAAGhB,OAAOiB,KAAK;IACfC,GAAGlB,OAAOmB,KAAK;AACjB;AAEA,MAAMC,kBAAkB;IACtBC,MAAMrB,OAAOsB,SAAS;IACtBC,SAASvB,OAAOwB,YAAY;AAC9B;AA6BA,MAAMC,gCAAgC,CAAC,EACrCC,SAAS,EACT,GAAGC,WACgC;IACnC,IAAID,cAAc,KAAK;QACrB,qBAAO,KAAC3B;YAAS,GAAG4B,SAAS;;IAC/B;IAEA,qBAAO,KAAC7B;QAAQ8B,OAAOF,cAAc,MAAM,MAAM;QAAM,GAAGC,SAAS;;AACrE;AAEA;;CAEC,GACD,OAAO,MAAME,sBAAsB,CAAC,EAClCC,OAAO,SAAS,EAChBC,aAAa,QAAQ,EACrBC,OAAO,GAAG,EACVC,QAAQ,EACRP,YAAY,GAAG,EACfQ,MAAM,EACNC,KAAK,EACLC,OAAO,EACPC,QAAQ,EACR,GAAGV,WACsB;IACzB,MAAM,EAAEW,QAAQ,MAAM,EAAE,GAAG1C;IAE3B,qBACE,KAACC;QACE,GAAG8B,SAAS;QACbY,WAAW;QACXC,kBAAiB;QACjBC,eAAe9C,WACbK,OAAO0C,IAAI,EACX7B,UAAU,CAACmB,KAAK,EAChB1B,UAAU,CAACwB,KAAK,EAChB7B,gBAAgB,CAAC8B,WAAW,EAC5BE,YAAYjC,OAAOiC,QAAQ,EAC3BK,UAAU,aAAalB,eAAe,CAACkB,MAAM,EAC7CX,UAAUgB,QAAQ,IAAI3C,OAAO2C,QAAQ;kBAGvC,cAAA,MAACC;YAAKC,WAAW7C,OAAO8C,EAAE;;gBACvBZ,wBAAU,KAACU;oBAAKC,WAAW7C,OAAOkC,MAAM;8BAAGA;;8BAC5C,KAACT;oBACCC,WAAWA;oBACXmB,WAAW7C,OAAO+C,KAAK;oBACvBC,WAAU;8BAETX;;gBAEFF,uBAAS,KAACS;oBAAKC,WAAW7C,OAAOmC,KAAK;8BAAGA;;gBACzCC,yBAAW,KAAC1C;oBAAemD,WAAW7C,OAAOiD,WAAW;;;;;AAIjE,EAAE"}
@@ -6,6 +6,10 @@
6
6
  border-radius: var(--vkui--size_border_radius--regular);
7
7
  }
8
8
 
9
+ .disabled {
10
+ opacity: var(--vkui--opacity_disable_accessibility);
11
+ }
12
+
9
13
  .in {
10
14
  display: flex;
11
15
  align-items: center;
@@ -74,9 +78,9 @@
74
78
 
75
79
  .label {
76
80
  flex-grow: 0;
77
- white-space: nowrap;
78
81
  overflow: hidden;
79
82
  text-overflow: ellipsis;
83
+ white-space: nowrap;
80
84
  }
81
85
 
82
86
  .after {
@@ -86,10 +90,10 @@
86
90
 
87
91
  .chevronIcon {
88
92
  box-sizing: content-box;
89
- -webkit-margin-start: 8px;
90
- margin-inline-start: 8px;
91
93
  -webkit-margin-before: 1px;
92
94
  margin-block-start: 1px; /* Смещает иконку относительно текста */
95
+ -webkit-margin-start: 8px;
96
+ margin-inline-start: 8px;
93
97
  color: var(--vkui--color_icon_secondary);
94
98
  }
95
99
 
@@ -133,16 +137,16 @@
133
137
  */
134
138
 
135
139
  .selected {
136
- background-color: var(--vkui--color_background_accent_themed);
137
140
  color: var(--vkui--color_text_contrast_themed);
138
- box-shadow: none;
141
+ background-color: var(--vkui--color_background_accent_themed);
139
142
  border: 0;
143
+ box-shadow: none;
140
144
  }
141
145
 
142
146
  .selected.modeTertiary,
143
147
  .selected.appearanceNeutral {
144
- background-color: var(--vkui--color_transparent--active);
145
148
  color: var(--vkui--color_text_primary);
149
+ background-color: var(--vkui--color_transparent--active);
146
150
  }
147
151
 
148
152
  .selected.appearanceAccent:not(.modeTertiary) .before,
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { classNames } from "@vkontakte/vkjs";
5
5
  import { useAdaptivity } from "../../hooks/useAdaptivity.js";
6
+ import { useConfigDirection } from "../../hooks/useConfigDirection.js";
6
7
  import { useFocusVisible } from "../../hooks/useFocusVisible.js";
7
8
  import { useFocusVisibleClassName } from "../../hooks/useFocusVisibleClassName.js";
8
9
  import { usePlatform } from "../../hooks/usePlatform.js";
@@ -16,6 +17,8 @@ const sizeYClassNames = {
16
17
  /**
17
18
  * @see https://vkcom.github.io/VKUI/#/Switch
18
19
  */ export const Switch = ({ style, className, getRootRef, getRef, checked: checkedProp, disabled, onBlur: onBlurProp, onFocus: onFocusProp, onClick, ...restProps })=>{
20
+ const direction = useConfigDirection();
21
+ const isRtl = direction === 'rtl';
19
22
  const platform = usePlatform();
20
23
  const { sizeY = 'none' } = useAdaptivity();
21
24
  const { focusVisible, onBlur, onFocus } = useFocusVisible();
@@ -54,7 +57,7 @@ const sizeYClassNames = {
54
57
  inputProps['aria-checked'] = localUncontrolledChecked ? 'true' : 'false';
55
58
  }
56
59
  return /*#__PURE__*/ _jsxs("label", {
57
- className: classNames(styles.host, sizeY !== 'regular' && sizeYClassNames[sizeY], platform === 'ios' ? styles.ios : styles.default, disabled && styles.disabled, focusVisibleClassNames, className),
60
+ className: classNames(styles.host, sizeY !== 'regular' && sizeYClassNames[sizeY], platform === 'ios' ? styles.ios : styles.default, disabled && styles.disabled, isRtl && styles.rtl, focusVisibleClassNames, className),
58
61
  style: style,
59
62
  ref: getRootRef,
60
63
  children: [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../hooks/useFocusVisibleClassName';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport type { HasRef, HasRootRef } from '../../types';\nimport { VisuallyHidden, type VisuallyHiddenProps } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Switch.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface SwitchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Switch\n */\nexport const Switch = ({\n style,\n className,\n getRootRef,\n getRef,\n checked: checkedProp,\n disabled,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onClick,\n ...restProps\n}: SwitchProps): React.ReactNode => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({ focusVisible, mode: 'outside' });\n const handleBlur = callMultiple(onBlur, onBlurProp);\n const handleFocus = callMultiple(onFocus, onFocusProp);\n\n const [localUncontrolledChecked, setLocalUncontrolledChecked] = React.useState(\n Boolean(restProps.defaultChecked),\n );\n const isControlled = checkedProp !== undefined;\n\n const syncUncontrolledCheckedStateOnClick = React.useCallback(\n (e: React.MouseEvent<HTMLInputElement>) => {\n if (isControlled) {\n return;\n }\n\n const switchTarget = e.target as HTMLInputElement;\n setLocalUncontrolledChecked(switchTarget.checked);\n },\n [isControlled],\n );\n\n const inputProps: VisuallyHiddenProps<HTMLInputElement> = {\n ...restProps,\n Component: 'input',\n getRootRef: getRef,\n type: 'checkbox',\n role: 'switch',\n disabled: disabled,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onClick: callMultiple(syncUncontrolledCheckedStateOnClick, onClick),\n };\n\n if (isControlled) {\n inputProps.checked = checkedProp;\n inputProps['aria-checked'] = checkedProp ? 'true' : 'false';\n } else {\n inputProps['aria-checked'] = localUncontrolledChecked ? 'true' : 'false';\n }\n\n return (\n <label\n className={classNames(\n styles.host,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n platform === 'ios' ? styles.ios : styles.default,\n disabled && styles.disabled,\n focusVisibleClassNames,\n className,\n )}\n style={style}\n ref={getRootRef}\n >\n <VisuallyHidden\n {...inputProps}\n className={styles.inputNative}\n onBlur={handleBlur}\n onFocus={handleFocus}\n />\n <span aria-hidden className={styles.inputFake}>\n <span className={styles.track} />\n <span\n aria-hidden\n className={classNames(\n styles.handle,\n platform !== 'ios' && !disabled && styles.handleWithRipple,\n )}\n />\n </span>\n </label>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useFocusVisible","useFocusVisibleClassName","usePlatform","callMultiple","VisuallyHidden","styles","sizeYClassNames","none","sizeYNone","compact","sizeYCompact","Switch","style","className","getRootRef","getRef","checked","checkedProp","disabled","onBlur","onBlurProp","onFocus","onFocusProp","onClick","restProps","platform","sizeY","focusVisible","focusVisibleClassNames","mode","handleBlur","handleFocus","localUncontrolledChecked","setLocalUncontrolledChecked","useState","Boolean","defaultChecked","isControlled","undefined","syncUncontrolledCheckedStateOnClick","useCallback","e","switchTarget","target","inputProps","Component","type","role","label","host","ios","default","ref","inputNative","span","aria-hidden","inputFake","track","handle","handleWithRipple"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,YAAY,QAAQ,4BAAyB;AAEtD,SAASC,cAAc,QAAkC,sCAAmC;AAC5F,OAAOC,YAAY,sBAAsB;AAEzC,MAAMC,kBAAkB;IACtBC,MAAMF,OAAOG,SAAS;IACtBC,SAASJ,OAAOK,YAAY;AAC9B;AAOA;;CAEC,GACD,OAAO,MAAMC,SAAS,CAAC,EACrBC,KAAK,EACLC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,SAASC,WAAW,EACpBC,QAAQ,EACRC,QAAQC,UAAU,EAClBC,SAASC,WAAW,EACpBC,OAAO,EACP,GAAGC,WACS;IACZ,MAAMC,WAAWvB;IACjB,MAAM,EAAEwB,QAAQ,MAAM,EAAE,GAAG3B;IAC3B,MAAM,EAAE4B,YAAY,EAAER,MAAM,EAAEE,OAAO,EAAE,GAAGrB;IAC1C,MAAM4B,yBAAyB3B,yBAAyB;QAAE0B;QAAcE,MAAM;IAAU;IACxF,MAAMC,aAAa3B,aAAagB,QAAQC;IACxC,MAAMW,cAAc5B,aAAakB,SAASC;IAE1C,MAAM,CAACU,0BAA0BC,4BAA4B,GAAGpC,MAAMqC,QAAQ,CAC5EC,QAAQX,UAAUY,cAAc;IAElC,MAAMC,eAAepB,gBAAgBqB;IAErC,MAAMC,sCAAsC1C,MAAM2C,WAAW,CAC3D,CAACC;QACC,IAAIJ,cAAc;YAChB;QACF;QAEA,MAAMK,eAAeD,EAAEE,MAAM;QAC7BV,4BAA4BS,aAAa1B,OAAO;IAClD,GACA;QAACqB;KAAa;IAGhB,MAAMO,aAAoD;QACxD,GAAGpB,SAAS;QACZqB,WAAW;QACX/B,YAAYC;QACZ+B,MAAM;QACNC,MAAM;QACN7B,UAAUA;QACVC,QAAQC;QACRC,SAASC;QACTC,SAASpB,aAAaoC,qCAAqChB;IAC7D;IAEA,IAAIc,cAAc;QAChBO,WAAW5B,OAAO,GAAGC;QACrB2B,UAAU,CAAC,eAAe,GAAG3B,cAAc,SAAS;IACtD,OAAO;QACL2B,UAAU,CAAC,eAAe,GAAGZ,2BAA2B,SAAS;IACnE;IAEA,qBACE,MAACgB;QACCnC,WAAWf,WACTO,OAAO4C,IAAI,EACXvB,UAAU,aAAapB,eAAe,CAACoB,MAAM,EAC7CD,aAAa,QAAQpB,OAAO6C,GAAG,GAAG7C,OAAO8C,OAAO,EAChDjC,YAAYb,OAAOa,QAAQ,EAC3BU,wBACAf;QAEFD,OAAOA;QACPwC,KAAKtC;;0BAEL,KAACV;gBACE,GAAGwC,UAAU;gBACd/B,WAAWR,OAAOgD,WAAW;gBAC7BlC,QAAQW;gBACRT,SAASU;;0BAEX,MAACuB;gBAAKC,aAAW;gBAAC1C,WAAWR,OAAOmD,SAAS;;kCAC3C,KAACF;wBAAKzC,WAAWR,OAAOoD,KAAK;;kCAC7B,KAACH;wBACCC,aAAW;wBACX1C,WAAWf,WACTO,OAAOqD,MAAM,EACbjC,aAAa,SAAS,CAACP,YAAYb,OAAOsD,gBAAgB;;;;;;AAMtE,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../hooks/useFocusVisibleClassName';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport type { HasRef, HasRootRef } from '../../types';\nimport { VisuallyHidden, type VisuallyHiddenProps } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Switch.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface SwitchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Switch\n */\nexport const Switch = ({\n style,\n className,\n getRootRef,\n getRef,\n checked: checkedProp,\n disabled,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onClick,\n ...restProps\n}: SwitchProps): React.ReactNode => {\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({ focusVisible, mode: 'outside' });\n const handleBlur = callMultiple(onBlur, onBlurProp);\n const handleFocus = callMultiple(onFocus, onFocusProp);\n\n const [localUncontrolledChecked, setLocalUncontrolledChecked] = React.useState(\n Boolean(restProps.defaultChecked),\n );\n const isControlled = checkedProp !== undefined;\n\n const syncUncontrolledCheckedStateOnClick = React.useCallback(\n (e: React.MouseEvent<HTMLInputElement>) => {\n if (isControlled) {\n return;\n }\n\n const switchTarget = e.target as HTMLInputElement;\n setLocalUncontrolledChecked(switchTarget.checked);\n },\n [isControlled],\n );\n\n const inputProps: VisuallyHiddenProps<HTMLInputElement> = {\n ...restProps,\n Component: 'input',\n getRootRef: getRef,\n type: 'checkbox',\n role: 'switch',\n disabled: disabled,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onClick: callMultiple(syncUncontrolledCheckedStateOnClick, onClick),\n };\n\n if (isControlled) {\n inputProps.checked = checkedProp;\n inputProps['aria-checked'] = checkedProp ? 'true' : 'false';\n } else {\n inputProps['aria-checked'] = localUncontrolledChecked ? 'true' : 'false';\n }\n\n return (\n <label\n className={classNames(\n styles.host,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n platform === 'ios' ? styles.ios : styles.default,\n disabled && styles.disabled,\n isRtl && styles.rtl,\n focusVisibleClassNames,\n className,\n )}\n style={style}\n ref={getRootRef}\n >\n <VisuallyHidden\n {...inputProps}\n className={styles.inputNative}\n onBlur={handleBlur}\n onFocus={handleFocus}\n />\n <span aria-hidden className={styles.inputFake}>\n <span className={styles.track} />\n <span\n aria-hidden\n className={classNames(\n styles.handle,\n platform !== 'ios' && !disabled && styles.handleWithRipple,\n )}\n />\n </span>\n </label>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useConfigDirection","useFocusVisible","useFocusVisibleClassName","usePlatform","callMultiple","VisuallyHidden","styles","sizeYClassNames","none","sizeYNone","compact","sizeYCompact","Switch","style","className","getRootRef","getRef","checked","checkedProp","disabled","onBlur","onBlurProp","onFocus","onFocusProp","onClick","restProps","direction","isRtl","platform","sizeY","focusVisible","focusVisibleClassNames","mode","handleBlur","handleFocus","localUncontrolledChecked","setLocalUncontrolledChecked","useState","Boolean","defaultChecked","isControlled","undefined","syncUncontrolledCheckedStateOnClick","useCallback","e","switchTarget","target","inputProps","Component","type","role","label","host","ios","default","rtl","ref","inputNative","span","aria-hidden","inputFake","track","handle","handleWithRipple"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,kBAAkB,QAAQ,oCAAiC;AACpE,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,YAAY,QAAQ,4BAAyB;AAEtD,SAASC,cAAc,QAAkC,sCAAmC;AAC5F,OAAOC,YAAY,sBAAsB;AAEzC,MAAMC,kBAAkB;IACtBC,MAAMF,OAAOG,SAAS;IACtBC,SAASJ,OAAOK,YAAY;AAC9B;AAOA;;CAEC,GACD,OAAO,MAAMC,SAAS,CAAC,EACrBC,KAAK,EACLC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,SAASC,WAAW,EACpBC,QAAQ,EACRC,QAAQC,UAAU,EAClBC,SAASC,WAAW,EACpBC,OAAO,EACP,GAAGC,WACS;IACZ,MAAMC,YAAY1B;IAClB,MAAM2B,QAAQD,cAAc;IAC5B,MAAME,WAAWzB;IACjB,MAAM,EAAE0B,QAAQ,MAAM,EAAE,GAAG9B;IAC3B,MAAM,EAAE+B,YAAY,EAAEV,MAAM,EAAEE,OAAO,EAAE,GAAGrB;IAC1C,MAAM8B,yBAAyB7B,yBAAyB;QAAE4B;QAAcE,MAAM;IAAU;IACxF,MAAMC,aAAa7B,aAAagB,QAAQC;IACxC,MAAMa,cAAc9B,aAAakB,SAASC;IAE1C,MAAM,CAACY,0BAA0BC,4BAA4B,GAAGvC,MAAMwC,QAAQ,CAC5EC,QAAQb,UAAUc,cAAc;IAElC,MAAMC,eAAetB,gBAAgBuB;IAErC,MAAMC,sCAAsC7C,MAAM8C,WAAW,CAC3D,CAACC;QACC,IAAIJ,cAAc;YAChB;QACF;QAEA,MAAMK,eAAeD,EAAEE,MAAM;QAC7BV,4BAA4BS,aAAa5B,OAAO;IAClD,GACA;QAACuB;KAAa;IAGhB,MAAMO,aAAoD;QACxD,GAAGtB,SAAS;QACZuB,WAAW;QACXjC,YAAYC;QACZiC,MAAM;QACNC,MAAM;QACN/B,UAAUA;QACVC,QAAQC;QACRC,SAASC;QACTC,SAASpB,aAAasC,qCAAqClB;IAC7D;IAEA,IAAIgB,cAAc;QAChBO,WAAW9B,OAAO,GAAGC;QACrB6B,UAAU,CAAC,eAAe,GAAG7B,cAAc,SAAS;IACtD,OAAO;QACL6B,UAAU,CAAC,eAAe,GAAGZ,2BAA2B,SAAS;IACnE;IAEA,qBACE,MAACgB;QACCrC,WAAWhB,WACTQ,OAAO8C,IAAI,EACXvB,UAAU,aAAatB,eAAe,CAACsB,MAAM,EAC7CD,aAAa,QAAQtB,OAAO+C,GAAG,GAAG/C,OAAOgD,OAAO,EAChDnC,YAAYb,OAAOa,QAAQ,EAC3BQ,SAASrB,OAAOiD,GAAG,EACnBxB,wBACAjB;QAEFD,OAAOA;QACP2C,KAAKzC;;0BAEL,KAACV;gBACE,GAAG0C,UAAU;gBACdjC,WAAWR,OAAOmD,WAAW;gBAC7BrC,QAAQa;gBACRX,SAASY;;0BAEX,MAACwB;gBAAKC,aAAW;gBAAC7C,WAAWR,OAAOsD,SAAS;;kCAC3C,KAACF;wBAAK5C,WAAWR,OAAOuD,KAAK;;kCAC7B,KAACH;wBACCC,aAAW;wBACX7C,WAAWhB,WACTQ,OAAOwD,MAAM,EACblC,aAAa,SAAS,CAACT,YAAYb,OAAOyD,gBAAgB;;;;;;AAMtE,EAAE"}