@vkontakte/vkui 7.1.2 → 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 (1173) 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 +72 -50
  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/FormItem/FormItem.d.ts.map +1 -1
  176. package/dist/components/FormItem/FormItem.js +1 -0
  177. package/dist/components/FormItem/FormItem.js.map +1 -1
  178. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
  179. package/dist/components/FormStatus/FormStatus.d.ts.map +1 -1
  180. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  181. package/dist/components/Gradient/Gradient.d.ts.map +1 -1
  182. package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.d.ts.map +1 -1
  183. package/dist/components/Header/Header.d.ts.map +1 -1
  184. package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
  185. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
  186. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +13 -1
  187. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  188. package/dist/components/HorizontalScroll/HorizontalScroll.js +46 -39
  189. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  190. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  191. package/dist/components/ImageBase/ImageBase.d.ts +5 -0
  192. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  193. package/dist/components/ImageBase/ImageBase.js +6 -4
  194. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  195. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts.map +1 -1
  196. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.d.ts.map +1 -1
  197. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +3 -4
  198. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  199. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts +1 -0
  200. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts.map +1 -1
  201. package/dist/components/ImageBase/ImageBaseOverlay/hooks.js +25 -0
  202. package/dist/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  203. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts +4 -0
  204. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts.map +1 -1
  205. package/dist/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  206. package/dist/components/InfoRow/InfoRow.d.ts.map +1 -1
  207. package/dist/components/Input/Input.d.ts.map +1 -1
  208. package/dist/components/InputLike/InputLikeDivider.d.ts.map +1 -1
  209. package/dist/components/Link/Link.d.ts.map +1 -1
  210. package/dist/components/List/List.d.ts.map +1 -1
  211. package/dist/components/Mark/Mark.d.ts.map +1 -1
  212. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
  213. package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
  214. package/dist/components/ModalCard/ModalCard.js +2 -1
  215. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  216. package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
  217. package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
  218. package/dist/components/ModalCard/ModalCardInternal.js +6 -3
  219. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
  220. package/dist/components/ModalCard/types.d.ts +8 -1
  221. package/dist/components/ModalCard/types.d.ts.map +1 -1
  222. package/dist/components/ModalCard/types.js.map +1 -1
  223. package/dist/components/ModalCardBase/ModalCardBase.d.ts +9 -1
  224. package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
  225. package/dist/components/ModalCardBase/ModalCardBase.js +33 -8
  226. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  227. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +5 -3
  228. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
  229. package/dist/components/ModalDismissButton/ModalDismissButton.js +7 -7
  230. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  231. package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
  232. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +17 -0
  233. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts.map +1 -0
  234. package/dist/components/ModalOutsideButton/ModalOutsideButton.js +30 -0
  235. package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -0
  236. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.d.ts +6 -0
  237. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.d.ts.map +1 -0
  238. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.js +22 -0
  239. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.js.map +1 -0
  240. package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -1
  241. package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
  242. package/dist/components/ModalPage/ModalPageBase.d.ts +8 -0
  243. package/dist/components/ModalPage/ModalPageBase.d.ts.map +1 -0
  244. package/dist/components/ModalPage/ModalPageBase.js +66 -0
  245. package/dist/components/ModalPage/ModalPageBase.js.map +1 -0
  246. package/dist/components/ModalPage/ModalPageInternal.d.ts +1 -1
  247. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
  248. package/dist/components/ModalPage/ModalPageInternal.js +27 -34
  249. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
  250. package/dist/components/ModalPage/types.d.ts +19 -1
  251. package/dist/components/ModalPage/types.d.ts.map +1 -1
  252. package/dist/components/ModalPage/types.js.map +1 -1
  253. package/dist/components/ModalPageContent/ModalPageContent.d.ts.map +1 -1
  254. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -1
  255. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  256. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  257. package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.d.ts.map +1 -1
  258. package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
  259. package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
  260. package/dist/components/NavTransitionContext/NavTransitionContext.d.ts.map +1 -1
  261. package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts.map +1 -1
  262. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +8 -3
  263. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  264. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +52 -19
  265. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  266. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  267. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js +12 -3
  268. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  269. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.d.ts +7 -0
  270. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.d.ts.map +1 -0
  271. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.js +9 -0
  272. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.js.map +1 -0
  273. package/dist/components/Pagination/Pagination.d.ts +6 -0
  274. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  275. package/dist/components/Pagination/Pagination.js +10 -5
  276. package/dist/components/Pagination/Pagination.js.map +1 -1
  277. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
  278. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts.map +1 -1
  279. package/dist/components/Pagination/PaginationPage/PaginationPageButton.js +4 -4
  280. package/dist/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
  281. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts.map +1 -1
  282. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts.map +1 -1
  283. package/dist/components/Panel/Panel.d.ts.map +1 -1
  284. package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
  285. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
  286. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +3 -1
  287. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  288. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  289. package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts.map +1 -1
  290. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts.map +1 -1
  291. package/dist/components/PanelHeaderContext/PanelHeaderContext.d.ts.map +1 -1
  292. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
  293. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts.map +1 -1
  294. package/dist/components/Placeholder/Placeholder.d.ts.map +1 -1
  295. package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
  296. package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
  297. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +15 -2
  298. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
  299. package/dist/components/PopoutWrapper/PopoutWrapper.js +10 -2
  300. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  301. package/dist/components/Popover/Popover.d.ts +1 -1
  302. package/dist/components/Popover/Popover.d.ts.map +1 -1
  303. package/dist/components/Popover/Popover.js +4 -4
  304. package/dist/components/Popover/Popover.js.map +1 -1
  305. package/dist/components/Popover/usePopover.d.ts +1 -1
  306. package/dist/components/Popover/usePopover.d.ts.map +1 -1
  307. package/dist/components/Popover/usePopover.js +69 -44
  308. package/dist/components/Popover/usePopover.js.map +1 -1
  309. package/dist/components/Popper/Popper.d.ts +2 -2
  310. package/dist/components/Popper/Popper.d.ts.map +1 -1
  311. package/dist/components/Popper/Popper.js +18 -5
  312. package/dist/components/Popper/Popper.js.map +1 -1
  313. package/dist/components/Progress/Progress.d.ts +7 -3
  314. package/dist/components/Progress/Progress.d.ts.map +1 -1
  315. package/dist/components/Progress/Progress.js +30 -11
  316. package/dist/components/Progress/Progress.js.map +1 -1
  317. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  318. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts.map +1 -1
  319. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  320. package/dist/components/Removable/Removable.d.ts +5 -1
  321. package/dist/components/Removable/Removable.d.ts.map +1 -1
  322. package/dist/components/Removable/Removable.js +12 -7
  323. package/dist/components/Removable/Removable.js.map +1 -1
  324. package/dist/components/RichCell/RichCellIcon/RichCellIcon.d.ts.map +1 -1
  325. package/dist/components/Root/Root.d.ts.map +1 -1
  326. package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
  327. package/dist/components/ScreenSpinner/Icon48CancelCircle.d.ts.map +1 -1
  328. package/dist/components/ScreenSpinner/Icon48DoneOutline.d.ts.map +1 -1
  329. package/dist/components/ScreenSpinner/ScreenSpinner.js +1 -0
  330. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  331. package/dist/components/ScrollArrow/ScrollArrow.d.ts.map +1 -1
  332. package/dist/components/ScrollArrow/ScrollArrow.js +4 -1
  333. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  334. package/dist/components/Search/Search.d.ts +9 -1
  335. package/dist/components/Search/Search.d.ts.map +1 -1
  336. package/dist/components/Search/Search.js +9 -2
  337. package/dist/components/Search/Search.js.map +1 -1
  338. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  339. package/dist/components/SegmentedControl/SegmentedControl.js +10 -7
  340. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  341. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  342. package/dist/components/Select/Select.d.ts.map +1 -1
  343. package/dist/components/SelectMimicry/SelectMimicry.d.ts.map +1 -1
  344. package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  345. package/dist/components/Separator/Separator.d.ts.map +1 -1
  346. package/dist/components/SimpleCell/Chevron/Chevron.d.ts.map +1 -1
  347. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  348. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  349. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  350. package/dist/components/Slider/Slider.d.ts +1 -1
  351. package/dist/components/Slider/Slider.d.ts.map +1 -1
  352. package/dist/components/Slider/Slider.js +22 -18
  353. package/dist/components/Slider/Slider.js.map +1 -1
  354. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts.map +1 -1
  355. package/dist/components/Slider/SliderThumb/SliderThumb.js +5 -1
  356. package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  357. package/dist/components/Slider/helpers.d.ts.map +1 -1
  358. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
  359. package/dist/components/Snackbar/Snackbar.js +6 -3
  360. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  361. package/dist/components/Snackbar/utils.d.ts +3 -2
  362. package/dist/components/Snackbar/utils.d.ts.map +1 -1
  363. package/dist/components/Snackbar/utils.js +11 -8
  364. package/dist/components/Snackbar/utils.js.map +1 -1
  365. package/dist/components/Spacing/Spacing.d.ts.map +1 -1
  366. package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
  367. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  368. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts.map +1 -1
  369. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
  370. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
  371. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  372. package/dist/components/Switch/Switch.d.ts.map +1 -1
  373. package/dist/components/Switch/Switch.js +4 -1
  374. package/dist/components/Switch/Switch.js.map +1 -1
  375. package/dist/components/Tabbar/Tabbar.d.ts.map +1 -1
  376. package/dist/components/TabbarItem/TabbarItem.d.ts +1 -1
  377. package/dist/components/TabbarItem/TabbarItem.d.ts.map +1 -1
  378. package/dist/components/TabbarItem/TabbarItem.js +16 -4
  379. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  380. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  381. package/dist/components/Tabs/Tabs.js +3 -1
  382. package/dist/components/Tabs/Tabs.js.map +1 -1
  383. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  384. package/dist/components/Tappable/Ripple.d.ts.map +1 -1
  385. package/dist/components/Tappable/Tappable.d.ts.map +1 -1
  386. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  387. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  388. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  389. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  390. package/dist/components/Tooltip/Tooltip.js +8 -101
  391. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  392. package/dist/components/Tooltip/useTooltip.d.ts +14 -0
  393. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -0
  394. package/dist/components/Tooltip/useTooltip.js +126 -0
  395. package/dist/components/Tooltip/useTooltip.js.map +1 -0
  396. package/dist/components/TooltipBase/TooltipBase.d.ts +6 -1
  397. package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
  398. package/dist/components/TooltipBase/TooltipBase.js +3 -1
  399. package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
  400. package/dist/components/Touch/Touch.d.ts.map +1 -1
  401. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  402. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  403. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts.map +1 -1
  404. package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  405. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  406. package/dist/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  407. package/dist/components/Typography/Subhead/Subhead.d.ts.map +1 -1
  408. package/dist/components/Typography/Text/Text.d.ts.map +1 -1
  409. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  410. package/dist/components/Typography/Typography.d.ts.map +1 -1
  411. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
  412. package/dist/components/UsersStack/UsersStack.d.ts +1 -1
  413. package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
  414. package/dist/components/UsersStack/UsersStack.js +5 -9
  415. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  416. package/dist/components/View/View.d.ts.map +1 -1
  417. package/dist/components/View/utils.d.ts.map +1 -1
  418. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  419. package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
  420. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
  421. package/dist/components.css +1 -1
  422. package/dist/components.css.map +1 -1
  423. package/dist/context/CalendarDirectionContext.d.ts +1 -1
  424. package/dist/context/CalendarDirectionContext.d.ts.map +1 -1
  425. package/dist/context/CalendarDirectionContext.js.map +1 -1
  426. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  427. package/dist/cssm/components/Accordion/Accordion.module.css +6 -6
  428. package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -1
  429. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  430. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +9 -9
  431. package/dist/cssm/components/ActionSheet/ActionSheetDropdownMenu.js +7 -3
  432. package/dist/cssm/components/ActionSheet/ActionSheetDropdownMenu.js.map +1 -1
  433. package/dist/cssm/components/ActionSheet/ActionSheetDropdownSheet.js +7 -3
  434. package/dist/cssm/components/ActionSheet/ActionSheetDropdownSheet.js.map +1 -1
  435. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  436. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +18 -18
  437. package/dist/cssm/components/Alert/Alert.js +12 -92
  438. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  439. package/dist/cssm/components/Alert/Alert.module.css +27 -29
  440. package/dist/cssm/components/Alert/AlertBase.js +111 -0
  441. package/dist/cssm/components/Alert/AlertBase.js.map +1 -0
  442. package/dist/cssm/components/Alert/AlertTypography.js.map +1 -1
  443. package/dist/cssm/components/AppRoot/AppRoot.module.css +2 -2
  444. package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js +1 -1
  445. package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -1
  446. package/dist/cssm/components/AppRoot/ScrollContext.js +129 -37
  447. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  448. package/dist/cssm/components/AspectRatio/AspectRatio.module.css +2 -2
  449. package/dist/cssm/components/Avatar/Avatar.module.css +1 -1
  450. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +8 -3
  451. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +4 -1
  452. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  453. package/dist/cssm/components/Banner/Banner.module.css +19 -19
  454. package/dist/cssm/components/Button/Button.module.css +11 -11
  455. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -0
  456. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  457. package/dist/cssm/components/Calendar/Calendar.js +96 -92
  458. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  459. package/dist/cssm/components/Calendar/Calendar.module.css +8 -8
  460. package/dist/cssm/components/CalendarDay/CalendarDay.js +1 -3
  461. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  462. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +11 -11
  463. package/dist/cssm/components/CalendarDays/CalendarDays.module.css +7 -7
  464. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +1 -3
  465. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  466. package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +4 -4
  467. package/dist/cssm/components/CalendarRange/CalendarRange.js +103 -110
  468. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  469. package/dist/cssm/components/CalendarRange/CalendarRange.module.css +5 -5
  470. package/dist/cssm/components/CalendarTime/CalendarTime.module.css +1 -1
  471. package/dist/cssm/components/Card/Card.module.css +7 -7
  472. package/dist/cssm/components/CardGrid/CardGrid.module.css +3 -3
  473. package/dist/cssm/components/CardScroll/CardScroll.js +30 -28
  474. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  475. package/dist/cssm/components/CardScroll/CardScroll.module.css +16 -16
  476. package/dist/cssm/components/CarouselBase/CarouselBase.js +72 -48
  477. package/dist/cssm/components/CarouselBase/CarouselBase.js.map +1 -1
  478. package/dist/cssm/components/CarouselBase/CarouselBase.module.css +11 -11
  479. package/dist/cssm/components/CarouselBase/helpers.js +70 -44
  480. package/dist/cssm/components/CarouselBase/helpers.js.map +1 -1
  481. package/dist/cssm/components/Cell/Cell.module.css +18 -2
  482. package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +2 -2
  483. package/dist/cssm/components/CellButton/CellButton.module.css +8 -8
  484. package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js +20 -0
  485. package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js.map +1 -0
  486. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js +15 -0
  487. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js.map +1 -0
  488. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.module.css +5 -0
  489. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +2 -2
  490. package/dist/cssm/components/ChipsInputBase/Chip/Chip.module.css +16 -16
  491. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +12 -12
  492. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -1
  493. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  494. package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +1 -1
  495. package/dist/cssm/components/ChipsSelect/useChipsSelect.js +9 -3
  496. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  497. package/dist/cssm/components/Clickable/Clickable.js +29 -22
  498. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  499. package/dist/cssm/components/Clickable/Clickable.module.css +1 -1
  500. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
  501. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  502. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +5 -2
  503. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  504. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +12 -7
  505. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  506. package/dist/cssm/components/ContentBadge/ContentBadge.module.css +7 -7
  507. package/dist/cssm/components/ContentCard/ContentCard.js +5 -4
  508. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  509. package/dist/cssm/components/ContentCard/ContentCard.module.css +6 -6
  510. package/dist/cssm/components/Counter/Counter.module.css +4 -4
  511. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +2 -2
  512. package/dist/cssm/components/CustomSelect/CustomSelect.js +105 -69
  513. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  514. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +2 -2
  515. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +13 -13
  516. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
  517. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  518. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +2 -2
  519. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +9 -9
  520. package/dist/cssm/components/DateInput/DateInput.js +104 -81
  521. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  522. package/dist/cssm/components/DateInput/DateInput.module.css +40 -6
  523. package/dist/cssm/components/DateInput/hooks.js +54 -0
  524. package/dist/cssm/components/DateInput/hooks.js.map +1 -0
  525. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +99 -82
  526. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  527. package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +3 -3
  528. package/dist/cssm/components/DirectionProvider/DirectionProvider.js +15 -0
  529. package/dist/cssm/components/DirectionProvider/DirectionProvider.js.map +1 -0
  530. package/dist/cssm/components/DropZone/DropZone.module.css +2 -2
  531. package/dist/cssm/components/FixedLayout/FixedLayout.module.css +3 -3
  532. package/dist/cssm/components/Flex/Flex.js +3 -5
  533. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  534. package/dist/cssm/components/Flex/Flex.module.css +40 -23
  535. package/dist/cssm/components/FloatingArrow/FloatingArrow.module.css +1 -1
  536. package/dist/cssm/components/Footer/Footer.module.css +1 -1
  537. package/dist/cssm/components/FormField/FormField.module.css +24 -24
  538. package/dist/cssm/components/FormItem/FormItem.js +1 -0
  539. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  540. package/dist/cssm/components/FormItem/FormItem.module.css +10 -10
  541. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +5 -5
  542. package/dist/cssm/components/GridAvatar/GridAvatar.module.css +2 -2
  543. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +2 -2
  544. package/dist/cssm/components/Group/Group.module.css +16 -16
  545. package/dist/cssm/components/Header/Header.module.css +6 -6
  546. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +3 -3
  547. package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.module.css +3 -2
  548. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +45 -36
  549. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  550. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
  551. package/dist/cssm/components/IconButton/IconButton.module.css +17 -11
  552. package/dist/cssm/components/ImageBase/ImageBase.js +5 -4
  553. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  554. package/dist/cssm/components/ImageBase/ImageBase.module.css +15 -6
  555. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +5 -5
  556. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +8 -8
  557. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +3 -4
  558. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  559. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +2 -2
  560. package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js +25 -0
  561. package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  562. package/dist/cssm/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  563. package/dist/cssm/components/InfoRow/InfoRow.module.css +3 -3
  564. package/dist/cssm/components/Input/Input.module.css +5 -5
  565. package/dist/cssm/components/InputLike/InputLike.module.css +3 -3
  566. package/dist/cssm/components/Link/Link.module.css +6 -6
  567. package/dist/cssm/components/Mark/Mark.module.css +2 -2
  568. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +5 -5
  569. package/dist/cssm/components/ModalCard/ModalCard.js +1 -0
  570. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  571. package/dist/cssm/components/ModalCard/ModalCard.module.css +4 -4
  572. package/dist/cssm/components/ModalCard/ModalCardInternal.js +3 -2
  573. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  574. package/dist/cssm/components/ModalCard/types.js.map +1 -1
  575. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +30 -7
  576. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  577. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +7 -7
  578. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +5 -6
  579. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  580. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +0 -29
  581. package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +1 -1
  582. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js +24 -0
  583. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -0
  584. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.module.css +31 -0
  585. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.js +16 -0
  586. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.js.map +1 -0
  587. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.module.css +6 -0
  588. package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +2 -2
  589. package/dist/cssm/components/ModalPage/ModalPage.module.css +15 -16
  590. package/dist/cssm/components/ModalPage/ModalPageBase.js +49 -0
  591. package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -0
  592. package/dist/cssm/components/ModalPage/ModalPageInternal.js +22 -33
  593. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  594. package/dist/cssm/components/ModalPage/types.js.map +1 -1
  595. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.module.css +4 -4
  596. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +2 -3
  597. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +40 -13
  598. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  599. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.module.css +16 -1
  600. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js +13 -4
  601. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  602. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContext.js +9 -0
  603. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContext.js.map +1 -0
  604. package/dist/cssm/components/Pagination/Pagination.js +9 -4
  605. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  606. package/dist/cssm/components/Pagination/Pagination.module.css +1 -1
  607. package/dist/cssm/components/Pagination/PaginationPage/PaginationPage.module.css +9 -9
  608. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js +4 -4
  609. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
  610. package/dist/cssm/components/Panel/Panel.module.css +3 -3
  611. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +30 -30
  612. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +3 -1
  613. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  614. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +22 -8
  615. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +10 -10
  616. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +7 -7
  617. package/dist/cssm/components/Placeholder/Placeholder.module.css +3 -3
  618. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  619. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  620. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +9 -2
  621. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  622. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +14 -9
  623. package/dist/cssm/components/Popover/Popover.js +4 -4
  624. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  625. package/dist/cssm/components/Popover/Popover.module.css +1 -1
  626. package/dist/cssm/components/Popover/usePopover.js +62 -44
  627. package/dist/cssm/components/Popover/usePopover.js.map +1 -1
  628. package/dist/cssm/components/Popper/Popper.js +15 -5
  629. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  630. package/dist/cssm/components/Progress/Progress.js +29 -9
  631. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  632. package/dist/cssm/components/Progress/Progress.module.css +20 -9
  633. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +14 -14
  634. package/dist/cssm/components/Radio/Radio.module.css +1 -1
  635. package/dist/cssm/components/Radio/RadioInput/RadioInput.module.css +1 -1
  636. package/dist/cssm/components/RadioGroup/RadioGroup.module.css +1 -1
  637. package/dist/cssm/components/Removable/Removable.js +10 -6
  638. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  639. package/dist/cssm/components/Removable/Removable.module.css +22 -6
  640. package/dist/cssm/components/RichCell/RichCell.module.css +10 -10
  641. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.module.css +4 -4
  642. package/dist/cssm/components/Root/Root.module.css +10 -10
  643. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -0
  644. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  645. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +12 -12
  646. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +4 -1
  647. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  648. package/dist/cssm/components/ScrollArrow/ScrollArrow.module.css +15 -14
  649. package/dist/cssm/components/Search/Search.js +7 -2
  650. package/dist/cssm/components/Search/Search.js.map +1 -1
  651. package/dist/cssm/components/Search/Search.module.css +45 -32
  652. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +10 -7
  653. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  654. package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +16 -7
  655. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +14 -14
  656. package/dist/cssm/components/Select/Select.module.css +15 -15
  657. package/dist/cssm/components/SelectionControl/SelectionControl.module.css +2 -2
  658. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +5 -5
  659. package/dist/cssm/components/Separator/Separator.module.css +3 -3
  660. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +20 -16
  661. package/dist/cssm/components/SimpleGrid/SimpleGrid.module.css +2 -2
  662. package/dist/cssm/components/Skeleton/Skeleton.module.css +8 -8
  663. package/dist/cssm/components/Slider/Slider.js +20 -17
  664. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  665. package/dist/cssm/components/Slider/Slider.module.css +25 -4
  666. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +5 -1
  667. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  668. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.module.css +8 -8
  669. package/dist/cssm/components/Snackbar/Snackbar.js +6 -3
  670. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  671. package/dist/cssm/components/Snackbar/Snackbar.module.css +23 -6
  672. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +9 -8
  673. package/dist/cssm/components/Snackbar/utils.js +11 -8
  674. package/dist/cssm/components/Snackbar/utils.js.map +1 -1
  675. package/dist/cssm/components/Spacing/Spacing.module.css +1 -1
  676. package/dist/cssm/components/Spinner/Spinner.module.css +2 -2
  677. package/dist/cssm/components/SplitCol/SplitCol.module.css +9 -9
  678. package/dist/cssm/components/SplitLayout/SplitLayout.module.css +2 -2
  679. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +4 -4
  680. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -1
  681. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  682. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +11 -6
  683. package/dist/cssm/components/Switch/Switch.js +4 -1
  684. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  685. package/dist/cssm/components/Switch/Switch.module.css +25 -17
  686. package/dist/cssm/components/Tabbar/Tabbar.module.css +5 -5
  687. package/dist/cssm/components/TabbarItem/TabbarItem.js +13 -3
  688. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  689. package/dist/cssm/components/TabbarItem/TabbarItem.module.css +16 -16
  690. package/dist/cssm/components/Tabs/Tabs.js +3 -1
  691. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  692. package/dist/cssm/components/Tabs/Tabs.module.css +1 -1
  693. package/dist/cssm/components/TabsItem/TabsItem.module.css +21 -20
  694. package/dist/cssm/components/Tappable/Tappable.module.css +6 -6
  695. package/dist/cssm/components/Textarea/Textarea.module.css +7 -3
  696. package/dist/cssm/components/ToolButton/ToolButton.module.css +7 -7
  697. package/dist/cssm/components/Tooltip/Tooltip.js +7 -80
  698. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  699. package/dist/cssm/components/Tooltip/useTooltip.js +97 -0
  700. package/dist/cssm/components/Tooltip/useTooltip.js.map +1 -0
  701. package/dist/cssm/components/TooltipBase/TooltipBase.js +2 -1
  702. package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
  703. package/dist/cssm/components/TooltipBase/TooltipBase.module.css +10 -9
  704. package/dist/cssm/components/Typography/Caption/Caption.module.css +96 -96
  705. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.module.css +64 -64
  706. package/dist/cssm/components/Typography/EllipsisText/EllipsisText.module.css +3 -3
  707. package/dist/cssm/components/Typography/Footnote/Footnote.module.css +32 -32
  708. package/dist/cssm/components/Typography/Headline/Headline.module.css +20 -20
  709. package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +16 -16
  710. package/dist/cssm/components/Typography/Subhead/Subhead.module.css +16 -16
  711. package/dist/cssm/components/Typography/Text/Text.module.css +16 -16
  712. package/dist/cssm/components/Typography/Title/Title.module.css +48 -48
  713. package/dist/cssm/components/Typography/Typography.module.css +1 -1
  714. package/dist/cssm/components/UnstyledTextField/UnstyledTextField.module.css +5 -5
  715. package/dist/cssm/components/UsersStack/UsersStack.js +4 -7
  716. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  717. package/dist/cssm/components/UsersStack/UsersStack.module.css +4 -4
  718. package/dist/cssm/components/View/View.module.css +8 -8
  719. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +10 -10
  720. package/dist/cssm/components/WriteBar/WriteBar.module.css +10 -11
  721. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +9 -9
  722. package/dist/cssm/context/CalendarDirectionContext.js.map +1 -1
  723. package/dist/cssm/helpers/getValueByKey.js +17 -0
  724. package/dist/cssm/helpers/getValueByKey.js.map +1 -0
  725. package/dist/cssm/hooks/useAutoDetectDirection.js +21 -0
  726. package/dist/cssm/hooks/useAutoDetectDirection.js.map +1 -0
  727. package/dist/cssm/hooks/useConfigDirection.js +7 -0
  728. package/dist/cssm/hooks/useConfigDirection.js.map +1 -0
  729. package/dist/cssm/hooks/useFloatingElement.js +70 -0
  730. package/dist/cssm/hooks/useFloatingElement.js.map +1 -0
  731. package/dist/cssm/hooks/useFocusTrap.js +1 -1
  732. package/dist/cssm/hooks/useFocusTrap.js.map +1 -1
  733. package/dist/cssm/hooks/useFocusVisible.js +10 -1
  734. package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
  735. package/dist/cssm/hooks/useReferenceElement.js +13 -0
  736. package/dist/cssm/hooks/useReferenceElement.js.map +1 -0
  737. package/dist/cssm/hooks/useTabsNavigation.js +3 -3
  738. package/dist/cssm/hooks/useTabsNavigation.js.map +1 -1
  739. package/dist/cssm/hooks/useTodayDate.js +4 -4
  740. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  741. package/dist/cssm/index.js +6 -1
  742. package/dist/cssm/index.js.map +1 -1
  743. package/dist/cssm/lib/SSR.js +2 -1
  744. package/dist/cssm/lib/SSR.js.map +1 -1
  745. package/dist/cssm/lib/date.js +15 -0
  746. package/dist/cssm/lib/date.js.map +1 -1
  747. package/dist/cssm/lib/direction/index.js +3 -0
  748. package/dist/cssm/lib/direction/index.js.map +1 -0
  749. package/dist/cssm/lib/floating/adapters.js.map +1 -1
  750. package/dist/cssm/lib/floating/customResizeObserver.js +2 -5
  751. package/dist/cssm/lib/floating/customResizeObserver.js.map +1 -1
  752. package/dist/cssm/lib/floating/functions.js +1 -1
  753. package/dist/cssm/lib/floating/functions.js.map +1 -1
  754. package/dist/cssm/lib/floating/types/component.js.map +1 -1
  755. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -2
  756. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  757. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -1
  758. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  759. package/dist/cssm/lib/floating/useReferenceHiddenChangeCallback.js +21 -0
  760. package/dist/cssm/lib/floating/useReferenceHiddenChangeCallback.js.map +1 -0
  761. package/dist/cssm/lib/object.js +9 -0
  762. package/dist/cssm/lib/object.js.map +1 -0
  763. package/dist/cssm/lib/select.js.map +1 -1
  764. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js +13 -23
  765. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js.map +1 -1
  766. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js +4 -5
  767. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
  768. package/dist/cssm/lib/tokens/TokensClassProvider.module.css +1 -1
  769. package/dist/cssm/styles/common.css +2 -2
  770. package/dist/cssm/styles/themes.css +22 -5
  771. package/dist/cssm/types.js.map +1 -1
  772. package/dist/helpers/getMergedSameEventsByProps.d.ts.map +1 -1
  773. package/dist/helpers/getValueByKey.d.ts +5 -0
  774. package/dist/helpers/getValueByKey.d.ts.map +1 -0
  775. package/dist/helpers/getValueByKey.js +17 -0
  776. package/dist/helpers/getValueByKey.js.map +1 -0
  777. package/dist/helpers/math.d.ts.map +1 -1
  778. package/dist/hooks/useAdaptivityConditionalRender/helpers.d.ts.map +1 -1
  779. package/dist/hooks/useAutoDetectColorScheme.d.ts.map +1 -1
  780. package/dist/hooks/useAutoDetectDirection.d.ts +3 -0
  781. package/dist/hooks/useAutoDetectDirection.d.ts.map +1 -0
  782. package/dist/hooks/useAutoDetectDirection.js +21 -0
  783. package/dist/hooks/useAutoDetectDirection.js.map +1 -0
  784. package/dist/hooks/useBooleanState.d.ts.map +1 -1
  785. package/dist/hooks/useConfigDirection.d.ts +3 -0
  786. package/dist/hooks/useConfigDirection.d.ts.map +1 -0
  787. package/dist/hooks/useConfigDirection.js +7 -0
  788. package/dist/hooks/useConfigDirection.js.map +1 -0
  789. package/dist/hooks/useDraggableWithDomApi/autoScroll.d.ts.map +1 -1
  790. package/dist/hooks/useDraggableWithDomApi/useDraggableWithDomApi.d.ts.map +1 -1
  791. package/dist/hooks/useDraggableWithDomApi/utils.d.ts.map +1 -1
  792. package/dist/hooks/useFloatingElement.d.ts +26 -0
  793. package/dist/hooks/useFloatingElement.d.ts.map +1 -0
  794. package/dist/hooks/useFloatingElement.js +71 -0
  795. package/dist/hooks/useFloatingElement.js.map +1 -0
  796. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  797. package/dist/hooks/useFocusTrap.js +1 -1
  798. package/dist/hooks/useFocusTrap.js.map +1 -1
  799. package/dist/hooks/useFocusVisible.d.ts +9 -1
  800. package/dist/hooks/useFocusVisible.d.ts.map +1 -1
  801. package/dist/hooks/useFocusVisible.js +10 -1
  802. package/dist/hooks/useFocusVisible.js.map +1 -1
  803. package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
  804. package/dist/hooks/useGlobalOnClickOutside.d.ts.map +1 -1
  805. package/dist/hooks/useMutationObserver.d.ts.map +1 -1
  806. package/dist/hooks/useNativeFormResetListener.d.ts.map +1 -1
  807. package/dist/hooks/usePagination.d.ts.map +1 -1
  808. package/dist/hooks/usePatchChildren.d.ts.map +1 -1
  809. package/dist/hooks/useReferenceElement.d.ts +3 -0
  810. package/dist/hooks/useReferenceElement.d.ts.map +1 -0
  811. package/dist/hooks/useReferenceElement.js +13 -0
  812. package/dist/hooks/useReferenceElement.js.map +1 -0
  813. package/dist/hooks/useTabsNavigation.d.ts +1 -1
  814. package/dist/hooks/useTabsNavigation.d.ts.map +1 -1
  815. package/dist/hooks/useTabsNavigation.js +3 -3
  816. package/dist/hooks/useTabsNavigation.js.map +1 -1
  817. package/dist/hooks/useTodayDate.d.ts.map +1 -1
  818. package/dist/hooks/useTodayDate.js +4 -4
  819. package/dist/hooks/useTodayDate.js.map +1 -1
  820. package/dist/index.d.ts +9 -2
  821. package/dist/index.d.ts.map +1 -1
  822. package/dist/index.js +6 -1
  823. package/dist/index.js.map +1 -1
  824. package/dist/lib/SSR.d.ts +2 -0
  825. package/dist/lib/SSR.d.ts.map +1 -1
  826. package/dist/lib/SSR.js +2 -1
  827. package/dist/lib/SSR.js.map +1 -1
  828. package/dist/lib/accessibility.d.ts.map +1 -1
  829. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
  830. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  831. package/dist/lib/calendar.d.ts.map +1 -1
  832. package/dist/lib/callMultiple.d.ts.map +1 -1
  833. package/dist/lib/children.d.ts.map +1 -1
  834. package/dist/lib/createPortal.d.ts.map +1 -1
  835. package/dist/lib/date.d.ts +2 -0
  836. package/dist/lib/date.d.ts.map +1 -1
  837. package/dist/lib/date.js +15 -0
  838. package/dist/lib/date.js.map +1 -1
  839. package/dist/lib/direction/index.d.ts +2 -0
  840. package/dist/lib/direction/index.d.ts.map +1 -0
  841. package/dist/lib/direction/index.js +3 -0
  842. package/dist/lib/direction/index.js.map +1 -0
  843. package/dist/lib/dom.d.ts.map +1 -1
  844. package/dist/lib/floating/adapters.d.ts +1 -0
  845. package/dist/lib/floating/adapters.d.ts.map +1 -1
  846. package/dist/lib/floating/adapters.js.map +1 -1
  847. package/dist/lib/floating/customResizeObserver.d.ts +1 -1
  848. package/dist/lib/floating/customResizeObserver.d.ts.map +1 -1
  849. package/dist/lib/floating/customResizeObserver.js +2 -5
  850. package/dist/lib/floating/customResizeObserver.js.map +1 -1
  851. package/dist/lib/floating/functions.d.ts +8 -1
  852. package/dist/lib/floating/functions.d.ts.map +1 -1
  853. package/dist/lib/floating/functions.js +1 -1
  854. package/dist/lib/floating/functions.js.map +1 -1
  855. package/dist/lib/floating/types/component.d.ts +10 -0
  856. package/dist/lib/floating/types/component.d.ts.map +1 -1
  857. package/dist/lib/floating/types/component.js.map +1 -1
  858. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +3 -1
  859. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  860. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -2
  861. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  862. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts.map +1 -1
  863. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -1
  864. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  865. package/dist/lib/floating/useFloatingWithInteractions/useResolveTriggerType.d.ts.map +1 -1
  866. package/dist/lib/floating/useReferenceHiddenChangeCallback.d.ts +4 -0
  867. package/dist/lib/floating/useReferenceHiddenChangeCallback.d.ts.map +1 -0
  868. package/dist/lib/floating/useReferenceHiddenChangeCallback.js +21 -0
  869. package/dist/lib/floating/useReferenceHiddenChangeCallback.js.map +1 -0
  870. package/dist/lib/fx.d.ts.map +1 -1
  871. package/dist/lib/isRefObject.d.ts.map +1 -1
  872. package/dist/lib/object.d.ts +2 -0
  873. package/dist/lib/object.d.ts.map +1 -0
  874. package/dist/lib/object.js +9 -0
  875. package/dist/lib/object.js.map +1 -0
  876. package/dist/lib/rafSchd.d.ts.map +1 -1
  877. package/dist/lib/react/simulateReactInput.d.ts.map +1 -1
  878. package/dist/lib/select.d.ts +1 -0
  879. package/dist/lib/select.d.ts.map +1 -1
  880. package/dist/lib/select.js.map +1 -1
  881. package/dist/lib/sheet/controllers/BottomSheetController.d.ts.map +1 -1
  882. package/dist/lib/sheet/controllers/BottomSheetController.js +13 -23
  883. package/dist/lib/sheet/controllers/BottomSheetController.js.map +1 -1
  884. package/dist/lib/sheet/controllers/CSSTransitionController.d.ts.map +1 -1
  885. package/dist/lib/sheet/controllers/CSSTransitionController.js +4 -5
  886. package/dist/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
  887. package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
  888. package/dist/lib/touch/functions.d.ts.map +1 -1
  889. package/dist/lib/utils.d.ts.map +1 -1
  890. package/dist/types.d.ts +1 -1
  891. package/dist/types.d.ts.map +1 -1
  892. package/dist/types.js.map +1 -1
  893. package/dist/vkui.css +1 -1
  894. package/dist/vkui.css.map +1 -1
  895. package/package.json +5 -4
  896. package/src/components/Accordion/Accordion.module.css +6 -6
  897. package/src/components/Accordion/Accordion.tsx +2 -2
  898. package/src/components/ActionSheet/ActionSheet.module.css +9 -9
  899. package/src/components/ActionSheet/ActionSheet.tsx +5 -2
  900. package/src/components/ActionSheet/ActionSheetDropdownMenu.tsx +11 -3
  901. package/src/components/ActionSheet/ActionSheetDropdownSheet.tsx +11 -3
  902. package/src/components/ActionSheet/types.ts +4 -0
  903. package/src/components/ActionSheetItem/ActionSheetItem.module.css +17 -17
  904. package/src/components/Alert/Alert.module.css +25 -25
  905. package/src/components/Alert/Alert.tsx +33 -118
  906. package/src/components/Alert/AlertBase.tsx +156 -0
  907. package/src/components/Alert/AlertTypography.tsx +2 -1
  908. package/src/components/AppRoot/AppRoot.module.css +2 -2
  909. package/src/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.tsx +1 -1
  910. package/src/components/AppRoot/ScrollContext.tsx +162 -50
  911. package/src/components/AspectRatio/AspectRatio.module.css +2 -2
  912. package/src/components/Avatar/Avatar.module.css +1 -1
  913. package/src/components/Avatar/AvatarBadge/AvatarBadge.module.css +8 -3
  914. package/src/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.tsx +4 -1
  915. package/src/components/Banner/Banner.module.css +17 -17
  916. package/src/components/Button/Button.module.css +11 -11
  917. package/src/components/ButtonGroup/ButtonGroup.tsx +2 -0
  918. package/src/components/Calendar/Calendar.module.css +7 -7
  919. package/src/components/Calendar/Calendar.tsx +108 -98
  920. package/src/components/CalendarDay/CalendarDay.module.css +11 -11
  921. package/src/components/CalendarDay/CalendarDay.tsx +1 -3
  922. package/src/components/CalendarDays/CalendarDays.module.css +7 -7
  923. package/src/components/CalendarHeader/CalendarHeader.module.css +4 -4
  924. package/src/components/CalendarHeader/CalendarHeader.tsx +1 -3
  925. package/src/components/CalendarRange/CalendarRange.module.css +5 -5
  926. package/src/components/CalendarRange/CalendarRange.tsx +97 -106
  927. package/src/components/CalendarTime/CalendarTime.module.css +1 -1
  928. package/src/components/Card/Card.module.css +7 -7
  929. package/src/components/CardGrid/CardGrid.module.css +3 -3
  930. package/src/components/CardScroll/CardScroll.module.css +16 -16
  931. package/src/components/CardScroll/CardScroll.tsx +49 -29
  932. package/src/components/CarouselBase/CarouselBase.module.css +11 -11
  933. package/src/components/CarouselBase/CarouselBase.tsx +108 -50
  934. package/src/components/CarouselBase/helpers.ts +108 -46
  935. package/src/components/Cell/Cell.module.css +16 -2
  936. package/src/components/Cell/CellDragger/CellDragger.module.css +2 -2
  937. package/src/components/CellButton/CellButton.module.css +7 -7
  938. package/src/components/CellButtonGroup/CellButtonGroup.tsx +20 -0
  939. package/src/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.module.css +5 -0
  940. package/src/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.tsx +21 -0
  941. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +2 -2
  942. package/src/components/ChipsInputBase/Chip/Chip.module.css +16 -16
  943. package/src/components/ChipsInputBase/ChipsInputBase.module.css +10 -10
  944. package/src/components/ChipsSelect/ChipsSelect.module.css +1 -1
  945. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -0
  946. package/src/components/ChipsSelect/useChipsSelect.ts +12 -1
  947. package/src/components/Clickable/Clickable.module.css +1 -1
  948. package/src/components/Clickable/Clickable.tsx +37 -25
  949. package/src/components/ColorSchemeProvider/ColorSchemeProvider.tsx +1 -1
  950. package/src/components/ConfigProvider/ConfigProvider.tsx +4 -1
  951. package/src/components/ConfigProvider/ConfigProviderContext.tsx +29 -15
  952. package/src/components/ContentBadge/ContentBadge.module.css +7 -7
  953. package/src/components/ContentCard/ContentCard.module.css +6 -6
  954. package/src/components/ContentCard/ContentCard.tsx +9 -3
  955. package/src/components/Counter/Counter.module.css +4 -4
  956. package/src/components/CustomScrollView/CustomScrollView.module.css +2 -2
  957. package/src/components/CustomSelect/CustomSelect.module.css +2 -2
  958. package/src/components/CustomSelect/CustomSelect.tsx +151 -93
  959. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -12
  960. package/src/components/CustomSelectDropdown/CustomSelectDropdown.module.css +2 -2
  961. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -0
  962. package/src/components/CustomSelectOption/CustomSelectOption.module.css +8 -8
  963. package/src/components/DateInput/DateInput.module.css +38 -5
  964. package/src/components/DateInput/DateInput.tsx +123 -87
  965. package/src/components/DateInput/hooks.ts +84 -0
  966. package/src/components/DateRangeInput/DateRangeInput.module.css +3 -3
  967. package/src/components/DateRangeInput/DateRangeInput.tsx +104 -81
  968. package/src/components/DirectionProvider/DirectionProvider.tsx +17 -0
  969. package/src/components/DropZone/DropZone.module.css +2 -2
  970. package/src/components/FixedLayout/FixedLayout.module.css +3 -3
  971. package/src/components/Flex/Flex.module.css +26 -14
  972. package/src/components/Flex/Flex.tsx +3 -6
  973. package/src/components/FloatingArrow/FloatingArrow.module.css +1 -1
  974. package/src/components/Footer/Footer.module.css +1 -1
  975. package/src/components/FormField/FormField.module.css +24 -24
  976. package/src/components/FormItem/FormItem.module.css +10 -10
  977. package/src/components/FormItem/FormItem.tsx +1 -0
  978. package/src/components/FormLayoutGroup/FormLayoutGroup.module.css +5 -5
  979. package/src/components/GridAvatar/GridAvatar.module.css +2 -2
  980. package/src/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +2 -2
  981. package/src/components/Group/Group.module.css +16 -16
  982. package/src/components/Header/Header.module.css +5 -5
  983. package/src/components/HorizontalCell/HorizontalCell.module.css +3 -3
  984. package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.module.css +3 -2
  985. package/src/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
  986. package/src/components/HorizontalScroll/HorizontalScroll.tsx +68 -34
  987. package/src/components/IconButton/IconButton.module.css +14 -9
  988. package/src/components/ImageBase/ImageBase.module.css +15 -6
  989. package/src/components/ImageBase/ImageBase.tsx +16 -5
  990. package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +5 -5
  991. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +8 -8
  992. package/src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +2 -2
  993. package/src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.tsx +5 -4
  994. package/src/components/ImageBase/ImageBaseOverlay/hooks.ts +31 -0
  995. package/src/components/ImageBase/ImageBaseOverlay/types.ts +4 -0
  996. package/src/components/InfoRow/InfoRow.module.css +3 -3
  997. package/src/components/Input/Input.module.css +5 -5
  998. package/src/components/InputLike/InputLike.module.css +3 -3
  999. package/src/components/Link/Link.module.css +6 -6
  1000. package/src/components/Mark/Mark.module.css +2 -2
  1001. package/src/components/MiniInfoCell/MiniInfoCell.module.css +5 -5
  1002. package/src/components/ModalCard/ModalCard.module.css +4 -4
  1003. package/src/components/ModalCard/ModalCard.tsx +1 -0
  1004. package/src/components/ModalCard/ModalCardInternal.tsx +7 -1
  1005. package/src/components/ModalCard/types.ts +9 -1
  1006. package/src/components/ModalCardBase/ModalCardBase.module.css +7 -7
  1007. package/src/components/ModalCardBase/ModalCardBase.tsx +50 -10
  1008. package/src/components/ModalDismissButton/ModalDismissButton.module.css +0 -28
  1009. package/src/components/ModalDismissButton/ModalDismissButton.tsx +11 -9
  1010. package/src/components/ModalOutlet/ModalOutlet.module.css +1 -1
  1011. package/src/components/ModalOutsideButton/ModalOutsideButton.module.css +30 -0
  1012. package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +38 -0
  1013. package/src/components/ModalOutsideButtons/ModalOutsideButtons.module.css +6 -0
  1014. package/src/components/ModalOutsideButtons/ModalOutsideButtons.tsx +14 -0
  1015. package/src/components/ModalOverlay/ModalOverlay.module.css +2 -2
  1016. package/src/components/ModalPage/ModalPage.module.css +15 -16
  1017. package/src/components/ModalPage/ModalPageBase.tsx +92 -0
  1018. package/src/components/ModalPage/ModalPageInternal.tsx +25 -43
  1019. package/src/components/ModalPage/types.ts +19 -0
  1020. package/src/components/ModalPageFooter/ModalPageFooter.module.css +4 -4
  1021. package/src/components/ModalPageHeader/ModalPageHeader.module.css +2 -3
  1022. package/src/components/OnboardingTooltip/OnboardingTooltip.module.css +14 -1
  1023. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +57 -20
  1024. package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +10 -1
  1025. package/src/components/OnboardingTooltip/OnboardingTooltipContext.tsx +11 -0
  1026. package/src/components/Pagination/Pagination.module.css +1 -1
  1027. package/src/components/Pagination/Pagination.tsx +24 -7
  1028. package/src/components/Pagination/PaginationPage/PaginationPage.module.css +8 -8
  1029. package/src/components/Pagination/PaginationPage/PaginationPageButton.tsx +3 -3
  1030. package/src/components/Panel/Panel.module.css +3 -3
  1031. package/src/components/PanelHeader/PanelHeader.module.css +27 -27
  1032. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +3 -0
  1033. package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +19 -8
  1034. package/src/components/PanelHeaderContent/PanelHeaderContent.module.css +10 -10
  1035. package/src/components/PanelHeaderContext/PanelHeaderContext.module.css +7 -7
  1036. package/src/components/Placeholder/Placeholder.module.css +3 -3
  1037. package/src/components/PlatformProvider/PlatformProvider.tsx +1 -1
  1038. package/src/components/PopoutWrapper/PopoutWrapper.module.css +14 -9
  1039. package/src/components/PopoutWrapper/PopoutWrapper.tsx +25 -2
  1040. package/src/components/Popover/Popover.module.css +1 -1
  1041. package/src/components/Popover/Popover.tsx +6 -4
  1042. package/src/components/Popover/usePopover.tsx +106 -85
  1043. package/src/components/Popper/Popper.tsx +17 -6
  1044. package/src/components/Progress/Progress.module.css +20 -9
  1045. package/src/components/Progress/Progress.tsx +38 -9
  1046. package/src/components/PullToRefresh/PullToRefresh.module.css +14 -14
  1047. package/src/components/Radio/Radio.module.css +1 -1
  1048. package/src/components/Radio/RadioInput/RadioInput.module.css +1 -1
  1049. package/src/components/RadioGroup/RadioGroup.module.css +1 -1
  1050. package/src/components/Removable/Removable.module.css +22 -6
  1051. package/src/components/Removable/Removable.tsx +22 -4
  1052. package/src/components/RichCell/RichCell.module.css +10 -10
  1053. package/src/components/RichCell/RichCellIcon/RichCellIcon.module.css +4 -4
  1054. package/src/components/Root/Root.module.css +10 -10
  1055. package/src/components/ScreenSpinner/ScreenSpinner.module.css +11 -11
  1056. package/src/components/ScreenSpinner/ScreenSpinner.tsx +1 -1
  1057. package/src/components/ScrollArrow/ScrollArrow.module.css +15 -14
  1058. package/src/components/ScrollArrow/ScrollArrow.tsx +10 -1
  1059. package/src/components/Search/Search.module.css +41 -28
  1060. package/src/components/Search/Search.tsx +16 -0
  1061. package/src/components/SegmentedControl/SegmentedControl.module.css +16 -7
  1062. package/src/components/SegmentedControl/SegmentedControl.tsx +11 -13
  1063. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +11 -11
  1064. package/src/components/Select/Select.module.css +14 -14
  1065. package/src/components/SelectionControl/SelectionControl.module.css +2 -2
  1066. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +5 -5
  1067. package/src/components/Separator/Separator.module.css +3 -3
  1068. package/src/components/SimpleCell/SimpleCell.module.css +20 -16
  1069. package/src/components/SimpleGrid/SimpleGrid.module.css +2 -2
  1070. package/src/components/Skeleton/Skeleton.module.css +8 -8
  1071. package/src/components/Slider/Slider.module.css +25 -4
  1072. package/src/components/Slider/Slider.tsx +23 -15
  1073. package/src/components/Slider/SliderThumb/SliderThumb.module.css +7 -7
  1074. package/src/components/Slider/SliderThumb/SliderThumb.tsx +5 -5
  1075. package/src/components/Snackbar/Snackbar.module.css +23 -6
  1076. package/src/components/Snackbar/Snackbar.tsx +7 -0
  1077. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +9 -8
  1078. package/src/components/Snackbar/utils.ts +24 -6
  1079. package/src/components/Spacing/Spacing.module.css +1 -1
  1080. package/src/components/Spinner/Spinner.module.css +2 -2
  1081. package/src/components/SplitCol/SplitCol.module.css +9 -9
  1082. package/src/components/SplitLayout/SplitLayout.module.css +2 -2
  1083. package/src/components/SubnavigationBar/SubnavigationBar.module.css +4 -4
  1084. package/src/components/SubnavigationButton/SubnavigationButton.module.css +10 -5
  1085. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -0
  1086. package/src/components/Switch/Switch.module.css +25 -17
  1087. package/src/components/Switch/Switch.tsx +4 -0
  1088. package/src/components/Tabbar/Tabbar.module.css +5 -5
  1089. package/src/components/TabbarItem/TabbarItem.module.css +16 -16
  1090. package/src/components/TabbarItem/TabbarItem.tsx +18 -1
  1091. package/src/components/Tabs/Tabs.module.css +1 -1
  1092. package/src/components/Tabs/Tabs.tsx +3 -1
  1093. package/src/components/TabsItem/TabsItem.module.css +21 -20
  1094. package/src/components/Tappable/Tappable.module.css +6 -6
  1095. package/src/components/Textarea/Textarea.module.css +7 -3
  1096. package/src/components/ToolButton/ToolButton.module.css +7 -7
  1097. package/src/components/Tooltip/Tooltip.tsx +9 -142
  1098. package/src/components/Tooltip/useTooltip.tsx +168 -0
  1099. package/src/components/TooltipBase/TooltipBase.module.css +10 -9
  1100. package/src/components/TooltipBase/TooltipBase.tsx +7 -1
  1101. package/src/components/Typography/Caption/Caption.module.css +96 -96
  1102. package/src/components/Typography/DisplayTitle/DisplayTitle.module.css +64 -64
  1103. package/src/components/Typography/EllipsisText/EllipsisText.module.css +3 -3
  1104. package/src/components/Typography/Footnote/Footnote.module.css +32 -32
  1105. package/src/components/Typography/Headline/Headline.module.css +20 -20
  1106. package/src/components/Typography/Paragraph/Paragraph.module.css +16 -16
  1107. package/src/components/Typography/Subhead/Subhead.module.css +16 -16
  1108. package/src/components/Typography/Text/Text.module.css +16 -16
  1109. package/src/components/Typography/Title/Title.module.css +48 -48
  1110. package/src/components/Typography/Typography.module.css +1 -1
  1111. package/src/components/UnstyledTextField/UnstyledTextField.module.css +4 -4
  1112. package/src/components/UsersStack/UsersStack.module.css +4 -4
  1113. package/src/components/UsersStack/UsersStack.tsx +3 -7
  1114. package/src/components/View/View.module.css +8 -8
  1115. package/src/components/VisuallyHidden/VisuallyHidden.module.css +8 -8
  1116. package/src/components/WriteBar/WriteBar.module.css +10 -10
  1117. package/src/components/WriteBarIcon/WriteBarIcon.module.css +9 -9
  1118. package/src/context/CalendarDirectionContext.ts +1 -1
  1119. package/src/helpers/getValueByKey.ts +25 -0
  1120. package/src/hooks/useAutoDetectDirection.ts +18 -0
  1121. package/src/hooks/useConfigDirection.ts +8 -0
  1122. package/src/hooks/useFloatingElement.tsx +172 -0
  1123. package/src/hooks/useFocusTrap.ts +1 -1
  1124. package/src/hooks/useFocusVisible.ts +12 -1
  1125. package/src/hooks/useReferenceElement.tsx +13 -0
  1126. package/src/hooks/useTabsNavigation.ts +5 -3
  1127. package/src/hooks/useTodayDate.ts +34 -31
  1128. package/src/index.ts +9 -2
  1129. package/src/lib/SSR.tsx +11 -2
  1130. package/src/lib/date.ts +23 -0
  1131. package/src/lib/direction/index.ts +1 -0
  1132. package/src/lib/floating/adapters.ts +2 -0
  1133. package/src/lib/floating/customResizeObserver.ts +2 -1
  1134. package/src/lib/floating/functions.ts +15 -7
  1135. package/src/lib/floating/types/component.ts +10 -0
  1136. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +6 -1
  1137. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +2 -3
  1138. package/src/lib/floating/useReferenceHiddenChangeCallback.ts +26 -0
  1139. package/src/lib/object.ts +14 -0
  1140. package/src/lib/select.ts +2 -0
  1141. package/src/lib/sheet/controllers/BottomSheetController.ts +4 -1
  1142. package/src/lib/sheet/controllers/CSSTransitionController.ts +7 -4
  1143. package/src/lib/tokens/TokensClassProvider.module.css +1 -1
  1144. package/src/styles/common.css +2 -2
  1145. package/src/types.ts +2 -1
  1146. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.d.ts +0 -10
  1147. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.d.ts.map +0 -1
  1148. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -38
  1149. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.js.map +0 -1
  1150. package/dist/components/Pagination/utils.d.ts +0 -2
  1151. package/dist/components/Pagination/utils.d.ts.map +0 -1
  1152. package/dist/components/Pagination/utils.js +0 -5
  1153. package/dist/components/Pagination/utils.js.map +0 -1
  1154. package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -39
  1155. package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js.map +0 -1
  1156. package/dist/cssm/components/Pagination/utils.js +0 -5
  1157. package/dist/cssm/components/Pagination/utils.js.map +0 -1
  1158. package/dist/cssm/hooks/useDirection.js +0 -55
  1159. package/dist/cssm/hooks/useDirection.js.map +0 -1
  1160. package/dist/cssm/lib/tokens/index.js +0 -5
  1161. package/dist/cssm/lib/tokens/index.js.map +0 -1
  1162. package/dist/hooks/useDirection.d.ts +0 -39
  1163. package/dist/hooks/useDirection.d.ts.map +0 -1
  1164. package/dist/hooks/useDirection.js +0 -55
  1165. package/dist/hooks/useDirection.js.map +0 -1
  1166. package/dist/lib/tokens/index.d.ts +0 -5
  1167. package/dist/lib/tokens/index.d.ts.map +0 -1
  1168. package/dist/lib/tokens/index.js +0 -5
  1169. package/dist/lib/tokens/index.js.map +0 -1
  1170. package/src/components/ModalCardBase/ModalCardBaseCloseButton.tsx +0 -51
  1171. package/src/components/Pagination/utils.ts +0 -3
  1172. package/src/hooks/useDirection.ts +0 -63
  1173. package/src/lib/tokens/index.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { type CustomTouchEvent, type CustomTouchEventHandler, Touch } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalDraggingType, InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nconst sizeClassNames = {\n l: styles.sizeL,\n m: styles.sizeM,\n s: styles.sizeS,\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?: (index: number) => string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?: (value: number, index: number) => string;\n withTooltip?: boolean;\n /**\n * Размер ползунка.\n */\n size?: 's' | 'm' | 'l';\n /**\n * Передает атрибут `data-testid` для первого ползунка\n */\n startThumbTestId?: string;\n /**\n * Передает атрибут `data-testid` для второго ползунка когда `multiple=true`\n */\n endThumbTestId?: string;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n multiple?: false;\n value?: number;\n defaultValue?: number;\n onChange?: (value: number, event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n multiple: true;\n value?: [number, number];\n defaultValue?: [number, number];\n onChange?: (value: [number, number], event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n step = 1,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n startThumbTestId,\n endThumbTestId,\n onChange,\n withTooltip,\n size = 'l',\n ...restProps\n}: SliderProps | SliderMultipleProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n const [activeThumb, setActiveThumb] = React.useState<InternalDraggingType | null>(null);\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (\n nextValue: InternalValueState,\n event: CustomTouchEvent | React.ChangeEvent,\n ) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n const nextStartX = event.startX - nextContainerX;\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n setActiveThumb(gesture.dragging);\n };\n\n const handlePointerMove: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + shiftX;\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: CustomTouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n setActiveThumb(null);\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n event,\n );\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles.host,\n disabled && styles.disabled,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n sizeClassNames[size],\n className,\n )}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles.track} />\n <div\n className={styles.trackFill}\n style={\n multiple\n ? { left: `${startValueInPercent}%`, right: `${100 - endReversedValueInPercent}%` }\n : { width: `${startValueInPercent}%` }\n }\n />\n <div ref={thumbsContainerRef} className={styles.thumbs}>\n <SliderThumb\n data-type=\"start\"\n className={styles.thumb}\n style={{\n left: `${startValueInPercent}%`,\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'data-testid': startThumbTestId,\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'start'}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={styles.thumb}\n style={{ left: `${endReversedValueInPercent}%` }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'data-testid': endThumbTestId,\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'end'}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","useAdaptivity","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","sizeYClassNames","none","compact","sizeClassNames","l","m","s","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","startThumbTestId","endThumbTestId","onChange","withTooltip","size","restProps","sizeY","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","activeThumb","setActiveThumb","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","data-value","onStart","onMove","onEnd","div","style","right","ref","data-type","zIndex","inputProps","isActive"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,KAAK,QAAQ,wBAAqB;AAC3C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,YAAY,QAAQ,8BAA2B;AAExD,SAA8DC,KAAK,QAAQ,oBAAiB;AAC5F,SAASC,WAAW,QAAQ,+BAA4B;AACxD,SACEC,wCAAwC,EACxCC,8BAA8B,EAC9BC,gBAAgB,EAChBC,aAAa,EACbC,aAAa,EACbC,SAAS,EACTC,wBAAwB,EACxBC,sCAAsC,QACjC,eAAY;AAInB,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAEA,MAAMC,iBAAiB;IACrBC,CAAC;IACDC,CAAC;IACDC,CAAC;AACH;AAmDA;;CAEC,GACD,OAAO,MAAMC,SAAS;QAAC,EACrBC,OAAO,CAAC,EACRC,MAAM,CAAC,EACPC,MAAM,GAAG,EACTC,OAAOC,SAAS,EAChBC,UAAUC,YAAY,EACtBC,eAAeD,eAAe;QAACL;QAAKC;KAAI,GAAGD,GAAG,EAC9CO,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,YAAY,EACZC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,EACdC,QAAQ,EACRC,WAAW,EACXC,OAAO,GAAG,EAEwB,WAD/BC;QAhBHlB;QACAC;QACAC;QACAC;QACAE;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAGvC;IAE3B,MAAMwC,eAAehB,cAAciB;IACnC,MAAM,CAACC,YAAYC,SAAS,GAAG9C,MAAM+C,QAAQ,CAACjB;IAE9C,MAAMJ,QAAQ1B,MAAMgD,OAAO,CAAqB;QAC9C,MAAMC,gBAAgBN,eAAehB,YAAYkB;QACjD,OAAOK,MAAMC,OAAO,CAACF,iBACjB;YAAC/C,MAAM+C,aAAa,CAAC,EAAE,EAAEzB,KAAKC;YAAMvB,MAAM+C,aAAa,CAAC,EAAE,EAAEzB,KAAKC;SAAK,GACtE;YAACvB,MAAM+C,eAAezB,KAAKC;YAAM;SAAK;IAC5C,GAAG;QAACkB;QAAchB;QAAWkB;QAAYrB;QAAKC;KAAI;IAElD,MAAM,CAAC2B,YAAYC,SAAS,GAAG3B;IAC/B,MAAME,WAAWC,gBAAgBwB,aAAa;IAC9C,MAAMC,sBAAsB1C,UAAUwC,YAAY5B,KAAKC;IACvD,MAAM8B,4BAA4B3B,WAAWhB,UAAUyC,UAAU7B,KAAKC,OAAO;IAC7E,MAAM,CAAC+B,aAAaC,eAAe,GAAGzD,MAAM+C,QAAQ,CAA8B;IAElF,MAAMW,UAAU1D,MAAM2D,MAAM,CAAqB;QAC/CC,UAAU;QACVC,QAAQ;QACRC,gBAAgB;IAClB,GAAGC,OAAO;IACV,MAAMC,qBAAqB5D,aAAa6B;IACxC,MAAMgC,qBAAqBjE,MAAM2D,MAAM,CAAmB;IAC1D,MAAMO,mBAAmBlE,MAAM2D,MAAM,CAAmB;IAExD,MACEpD,4CAAAA,yCAAyCkC,YADrC,EAAE0B,SAAS,EAAEC,aAAa,EAAEC,cAAc,EAAqC,GACnF9D,2CADmD+D,4DACnD/D;QADM4D;QAAWC;QAAeC;;IAGlC,MAAME,cAAc,CAClBC,WACAC;QAEA,IAAI1C,YAAaL,KAAK,CAAC,EAAE,KAAK8C,SAAS,CAAC,EAAE,IAAI9C,KAAK,CAAC,EAAE,KAAK8C,SAAS,CAAC,EAAE,EAAG;YACxE;QACF;QAEA,IAAI3C,cAAc;YAChB,IAAIpB,iBAAiB+D,YAAY;gBAC/B,CAAC7B,gBAAgBG,SAAS0B;gBAC1BlC,YAAYA,SAASkC,WAAWC;YAClC;QACF,OAAO;YACL,CAAC9B,gBAAgBG,SAAS0B,SAAS,CAAC,EAAE;YACtClC,YAAYA,SAASkC,SAAS,CAAC,EAAE,EAAEC;QACrC;IACF;IAEA,MAAMC,qBAA8C,CAACD;QACnD,IAAI,CAACT,mBAAmBD,OAAO,EAAE;YAC/B;QACF;QAEA,MAAM,EAAEY,MAAMC,cAAc,EAAEC,OAAOC,kBAAkB,EAAE,GACvDd,mBAAmBD,OAAO,CAACgB,qBAAqB;QAElD,mGAAmG;QACnG,MAAMC,oBAAoBxE,+BAA+BiE,MAAMQ,aAAa,CAACC,MAAM;QAEnF,MAAMC,aAAaV,MAAMZ,MAAM,GAAGe;QAClC,MAAMJ,YAAY9D,cAAcyE,YAAYL,oBAAoBtD,KAAKC,KAAKF;QAC1E,MAAM6D,eAAezE,cAAce,OAAO8C,WAAWQ;QAErDtB,QAAQE,QAAQ,GAAGwB;QACnB1B,QAAQI,cAAc,GAAGgB;QACzBpB,QAAQG,MAAM,GAAGsB;QAEjB,MAAME,4BAA4BxE,yBAChCa,OACA8C,WACAhD,KACAC,KACA2D;QAGF,MAAM,CAACE,gBAAgBC,aAAa,GAAGF;QACvC,IACEpB,mBAAmBF,OAAO,IACzBiB,CAAAA,sBAAsB,WACpBM,mBAAmBlC,cAAcmC,iBAAiBlC,QAAQ,GAC7D;YACAY,mBAAmBF,OAAO,CAACyB,KAAK;YAChCf,MAAMQ,aAAa,CAACQ,cAAc;QACpC,OAAO,IACLvB,iBAAiBH,OAAO,IACvBiB,CAAAA,sBAAsB,SAAUO,iBAAiBlC,YAAYiC,mBAAmBlC,UAAU,GAC3F;YACAc,iBAAiBH,OAAO,CAACyB,KAAK;YAC9Bf,MAAMQ,aAAa,CAACQ,cAAc;QACpC;QAEAlB,YAAYc,2BAA2BZ;QAEvCA,MAAMQ,aAAa,CAACS,eAAe;QACnCjC,eAAeC,QAAQE,QAAQ;IACjC;IAEA,MAAM+B,oBAA6C,CAAClB;QAClD,MAAM,EAAEZ,MAAM,EAAEC,cAAc,EAAEF,QAAQ,EAAE,GAAGF;QAE7C,MAAM,EAAEkC,SAAS,CAAC,EAAE,GAAGnB;QACvB,MAAMU,aAAatB,SAAS+B;QAC5B,MAAMpB,YAAY9D,cAAcyE,YAAYrB,gBAAgBtC,KAAKC,KAAKF;QAEtEgD,YAAY1D,yBAAyBa,OAAO8C,WAAWhD,KAAKC,KAAKmC,WAAWa;QAE5EA,MAAMQ,aAAa,CAACS,eAAe;QACnCjB,MAAMQ,aAAa,CAACQ,cAAc;IACpC;IAEA,MAAMI,mBAA4C,CAACpB;QACjDf,QAAQE,QAAQ,GAAG;QACnBa,MAAMQ,aAAa,CAACS,eAAe;QACnCjC,eAAe;IACjB;IAEA,MAAMqC,4BAA4B,CAACrB;QACjCF,YACEzD,uCACEY,OACAqE,OAAOtB,MAAMS,MAAM,CAACxD,KAAK,GACzBlB,+BAA+BiE,MAAMS,MAAM,IAE7CT;IAEJ;IAEA,qBACE,MAACpE;QACC2F,cAAYpE,WAAW,GAAGwB,WAAW,CAAC,EAAEC,UAAU,GAAGD;OACjDkB;QACJtC,WAAW/B,+BAET8B,oCACAW,UAAU,aAAa3B,eAAe,CAAC2B,MAAM,EAC7CxB,cAAc,CAACsB,KAAK,EACpBR;QAEFiE,SAASlE,WAAWa,YAAY8B;QAChCwB,QAAQnE,WAAWa,YAAY+C;QAC/BQ,OAAOpE,WAAWa,YAAYiD;;0BAE9B,KAACO;gBAAIpE,SAAS;;0BACd,KAACoE;gBACCpE,SAAS;gBACTqE,OACEzE,WACI;oBAAE+C,MAAM,GAAGrB,oBAAoB,CAAC,CAAC;oBAAEgD,OAAO,GAAG,MAAM/C,0BAA0B,CAAC,CAAC;gBAAC,IAChF;oBAAEsB,OAAO,GAAGvB,oBAAoB,CAAC,CAAC;gBAAC;;0BAG3C,MAAC8C;gBAAIG,KAAKvC;gBAAoBhC,SAAS;;kCACrC,KAAC1B;wBACCkG,aAAU;wBACVxE,SAAS;wBACTqE,OAAO;4BACL1B,MAAM,GAAGrB,oBAAoB,CAAC,CAAC;4BAC/B,6GAA6G;4BAC7GmD,QAAQ7E,YAAY0B,uBAAuB,KAAK,IAAIV;wBACtD;wBACAL,aAAaA;wBACbmE,YAAY;4BACV,aAAa;4BACb,eAAetE;4BACf,OAAO6B;4BACP,QAAQ1C;4BACR,OAAOC;4BACP,SAAS4B;4BACT,OAAOxB,WAAWyB,WAAW5B;4BAC7B,YAAYM;4BACZ,cAAcG,eAAeA,aAAa,KAAKiC;4BAC/C,kBAAkBhC,mBAAmBA,iBAAiBiB,YAAY,KAAKgB;4BACvE,mBAAmBC;4BACnB,YAAYyB;wBACd;wBACAa,UAAUnD,gBAAgB;;oBAE3B5B,0BACC,KAACtB;wBACCkG,aAAU;wBACVxE,SAAS;wBACTqE,OAAO;4BAAE1B,MAAM,GAAGpB,0BAA0B,CAAC,CAAC;wBAAC;wBAC/ChB,aAAaA;wBACbmE,YAAY;4BACV,aAAa;4BACb,eAAerE;4BACf,OAAO6B;4BACP,QAAQ3C;4BACR,OAAO6B;4BACP,SAASC;4BACT,OAAO5B;4BACP,YAAYM;4BACZ,cAAcG,eAAeA,aAAa,KAAKiC;4BAC/C,kBAAkBhC,mBAAmBA,iBAAiBkB,UAAU,KAAKe;4BACrE,mBAAmBC;4BACnB,YAAYyB;wBACd;wBACAa,UAAUnD,gBAAgB;;;;;;AAMtC,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { type CustomTouchEvent, type CustomTouchEventHandler, Touch } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalDraggingType, InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nconst sizeClassNames = {\n l: styles.sizeL,\n m: styles.sizeM,\n s: styles.sizeS,\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?: (index: number) => string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?: (value: number, index: number) => string;\n withTooltip?: boolean;\n /**\n * Размер ползунка.\n */\n size?: 's' | 'm' | 'l';\n /**\n * Передает атрибут `data-testid` для первого ползунка\n */\n startThumbTestId?: string;\n /**\n * Передает атрибут `data-testid` для второго ползунка когда `multiple=true`\n */\n endThumbTestId?: string;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n multiple?: false;\n value?: number;\n defaultValue?: number;\n onChange?: (value: number, event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n multiple: true;\n value?: [number, number];\n defaultValue?: [number, number];\n onChange?: (value: [number, number], event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n step = 1,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n startThumbTestId,\n endThumbTestId,\n onChange,\n withTooltip,\n size = 'l',\n style: styleProp,\n ...restProps\n}: SliderProps | SliderMultipleProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n const [activeThumb, setActiveThumb] = React.useState<InternalDraggingType | null>(null);\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (\n nextValue: InternalValueState,\n event: CustomTouchEvent | React.ChangeEvent,\n ) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n let nextStartX = event.startX - nextContainerX;\n if (isRtl) {\n nextStartX = nextContainerWidth - nextStartX;\n }\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n setActiveThumb(gesture.dragging);\n };\n\n const handlePointerMove: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + (isRtl ? -shiftX : shiftX);\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: CustomTouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n setActiveThumb(null);\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n event,\n );\n };\n\n const style: CSSCustomProperties = {\n '--vkui_internal--Slider_start_value': String(startValueInPercent),\n '--vkui_internal--Slider_end_value': String(endReversedValueInPercent),\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles.host,\n disabled && styles.disabled,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n sizeClassNames[size],\n multiple && styles.multiple,\n isRtl && styles.rtl,\n className,\n )}\n style={mergeStyle(styleProp, style)}\n getRootRef={getRootRef}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles.track} />\n <div className={styles.trackFill} />\n <div ref={thumbsContainerRef} className={styles.thumbs}>\n <SliderThumb\n data-type=\"start\"\n className={classNames(styles.thumb, styles.thumbStart)}\n style={{\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'data-testid': startThumbTestId,\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'start'}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={classNames(styles.thumb, styles.thumbEnd)}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'data-testid': endThumbTestId,\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'end'}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","mergeStyle","useAdaptivity","useConfigDirection","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","sizeYClassNames","none","compact","sizeClassNames","l","m","s","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","startThumbTestId","endThumbTestId","onChange","withTooltip","size","style","styleProp","restProps","sizeY","direction","isRtl","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","activeThumb","setActiveThumb","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","String","data-value","onStart","onMove","onEnd","div","ref","data-type","zIndex","inputProps","isActive"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SliderThumb.d.ts","sourceRoot":"","sources":["../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAInE,UAAU,gBAAiB,SAAQ,UAAU,CAAC,eAAe,CAAC,EAAE,gBAAgB;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GACtD,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GACrC,gBAAgB,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,+EAOrB,gBAAgB,KAAG,KAAK,CAAC,SAkG3B,CAAC"}
1
+ {"version":3,"file":"SliderThumb.d.ts","sourceRoot":"","sources":["../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAInE,UAAU,gBAAiB,SAAQ,UAAU,CAAC,eAAe,CAAC,EAAE,gBAAgB;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GACtD,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GACrC,gBAAgB,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,GAAI,4EAOzB,gBAAgB,KAAG,KAAK,CAAC,SAkG3B,CAAC"}
@@ -77,7 +77,11 @@ export const SliderThumb = (_param)=>{
77
77
  shouldShowTooltip && /*#__PURE__*/ _jsx(TooltipBase, {
78
78
  appearance: "neutral",
79
79
  getRootRef: refs.setFloating,
80
- style: convertFloatingDataToReactCSSProperties(floatingPositionStrategy, floatingDataX, floatingDataY),
80
+ style: convertFloatingDataToReactCSSProperties({
81
+ strategy: floatingPositionStrategy,
82
+ x: floatingDataX,
83
+ y: floatingDataY
84
+ }),
81
85
  arrowProps: {
82
86
  coords: arrowCoords,
83
87
  placement: resolvedPlacement,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useBooleanState } from '../../../hooks/useBooleanState';\nimport { useExternRef } from '../../../hooks/useExternRef';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../../hooks/useFocusVisibleClassName';\nimport {\n arrowMiddleware,\n convertFloatingDataToReactCSSProperties,\n flipMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n useFloating,\n} from '../../../lib/floating';\nimport type { HasDataAttribute, HasRootRef } from '../../../types';\nimport { TooltipBase } from '../../TooltipBase/TooltipBase';\nimport styles from './SliderThumb.module.css';\n\ninterface SliderThumbProps extends HasRootRef<HTMLSpanElement>, HasDataAttribute {\n className?: string;\n style?: React.CSSProperties;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement> &\n React.RefAttributes<HTMLInputElement> &\n HasDataAttribute;\n withTooltip?: boolean;\n isActive?: boolean;\n}\n\nexport const SliderThumb = ({\n className,\n getRootRef,\n inputProps,\n withTooltip,\n isActive,\n ...restProps\n}: SliderThumbProps): React.ReactNode => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({\n focusVisible,\n mode: styles.focusVisible,\n });\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n\n const memoizedMiddlewares = React.useMemo(() => {\n return [\n offsetMiddleware({\n crossAxis: 0,\n mainAxis: 15,\n }),\n flipMiddleware(),\n shiftMiddleware({ padding: 8 }),\n arrowMiddleware({\n element: arrowRef,\n }),\n ];\n }, [arrowRef]);\n\n const {\n x: floatingDataX,\n y: floatingDataY,\n placement: resolvedPlacement,\n refs,\n strategy: floatingPositionStrategy,\n middlewareData: { arrow: arrowCoords },\n update: updateTooltipPosition,\n } = useFloating({\n placement: 'top',\n middleware: memoizedMiddlewares,\n });\n\n const {\n value: isHovered,\n setTrue: setHoveredTrue,\n setFalse: setHoveredFalse,\n } = useBooleanState(false);\n\n const handleRootRef = useExternRef<HTMLSpanElement>(getRootRef, refs.setReference);\n\n const shouldShowTooltip = withTooltip && (focusVisible || isHovered || isActive);\n\n const inputValue = inputProps && inputProps.value;\n React.useEffect(\n function udpateTooltipPositionOnValueChange() {\n if (shouldShowTooltip && inputValue !== 'undefined') {\n updateTooltipPosition();\n }\n },\n [inputValue, updateTooltipPosition, shouldShowTooltip],\n );\n\n return (\n <React.Fragment>\n <span\n {...restProps}\n ref={handleRootRef}\n onMouseEnter={setHoveredTrue}\n onMouseLeave={setHoveredFalse}\n className={classNames(\n styles.host,\n focusVisibleClassNames,\n isActive && styles.active,\n isHovered && styles.hover,\n className,\n )}\n >\n <input\n {...inputProps}\n type=\"range\"\n className={styles.nativeInput}\n aria-orientation=\"horizontal\"\n onBlur={onBlur}\n onFocus={onFocus}\n />\n </span>\n {shouldShowTooltip && (\n <TooltipBase\n appearance=\"neutral\"\n getRootRef={refs.setFloating}\n style={convertFloatingDataToReactCSSProperties(\n floatingPositionStrategy,\n floatingDataX,\n floatingDataY,\n )}\n arrowProps={{\n coords: arrowCoords,\n placement: resolvedPlacement,\n getRootRef: setArrowRef,\n }}\n description={inputValue}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","useBooleanState","useExternRef","useFocusVisible","useFocusVisibleClassName","arrowMiddleware","convertFloatingDataToReactCSSProperties","flipMiddleware","offsetMiddleware","shiftMiddleware","useFloating","TooltipBase","SliderThumb","className","getRootRef","inputProps","withTooltip","isActive","restProps","focusVisible","onBlur","onFocus","focusVisibleClassNames","mode","arrowRef","setArrowRef","useState","memoizedMiddlewares","useMemo","crossAxis","mainAxis","padding","element","x","floatingDataX","y","floatingDataY","placement","resolvedPlacement","refs","strategy","floatingPositionStrategy","middlewareData","arrow","arrowCoords","update","updateTooltipPosition","middleware","value","isHovered","setTrue","setHoveredTrue","setFalse","setHoveredFalse","handleRootRef","setReference","shouldShowTooltip","inputValue","useEffect","udpateTooltipPositionOnValueChange","Fragment","span","ref","onMouseEnter","onMouseLeave","input","type","aria-orientation","appearance","setFloating","style","arrowProps","coords","description"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,wBAAwB,QAAQ,6CAA0C;AACnF,SACEC,eAAe,EACfC,uCAAuC,EACvCC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,QACN,iCAAwB;AAE/B,SAASC,WAAW,QAAQ,mCAAgC;AAa5D,OAAO,MAAMC,cAAc;QAAC,EAC1BC,SAAS,EACTC,UAAU,EACVC,UAAU,EACVC,WAAW,EACXC,QAAQ,EAES,WADdC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGlB;IAC1C,MAAMmB,yBAAyBlB,yBAAyB;QACtDe;QACAI,IAAI;IACN;IACA,MAAM,CAACC,UAAUC,YAAY,GAAG1B,MAAM2B,QAAQ,CAAwB;IAEtE,MAAMC,sBAAsB5B,MAAM6B,OAAO,CAAC;QACxC,OAAO;YACLpB,iBAAiB;gBACfqB,WAAW;gBACXC,UAAU;YACZ;YACAvB;YACAE,gBAAgB;gBAAEsB,SAAS;YAAE;YAC7B1B,gBAAgB;gBACd2B,SAASR;YACX;SACD;IACH,GAAG;QAACA;KAAS;IAEb,MAAM,EACJS,GAAGC,aAAa,EAChBC,GAAGC,aAAa,EAChBC,WAAWC,iBAAiB,EAC5BC,IAAI,EACJC,UAAUC,wBAAwB,EAClCC,gBAAgB,EAAEC,OAAOC,WAAW,EAAE,EACtCC,QAAQC,qBAAqB,EAC9B,GAAGpC,YAAY;QACd2B,WAAW;QACXU,YAAYpB;IACd;IAEA,MAAM,EACJqB,OAAOC,SAAS,EAChBC,SAASC,cAAc,EACvBC,UAAUC,eAAe,EAC1B,GAAGpD,gBAAgB;IAEpB,MAAMqD,gBAAgBpD,aAA8BY,YAAYyB,KAAKgB,YAAY;IAEjF,MAAMC,oBAAoBxC,eAAgBG,CAAAA,gBAAgB8B,aAAahC,QAAO;IAE9E,MAAMwC,aAAa1C,cAAcA,WAAWiC,KAAK;IACjDjD,MAAM2D,SAAS,CACb,SAASC;QACP,IAAIH,qBAAqBC,eAAe,aAAa;YACnDX;QACF;IACF,GACA;QAACW;QAAYX;QAAuBU;KAAkB;IAGxD,qBACE,MAACzD,MAAM6D,QAAQ;;0BACb,KAACC,gDACK3C;gBACJ4C,KAAKR;gBACLS,cAAcZ;gBACda,cAAcX;gBACdxC,WAAWb,oCAETsB,wBACAL,uCACAgC,uCACApC;0BAGF,cAAA,KAACoD,iDACKlD;oBACJmD,MAAK;oBACLrD,SAAS;oBACTsD,oBAAiB;oBACjB/C,QAAQA;oBACRC,SAASA;;;YAGZmC,mCACC,KAAC7C;gBACCyD,YAAW;gBACXtD,YAAYyB,KAAK8B,WAAW;gBAC5BC,OAAOhE,wCACLmC,0BACAP,eACAE;gBAEFmC,YAAY;oBACVC,QAAQ5B;oBACRP,WAAWC;oBACXxB,YAAYW;gBACd;gBACAgD,aAAahB;;;;AAKvB,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useBooleanState } from '../../../hooks/useBooleanState';\nimport { useExternRef } from '../../../hooks/useExternRef';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../../hooks/useFocusVisibleClassName';\nimport {\n arrowMiddleware,\n convertFloatingDataToReactCSSProperties,\n flipMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n useFloating,\n} from '../../../lib/floating';\nimport type { HasDataAttribute, HasRootRef } from '../../../types';\nimport { TooltipBase } from '../../TooltipBase/TooltipBase';\nimport styles from './SliderThumb.module.css';\n\ninterface SliderThumbProps extends HasRootRef<HTMLSpanElement>, HasDataAttribute {\n className?: string;\n style?: React.CSSProperties;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement> &\n React.RefAttributes<HTMLInputElement> &\n HasDataAttribute;\n withTooltip?: boolean;\n isActive?: boolean;\n}\n\nexport const SliderThumb = ({\n className,\n getRootRef,\n inputProps,\n withTooltip,\n isActive,\n ...restProps\n}: SliderThumbProps): React.ReactNode => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({\n focusVisible,\n mode: styles.focusVisible,\n });\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n\n const memoizedMiddlewares = React.useMemo(() => {\n return [\n offsetMiddleware({\n crossAxis: 0,\n mainAxis: 15,\n }),\n flipMiddleware(),\n shiftMiddleware({ padding: 8 }),\n arrowMiddleware({\n element: arrowRef,\n }),\n ];\n }, [arrowRef]);\n\n const {\n x: floatingDataX,\n y: floatingDataY,\n placement: resolvedPlacement,\n refs,\n strategy: floatingPositionStrategy,\n middlewareData: { arrow: arrowCoords },\n update: updateTooltipPosition,\n } = useFloating({\n placement: 'top',\n middleware: memoizedMiddlewares,\n });\n\n const {\n value: isHovered,\n setTrue: setHoveredTrue,\n setFalse: setHoveredFalse,\n } = useBooleanState(false);\n\n const handleRootRef = useExternRef<HTMLSpanElement>(getRootRef, refs.setReference);\n\n const shouldShowTooltip = withTooltip && (focusVisible || isHovered || isActive);\n\n const inputValue = inputProps && inputProps.value;\n React.useEffect(\n function udpateTooltipPositionOnValueChange() {\n if (shouldShowTooltip && inputValue !== 'undefined') {\n updateTooltipPosition();\n }\n },\n [inputValue, updateTooltipPosition, shouldShowTooltip],\n );\n\n return (\n <React.Fragment>\n <span\n {...restProps}\n ref={handleRootRef}\n onMouseEnter={setHoveredTrue}\n onMouseLeave={setHoveredFalse}\n className={classNames(\n styles.host,\n focusVisibleClassNames,\n isActive && styles.active,\n isHovered && styles.hover,\n className,\n )}\n >\n <input\n {...inputProps}\n type=\"range\"\n className={styles.nativeInput}\n aria-orientation=\"horizontal\"\n onBlur={onBlur}\n onFocus={onFocus}\n />\n </span>\n {shouldShowTooltip && (\n <TooltipBase\n appearance=\"neutral\"\n getRootRef={refs.setFloating}\n style={convertFloatingDataToReactCSSProperties({\n strategy: floatingPositionStrategy,\n x: floatingDataX,\n y: floatingDataY,\n })}\n arrowProps={{\n coords: arrowCoords,\n placement: resolvedPlacement,\n getRootRef: setArrowRef,\n }}\n description={inputValue}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","useBooleanState","useExternRef","useFocusVisible","useFocusVisibleClassName","arrowMiddleware","convertFloatingDataToReactCSSProperties","flipMiddleware","offsetMiddleware","shiftMiddleware","useFloating","TooltipBase","SliderThumb","className","getRootRef","inputProps","withTooltip","isActive","restProps","focusVisible","onBlur","onFocus","focusVisibleClassNames","mode","arrowRef","setArrowRef","useState","memoizedMiddlewares","useMemo","crossAxis","mainAxis","padding","element","x","floatingDataX","y","floatingDataY","placement","resolvedPlacement","refs","strategy","floatingPositionStrategy","middlewareData","arrow","arrowCoords","update","updateTooltipPosition","middleware","value","isHovered","setTrue","setHoveredTrue","setFalse","setHoveredFalse","handleRootRef","setReference","shouldShowTooltip","inputValue","useEffect","udpateTooltipPositionOnValueChange","Fragment","span","ref","onMouseEnter","onMouseLeave","input","type","aria-orientation","appearance","setFloating","style","arrowProps","coords","description"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,wBAAwB,QAAQ,6CAA0C;AACnF,SACEC,eAAe,EACfC,uCAAuC,EACvCC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,QACN,iCAAwB;AAE/B,SAASC,WAAW,QAAQ,mCAAgC;AAa5D,OAAO,MAAMC,cAAc;QAAC,EAC1BC,SAAS,EACTC,UAAU,EACVC,UAAU,EACVC,WAAW,EACXC,QAAQ,EAES,WADdC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGlB;IAC1C,MAAMmB,yBAAyBlB,yBAAyB;QACtDe;QACAI,IAAI;IACN;IACA,MAAM,CAACC,UAAUC,YAAY,GAAG1B,MAAM2B,QAAQ,CAAwB;IAEtE,MAAMC,sBAAsB5B,MAAM6B,OAAO,CAAC;QACxC,OAAO;YACLpB,iBAAiB;gBACfqB,WAAW;gBACXC,UAAU;YACZ;YACAvB;YACAE,gBAAgB;gBAAEsB,SAAS;YAAE;YAC7B1B,gBAAgB;gBACd2B,SAASR;YACX;SACD;IACH,GAAG;QAACA;KAAS;IAEb,MAAM,EACJS,GAAGC,aAAa,EAChBC,GAAGC,aAAa,EAChBC,WAAWC,iBAAiB,EAC5BC,IAAI,EACJC,UAAUC,wBAAwB,EAClCC,gBAAgB,EAAEC,OAAOC,WAAW,EAAE,EACtCC,QAAQC,qBAAqB,EAC9B,GAAGpC,YAAY;QACd2B,WAAW;QACXU,YAAYpB;IACd;IAEA,MAAM,EACJqB,OAAOC,SAAS,EAChBC,SAASC,cAAc,EACvBC,UAAUC,eAAe,EAC1B,GAAGpD,gBAAgB;IAEpB,MAAMqD,gBAAgBpD,aAA8BY,YAAYyB,KAAKgB,YAAY;IAEjF,MAAMC,oBAAoBxC,eAAgBG,CAAAA,gBAAgB8B,aAAahC,QAAO;IAE9E,MAAMwC,aAAa1C,cAAcA,WAAWiC,KAAK;IACjDjD,MAAM2D,SAAS,CACb,SAASC;QACP,IAAIH,qBAAqBC,eAAe,aAAa;YACnDX;QACF;IACF,GACA;QAACW;QAAYX;QAAuBU;KAAkB;IAGxD,qBACE,MAACzD,MAAM6D,QAAQ;;0BACb,KAACC,gDACK3C;gBACJ4C,KAAKR;gBACLS,cAAcZ;gBACda,cAAcX;gBACdxC,WAAWb,oCAETsB,wBACAL,uCACAgC,uCACApC;0BAGF,cAAA,KAACoD,iDACKlD;oBACJmD,MAAK;oBACLrD,SAAS;oBACTsD,oBAAiB;oBACjB/C,QAAQA;oBACRC,SAASA;;;YAGZmC,mCACC,KAAC7C;gBACCyD,YAAW;gBACXtD,YAAYyB,KAAK8B,WAAW;gBAC5BC,OAAOhE,wCAAwC;oBAC7CkC,UAAUC;oBACVR,GAAGC;oBACHC,GAAGC;gBACL;gBACAmC,YAAY;oBACVC,QAAQ5B;oBACRP,WAAWC;oBACXxB,YAAYW;gBACd;gBACAgD,aAAahB;;;;AAKvB,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/Slider/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAExE,eAAO,MAAM,SAAS,MAAO,MAAM,OAAO,MAAM,OAAO,MAAM,KAAG,MAC/B,CAAC;AAElC,eAAO,MAAM,aAAa,WAChB,MAAM,SACP,MAAM,OACR,MAAM,OACN,MAAM,SACJ,MAAM,KACZ,MAEF,CAAC;AAYF,eAAO,MAAM,wBAAwB,cACxB,kBAAkB,aAClB,MAAM,OACZ,MAAM,OACN,MAAM,YACD,oBAAoB,GAAG,IAAI,KACpC,kBAoBF,CAAC;AAEF,eAAO,MAAM,sCAAsC,cACtC,kBAAkB,aAClB,MAAM,YACP,oBAAoB,GAAG,IAAI,KACpC,kBAWF,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAErF;AAED,eAAO,MAAM,aAAa,cACb,kBAAkB,aAClB,MAAM,QACX,oBAAoB,GAAG,IAAI,KAChC,OAAO,GAAG,KAcZ,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,UACjF,CAAC,KACR,OAAO,GAAG,KAAK,GAAG,IAUpB,CAAC;AAQF,eAAO,MAAM,wCAAwC,GAAI,CAAC,SAAS,KAAK,CAAC,cAAc,aAC1E,CAAC,KACX,CAAC,GAAG;IACL,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CAMpC,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/Slider/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAExE,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAC/B,CAAC;AAElC,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,EACX,OAAO,MAAM,KACZ,MAEF,CAAC;AAYF,eAAO,MAAM,wBAAwB,GACnC,WAAW,kBAAkB,EAC7B,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,UAAU,oBAAoB,GAAG,IAAI,KACpC,kBAoBF,CAAC;AAEF,eAAO,MAAM,sCAAsC,GACjD,WAAW,kBAAkB,EAC7B,WAAW,MAAM,EACjB,UAAU,oBAAoB,GAAG,IAAI,KACpC,kBAWF,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAErF;AAED,eAAO,MAAM,aAAa,GACxB,WAAW,kBAAkB,EAC7B,WAAW,MAAM,EACjB,MAAM,oBAAoB,GAAG,IAAI,KAChC,OAAO,GAAG,KAcZ,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,EACzF,QAAQ,CAAC,KACR,OAAO,GAAG,KAAK,GAAG,IAUpB,CAAC;AAQF,eAAO,MAAM,wCAAwC,GAAI,CAAC,SAAS,KAAK,CAAC,cAAc,EACrF,WAAW,CAAC,KACX,CAAC,GAAG;IACL,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CAMpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Snackbar.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/Snackbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAa,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA2B5D,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,EAC7D,UAAU;IACZ;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAClD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,KAAK,CAAA;CA+NrE,CAAC"}
1
+ {"version":3,"file":"Snackbar.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/Snackbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAa,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA2B5D,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,EAC7D,UAAU;IACZ;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAClD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,KAAK,CAAA;CAqOrE,CAAC"}
@@ -5,6 +5,7 @@ import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  import * as React from "react";
7
7
  import { classNames } from "@vkontakte/vkjs";
8
+ import { useConfigDirection } from "../../hooks/useConfigDirection.js";
8
9
  import { useExternRef } from "../../hooks/useExternRef.js";
9
10
  import { useFocusWithin } from "../../hooks/useFocusWithin.js";
10
11
  import { useGlobalEscKeyDown } from "../../hooks/useGlobalEscKeyDown.js";
@@ -55,6 +56,8 @@ const animationStateClassNames = {
55
56
  const platform = usePlatform();
56
57
  const [open, setOpen] = React.useState(true);
57
58
  const [touched, setTouched] = React.useState(false);
59
+ const direction = useConfigDirection();
60
+ const isRtl = direction === 'rtl';
58
61
  const rootRef = useExternRef(getRootRef);
59
62
  const focused = useFocusWithin(rootRef);
60
63
  const inRef = React.useRef(null);
@@ -102,14 +105,14 @@ const animationStateClassNames = {
102
105
  if (shiftDataRef.current && panGestureRecognizer.current) {
103
106
  panGestureRecognizer.current.setInitialTimeOnce();
104
107
  panGestureRecognizer.current.setEndCoords(event.nativeEvent);
105
- shiftDataRef.current = getMovedShiftData(placement, shiftDataRef.current, panGestureRecognizer.current.delta());
108
+ shiftDataRef.current = getMovedShiftData(placement, shiftDataRef.current, panGestureRecognizer.current.delta(), isRtl);
106
109
  if (shiftDataRef.current.shifted) {
107
110
  updateShiftAxisCSSProperties(shiftDataRef.current.x, shiftDataRef.current.y, shiftDataRef.current.direction);
108
111
  }
109
112
  }
110
113
  };
111
114
  const handleTouchEnd = ()=>{
112
- if (touched && shiftDataRef.current && panGestureRecognizer.current && shouldBeClosedByShiftData(placement, shiftDataRef.current, getRelativeBoundingClientRect(rootRef.current, inRef.current), panGestureRecognizer.current.velocity())) {
115
+ if (touched && shiftDataRef.current && panGestureRecognizer.current && shouldBeClosedByShiftData(placement, shiftDataRef.current, getRelativeBoundingClientRect(rootRef.current, inRef.current), panGestureRecognizer.current.velocity(), isRtl)) {
113
116
  close();
114
117
  }
115
118
  setTouched(false);
@@ -154,7 +157,7 @@ const animationStateClassNames = {
154
157
  }
155
158
  return /*#__PURE__*/ _jsx(RootComponent, _object_spread_props(_object_spread({}, restProps), {
156
159
  role: "presentation",
157
- baseClassName: classNames("vkuiSnackbar__host", platform === 'ios' && "vkuiSnackbar__ios", touched && "vkuiSnackbar__touched", placementClassNames[placement], animationStateClassNames[animationState]),
160
+ baseClassName: classNames("vkuiSnackbar__host", platform === 'ios' && "vkuiSnackbar__ios", touched && "vkuiSnackbar__touched", placementClassNames[placement], animationStateClassNames[animationState], isRtl && "vkuiSnackbar__rtl"),
158
161
  baseStyle: resolveOffsetYCssStyle(placement, offsetY),
159
162
  getRootRef: rootRef,
160
163
  children: /*#__PURE__*/ _jsx("div", _object_spread_props(_object_spread({
@@ -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","placementClassNames","animationStateClassNames","enter","entering","entered","exit","exiting","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","baseStyle","div","className","ref","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","align","appearance","size","onClick"],"mappings":"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"}
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","placementClassNames","animationStateClassNames","enter","entering","entered","exit","exiting","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","baseStyle","div","className","ref","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","align","appearance","size","onClick"],"mappings":"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"}
@@ -2,13 +2,14 @@ import type * as React from 'react';
2
2
  import type { MediaQueries } from '../../lib/adaptivity';
3
3
  import type { ShiftData, SnackbarPlacement } from './types';
4
4
  export declare function resolveOffsetYCssStyle(placement: SnackbarPlacement, offsetY?: React.CSSProperties['inset']): React.CSSProperties | undefined;
5
+ export declare function revertRtlValue(value: number, isRtl: boolean): number;
5
6
  export declare function getInitialShiftData(width: number, height: number, mediaQueries: MediaQueries): ShiftData;
6
7
  export declare function getMovedShiftData(placement: SnackbarPlacement, shiftData: ShiftData, nextShift: {
7
8
  x: number;
8
9
  y: number;
9
- }): ShiftData;
10
+ }, isRtl?: boolean): ShiftData;
10
11
  export declare function shouldBeClosedByShiftData(placement: SnackbarPlacement, shiftData: ShiftData, relativeClientRect: DOMRect, velocity: {
11
12
  x: number;
12
13
  y: number;
13
- }): boolean;
14
+ }, isRtl?: boolean): boolean;
14
15
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5D,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GACrC,KAAK,CAAC,aAAa,GAAG,SAAS,CAcjC;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,GACzB,SAAS,CAUX;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,SAAS,CA2BX;AAID,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,OAAO,EAC3B,QAAQ,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC,OAAO,CA+CT"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5D,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GACrC,KAAK,CAAC,aAAa,GAAG,SAAS,CAcjC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,UAE3D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,GACzB,SAAS,CAUX;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACnC,KAAK,UAAQ,GACZ,SAAS,CA+BX;AAID,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,OAAO,EAC3B,QAAQ,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAClC,KAAK,UAAQ,GACZ,OAAO,CAuDT"}
@@ -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 +1 @@
1
- {"version":3,"file":"Spacing.d.ts","sourceRoot":"","sources":["../../../src/components/Spacing/Spacing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAI7D,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAE7E,MAAM,WAAW,YAAa,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IAC7E;;;;OAIG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AACD;;GAEG;AACH,eAAO,MAAM,OAAO,2BAAkC,YAAY,KAAG,KAAK,CAAC,SAY1E,CAAC"}
1
+ {"version":3,"file":"Spacing.d.ts","sourceRoot":"","sources":["../../../src/components/Spacing/Spacing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAI7D,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAE7E,MAAM,WAAW,YAAa,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IAC7E;;;;OAIG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AACD;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,wBAA8B,YAAY,KAAG,KAAK,CAAC,SAY1E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SplitCol.d.ts","sourceRoot":"","sources":["../../../src/components/SplitCol/SplitCol.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAyC7D,MAAM,WAAW,aAAc,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,UAAW,aAAa,KAAG,KAAK,CAAC,SA+CrD,CAAC"}
1
+ {"version":3,"file":"SplitCol.d.ts","sourceRoot":"","sources":["../../../src/components/SplitCol/SplitCol.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAyC7D,MAAM,WAAW,aAAc,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,KAAG,KAAK,CAAC,SA+CrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SplitLayout.d.ts","sourceRoot":"","sources":["../../../src/components/SplitLayout/SplitLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGrE,MAAM,WAAW,gBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,MAAM,CAAC,cAAc,CAAC;IACxB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,6FAUrB,gBAAgB,KAAG,KAAK,CAAC,SAsB3B,CAAC"}
1
+ {"version":3,"file":"SplitLayout.d.ts","sourceRoot":"","sources":["../../../src/components/SplitLayout/SplitLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGrE,MAAM,WAAW,gBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,MAAM,CAAC,cAAc,CAAC;IACxB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,0FAUzB,gBAAgB,KAAG,KAAK,CAAC,SAsB3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SubnavigationBar.d.ts","sourceRoot":"","sources":["../../../src/components/SubnavigationBar/SubnavigationBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,sCAAsC,CAAC;AAI9C,MAAM,WAAW,qBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,IAAI,CACF,qBAAqB,EACrB,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,yBAAyB,CAClF;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD;;GAEG;AACH,eAAO,MAAM,gBAAgB,8GAQ1B,qBAAqB,KAAG,KAAK,CAAC,SA+BhC,CAAC"}
1
+ {"version":3,"file":"SubnavigationBar.d.ts","sourceRoot":"","sources":["../../../src/components/SubnavigationBar/SubnavigationBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,sCAAsC,CAAC;AAI9C,MAAM,WAAW,qBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,IAAI,CACF,qBAAqB,EACrB,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,yBAAyB,CAClF;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,2GAQ9B,qBAAqB,KAAG,KAAK,CAAC,SA+BhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SubnavigationButton.d.ts","sourceRoot":"","sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA2BpE,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IAC3E,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1C,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoBD;;GAEG;AACH,eAAO,MAAM,mBAAmB,oGAW7B,wBAAwB,KAAG,KAAK,CAAC,SA+BnC,CAAC"}
1
+ {"version":3,"file":"SubnavigationButton.d.ts","sourceRoot":"","sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA2BpE,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IAC3E,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1C,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoBD;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,iGAWjC,wBAAwB,KAAG,KAAK,CAAC,SAgCnC,CAAC"}
@@ -57,7 +57,7 @@ const SubnavigationButtonTypography = (_param)=>{
57
57
  return /*#__PURE__*/ _jsx(Tappable, _object_spread_props(_object_spread({}, restProps), {
58
58
  hasActive: false,
59
59
  focusVisibleMode: "outside",
60
- baseClassName: classNames("vkuiSubnavigationButton__host", sizeStyles[size], modeStyles[mode], appearanceStyles[appearance], selected && "vkuiSubnavigationButton__selected", sizeY !== 'regular' && sizeYClassNames[sizeY]),
60
+ baseClassName: classNames("vkuiSubnavigationButton__host", sizeStyles[size], modeStyles[mode], appearanceStyles[appearance], selected && "vkuiSubnavigationButton__selected", sizeY !== 'regular' && sizeYClassNames[sizeY], restProps.disabled && "vkuiSubnavigationButton__disabled"),
61
61
  children: /*#__PURE__*/ _jsxs("span", {
62
62
  className: "vkuiSubnavigationButton__in",
63
63
  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","appearanceStyles","accent","neutral","modeStyles","primary","outline","tertiary","sizeStyles","s","m","l","sizeYClassNames","none","compact","SubnavigationButtonTypography","textLevel","restProps","level","SubnavigationButton","mode","appearance","size","selected","before","after","chevron","children","sizeY","hasActive","focusVisibleMode","baseClassName","span","className","Component"],"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;AAGxD,MAAMC,mBAAmB;IACvBC,MAAM;IACNC,OAAO;AACT;AAEA,MAAMC,aAAa;IACjBC,OAAO;IACPC,OAAO;IACPC,QAAQ;AACV;AAEA,MAAMC,aAAa;IACjBC,CAAC;IACDC,CAAC;IACDC,CAAC;AACH;AAEA,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AA6BA,MAAMC,gCAAgC;QAAC,EACrCC,SAAS,EAE0B,WADhCC;QADHD;;IAGA,IAAIA,cAAc,KAAK;QACrB,qBAAO,KAAChB,4BAAYiB;IACtB;IAEA,qBAAO,KAAClB;QAAQmB,OAAOF,cAAc,MAAM,MAAM;OAASC;AAC5D;AAEA;;CAEC,GACD,OAAO,MAAME,sBAAsB;QAAC,EAClCC,OAAO,SAAS,EAChBC,aAAa,QAAQ,EACrBC,OAAO,GAAG,EACVC,QAAQ,EACRP,YAAY,GAAG,EACfQ,MAAM,EACNC,KAAK,EACLC,OAAO,EACPC,QAAQ,EAEiB,WADtBV;QATHG;QACAC;QACAC;QACAC;QACAP;QACAQ;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEC,QAAQ,MAAM,EAAE,GAAG/B;IAE3B,qBACE,KAACC,kDACKmB;QACJY,WAAW;QACXC,kBAAiB;QACjBC,eAAenC,4CAEbY,UAAU,CAACc,KAAK,EAChBlB,UAAU,CAACgB,KAAK,EAChBnB,gBAAgB,CAACoB,WAAW,EAC5BE,iDACAK,UAAU,aAAahB,eAAe,CAACgB,MAAM;kBAG/C,cAAA,MAACI;YAAKC,SAAS;;gBACZT,wBAAU,KAACQ;oBAAKC,SAAS;8BAAkBT;;8BAC5C,KAACT;oBACCC,WAAWA;oBACXiB,SAAS;oBACTC,WAAU;8BAETP;;gBAEFF,uBAAS,KAACO;oBAAKC,SAAS;8BAAiBR;;gBACzCC,yBAAW,KAAC/B;oBAAesC,SAAS;;;;;AAI7C,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","appearanceStyles","accent","neutral","modeStyles","primary","outline","tertiary","sizeStyles","s","m","l","sizeYClassNames","none","compact","SubnavigationButtonTypography","textLevel","restProps","level","SubnavigationButton","mode","appearance","size","selected","before","after","chevron","children","sizeY","hasActive","focusVisibleMode","baseClassName","disabled","span","className","Component"],"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;AAGxD,MAAMC,mBAAmB;IACvBC,MAAM;IACNC,OAAO;AACT;AAEA,MAAMC,aAAa;IACjBC,OAAO;IACPC,OAAO;IACPC,QAAQ;AACV;AAEA,MAAMC,aAAa;IACjBC,CAAC;IACDC,CAAC;IACDC,CAAC;AACH;AAEA,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AA6BA,MAAMC,gCAAgC;QAAC,EACrCC,SAAS,EAE0B,WADhCC;QADHD;;IAGA,IAAIA,cAAc,KAAK;QACrB,qBAAO,KAAChB,4BAAYiB;IACtB;IAEA,qBAAO,KAAClB;QAAQmB,OAAOF,cAAc,MAAM,MAAM;OAASC;AAC5D;AAEA;;CAEC,GACD,OAAO,MAAME,sBAAsB;QAAC,EAClCC,OAAO,SAAS,EAChBC,aAAa,QAAQ,EACrBC,OAAO,GAAG,EACVC,QAAQ,EACRP,YAAY,GAAG,EACfQ,MAAM,EACNC,KAAK,EACLC,OAAO,EACPC,QAAQ,EAEiB,WADtBV;QATHG;QACAC;QACAC;QACAC;QACAP;QACAQ;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEC,QAAQ,MAAM,EAAE,GAAG/B;IAE3B,qBACE,KAACC,kDACKmB;QACJY,WAAW;QACXC,kBAAiB;QACjBC,eAAenC,4CAEbY,UAAU,CAACc,KAAK,EAChBlB,UAAU,CAACgB,KAAK,EAChBnB,gBAAgB,CAACoB,WAAW,EAC5BE,iDACAK,UAAU,aAAahB,eAAe,CAACgB,MAAM,EAC7CX,UAAUe,QAAQ;kBAGpB,cAAA,MAACC;YAAKC,SAAS;;gBACZV,wBAAU,KAACS;oBAAKC,SAAS;8BAAkBV;;8BAC5C,KAACT;oBACCC,WAAWA;oBACXkB,SAAS;oBACTC,WAAU;8BAETR;;gBAEFF,uBAAS,KAACQ;oBAAKC,SAAS;8BAAiBT;;gBACzCC,yBAAW,KAAC/B;oBAAeuC,SAAS;;;;;AAI7C,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/Switch/Switch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAStD,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,UAAU,CAAC,gBAAgB,CAAC,EAC5B,MAAM,CAAC,gBAAgB,CAAC;CAAG;AAE/B;;GAEG;AACH,eAAO,MAAM,MAAM,8IAWhB,WAAW,KAAG,KAAK,CAAC,SA2EtB,CAAC"}
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/Switch/Switch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAStD,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,UAAU,CAAC,gBAAgB,CAAC,EAC5B,MAAM,CAAC,gBAAgB,CAAC;CAAG;AAE/B;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,2IAWpB,WAAW,KAAG,KAAK,CAAC,SA8EtB,CAAC"}
@@ -6,6 +6,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  import * as React from "react";
7
7
  import { classNames } from "@vkontakte/vkjs";
8
8
  import { useAdaptivity } from "../../hooks/useAdaptivity.js";
9
+ import { useConfigDirection } from "../../hooks/useConfigDirection.js";
9
10
  import { useFocusVisible } from "../../hooks/useFocusVisible.js";
10
11
  import { useFocusVisibleClassName } from "../../hooks/useFocusVisibleClassName.js";
11
12
  import { usePlatform } from "../../hooks/usePlatform.js";
@@ -29,6 +30,8 @@ const sizeYClassNames = {
29
30
  "onFocus",
30
31
  "onClick"
31
32
  ]);
33
+ const direction = useConfigDirection();
34
+ const isRtl = direction === 'rtl';
32
35
  const platform = usePlatform();
33
36
  const { sizeY = 'none' } = useAdaptivity();
34
37
  const { focusVisible, onBlur, onFocus } = useFocusVisible();
@@ -66,7 +69,7 @@ const sizeYClassNames = {
66
69
  inputProps['aria-checked'] = localUncontrolledChecked ? 'true' : 'false';
67
70
  }
68
71
  return /*#__PURE__*/ _jsxs("label", {
69
- className: classNames("vkuiSwitch__host", sizeY !== 'regular' && sizeYClassNames[sizeY], platform === 'ios' ? "vkuiSwitch__ios" : "vkuiSwitch__default", disabled && "vkuiSwitch__disabled", focusVisibleClassNames, className),
72
+ className: classNames("vkuiSwitch__host", sizeY !== 'regular' && sizeYClassNames[sizeY], platform === 'ios' ? "vkuiSwitch__ios" : "vkuiSwitch__default", disabled && "vkuiSwitch__disabled", isRtl && "vkuiSwitch__rtl", focusVisibleClassNames, className),
70
73
  style: style,
71
74
  ref: getRootRef,
72
75
  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","sizeYClassNames","none","compact","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","ref","span","aria-hidden"],"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;AAG5F,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAOA;;CAEC,GACD,OAAO,MAAMC,SAAS;QAAC,EACrBC,KAAK,EACLC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,SAASC,WAAW,EACpBC,QAAQ,EACRC,QAAQC,UAAU,EAClBC,SAASC,WAAW,EACpBC,OAAO,EAEK,WADTC;QATHZ;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAE;QACAE;;IAGA,MAAME,WAAWpB;IACjB,MAAM,EAAEqB,QAAQ,MAAM,EAAE,GAAGxB;IAC3B,MAAM,EAAEyB,YAAY,EAAER,MAAM,EAAEE,OAAO,EAAE,GAAGlB;IAC1C,MAAMyB,yBAAyBxB,yBAAyB;QAAEuB;QAAcE,MAAM;IAAU;IACxF,MAAMC,aAAaxB,aAAaa,QAAQC;IACxC,MAAMW,cAAczB,aAAae,SAASC;IAE1C,MAAM,CAACU,0BAA0BC,4BAA4B,GAAGjC,MAAMkC,QAAQ,CAC5EC,QAAQX,UAAUY,cAAc;IAElC,MAAMC,eAAepB,gBAAgBqB;IAErC,MAAMC,sCAAsCvC,MAAMwC,WAAW,CAC3D,CAACC;QACC,IAAIJ,cAAc;YAChB;QACF;QAEA,MAAMK,eAAeD,EAAEE,MAAM;QAC7BV,4BAA4BS,aAAa1B,OAAO;IAClD,GACA;QAACqB;KAAa;IAGhB,MAAMO,aAAoD,wCACrDpB;QACHqB,WAAW;QACX/B,YAAYC;QACZ+B,MAAM;QACNC,MAAM;QACN7B,UAAUA;QACVC,QAAQC;QACRC,SAASC;QACTC,SAASjB,aAAaiC,qCAAqChB;;IAG7D,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,WAAWZ,+BAETyB,UAAU,aAAalB,eAAe,CAACkB,MAAM,EAC7CD,aAAa,mDACbP,oCACAU,wBACAf;QAEFD,OAAOA;QACPqC,KAAKnC;;0BAEL,KAACP,wDACKqC;gBACJ/B,SAAS;gBACTM,QAAQW;gBACRT,SAASU;;0BAEX,MAACmB;gBAAKC,aAAW;gBAACtC,SAAS;;kCACzB,KAACqC;wBAAKrC,SAAS;;kCACf,KAACqC;wBACCC,aAAW;wBACXtC,WAAWZ,iCAETwB,aAAa,SAAS,CAACP;;;;;;AAMnC,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","sizeYClassNames","none","compact","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","ref","span","aria-hidden"],"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;AAG5F,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAOA;;CAEC,GACD,OAAO,MAAMC,SAAS;QAAC,EACrBC,KAAK,EACLC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,SAASC,WAAW,EACpBC,QAAQ,EACRC,QAAQC,UAAU,EAClBC,SAASC,WAAW,EACpBC,OAAO,EAEK,WADTC;QATHZ;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAE;QACAE;;IAGA,MAAME,YAAYvB;IAClB,MAAMwB,QAAQD,cAAc;IAC5B,MAAME,WAAWtB;IACjB,MAAM,EAAEuB,QAAQ,MAAM,EAAE,GAAG3B;IAC3B,MAAM,EAAE4B,YAAY,EAAEV,MAAM,EAAEE,OAAO,EAAE,GAAGlB;IAC1C,MAAM2B,yBAAyB1B,yBAAyB;QAAEyB;QAAcE,MAAM;IAAU;IACxF,MAAMC,aAAa1B,aAAaa,QAAQC;IACxC,MAAMa,cAAc3B,aAAae,SAASC;IAE1C,MAAM,CAACY,0BAA0BC,4BAA4B,GAAGpC,MAAMqC,QAAQ,CAC5EC,QAAQb,UAAUc,cAAc;IAElC,MAAMC,eAAetB,gBAAgBuB;IAErC,MAAMC,sCAAsC1C,MAAM2C,WAAW,CAC3D,CAACC;QACC,IAAIJ,cAAc;YAChB;QACF;QAEA,MAAMK,eAAeD,EAAEE,MAAM;QAC7BV,4BAA4BS,aAAa5B,OAAO;IAClD,GACA;QAACuB;KAAa;IAGhB,MAAMO,aAAoD,wCACrDtB;QACHuB,WAAW;QACXjC,YAAYC;QACZiC,MAAM;QACNC,MAAM;QACN/B,UAAUA;QACVC,QAAQC;QACRC,SAASC;QACTC,SAASjB,aAAamC,qCAAqClB;;IAG7D,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,WAAWb,+BAET4B,UAAU,aAAapB,eAAe,CAACoB,MAAM,EAC7CD,aAAa,mDACbT,oCACAQ,4BACAI,wBACAjB;QAEFD,OAAOA;QACPuC,KAAKrC;;0BAEL,KAACP,wDACKuC;gBACJjC,SAAS;gBACTM,QAAQa;gBACRX,SAASY;;0BAEX,MAACmB;gBAAKC,aAAW;gBAACxC,SAAS;;kCACzB,KAACuC;wBAAKvC,SAAS;;kCACf,KAACuC;wBACCC,aAAW;wBACXxC,WAAWb,iCAET2B,aAAa,SAAS,CAACT;;;;;;AAMnC,EAAE"}