@vkontakte/vkui 7.1.3 → 7.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1202) 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 +8 -3
  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 +1 -1
  66. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  67. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  68. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  69. package/dist/components/CalendarHeader/CalendarHeader.js +1 -3
  70. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  71. package/dist/components/CalendarRange/CalendarRange.d.ts +4 -3
  72. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  73. package/dist/components/CalendarRange/CalendarRange.js +105 -108
  74. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  75. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  76. package/dist/components/CalendarTime/CalendarTime.js +16 -13
  77. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  78. package/dist/components/Card/Card.d.ts.map +1 -1
  79. package/dist/components/CardGrid/CardGrid.d.ts.map +1 -1
  80. package/dist/components/CardScroll/CardScroll.d.ts +5 -1
  81. package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
  82. package/dist/components/CardScroll/CardScroll.js +32 -29
  83. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  84. package/dist/components/CarouselBase/CarouselBase.d.ts.map +1 -1
  85. package/dist/components/CarouselBase/CarouselBase.js +71 -46
  86. package/dist/components/CarouselBase/CarouselBase.js.map +1 -1
  87. package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -1
  88. package/dist/components/CarouselBase/helpers.d.ts +20 -5
  89. package/dist/components/CarouselBase/helpers.d.ts.map +1 -1
  90. package/dist/components/CarouselBase/helpers.js +70 -44
  91. package/dist/components/CarouselBase/helpers.js.map +1 -1
  92. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts.map +1 -1
  93. package/dist/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  94. package/dist/components/CellButton/CellButton.d.ts.map +1 -1
  95. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +300 -0
  96. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts.map +1 -0
  97. package/dist/components/CellButtonGroup/CellButtonGroup.js +20 -0
  98. package/dist/components/CellButtonGroup/CellButtonGroup.js.map +1 -0
  99. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.d.ts +8 -0
  100. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.d.ts.map +1 -0
  101. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js +20 -0
  102. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js.map +1 -0
  103. package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  104. package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  105. package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
  106. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts.map +1 -1
  107. package/dist/components/ChipsInputBase/ChipsInputBase.js +1 -0
  108. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  109. package/dist/components/ChipsInputBase/helpers.d.ts +1 -1
  110. package/dist/components/ChipsInputBase/helpers.d.ts.map +1 -1
  111. package/dist/components/ChipsInputBase/helpers.js +4 -0
  112. package/dist/components/ChipsInputBase/helpers.js.map +1 -1
  113. package/dist/components/ChipsInputBase/types.d.ts +1 -1
  114. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  115. package/dist/components/ChipsInputBase/types.js.map +1 -1
  116. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  117. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  118. package/dist/components/ChipsSelect/ChipsSelect.js +9 -2
  119. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  120. package/dist/components/ChipsSelect/constants.d.ts.map +1 -1
  121. package/dist/components/ChipsSelect/useChipsSelect.d.ts +3 -2
  122. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  123. package/dist/components/ChipsSelect/useChipsSelect.js +9 -3
  124. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  125. package/dist/components/Clickable/Clickable.d.ts +1 -1
  126. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  127. package/dist/components/Clickable/Clickable.js +28 -28
  128. package/dist/components/Clickable/Clickable.js.map +1 -1
  129. package/dist/components/Clickable/RealClickable.d.ts.map +1 -1
  130. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.d.ts.map +1 -1
  131. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
  132. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  133. package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
  134. package/dist/components/ConfigProvider/ConfigProvider.js +5 -2
  135. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  136. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +11 -1
  137. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts.map +1 -1
  138. package/dist/components/ConfigProvider/ConfigProviderContext.js +12 -7
  139. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  140. package/dist/components/ContentCard/ContentCard.d.ts +6 -1
  141. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
  142. package/dist/components/ContentCard/ContentCard.js +6 -4
  143. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  144. package/dist/components/Counter/Counter.d.ts.map +1 -1
  145. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  146. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  147. package/dist/components/CustomSelect/CustomSelect.js +108 -71
  148. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  149. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  150. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
  151. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  152. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +3 -1
  153. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  154. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts.map +1 -1
  155. package/dist/components/DateInput/DateInput.d.ts +19 -2
  156. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  157. package/dist/components/DateInput/DateInput.js +118 -82
  158. package/dist/components/DateInput/DateInput.js.map +1 -1
  159. package/dist/components/DateInput/hooks.d.ts +16 -0
  160. package/dist/components/DateInput/hooks.d.ts.map +1 -0
  161. package/dist/components/DateInput/hooks.js +61 -0
  162. package/dist/components/DateInput/hooks.js.map +1 -0
  163. package/dist/components/DateRangeInput/DateRangeInput.d.ts +10 -2
  164. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  165. package/dist/components/DateRangeInput/DateRangeInput.js +110 -82
  166. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  167. package/dist/components/DirectionProvider/DirectionProvider.d.ts +13 -0
  168. package/dist/components/DirectionProvider/DirectionProvider.d.ts.map +1 -0
  169. package/dist/components/DirectionProvider/DirectionProvider.js +15 -0
  170. package/dist/components/DirectionProvider/DirectionProvider.js.map +1 -0
  171. package/dist/components/Div/Div.d.ts.map +1 -1
  172. package/dist/components/DropdownIcon/DropdownIcon.d.ts.map +1 -1
  173. package/dist/components/Epic/Epic.d.ts.map +1 -1
  174. package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
  175. package/dist/components/File/File.d.ts.map +1 -1
  176. package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  177. package/dist/components/Flex/Flex.d.ts.map +1 -1
  178. package/dist/components/Flex/Flex.js +3 -5
  179. package/dist/components/Flex/Flex.js.map +1 -1
  180. package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  181. package/dist/components/FloatingArrow/DefaultIcon.d.ts.map +1 -1
  182. package/dist/components/FloatingArrow/FloatingArrow.d.ts.map +1 -1
  183. package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  184. package/dist/components/Footer/Footer.d.ts.map +1 -1
  185. package/dist/components/FormField/FormField.d.ts.map +1 -1
  186. package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts.map +1 -1
  187. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
  188. package/dist/components/FormStatus/FormStatus.d.ts.map +1 -1
  189. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  190. package/dist/components/Gradient/Gradient.d.ts.map +1 -1
  191. package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.d.ts.map +1 -1
  192. package/dist/components/Header/Header.d.ts.map +1 -1
  193. package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
  194. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
  195. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +13 -1
  196. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  197. package/dist/components/HorizontalScroll/HorizontalScroll.js +32 -24
  198. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  199. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  200. package/dist/components/ImageBase/ImageBase.d.ts +5 -0
  201. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  202. package/dist/components/ImageBase/ImageBase.js +6 -4
  203. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  204. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts.map +1 -1
  205. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.d.ts.map +1 -1
  206. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +3 -4
  207. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  208. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts +1 -0
  209. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts.map +1 -1
  210. package/dist/components/ImageBase/ImageBaseOverlay/hooks.js +25 -0
  211. package/dist/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  212. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts +4 -0
  213. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts.map +1 -1
  214. package/dist/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  215. package/dist/components/InfoRow/InfoRow.d.ts.map +1 -1
  216. package/dist/components/Input/Input.d.ts.map +1 -1
  217. package/dist/components/InputLike/InputLikeDivider.d.ts.map +1 -1
  218. package/dist/components/Link/Link.d.ts.map +1 -1
  219. package/dist/components/List/List.d.ts.map +1 -1
  220. package/dist/components/Mark/Mark.d.ts.map +1 -1
  221. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
  222. package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
  223. package/dist/components/ModalCard/ModalCard.js +6 -13
  224. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  225. package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
  226. package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
  227. package/dist/components/ModalCard/ModalCardInternal.js +4 -2
  228. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
  229. package/dist/components/ModalCard/types.d.ts +1 -1
  230. package/dist/components/ModalCard/types.d.ts.map +1 -1
  231. package/dist/components/ModalCard/types.js.map +1 -1
  232. package/dist/components/ModalCardBase/ModalCardBase.d.ts +9 -1
  233. package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
  234. package/dist/components/ModalCardBase/ModalCardBase.js +33 -8
  235. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  236. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +5 -3
  237. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
  238. package/dist/components/ModalDismissButton/ModalDismissButton.js +7 -7
  239. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  240. package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
  241. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +17 -0
  242. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts.map +1 -0
  243. package/dist/components/ModalOutsideButton/ModalOutsideButton.js +30 -0
  244. package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -0
  245. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.d.ts +6 -0
  246. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.d.ts.map +1 -0
  247. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.js +22 -0
  248. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.js.map +1 -0
  249. package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -1
  250. package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
  251. package/dist/components/ModalPage/ModalPage.js +5 -12
  252. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  253. package/dist/components/ModalPage/ModalPageBase.d.ts +8 -0
  254. package/dist/components/ModalPage/ModalPageBase.d.ts.map +1 -0
  255. package/dist/components/ModalPage/ModalPageBase.js +66 -0
  256. package/dist/components/ModalPage/ModalPageBase.js.map +1 -0
  257. package/dist/components/ModalPage/ModalPageInternal.d.ts +1 -1
  258. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
  259. package/dist/components/ModalPage/ModalPageInternal.js +24 -32
  260. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
  261. package/dist/components/ModalPage/types.d.ts +12 -1
  262. package/dist/components/ModalPage/types.d.ts.map +1 -1
  263. package/dist/components/ModalPage/types.js.map +1 -1
  264. package/dist/components/ModalPageContent/ModalPageContent.d.ts.map +1 -1
  265. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -1
  266. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  267. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  268. package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.d.ts.map +1 -1
  269. package/dist/components/ModalRoot/types.d.ts +1 -0
  270. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  271. package/dist/components/ModalRoot/types.js.map +1 -1
  272. package/dist/components/ModalRoot/useModalManager.d.ts +4 -2
  273. package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
  274. package/dist/components/ModalRoot/useModalManager.js +12 -3
  275. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  276. package/dist/components/ModalRoot/useModalRootContext.js +1 -0
  277. package/dist/components/ModalRoot/useModalRootContext.js.map +1 -1
  278. package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
  279. package/dist/components/NavTransitionContext/NavTransitionContext.d.ts.map +1 -1
  280. package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts.map +1 -1
  281. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +2 -2
  282. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  283. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +22 -8
  284. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  285. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  286. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js +12 -3
  287. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  288. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.d.ts +7 -0
  289. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.d.ts.map +1 -0
  290. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.js +9 -0
  291. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.js.map +1 -0
  292. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  293. package/dist/components/Pagination/Pagination.js +5 -2
  294. package/dist/components/Pagination/Pagination.js.map +1 -1
  295. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
  296. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts.map +1 -1
  297. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts.map +1 -1
  298. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts.map +1 -1
  299. package/dist/components/Panel/Panel.d.ts.map +1 -1
  300. package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
  301. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
  302. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +3 -1
  303. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  304. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  305. package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts.map +1 -1
  306. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts.map +1 -1
  307. package/dist/components/PanelHeaderContext/PanelHeaderContext.d.ts.map +1 -1
  308. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
  309. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts.map +1 -1
  310. package/dist/components/Placeholder/Placeholder.d.ts.map +1 -1
  311. package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
  312. package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
  313. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +15 -2
  314. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
  315. package/dist/components/PopoutWrapper/PopoutWrapper.js +10 -2
  316. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  317. package/dist/components/Popover/Popover.d.ts +1 -1
  318. package/dist/components/Popover/Popover.d.ts.map +1 -1
  319. package/dist/components/Popover/Popover.js +4 -4
  320. package/dist/components/Popover/Popover.js.map +1 -1
  321. package/dist/components/Popover/usePopover.d.ts +1 -1
  322. package/dist/components/Popover/usePopover.d.ts.map +1 -1
  323. package/dist/components/Popover/usePopover.js +69 -44
  324. package/dist/components/Popover/usePopover.js.map +1 -1
  325. package/dist/components/Popper/Popper.d.ts +2 -2
  326. package/dist/components/Popper/Popper.d.ts.map +1 -1
  327. package/dist/components/Popper/Popper.js +18 -5
  328. package/dist/components/Popper/Popper.js.map +1 -1
  329. package/dist/components/Progress/Progress.d.ts +7 -3
  330. package/dist/components/Progress/Progress.d.ts.map +1 -1
  331. package/dist/components/Progress/Progress.js +30 -11
  332. package/dist/components/Progress/Progress.js.map +1 -1
  333. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  334. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts.map +1 -1
  335. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  336. package/dist/components/Removable/Removable.d.ts.map +1 -1
  337. package/dist/components/Removable/Removable.js +8 -4
  338. package/dist/components/Removable/Removable.js.map +1 -1
  339. package/dist/components/RichCell/RichCellIcon/RichCellIcon.d.ts.map +1 -1
  340. package/dist/components/Root/Root.d.ts.map +1 -1
  341. package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
  342. package/dist/components/ScreenSpinner/Icon48CancelCircle.d.ts.map +1 -1
  343. package/dist/components/ScreenSpinner/Icon48DoneOutline.d.ts.map +1 -1
  344. package/dist/components/ScreenSpinner/ScreenSpinner.js +1 -0
  345. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  346. package/dist/components/ScrollArrow/ScrollArrow.d.ts.map +1 -1
  347. package/dist/components/ScrollArrow/ScrollArrow.js +4 -1
  348. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  349. package/dist/components/Search/Search.d.ts +9 -1
  350. package/dist/components/Search/Search.d.ts.map +1 -1
  351. package/dist/components/Search/Search.js +9 -2
  352. package/dist/components/Search/Search.js.map +1 -1
  353. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  354. package/dist/components/SegmentedControl/SegmentedControl.js +10 -7
  355. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  356. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  357. package/dist/components/Select/Select.d.ts.map +1 -1
  358. package/dist/components/SelectMimicry/SelectMimicry.d.ts.map +1 -1
  359. package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  360. package/dist/components/Separator/Separator.d.ts.map +1 -1
  361. package/dist/components/SimpleCell/Chevron/Chevron.d.ts.map +1 -1
  362. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  363. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  364. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  365. package/dist/components/Slider/Slider.d.ts +1 -1
  366. package/dist/components/Slider/Slider.d.ts.map +1 -1
  367. package/dist/components/Slider/Slider.js +22 -18
  368. package/dist/components/Slider/Slider.js.map +1 -1
  369. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts.map +1 -1
  370. package/dist/components/Slider/SliderThumb/SliderThumb.js +5 -1
  371. package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  372. package/dist/components/Slider/helpers.d.ts.map +1 -1
  373. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
  374. package/dist/components/Snackbar/Snackbar.js +6 -3
  375. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  376. package/dist/components/Snackbar/utils.d.ts +3 -2
  377. package/dist/components/Snackbar/utils.d.ts.map +1 -1
  378. package/dist/components/Snackbar/utils.js +11 -8
  379. package/dist/components/Snackbar/utils.js.map +1 -1
  380. package/dist/components/Spacing/Spacing.d.ts.map +1 -1
  381. package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
  382. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  383. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts.map +1 -1
  384. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
  385. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
  386. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  387. package/dist/components/Switch/Switch.d.ts.map +1 -1
  388. package/dist/components/Switch/Switch.js +4 -1
  389. package/dist/components/Switch/Switch.js.map +1 -1
  390. package/dist/components/Tabbar/Tabbar.d.ts.map +1 -1
  391. package/dist/components/TabbarItem/TabbarItem.d.ts.map +1 -1
  392. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  393. package/dist/components/Tabs/Tabs.js +3 -1
  394. package/dist/components/Tabs/Tabs.js.map +1 -1
  395. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  396. package/dist/components/Tappable/Ripple.d.ts.map +1 -1
  397. package/dist/components/Tappable/Tappable.d.ts.map +1 -1
  398. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  399. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  400. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  401. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  402. package/dist/components/Tooltip/Tooltip.js +8 -101
  403. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  404. package/dist/components/Tooltip/useTooltip.d.ts +14 -0
  405. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -0
  406. package/dist/components/Tooltip/useTooltip.js +126 -0
  407. package/dist/components/Tooltip/useTooltip.js.map +1 -0
  408. package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
  409. package/dist/components/Touch/Touch.d.ts.map +1 -1
  410. package/dist/components/Touch/Touch.js +2 -2
  411. package/dist/components/Touch/Touch.js.map +1 -1
  412. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  413. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  414. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts.map +1 -1
  415. package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  416. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  417. package/dist/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  418. package/dist/components/Typography/Subhead/Subhead.d.ts.map +1 -1
  419. package/dist/components/Typography/Text/Text.d.ts.map +1 -1
  420. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  421. package/dist/components/Typography/Typography.d.ts.map +1 -1
  422. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
  423. package/dist/components/UsersStack/UsersStack.d.ts +1 -1
  424. package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
  425. package/dist/components/UsersStack/UsersStack.js +5 -9
  426. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  427. package/dist/components/View/View.d.ts.map +1 -1
  428. package/dist/components/View/utils.d.ts.map +1 -1
  429. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  430. package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
  431. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
  432. package/dist/components.css +1 -1
  433. package/dist/components.css.map +1 -1
  434. package/dist/context/CalendarDirectionContext.d.ts +1 -1
  435. package/dist/context/CalendarDirectionContext.d.ts.map +1 -1
  436. package/dist/context/CalendarDirectionContext.js.map +1 -1
  437. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  438. package/dist/cssm/components/Accordion/Accordion.module.css +6 -6
  439. package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -1
  440. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  441. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +9 -9
  442. package/dist/cssm/components/ActionSheet/ActionSheetDropdownMenu.js +7 -3
  443. package/dist/cssm/components/ActionSheet/ActionSheetDropdownMenu.js.map +1 -1
  444. package/dist/cssm/components/ActionSheet/ActionSheetDropdownSheet.js +7 -3
  445. package/dist/cssm/components/ActionSheet/ActionSheetDropdownSheet.js.map +1 -1
  446. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  447. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +18 -18
  448. package/dist/cssm/components/Alert/Alert.js +12 -92
  449. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  450. package/dist/cssm/components/Alert/Alert.module.css +27 -29
  451. package/dist/cssm/components/Alert/AlertBase.js +111 -0
  452. package/dist/cssm/components/Alert/AlertBase.js.map +1 -0
  453. package/dist/cssm/components/Alert/AlertTypography.js.map +1 -1
  454. package/dist/cssm/components/AppRoot/AppRoot.module.css +2 -2
  455. package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js +1 -1
  456. package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -1
  457. package/dist/cssm/components/AppRoot/ScrollContext.js +129 -37
  458. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  459. package/dist/cssm/components/AspectRatio/AspectRatio.module.css +2 -2
  460. package/dist/cssm/components/Avatar/Avatar.module.css +1 -1
  461. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +8 -3
  462. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +4 -1
  463. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  464. package/dist/cssm/components/Banner/Banner.module.css +19 -19
  465. package/dist/cssm/components/Button/Button.module.css +11 -11
  466. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -0
  467. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  468. package/dist/cssm/components/Calendar/Calendar.js +96 -92
  469. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  470. package/dist/cssm/components/Calendar/Calendar.module.css +8 -8
  471. package/dist/cssm/components/CalendarDay/CalendarDay.js +1 -3
  472. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  473. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +11 -11
  474. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  475. package/dist/cssm/components/CalendarDays/CalendarDays.module.css +7 -7
  476. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +1 -3
  477. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  478. package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +4 -4
  479. package/dist/cssm/components/CalendarRange/CalendarRange.js +106 -110
  480. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  481. package/dist/cssm/components/CalendarRange/CalendarRange.module.css +5 -5
  482. package/dist/cssm/components/CalendarTime/CalendarTime.js +16 -13
  483. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  484. package/dist/cssm/components/CalendarTime/CalendarTime.module.css +1 -1
  485. package/dist/cssm/components/Card/Card.module.css +7 -7
  486. package/dist/cssm/components/CardGrid/CardGrid.module.css +3 -3
  487. package/dist/cssm/components/CardScroll/CardScroll.js +30 -28
  488. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  489. package/dist/cssm/components/CardScroll/CardScroll.module.css +16 -16
  490. package/dist/cssm/components/CarouselBase/CarouselBase.js +71 -44
  491. package/dist/cssm/components/CarouselBase/CarouselBase.js.map +1 -1
  492. package/dist/cssm/components/CarouselBase/CarouselBase.module.css +11 -11
  493. package/dist/cssm/components/CarouselBase/helpers.js +70 -44
  494. package/dist/cssm/components/CarouselBase/helpers.js.map +1 -1
  495. package/dist/cssm/components/Cell/Cell.module.css +18 -2
  496. package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +2 -2
  497. package/dist/cssm/components/CellButton/CellButton.module.css +8 -8
  498. package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js +20 -0
  499. package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js.map +1 -0
  500. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js +15 -0
  501. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js.map +1 -0
  502. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.module.css +5 -0
  503. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +2 -2
  504. package/dist/cssm/components/ChipsInputBase/Chip/Chip.module.css +16 -16
  505. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +1 -0
  506. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  507. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +12 -12
  508. package/dist/cssm/components/ChipsInputBase/helpers.js +4 -0
  509. package/dist/cssm/components/ChipsInputBase/helpers.js.map +1 -1
  510. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  511. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +8 -2
  512. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  513. package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +1 -1
  514. package/dist/cssm/components/ChipsSelect/useChipsSelect.js +9 -3
  515. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  516. package/dist/cssm/components/Clickable/Clickable.js +29 -22
  517. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  518. package/dist/cssm/components/Clickable/Clickable.module.css +1 -1
  519. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
  520. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  521. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +5 -2
  522. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  523. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +12 -7
  524. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  525. package/dist/cssm/components/ContentBadge/ContentBadge.module.css +7 -7
  526. package/dist/cssm/components/ContentCard/ContentCard.js +5 -4
  527. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  528. package/dist/cssm/components/ContentCard/ContentCard.module.css +6 -6
  529. package/dist/cssm/components/Counter/Counter.module.css +4 -4
  530. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +2 -2
  531. package/dist/cssm/components/CustomSelect/CustomSelect.js +108 -70
  532. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  533. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +2 -2
  534. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +13 -13
  535. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -0
  536. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  537. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +2 -2
  538. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +9 -9
  539. package/dist/cssm/components/DateInput/DateInput.js +112 -81
  540. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  541. package/dist/cssm/components/DateInput/DateInput.module.css +40 -6
  542. package/dist/cssm/components/DateInput/hooks.js +61 -0
  543. package/dist/cssm/components/DateInput/hooks.js.map +1 -0
  544. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +107 -82
  545. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  546. package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +3 -3
  547. package/dist/cssm/components/DirectionProvider/DirectionProvider.js +15 -0
  548. package/dist/cssm/components/DirectionProvider/DirectionProvider.js.map +1 -0
  549. package/dist/cssm/components/DropZone/DropZone.module.css +2 -2
  550. package/dist/cssm/components/FixedLayout/FixedLayout.module.css +3 -3
  551. package/dist/cssm/components/Flex/Flex.js +3 -5
  552. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  553. package/dist/cssm/components/Flex/Flex.module.css +40 -23
  554. package/dist/cssm/components/FloatingArrow/FloatingArrow.module.css +1 -1
  555. package/dist/cssm/components/Footer/Footer.module.css +1 -1
  556. package/dist/cssm/components/FormField/FormField.module.css +24 -24
  557. package/dist/cssm/components/FormItem/FormItem.module.css +11 -10
  558. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +5 -5
  559. package/dist/cssm/components/GridAvatar/GridAvatar.module.css +2 -2
  560. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +2 -2
  561. package/dist/cssm/components/Group/Group.module.css +16 -16
  562. package/dist/cssm/components/Header/Header.module.css +6 -6
  563. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +3 -3
  564. package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.module.css +2 -2
  565. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +28 -23
  566. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  567. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
  568. package/dist/cssm/components/IconButton/IconButton.module.css +11 -11
  569. package/dist/cssm/components/ImageBase/ImageBase.js +5 -4
  570. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  571. package/dist/cssm/components/ImageBase/ImageBase.module.css +15 -6
  572. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +5 -5
  573. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +8 -8
  574. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +3 -4
  575. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  576. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +2 -2
  577. package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js +25 -0
  578. package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  579. package/dist/cssm/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  580. package/dist/cssm/components/InfoRow/InfoRow.module.css +3 -3
  581. package/dist/cssm/components/Input/Input.module.css +5 -5
  582. package/dist/cssm/components/InputLike/InputLike.module.css +3 -3
  583. package/dist/cssm/components/Link/Link.module.css +6 -6
  584. package/dist/cssm/components/Mark/Mark.module.css +2 -2
  585. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +5 -5
  586. package/dist/cssm/components/ModalCard/ModalCard.js +3 -11
  587. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  588. package/dist/cssm/components/ModalCard/ModalCard.module.css +4 -4
  589. package/dist/cssm/components/ModalCard/ModalCardInternal.js +3 -2
  590. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  591. package/dist/cssm/components/ModalCard/types.js.map +1 -1
  592. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +30 -7
  593. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  594. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +7 -7
  595. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +5 -6
  596. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  597. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +0 -29
  598. package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +1 -1
  599. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js +24 -0
  600. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -0
  601. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.module.css +31 -0
  602. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.js +16 -0
  603. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.js.map +1 -0
  604. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.module.css +6 -0
  605. package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +2 -2
  606. package/dist/cssm/components/ModalPage/ModalPage.js +3 -11
  607. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  608. package/dist/cssm/components/ModalPage/ModalPage.module.css +15 -16
  609. package/dist/cssm/components/ModalPage/ModalPageBase.js +49 -0
  610. package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -0
  611. package/dist/cssm/components/ModalPage/ModalPageInternal.js +21 -32
  612. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  613. package/dist/cssm/components/ModalPage/types.js.map +1 -1
  614. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.module.css +4 -4
  615. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +2 -3
  616. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  617. package/dist/cssm/components/ModalRoot/useModalManager.js +12 -3
  618. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  619. package/dist/cssm/components/ModalRoot/useModalRootContext.js +1 -0
  620. package/dist/cssm/components/ModalRoot/useModalRootContext.js.map +1 -1
  621. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +20 -7
  622. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  623. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.module.css +1 -1
  624. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js +13 -4
  625. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  626. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContext.js +9 -0
  627. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContext.js.map +1 -0
  628. package/dist/cssm/components/Pagination/Pagination.js +5 -2
  629. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  630. package/dist/cssm/components/Pagination/Pagination.module.css +1 -1
  631. package/dist/cssm/components/Pagination/PaginationPage/PaginationPage.module.css +9 -9
  632. package/dist/cssm/components/Panel/Panel.module.css +3 -3
  633. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +30 -30
  634. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +3 -1
  635. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  636. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +16 -8
  637. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +10 -10
  638. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +7 -7
  639. package/dist/cssm/components/Placeholder/Placeholder.module.css +3 -3
  640. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  641. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  642. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +9 -2
  643. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  644. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +14 -9
  645. package/dist/cssm/components/Popover/Popover.js +4 -4
  646. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  647. package/dist/cssm/components/Popover/Popover.module.css +1 -1
  648. package/dist/cssm/components/Popover/usePopover.js +62 -44
  649. package/dist/cssm/components/Popover/usePopover.js.map +1 -1
  650. package/dist/cssm/components/Popper/Popper.js +15 -5
  651. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  652. package/dist/cssm/components/Progress/Progress.js +29 -9
  653. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  654. package/dist/cssm/components/Progress/Progress.module.css +20 -9
  655. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +14 -14
  656. package/dist/cssm/components/Radio/Radio.module.css +1 -1
  657. package/dist/cssm/components/Radio/RadioInput/RadioInput.module.css +1 -1
  658. package/dist/cssm/components/RadioGroup/RadioGroup.module.css +1 -1
  659. package/dist/cssm/components/Removable/Removable.js +8 -4
  660. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  661. package/dist/cssm/components/Removable/Removable.module.css +19 -6
  662. package/dist/cssm/components/RichCell/RichCell.module.css +10 -10
  663. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.module.css +4 -4
  664. package/dist/cssm/components/Root/Root.module.css +10 -10
  665. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -0
  666. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  667. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +12 -12
  668. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +4 -1
  669. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  670. package/dist/cssm/components/ScrollArrow/ScrollArrow.module.css +15 -14
  671. package/dist/cssm/components/Search/Search.js +7 -2
  672. package/dist/cssm/components/Search/Search.js.map +1 -1
  673. package/dist/cssm/components/Search/Search.module.css +44 -32
  674. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +10 -7
  675. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  676. package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +16 -7
  677. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +14 -14
  678. package/dist/cssm/components/Select/Select.module.css +15 -15
  679. package/dist/cssm/components/SelectionControl/SelectionControl.module.css +2 -2
  680. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +5 -5
  681. package/dist/cssm/components/Separator/Separator.module.css +3 -3
  682. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +18 -16
  683. package/dist/cssm/components/SimpleGrid/SimpleGrid.module.css +2 -2
  684. package/dist/cssm/components/Skeleton/Skeleton.module.css +8 -8
  685. package/dist/cssm/components/Slider/Slider.js +20 -17
  686. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  687. package/dist/cssm/components/Slider/Slider.module.css +25 -4
  688. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +5 -1
  689. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  690. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.module.css +8 -8
  691. package/dist/cssm/components/Snackbar/Snackbar.js +6 -3
  692. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  693. package/dist/cssm/components/Snackbar/Snackbar.module.css +23 -6
  694. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +9 -8
  695. package/dist/cssm/components/Snackbar/utils.js +11 -8
  696. package/dist/cssm/components/Snackbar/utils.js.map +1 -1
  697. package/dist/cssm/components/Spacing/Spacing.module.css +1 -1
  698. package/dist/cssm/components/Spinner/Spinner.module.css +2 -2
  699. package/dist/cssm/components/SplitCol/SplitCol.module.css +9 -9
  700. package/dist/cssm/components/SplitLayout/SplitLayout.module.css +2 -2
  701. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +4 -4
  702. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -1
  703. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  704. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +10 -6
  705. package/dist/cssm/components/Switch/Switch.js +4 -1
  706. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  707. package/dist/cssm/components/Switch/Switch.module.css +25 -17
  708. package/dist/cssm/components/Tabbar/Tabbar.module.css +5 -5
  709. package/dist/cssm/components/TabbarItem/TabbarItem.module.css +16 -16
  710. package/dist/cssm/components/Tabs/Tabs.js +3 -1
  711. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  712. package/dist/cssm/components/Tabs/Tabs.module.css +1 -1
  713. package/dist/cssm/components/TabsItem/TabsItem.module.css +21 -20
  714. package/dist/cssm/components/Tappable/Tappable.module.css +7 -7
  715. package/dist/cssm/components/Textarea/Textarea.module.css +7 -3
  716. package/dist/cssm/components/ToolButton/ToolButton.module.css +7 -7
  717. package/dist/cssm/components/Tooltip/Tooltip.js +7 -80
  718. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  719. package/dist/cssm/components/Tooltip/useTooltip.js +97 -0
  720. package/dist/cssm/components/Tooltip/useTooltip.js.map +1 -0
  721. package/dist/cssm/components/TooltipBase/TooltipBase.module.css +9 -9
  722. package/dist/cssm/components/Touch/Touch.js +2 -2
  723. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  724. package/dist/cssm/components/Typography/Caption/Caption.module.css +96 -96
  725. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.module.css +64 -64
  726. package/dist/cssm/components/Typography/EllipsisText/EllipsisText.module.css +3 -3
  727. package/dist/cssm/components/Typography/Footnote/Footnote.module.css +32 -32
  728. package/dist/cssm/components/Typography/Headline/Headline.module.css +20 -20
  729. package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +16 -16
  730. package/dist/cssm/components/Typography/Subhead/Subhead.module.css +16 -16
  731. package/dist/cssm/components/Typography/Text/Text.module.css +16 -16
  732. package/dist/cssm/components/Typography/Title/Title.module.css +48 -48
  733. package/dist/cssm/components/Typography/Typography.module.css +1 -1
  734. package/dist/cssm/components/UnstyledTextField/UnstyledTextField.module.css +5 -5
  735. package/dist/cssm/components/UsersStack/UsersStack.js +4 -7
  736. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  737. package/dist/cssm/components/UsersStack/UsersStack.module.css +4 -4
  738. package/dist/cssm/components/View/View.module.css +8 -8
  739. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +10 -10
  740. package/dist/cssm/components/WriteBar/WriteBar.module.css +10 -11
  741. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +9 -9
  742. package/dist/cssm/context/CalendarDirectionContext.js.map +1 -1
  743. package/dist/cssm/helpers/getValueByKey.js +17 -0
  744. package/dist/cssm/helpers/getValueByKey.js.map +1 -0
  745. package/dist/cssm/hooks/useAutoDetectDirection.js +21 -0
  746. package/dist/cssm/hooks/useAutoDetectDirection.js.map +1 -0
  747. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  748. package/dist/cssm/hooks/useConfigDirection.js +7 -0
  749. package/dist/cssm/hooks/useConfigDirection.js.map +1 -0
  750. package/dist/cssm/hooks/useDateInput.js +3 -3
  751. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  752. package/dist/cssm/hooks/useFloatingElement.js +70 -0
  753. package/dist/cssm/hooks/useFloatingElement.js.map +1 -0
  754. package/dist/cssm/hooks/useFocusVisible.js +10 -1
  755. package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
  756. package/dist/cssm/hooks/useReferenceElement.js +13 -0
  757. package/dist/cssm/hooks/useReferenceElement.js.map +1 -0
  758. package/dist/cssm/hooks/useTabsNavigation.js +3 -3
  759. package/dist/cssm/hooks/useTabsNavigation.js.map +1 -1
  760. package/dist/cssm/hooks/useTodayDate.js +4 -4
  761. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  762. package/dist/cssm/index.js +6 -1
  763. package/dist/cssm/index.js.map +1 -1
  764. package/dist/cssm/lib/SSR.js +2 -1
  765. package/dist/cssm/lib/SSR.js.map +1 -1
  766. package/dist/cssm/lib/date.js +21 -0
  767. package/dist/cssm/lib/date.js.map +1 -1
  768. package/dist/cssm/lib/direction/index.js +3 -0
  769. package/dist/cssm/lib/direction/index.js.map +1 -0
  770. package/dist/cssm/lib/dom.js +6 -0
  771. package/dist/cssm/lib/dom.js.map +1 -1
  772. package/dist/cssm/lib/floating/adapters.js.map +1 -1
  773. package/dist/cssm/lib/floating/customResizeObserver.js +2 -5
  774. package/dist/cssm/lib/floating/customResizeObserver.js.map +1 -1
  775. package/dist/cssm/lib/floating/functions.js +1 -1
  776. package/dist/cssm/lib/floating/functions.js.map +1 -1
  777. package/dist/cssm/lib/floating/types/component.js.map +1 -1
  778. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -2
  779. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  780. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -1
  781. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  782. package/dist/cssm/lib/floating/useReferenceHiddenChangeCallback.js +21 -0
  783. package/dist/cssm/lib/floating/useReferenceHiddenChangeCallback.js.map +1 -0
  784. package/dist/cssm/lib/object.js +9 -0
  785. package/dist/cssm/lib/object.js.map +1 -0
  786. package/dist/cssm/lib/select.js.map +1 -1
  787. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js +13 -23
  788. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js.map +1 -1
  789. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js +4 -5
  790. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
  791. package/dist/cssm/lib/tokens/TokensClassProvider.module.css +1 -1
  792. package/dist/cssm/styles/common.css +2 -2
  793. package/dist/cssm/styles/constants.css +2 -2
  794. package/dist/cssm/styles/themes.css +22 -5
  795. package/dist/helpers/getMergedSameEventsByProps.d.ts.map +1 -1
  796. package/dist/helpers/getValueByKey.d.ts +5 -0
  797. package/dist/helpers/getValueByKey.d.ts.map +1 -0
  798. package/dist/helpers/getValueByKey.js +17 -0
  799. package/dist/helpers/getValueByKey.js.map +1 -0
  800. package/dist/helpers/math.d.ts.map +1 -1
  801. package/dist/hooks/useAdaptivityConditionalRender/helpers.d.ts.map +1 -1
  802. package/dist/hooks/useAutoDetectColorScheme.d.ts.map +1 -1
  803. package/dist/hooks/useAutoDetectDirection.d.ts +3 -0
  804. package/dist/hooks/useAutoDetectDirection.d.ts.map +1 -0
  805. package/dist/hooks/useAutoDetectDirection.js +21 -0
  806. package/dist/hooks/useAutoDetectDirection.js.map +1 -0
  807. package/dist/hooks/useBooleanState.d.ts.map +1 -1
  808. package/dist/hooks/useCalendar.d.ts +1 -1
  809. package/dist/hooks/useCalendar.d.ts.map +1 -1
  810. package/dist/hooks/useCalendar.js.map +1 -1
  811. package/dist/hooks/useConfigDirection.d.ts +3 -0
  812. package/dist/hooks/useConfigDirection.d.ts.map +1 -0
  813. package/dist/hooks/useConfigDirection.js +7 -0
  814. package/dist/hooks/useConfigDirection.js.map +1 -0
  815. package/dist/hooks/useDateInput.d.ts +4 -4
  816. package/dist/hooks/useDateInput.d.ts.map +1 -1
  817. package/dist/hooks/useDateInput.js +3 -3
  818. package/dist/hooks/useDateInput.js.map +1 -1
  819. package/dist/hooks/useDraggableWithDomApi/autoScroll.d.ts.map +1 -1
  820. package/dist/hooks/useDraggableWithDomApi/useDraggableWithDomApi.d.ts.map +1 -1
  821. package/dist/hooks/useDraggableWithDomApi/utils.d.ts.map +1 -1
  822. package/dist/hooks/useFloatingElement.d.ts +26 -0
  823. package/dist/hooks/useFloatingElement.d.ts.map +1 -0
  824. package/dist/hooks/useFloatingElement.js +71 -0
  825. package/dist/hooks/useFloatingElement.js.map +1 -0
  826. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  827. package/dist/hooks/useFocusVisible.d.ts +9 -1
  828. package/dist/hooks/useFocusVisible.d.ts.map +1 -1
  829. package/dist/hooks/useFocusVisible.js +10 -1
  830. package/dist/hooks/useFocusVisible.js.map +1 -1
  831. package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
  832. package/dist/hooks/useGlobalOnClickOutside.d.ts.map +1 -1
  833. package/dist/hooks/useMutationObserver.d.ts.map +1 -1
  834. package/dist/hooks/useNativeFormResetListener.d.ts.map +1 -1
  835. package/dist/hooks/usePagination.d.ts.map +1 -1
  836. package/dist/hooks/usePatchChildren.d.ts.map +1 -1
  837. package/dist/hooks/useReferenceElement.d.ts +3 -0
  838. package/dist/hooks/useReferenceElement.d.ts.map +1 -0
  839. package/dist/hooks/useReferenceElement.js +13 -0
  840. package/dist/hooks/useReferenceElement.js.map +1 -0
  841. package/dist/hooks/useTabsNavigation.d.ts +1 -1
  842. package/dist/hooks/useTabsNavigation.d.ts.map +1 -1
  843. package/dist/hooks/useTabsNavigation.js +3 -3
  844. package/dist/hooks/useTabsNavigation.js.map +1 -1
  845. package/dist/hooks/useTodayDate.d.ts.map +1 -1
  846. package/dist/hooks/useTodayDate.js +4 -4
  847. package/dist/hooks/useTodayDate.js.map +1 -1
  848. package/dist/index.d.ts +9 -2
  849. package/dist/index.d.ts.map +1 -1
  850. package/dist/index.js +6 -1
  851. package/dist/index.js.map +1 -1
  852. package/dist/lib/SSR.d.ts +2 -0
  853. package/dist/lib/SSR.d.ts.map +1 -1
  854. package/dist/lib/SSR.js +2 -1
  855. package/dist/lib/SSR.js.map +1 -1
  856. package/dist/lib/accessibility.d.ts.map +1 -1
  857. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
  858. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  859. package/dist/lib/calendar.d.ts.map +1 -1
  860. package/dist/lib/callMultiple.d.ts.map +1 -1
  861. package/dist/lib/children.d.ts.map +1 -1
  862. package/dist/lib/createPortal.d.ts.map +1 -1
  863. package/dist/lib/date.d.ts +2 -0
  864. package/dist/lib/date.d.ts.map +1 -1
  865. package/dist/lib/date.js +21 -0
  866. package/dist/lib/date.js.map +1 -1
  867. package/dist/lib/direction/index.d.ts +2 -0
  868. package/dist/lib/direction/index.d.ts.map +1 -0
  869. package/dist/lib/direction/index.js +3 -0
  870. package/dist/lib/direction/index.js.map +1 -0
  871. package/dist/lib/dom.d.ts +1 -0
  872. package/dist/lib/dom.d.ts.map +1 -1
  873. package/dist/lib/dom.js +6 -0
  874. package/dist/lib/dom.js.map +1 -1
  875. package/dist/lib/floating/adapters.d.ts +1 -0
  876. package/dist/lib/floating/adapters.d.ts.map +1 -1
  877. package/dist/lib/floating/adapters.js.map +1 -1
  878. package/dist/lib/floating/customResizeObserver.d.ts +1 -1
  879. package/dist/lib/floating/customResizeObserver.d.ts.map +1 -1
  880. package/dist/lib/floating/customResizeObserver.js +2 -5
  881. package/dist/lib/floating/customResizeObserver.js.map +1 -1
  882. package/dist/lib/floating/functions.d.ts +8 -1
  883. package/dist/lib/floating/functions.d.ts.map +1 -1
  884. package/dist/lib/floating/functions.js +1 -1
  885. package/dist/lib/floating/functions.js.map +1 -1
  886. package/dist/lib/floating/types/component.d.ts +10 -0
  887. package/dist/lib/floating/types/component.d.ts.map +1 -1
  888. package/dist/lib/floating/types/component.js.map +1 -1
  889. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +3 -1
  890. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  891. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -2
  892. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  893. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts.map +1 -1
  894. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -1
  895. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  896. package/dist/lib/floating/useFloatingWithInteractions/useResolveTriggerType.d.ts.map +1 -1
  897. package/dist/lib/floating/useReferenceHiddenChangeCallback.d.ts +4 -0
  898. package/dist/lib/floating/useReferenceHiddenChangeCallback.d.ts.map +1 -0
  899. package/dist/lib/floating/useReferenceHiddenChangeCallback.js +21 -0
  900. package/dist/lib/floating/useReferenceHiddenChangeCallback.js.map +1 -0
  901. package/dist/lib/fx.d.ts.map +1 -1
  902. package/dist/lib/isRefObject.d.ts.map +1 -1
  903. package/dist/lib/object.d.ts +2 -0
  904. package/dist/lib/object.d.ts.map +1 -0
  905. package/dist/lib/object.js +9 -0
  906. package/dist/lib/object.js.map +1 -0
  907. package/dist/lib/rafSchd.d.ts.map +1 -1
  908. package/dist/lib/react/simulateReactInput.d.ts.map +1 -1
  909. package/dist/lib/select.d.ts +1 -0
  910. package/dist/lib/select.d.ts.map +1 -1
  911. package/dist/lib/select.js.map +1 -1
  912. package/dist/lib/sheet/controllers/BottomSheetController.d.ts.map +1 -1
  913. package/dist/lib/sheet/controllers/BottomSheetController.js +13 -23
  914. package/dist/lib/sheet/controllers/BottomSheetController.js.map +1 -1
  915. package/dist/lib/sheet/controllers/CSSTransitionController.d.ts.map +1 -1
  916. package/dist/lib/sheet/controllers/CSSTransitionController.js +4 -5
  917. package/dist/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
  918. package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
  919. package/dist/lib/touch/functions.d.ts.map +1 -1
  920. package/dist/lib/utils.d.ts.map +1 -1
  921. package/dist/vkui.css +1 -1
  922. package/dist/vkui.css.map +1 -1
  923. package/package.json +5 -4
  924. package/src/components/Accordion/Accordion.module.css +6 -6
  925. package/src/components/Accordion/Accordion.tsx +2 -2
  926. package/src/components/ActionSheet/ActionSheet.module.css +9 -9
  927. package/src/components/ActionSheet/ActionSheet.tsx +5 -2
  928. package/src/components/ActionSheet/ActionSheetDropdownMenu.tsx +11 -3
  929. package/src/components/ActionSheet/ActionSheetDropdownSheet.tsx +11 -3
  930. package/src/components/ActionSheet/types.ts +4 -0
  931. package/src/components/ActionSheetItem/ActionSheetItem.module.css +17 -17
  932. package/src/components/Alert/Alert.module.css +25 -25
  933. package/src/components/Alert/Alert.tsx +33 -118
  934. package/src/components/Alert/AlertBase.tsx +156 -0
  935. package/src/components/Alert/AlertTypography.tsx +2 -1
  936. package/src/components/AppRoot/AppRoot.module.css +2 -2
  937. package/src/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.tsx +1 -1
  938. package/src/components/AppRoot/ScrollContext.tsx +162 -50
  939. package/src/components/AspectRatio/AspectRatio.module.css +2 -2
  940. package/src/components/Avatar/Avatar.module.css +1 -1
  941. package/src/components/Avatar/AvatarBadge/AvatarBadge.module.css +8 -3
  942. package/src/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.tsx +4 -1
  943. package/src/components/Banner/Banner.module.css +17 -17
  944. package/src/components/Button/Button.module.css +11 -11
  945. package/src/components/ButtonGroup/ButtonGroup.tsx +2 -0
  946. package/src/components/Calendar/Calendar.module.css +7 -7
  947. package/src/components/Calendar/Calendar.tsx +110 -100
  948. package/src/components/CalendarDay/CalendarDay.module.css +11 -11
  949. package/src/components/CalendarDay/CalendarDay.tsx +1 -3
  950. package/src/components/CalendarDays/CalendarDays.module.css +7 -7
  951. package/src/components/CalendarDays/CalendarDays.tsx +1 -1
  952. package/src/components/CalendarHeader/CalendarHeader.module.css +4 -4
  953. package/src/components/CalendarHeader/CalendarHeader.tsx +1 -3
  954. package/src/components/CalendarRange/CalendarRange.module.css +5 -5
  955. package/src/components/CalendarRange/CalendarRange.tsx +105 -109
  956. package/src/components/CalendarTime/CalendarTime.module.css +1 -1
  957. package/src/components/CalendarTime/CalendarTime.tsx +17 -9
  958. package/src/components/Card/Card.module.css +7 -7
  959. package/src/components/CardGrid/CardGrid.module.css +3 -3
  960. package/src/components/CardScroll/CardScroll.module.css +16 -16
  961. package/src/components/CardScroll/CardScroll.tsx +49 -29
  962. package/src/components/CarouselBase/CarouselBase.module.css +11 -11
  963. package/src/components/CarouselBase/CarouselBase.tsx +107 -44
  964. package/src/components/CarouselBase/helpers.ts +108 -46
  965. package/src/components/Cell/Cell.module.css +16 -2
  966. package/src/components/Cell/CellDragger/CellDragger.module.css +2 -2
  967. package/src/components/CellButton/CellButton.module.css +7 -7
  968. package/src/components/CellButtonGroup/CellButtonGroup.tsx +20 -0
  969. package/src/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.module.css +5 -0
  970. package/src/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.tsx +21 -0
  971. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +2 -2
  972. package/src/components/ChipsInputBase/Chip/Chip.module.css +16 -16
  973. package/src/components/ChipsInputBase/ChipsInputBase.module.css +10 -10
  974. package/src/components/ChipsInputBase/ChipsInputBase.tsx +1 -0
  975. package/src/components/ChipsInputBase/helpers.ts +5 -1
  976. package/src/components/ChipsInputBase/types.ts +1 -1
  977. package/src/components/ChipsSelect/ChipsSelect.module.css +1 -1
  978. package/src/components/ChipsSelect/ChipsSelect.tsx +8 -1
  979. package/src/components/ChipsSelect/useChipsSelect.ts +12 -1
  980. package/src/components/Clickable/Clickable.module.css +1 -1
  981. package/src/components/Clickable/Clickable.tsx +37 -25
  982. package/src/components/ColorSchemeProvider/ColorSchemeProvider.tsx +1 -1
  983. package/src/components/ConfigProvider/ConfigProvider.tsx +4 -1
  984. package/src/components/ConfigProvider/ConfigProviderContext.tsx +29 -15
  985. package/src/components/ContentBadge/ContentBadge.module.css +7 -7
  986. package/src/components/ContentCard/ContentCard.module.css +6 -6
  987. package/src/components/ContentCard/ContentCard.tsx +9 -3
  988. package/src/components/Counter/Counter.module.css +4 -4
  989. package/src/components/CustomScrollView/CustomScrollView.module.css +2 -2
  990. package/src/components/CustomSelect/CustomSelect.module.css +2 -2
  991. package/src/components/CustomSelect/CustomSelect.tsx +153 -93
  992. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -12
  993. package/src/components/CustomSelectDropdown/CustomSelectDropdown.module.css +2 -2
  994. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +2 -0
  995. package/src/components/CustomSelectOption/CustomSelectOption.module.css +8 -8
  996. package/src/components/DateInput/DateInput.module.css +38 -5
  997. package/src/components/DateInput/DateInput.tsx +152 -89
  998. package/src/components/DateInput/hooks.ts +93 -0
  999. package/src/components/DateRangeInput/DateRangeInput.module.css +3 -3
  1000. package/src/components/DateRangeInput/DateRangeInput.tsx +127 -83
  1001. package/src/components/DirectionProvider/DirectionProvider.tsx +17 -0
  1002. package/src/components/DropZone/DropZone.module.css +2 -2
  1003. package/src/components/FixedLayout/FixedLayout.module.css +3 -3
  1004. package/src/components/Flex/Flex.module.css +26 -14
  1005. package/src/components/Flex/Flex.tsx +3 -6
  1006. package/src/components/FloatingArrow/FloatingArrow.module.css +1 -1
  1007. package/src/components/Footer/Footer.module.css +1 -1
  1008. package/src/components/FormField/FormField.module.css +24 -24
  1009. package/src/components/FormItem/FormItem.module.css +11 -10
  1010. package/src/components/FormLayoutGroup/FormLayoutGroup.module.css +5 -5
  1011. package/src/components/GridAvatar/GridAvatar.module.css +2 -2
  1012. package/src/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +2 -2
  1013. package/src/components/Group/Group.module.css +16 -16
  1014. package/src/components/Header/Header.module.css +5 -5
  1015. package/src/components/HorizontalCell/HorizontalCell.module.css +3 -3
  1016. package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.module.css +2 -2
  1017. package/src/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
  1018. package/src/components/HorizontalScroll/HorizontalScroll.tsx +47 -19
  1019. package/src/components/IconButton/IconButton.module.css +9 -9
  1020. package/src/components/ImageBase/ImageBase.module.css +15 -6
  1021. package/src/components/ImageBase/ImageBase.tsx +16 -5
  1022. package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +5 -5
  1023. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +8 -8
  1024. package/src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +2 -2
  1025. package/src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.tsx +5 -4
  1026. package/src/components/ImageBase/ImageBaseOverlay/hooks.ts +31 -0
  1027. package/src/components/ImageBase/ImageBaseOverlay/types.ts +4 -0
  1028. package/src/components/InfoRow/InfoRow.module.css +3 -3
  1029. package/src/components/Input/Input.module.css +5 -5
  1030. package/src/components/InputLike/InputLike.module.css +3 -3
  1031. package/src/components/Link/Link.module.css +6 -6
  1032. package/src/components/Mark/Mark.module.css +2 -2
  1033. package/src/components/MiniInfoCell/MiniInfoCell.module.css +5 -5
  1034. package/src/components/ModalCard/ModalCard.module.css +4 -4
  1035. package/src/components/ModalCard/ModalCard.tsx +3 -9
  1036. package/src/components/ModalCard/ModalCardInternal.tsx +2 -0
  1037. package/src/components/ModalCard/types.ts +2 -1
  1038. package/src/components/ModalCardBase/ModalCardBase.module.css +7 -7
  1039. package/src/components/ModalCardBase/ModalCardBase.tsx +50 -10
  1040. package/src/components/ModalDismissButton/ModalDismissButton.module.css +0 -28
  1041. package/src/components/ModalDismissButton/ModalDismissButton.tsx +11 -9
  1042. package/src/components/ModalOutlet/ModalOutlet.module.css +1 -1
  1043. package/src/components/ModalOutsideButton/ModalOutsideButton.module.css +30 -0
  1044. package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +38 -0
  1045. package/src/components/ModalOutsideButtons/ModalOutsideButtons.module.css +6 -0
  1046. package/src/components/ModalOutsideButtons/ModalOutsideButtons.tsx +14 -0
  1047. package/src/components/ModalOverlay/ModalOverlay.module.css +2 -2
  1048. package/src/components/ModalPage/ModalPage.module.css +15 -16
  1049. package/src/components/ModalPage/ModalPage.tsx +3 -10
  1050. package/src/components/ModalPage/ModalPageBase.tsx +92 -0
  1051. package/src/components/ModalPage/ModalPageInternal.tsx +23 -42
  1052. package/src/components/ModalPage/types.ts +12 -0
  1053. package/src/components/ModalPageFooter/ModalPageFooter.module.css +4 -4
  1054. package/src/components/ModalPageHeader/ModalPageHeader.module.css +2 -3
  1055. package/src/components/ModalRoot/types.ts +1 -0
  1056. package/src/components/ModalRoot/useModalManager.tsx +12 -5
  1057. package/src/components/ModalRoot/useModalRootContext.ts +1 -1
  1058. package/src/components/OnboardingTooltip/OnboardingTooltip.module.css +1 -1
  1059. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +21 -12
  1060. package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +10 -1
  1061. package/src/components/OnboardingTooltip/OnboardingTooltipContext.tsx +11 -0
  1062. package/src/components/Pagination/Pagination.module.css +1 -1
  1063. package/src/components/Pagination/Pagination.tsx +5 -2
  1064. package/src/components/Pagination/PaginationPage/PaginationPage.module.css +8 -8
  1065. package/src/components/Panel/Panel.module.css +3 -3
  1066. package/src/components/PanelHeader/PanelHeader.module.css +27 -27
  1067. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +3 -0
  1068. package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +14 -8
  1069. package/src/components/PanelHeaderContent/PanelHeaderContent.module.css +10 -10
  1070. package/src/components/PanelHeaderContext/PanelHeaderContext.module.css +7 -7
  1071. package/src/components/Placeholder/Placeholder.module.css +3 -3
  1072. package/src/components/PlatformProvider/PlatformProvider.tsx +1 -1
  1073. package/src/components/PopoutWrapper/PopoutWrapper.module.css +14 -9
  1074. package/src/components/PopoutWrapper/PopoutWrapper.tsx +25 -2
  1075. package/src/components/Popover/Popover.module.css +1 -1
  1076. package/src/components/Popover/Popover.tsx +6 -4
  1077. package/src/components/Popover/usePopover.tsx +106 -85
  1078. package/src/components/Popper/Popper.tsx +17 -6
  1079. package/src/components/Progress/Progress.module.css +20 -9
  1080. package/src/components/Progress/Progress.tsx +38 -9
  1081. package/src/components/PullToRefresh/PullToRefresh.module.css +14 -14
  1082. package/src/components/Radio/Radio.module.css +1 -1
  1083. package/src/components/Radio/RadioInput/RadioInput.module.css +1 -1
  1084. package/src/components/RadioGroup/RadioGroup.module.css +1 -1
  1085. package/src/components/Removable/Removable.module.css +19 -6
  1086. package/src/components/Removable/Removable.tsx +10 -3
  1087. package/src/components/RichCell/RichCell.module.css +10 -10
  1088. package/src/components/RichCell/RichCellIcon/RichCellIcon.module.css +4 -4
  1089. package/src/components/Root/Root.module.css +10 -10
  1090. package/src/components/ScreenSpinner/ScreenSpinner.module.css +11 -11
  1091. package/src/components/ScreenSpinner/ScreenSpinner.tsx +1 -1
  1092. package/src/components/ScrollArrow/ScrollArrow.module.css +15 -14
  1093. package/src/components/ScrollArrow/ScrollArrow.tsx +10 -1
  1094. package/src/components/Search/Search.module.css +40 -28
  1095. package/src/components/Search/Search.tsx +16 -0
  1096. package/src/components/SegmentedControl/SegmentedControl.module.css +16 -7
  1097. package/src/components/SegmentedControl/SegmentedControl.tsx +11 -13
  1098. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +11 -11
  1099. package/src/components/Select/Select.module.css +14 -14
  1100. package/src/components/SelectionControl/SelectionControl.module.css +2 -2
  1101. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +5 -5
  1102. package/src/components/Separator/Separator.module.css +3 -3
  1103. package/src/components/SimpleCell/SimpleCell.module.css +18 -16
  1104. package/src/components/SimpleGrid/SimpleGrid.module.css +2 -2
  1105. package/src/components/Skeleton/Skeleton.module.css +8 -8
  1106. package/src/components/Slider/Slider.module.css +25 -4
  1107. package/src/components/Slider/Slider.tsx +23 -15
  1108. package/src/components/Slider/SliderThumb/SliderThumb.module.css +7 -7
  1109. package/src/components/Slider/SliderThumb/SliderThumb.tsx +5 -5
  1110. package/src/components/Snackbar/Snackbar.module.css +23 -6
  1111. package/src/components/Snackbar/Snackbar.tsx +7 -0
  1112. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +9 -8
  1113. package/src/components/Snackbar/utils.ts +24 -6
  1114. package/src/components/Spacing/Spacing.module.css +1 -1
  1115. package/src/components/Spinner/Spinner.module.css +2 -2
  1116. package/src/components/SplitCol/SplitCol.module.css +9 -9
  1117. package/src/components/SplitLayout/SplitLayout.module.css +2 -2
  1118. package/src/components/SubnavigationBar/SubnavigationBar.module.css +4 -4
  1119. package/src/components/SubnavigationButton/SubnavigationButton.module.css +9 -5
  1120. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -0
  1121. package/src/components/Switch/Switch.module.css +25 -17
  1122. package/src/components/Switch/Switch.tsx +4 -0
  1123. package/src/components/Tabbar/Tabbar.module.css +5 -5
  1124. package/src/components/TabbarItem/TabbarItem.module.css +16 -16
  1125. package/src/components/Tabs/Tabs.module.css +1 -1
  1126. package/src/components/Tabs/Tabs.tsx +3 -1
  1127. package/src/components/TabsItem/TabsItem.module.css +21 -20
  1128. package/src/components/Tappable/Tappable.module.css +7 -7
  1129. package/src/components/Textarea/Textarea.module.css +7 -3
  1130. package/src/components/ToolButton/ToolButton.module.css +7 -7
  1131. package/src/components/Tooltip/Tooltip.tsx +9 -142
  1132. package/src/components/Tooltip/useTooltip.tsx +168 -0
  1133. package/src/components/TooltipBase/TooltipBase.module.css +9 -9
  1134. package/src/components/Touch/Touch.tsx +35 -3
  1135. package/src/components/Typography/Caption/Caption.module.css +96 -96
  1136. package/src/components/Typography/DisplayTitle/DisplayTitle.module.css +64 -64
  1137. package/src/components/Typography/EllipsisText/EllipsisText.module.css +3 -3
  1138. package/src/components/Typography/Footnote/Footnote.module.css +32 -32
  1139. package/src/components/Typography/Headline/Headline.module.css +20 -20
  1140. package/src/components/Typography/Paragraph/Paragraph.module.css +16 -16
  1141. package/src/components/Typography/Subhead/Subhead.module.css +16 -16
  1142. package/src/components/Typography/Text/Text.module.css +16 -16
  1143. package/src/components/Typography/Title/Title.module.css +48 -48
  1144. package/src/components/Typography/Typography.module.css +1 -1
  1145. package/src/components/UnstyledTextField/UnstyledTextField.module.css +4 -4
  1146. package/src/components/UsersStack/UsersStack.module.css +4 -4
  1147. package/src/components/UsersStack/UsersStack.tsx +3 -7
  1148. package/src/components/View/View.module.css +8 -8
  1149. package/src/components/VisuallyHidden/VisuallyHidden.module.css +8 -8
  1150. package/src/components/WriteBar/WriteBar.module.css +10 -10
  1151. package/src/components/WriteBarIcon/WriteBarIcon.module.css +9 -9
  1152. package/src/context/CalendarDirectionContext.ts +1 -1
  1153. package/src/helpers/getValueByKey.ts +25 -0
  1154. package/src/hooks/useAutoDetectDirection.ts +18 -0
  1155. package/src/hooks/useCalendar.ts +1 -1
  1156. package/src/hooks/useConfigDirection.ts +8 -0
  1157. package/src/hooks/useDateInput.ts +6 -6
  1158. package/src/hooks/useFloatingElement.tsx +172 -0
  1159. package/src/hooks/useFocusVisible.ts +12 -1
  1160. package/src/hooks/useReferenceElement.tsx +13 -0
  1161. package/src/hooks/useTabsNavigation.ts +5 -3
  1162. package/src/hooks/useTodayDate.ts +34 -31
  1163. package/src/index.ts +9 -2
  1164. package/src/lib/SSR.tsx +11 -2
  1165. package/src/lib/date.ts +29 -0
  1166. package/src/lib/direction/index.ts +1 -0
  1167. package/src/lib/dom.tsx +8 -0
  1168. package/src/lib/floating/adapters.ts +2 -0
  1169. package/src/lib/floating/customResizeObserver.ts +2 -1
  1170. package/src/lib/floating/functions.ts +15 -7
  1171. package/src/lib/floating/types/component.ts +10 -0
  1172. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +6 -1
  1173. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +2 -3
  1174. package/src/lib/floating/useReferenceHiddenChangeCallback.ts +26 -0
  1175. package/src/lib/object.ts +14 -0
  1176. package/src/lib/select.ts +2 -0
  1177. package/src/lib/sheet/controllers/BottomSheetController.ts +4 -1
  1178. package/src/lib/sheet/controllers/CSSTransitionController.ts +7 -4
  1179. package/src/lib/tokens/TokensClassProvider.module.css +1 -1
  1180. package/src/styles/common.css +2 -2
  1181. package/src/styles/constants.css +2 -2
  1182. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.d.ts +0 -10
  1183. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.d.ts.map +0 -1
  1184. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -38
  1185. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.js.map +0 -1
  1186. package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -39
  1187. package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js.map +0 -1
  1188. package/dist/cssm/hooks/useDirection.js +0 -55
  1189. package/dist/cssm/hooks/useDirection.js.map +0 -1
  1190. package/dist/cssm/lib/tokens/index.js +0 -5
  1191. package/dist/cssm/lib/tokens/index.js.map +0 -1
  1192. package/dist/hooks/useDirection.d.ts +0 -39
  1193. package/dist/hooks/useDirection.d.ts.map +0 -1
  1194. package/dist/hooks/useDirection.js +0 -55
  1195. package/dist/hooks/useDirection.js.map +0 -1
  1196. package/dist/lib/tokens/index.d.ts +0 -5
  1197. package/dist/lib/tokens/index.d.ts.map +0 -1
  1198. package/dist/lib/tokens/index.js +0 -5
  1199. package/dist/lib/tokens/index.js.map +0 -1
  1200. package/src/components/ModalCardBase/ModalCardBaseCloseButton.tsx +0 -51
  1201. package/src/hooks/useDirection.ts +0 -63
  1202. package/src/lib/tokens/index.ts +0 -11
@@ -1,7 +1,8 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { classNames } from "@vkontakte/vkjs";
5
+ import { useConfigDirection } from "../../hooks/useConfigDirection.js";
5
6
  import { useDOM } from "../../lib/dom.js";
6
7
  import { HorizontalScroll } from "../HorizontalScroll/HorizontalScroll.js";
7
8
  import { RootComponent } from "../RootComponent/RootComponent.js";
@@ -13,45 +14,56 @@ const stylesSize = {
13
14
  };
14
15
  /**
15
16
  * @see https://vkcom.github.io/VKUI/#/CardScroll
16
- */ export const CardScroll = ({ children, size = 's', showArrows = true, padding = false, Component = 'ul', prevButtonTestId, nextButtonTestId, ...restProps })=>{
17
+ */ export const CardScroll = ({ children, size = 's', showArrows = true, padding = false, CardsListComponent = 'ul', prevButtonTestId, nextButtonTestId, ...restProps })=>{
17
18
  const refContainer = React.useRef(null);
18
- const gapRef = React.useRef(null);
19
+ const direction = useConfigDirection();
19
20
  const { window } = useDOM();
21
+ const getPadding = (container)=>{
22
+ return parseFloat(window.getComputedStyle(container).getPropertyValue('--vkui_internal--CardScroll_horizontal_padding'));
23
+ };
24
+ const slideOffsetFromStart = (slide)=>{
25
+ const containerWidth = refContainer.current?.offsetWidth || 0;
26
+ return direction === 'rtl' ? containerWidth - slide.offsetLeft - slide.offsetWidth : slide.offsetLeft;
27
+ };
20
28
  function getScrollToLeft(offset) {
21
- if (!refContainer.current || !gapRef.current) {
29
+ if (!refContainer.current) {
22
30
  return offset;
23
31
  }
24
32
  const containerWidth = refContainer.current.offsetWidth;
33
+ const getMarginEnd = (el)=>{
34
+ const computedStyles = window.getComputedStyle(el);
35
+ return parseInt(computedStyles.marginInlineEnd) || (direction === 'rtl' ? parseInt(computedStyles.marginLeft) : parseInt(computedStyles.marginRight)) || 0;
36
+ };
25
37
  const slideIndex = [
26
38
  ...refContainer.current.children
27
- ].findIndex((el)=>el.offsetLeft + el.offsetWidth + parseInt(window.getComputedStyle(el).marginRight) - offset >= 0);
39
+ ].findIndex((el)=>slideOffsetFromStart(el) + el.offsetWidth + getMarginEnd(el) - offset >= 0);
28
40
  if (slideIndex === -1) {
29
41
  return offset;
30
42
  }
31
- if (slideIndex === 0) {
32
- return 0;
33
- }
34
43
  const slide = refContainer.current.children[slideIndex];
35
- const scrollTo = slide.offsetLeft - (containerWidth - slide.offsetWidth) + gapRef.current.offsetWidth;
36
- if (scrollTo <= 2 * gapRef.current.offsetWidth) {
44
+ const padding = getPadding(refContainer.current);
45
+ const scrollTo = slideOffsetFromStart(slide) - (containerWidth - slide.offsetWidth) + padding;
46
+ if (scrollTo <= 2 * padding) {
37
47
  return 0;
38
48
  }
39
49
  return scrollTo;
40
50
  }
41
51
  function getScrollToRight(offset) {
42
- if (!refContainer.current || !gapRef.current) {
52
+ if (!refContainer.current) {
43
53
  return offset;
44
54
  }
45
55
  const containerWidth = refContainer.current.offsetWidth;
46
- const slide = Array.prototype.find.call(refContainer.current.children, (el)=>el.offsetLeft + el.offsetWidth - offset > containerWidth);
56
+ const slide = Array.prototype.find.call(refContainer.current.children, (el)=>{
57
+ return slideOffsetFromStart(el) + el.offsetWidth - offset > containerWidth;
58
+ });
47
59
  if (!slide) {
48
60
  return offset;
49
61
  }
50
- return slide.offsetLeft - gapRef.current.offsetWidth;
62
+ const padding = getPadding(refContainer.current);
63
+ return slideOffsetFromStart(slide) - padding;
51
64
  }
52
65
  return /*#__PURE__*/ _jsx(RootComponent, {
53
66
  ...restProps,
54
- Component: Component,
55
67
  baseClassName: classNames(styles.host, 'vkuiInternalCardScroll', size !== false && stylesSize[size], padding && styles.withPaddings),
56
68
  children: /*#__PURE__*/ _jsx(HorizontalScroll, {
57
69
  getScrollToLeft: getScrollToLeft,
@@ -59,20 +71,10 @@ const stylesSize = {
59
71
  showArrows: showArrows,
60
72
  prevButtonTestId: prevButtonTestId,
61
73
  nextButtonTestId: nextButtonTestId,
62
- children: /*#__PURE__*/ _jsxs("div", {
63
- className: styles.in,
64
- ref: refContainer,
65
- children: [
66
- /*#__PURE__*/ _jsx("span", {
67
- className: styles.gap,
68
- ref: gapRef
69
- }),
70
- children,
71
- /*#__PURE__*/ _jsx("span", {
72
- className: styles.gap
73
- })
74
- ]
75
- })
74
+ ContentWrapperComponent: CardsListComponent,
75
+ contentWrapperRef: refContainer,
76
+ contentWrapperClassName: styles.in,
77
+ children: children
76
78
  })
77
79
  });
78
80
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CardScroll/CardScroll.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useDOM } from '../../lib/dom';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { HorizontalScroll, type HorizontalScrollProps } from '../HorizontalScroll/HorizontalScroll';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CardScroll.module.css';\n\nconst stylesSize = {\n s: 'vkuiInternalCardScroll--size-s',\n m: 'vkuiInternalCardScroll--size-m',\n l: 'vkuiInternalCardScroll--size-l',\n};\n\nexport interface CardScrollProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasComponent,\n Pick<HorizontalScrollProps, 'showArrows' | 'prevButtonTestId' | 'nextButtonTestId'> {\n /**\n * При `size=false` ширина `Card` будет регулироваться контентом внутри. В остальных случаях — будет явно задана в процентах.\n */\n size?: 's' | 'm' | 'l' | false;\n /**\n * Добавляет отступы по краям слева и справа\n */\n padding?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CardScroll\n */\nexport const CardScroll = ({\n children,\n size = 's',\n showArrows = true,\n padding = false,\n Component = 'ul',\n prevButtonTestId,\n nextButtonTestId,\n ...restProps\n}: CardScrollProps): React.ReactNode => {\n const refContainer = React.useRef<HTMLDivElement>(null);\n const gapRef = React.useRef<HTMLDivElement>(null);\n\n const { window } = useDOM();\n\n function getScrollToLeft(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n const slideIndex = ([...refContainer.current.children] as HTMLElement[]).findIndex(\n (el: HTMLElement) =>\n el.offsetLeft +\n el.offsetWidth +\n parseInt(window!.getComputedStyle(el).marginRight) -\n offset >=\n 0,\n );\n\n if (slideIndex === -1) {\n return offset;\n }\n\n if (slideIndex === 0) {\n return 0;\n }\n\n const slide = refContainer.current.children[slideIndex] as HTMLElement;\n\n const scrollTo =\n slide.offsetLeft - (containerWidth - slide.offsetWidth) + gapRef.current.offsetWidth;\n\n if (scrollTo <= 2 * gapRef.current.offsetWidth) {\n return 0;\n }\n\n return scrollTo;\n }\n\n function getScrollToRight(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n\n const containerWidth = refContainer.current.offsetWidth;\n const slide = Array.prototype.find.call(\n refContainer.current.children,\n (el: HTMLElement) => el.offsetLeft + el.offsetWidth - offset > containerWidth,\n ) as HTMLElement;\n\n if (!slide) {\n return offset;\n }\n\n return slide.offsetLeft - gapRef.current.offsetWidth;\n }\n\n return (\n <RootComponent\n {...restProps}\n Component={Component}\n baseClassName={classNames(\n styles.host,\n 'vkuiInternalCardScroll',\n size !== false && stylesSize[size],\n padding && styles.withPaddings,\n )}\n >\n <HorizontalScroll\n getScrollToLeft={getScrollToLeft}\n getScrollToRight={getScrollToRight}\n showArrows={showArrows}\n prevButtonTestId={prevButtonTestId}\n nextButtonTestId={nextButtonTestId}\n >\n <div className={styles.in} ref={refContainer}>\n <span className={styles.gap} ref={gapRef} />\n {children}\n <span className={styles.gap} />\n </div>\n </HorizontalScroll>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useDOM","HorizontalScroll","RootComponent","styles","stylesSize","s","m","l","CardScroll","children","size","showArrows","padding","Component","prevButtonTestId","nextButtonTestId","restProps","refContainer","useRef","gapRef","window","getScrollToLeft","offset","current","containerWidth","offsetWidth","slideIndex","findIndex","el","offsetLeft","parseInt","getComputedStyle","marginRight","slide","scrollTo","getScrollToRight","Array","prototype","find","call","baseClassName","host","withPaddings","div","className","in","ref","span","gap"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,MAAM,QAAQ,mBAAgB;AAEvC,SAASC,gBAAgB,QAAoC,0CAAuC;AACpG,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,0BAA0B;AAE7C,MAAMC,aAAa;IACjBC,GAAG;IACHC,GAAG;IACHC,GAAG;AACL;AAgBA;;CAEC,GACD,OAAO,MAAMC,aAAa,CAAC,EACzBC,QAAQ,EACRC,OAAO,GAAG,EACVC,aAAa,IAAI,EACjBC,UAAU,KAAK,EACfC,YAAY,IAAI,EAChBC,gBAAgB,EAChBC,gBAAgB,EAChB,GAAGC,WACa;IAChB,MAAMC,eAAenB,MAAMoB,MAAM,CAAiB;IAClD,MAAMC,SAASrB,MAAMoB,MAAM,CAAiB;IAE5C,MAAM,EAAEE,MAAM,EAAE,GAAGpB;IAEnB,SAASqB,gBAAgBC,MAAc;QACrC,IAAI,CAACL,aAAaM,OAAO,IAAI,CAACJ,OAAOI,OAAO,EAAE;YAC5C,OAAOD;QACT;QACA,MAAME,iBAAiBP,aAAaM,OAAO,CAACE,WAAW;QACvD,MAAMC,aAAa,AAAC;eAAIT,aAAaM,OAAO,CAACd,QAAQ;SAAC,CAAmBkB,SAAS,CAChF,CAACC,KACCA,GAAGC,UAAU,GACXD,GAAGH,WAAW,GACdK,SAASV,OAAQW,gBAAgB,CAACH,IAAII,WAAW,IACjDV,UACF;QAGJ,IAAII,eAAe,CAAC,GAAG;YACrB,OAAOJ;QACT;QAEA,IAAII,eAAe,GAAG;YACpB,OAAO;QACT;QAEA,MAAMO,QAAQhB,aAAaM,OAAO,CAACd,QAAQ,CAACiB,WAAW;QAEvD,MAAMQ,WACJD,MAAMJ,UAAU,GAAIL,CAAAA,iBAAiBS,MAAMR,WAAW,AAAD,IAAKN,OAAOI,OAAO,CAACE,WAAW;QAEtF,IAAIS,YAAY,IAAIf,OAAOI,OAAO,CAACE,WAAW,EAAE;YAC9C,OAAO;QACT;QAEA,OAAOS;IACT;IAEA,SAASC,iBAAiBb,MAAc;QACtC,IAAI,CAACL,aAAaM,OAAO,IAAI,CAACJ,OAAOI,OAAO,EAAE;YAC5C,OAAOD;QACT;QAEA,MAAME,iBAAiBP,aAAaM,OAAO,CAACE,WAAW;QACvD,MAAMQ,QAAQG,MAAMC,SAAS,CAACC,IAAI,CAACC,IAAI,CACrCtB,aAAaM,OAAO,CAACd,QAAQ,EAC7B,CAACmB,KAAoBA,GAAGC,UAAU,GAAGD,GAAGH,WAAW,GAAGH,SAASE;QAGjE,IAAI,CAACS,OAAO;YACV,OAAOX;QACT;QAEA,OAAOW,MAAMJ,UAAU,GAAGV,OAAOI,OAAO,CAACE,WAAW;IACtD;IAEA,qBACE,KAACvB;QACE,GAAGc,SAAS;QACbH,WAAWA;QACX2B,eAAezC,WACbI,OAAOsC,IAAI,EACX,0BACA/B,SAAS,SAASN,UAAU,CAACM,KAAK,EAClCE,WAAWT,OAAOuC,YAAY;kBAGhC,cAAA,KAACzC;YACCoB,iBAAiBA;YACjBc,kBAAkBA;YAClBxB,YAAYA;YACZG,kBAAkBA;YAClBC,kBAAkBA;sBAElB,cAAA,MAAC4B;gBAAIC,WAAWzC,OAAO0C,EAAE;gBAAEC,KAAK7B;;kCAC9B,KAAC8B;wBAAKH,WAAWzC,OAAO6C,GAAG;wBAAEF,KAAK3B;;oBACjCV;kCACD,KAACsC;wBAAKH,WAAWzC,OAAO6C,GAAG;;;;;;AAKrC,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/CardScroll/CardScroll.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useDOM } from '../../lib/dom';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { HorizontalScroll, type HorizontalScrollProps } from '../HorizontalScroll/HorizontalScroll';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CardScroll.module.css';\n\nconst stylesSize = {\n s: 'vkuiInternalCardScroll--size-s',\n m: 'vkuiInternalCardScroll--size-m',\n l: 'vkuiInternalCardScroll--size-l',\n};\n\nexport interface CardScrollProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasComponent,\n Pick<HorizontalScrollProps, 'showArrows' | 'prevButtonTestId' | 'nextButtonTestId'> {\n /**\n * При `size=false` ширина `Card` будет регулироваться контентом внутри. В остальных случаях — будет явно задана в процентах.\n */\n size?: 's' | 'm' | 'l' | false;\n /**\n * Добавляет отступы по краям слева и справа\n */\n padding?: boolean;\n /**\n * Позволяет поменять тег используемый для обертки над карточками\n */\n CardsListComponent?: React.ElementType;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CardScroll\n */\nexport const CardScroll = ({\n children,\n size = 's',\n showArrows = true,\n padding = false,\n CardsListComponent = 'ul',\n prevButtonTestId,\n nextButtonTestId,\n ...restProps\n}: CardScrollProps): React.ReactNode => {\n const refContainer = React.useRef<HTMLDivElement>(null);\n const direction = useConfigDirection();\n\n const { window } = useDOM();\n\n const getPadding = (container: HTMLElement) => {\n return parseFloat(\n window!\n .getComputedStyle(container)\n .getPropertyValue('--vkui_internal--CardScroll_horizontal_padding'),\n );\n };\n\n const slideOffsetFromStart = (slide: HTMLElement) => {\n const containerWidth = refContainer.current?.offsetWidth || 0;\n return direction === 'rtl'\n ? containerWidth - slide.offsetLeft - slide.offsetWidth\n : slide.offsetLeft;\n };\n\n function getScrollToLeft(offset: number): number {\n if (!refContainer.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n\n const getMarginEnd = (el: HTMLElement) => {\n const computedStyles = window!.getComputedStyle(el);\n return (\n parseInt(computedStyles.marginInlineEnd) ||\n (direction === 'rtl'\n ? parseInt(computedStyles.marginLeft)\n : parseInt(computedStyles.marginRight)) ||\n 0\n );\n };\n\n const slideIndex = ([...refContainer.current.children] as HTMLElement[]).findIndex(\n (el: HTMLElement) =>\n slideOffsetFromStart(el) + el.offsetWidth + getMarginEnd(el) - offset >= 0,\n );\n\n if (slideIndex === -1) {\n return offset;\n }\n\n const slide = refContainer.current.children[slideIndex] as HTMLElement;\n const padding = getPadding(refContainer.current);\n const scrollTo = slideOffsetFromStart(slide) - (containerWidth - slide.offsetWidth) + padding;\n\n if (scrollTo <= 2 * padding) {\n return 0;\n }\n\n return scrollTo;\n }\n\n function getScrollToRight(offset: number): number {\n if (!refContainer.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n const slide = Array.prototype.find.call(refContainer.current.children, (el: HTMLElement) => {\n return slideOffsetFromStart(el) + el.offsetWidth - offset > containerWidth;\n }) as HTMLElement;\n\n if (!slide) {\n return offset;\n }\n\n const padding = getPadding(refContainer.current);\n return slideOffsetFromStart(slide) - padding;\n }\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles.host,\n 'vkuiInternalCardScroll',\n size !== false && stylesSize[size],\n padding && styles.withPaddings,\n )}\n >\n <HorizontalScroll\n getScrollToLeft={getScrollToLeft}\n getScrollToRight={getScrollToRight}\n showArrows={showArrows}\n prevButtonTestId={prevButtonTestId}\n nextButtonTestId={nextButtonTestId}\n ContentWrapperComponent={CardsListComponent}\n contentWrapperRef={refContainer}\n contentWrapperClassName={styles.in}\n >\n {children}\n </HorizontalScroll>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useConfigDirection","useDOM","HorizontalScroll","RootComponent","styles","stylesSize","s","m","l","CardScroll","children","size","showArrows","padding","CardsListComponent","prevButtonTestId","nextButtonTestId","restProps","refContainer","useRef","direction","window","getPadding","container","parseFloat","getComputedStyle","getPropertyValue","slideOffsetFromStart","slide","containerWidth","current","offsetWidth","offsetLeft","getScrollToLeft","offset","getMarginEnd","el","computedStyles","parseInt","marginInlineEnd","marginLeft","marginRight","slideIndex","findIndex","scrollTo","getScrollToRight","Array","prototype","find","call","baseClassName","host","withPaddings","ContentWrapperComponent","contentWrapperRef","contentWrapperClassName","in"],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  .host {
2
- margin: 0;
3
- padding: 0;
4
- list-style-type: none;
2
+ --vkui_internal--CardScroll_horizontal_padding: 0;
5
3
  }
6
4
 
7
5
  .in {
8
- display: flex;
9
- align-items: stretch;
10
6
  inline-size: 100%;
7
+ padding: 0;
8
+ margin: 0;
9
+ list-style-type: none;
11
10
  }
12
11
 
13
- .gap {
14
- display: block;
15
- flex-shrink: 0;
12
+ .in::after,
13
+ .in::before {
14
+ padding-inline: calc(var(--vkui_internal--CardScroll_horizontal_padding) / 2);
15
+ content: '';
16
16
  }
17
17
 
18
18
  .host + .host {
@@ -20,8 +20,10 @@
20
20
  margin-block-start: 16px;
21
21
  }
22
22
 
23
- .withPaddings .gap {
24
- inline-size: var(--vkui--size_base_padding_horizontal--regular);
23
+ .withPaddings {
24
+ --vkui_internal--CardScroll_horizontal_padding: var(
25
+ --vkui--size_base_padding_horizontal--regular
26
+ );
25
27
  }
26
28
 
27
29
  /**
@@ -32,17 +34,15 @@
32
34
  /* stylelint-disable-next-line selector-pseudo-class-disallowed-list */
33
35
 
34
36
  :global(.vkuiInternalSplitCol--viewWidth-tabletPlus):global(.vkuiInternalSplitCol--spaced-auto)
35
- .withPaddings
36
- .gap {
37
- inline-size: 16px;
37
+ .withPaddings {
38
+ --vkui_internal--CardScroll_horizontal_padding: 16px;
38
39
  }
39
40
 
40
41
  @media (min-width: 768px) {
41
42
  /* stylelint-disable-next-line selector-pseudo-class-disallowed-list */
42
43
  :global(.vkuiInternalSplitCol--viewWidth-none):global(.vkuiInternalSplitCol--spaced-auto)
43
- .withPaddings
44
- .gap {
45
- inline-size: 16px;
44
+ .withPaddings {
45
+ --vkui_internal--CardScroll_horizontal_padding: 16px;
46
46
  }
47
47
  }
48
48
 
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { classNames } from "@vkontakte/vkjs";
5
5
  import { useAdaptivityHasPointer } from "../../hooks/useAdaptivityHasPointer.js";
6
+ import { useConfigDirection } from "../../hooks/useConfigDirection.js";
6
7
  import { useExternRef } from "../../hooks/useExternRef.js";
7
8
  import { useMutationObserver } from "../../hooks/useMutationObserver.js";
8
9
  import { useResizeObserver } from "../../hooks/useResizeObserver.js";
@@ -14,13 +15,15 @@ import { Bullets } from "./Bullets.js";
14
15
  import { CarouselViewPort } from "./CarouselViewPort.js";
15
16
  import { ScrollArrows } from "./ScrollArrows.js";
16
17
  import { ANIMATION_DURATION, CONTROL_ELEMENTS_STATE, SLIDE_THRESHOLD, SLIDES_MANAGER_STATE } from "./constants.js";
17
- import { calcMax, calcMin, calculateIndent, getLoopPoints, getTargetIndex } from "./helpers.js";
18
+ import { calcMax, calcMin, calculateIndent, getLoopPoints, getTargetIndex, isBigger, isBiggerOrEqual, isLowerOrEqual, revertRtlValue, validateIndent } from "./helpers.js";
18
19
  import { useSlideAnimation } from "./hooks.js";
19
20
  import styles from "./CarouselBase.module.css";
20
21
  const warn = warnOnce('Gallery');
21
22
  export const CarouselBase = ({ bullets = false, getRootRef, children, slideWidth = '100%', slideIndex = 0, dragDisabled = false, resizeSource = 'window', onDragStart, onDragEnd, onChange, onPrevClick, onNextClick, align = 'left', showArrows, getRef, arrowSize, arrowAreaHeight, slideTestId, bulletTestId, nextArrowTestId, prevArrowTestId, looped = false, ...restProps })=>{
22
23
  const slidesStore = React.useRef({});
23
24
  const slidesManager = React.useRef(SLIDES_MANAGER_STATE);
25
+ const textDirection = useConfigDirection();
26
+ const isRtl = textDirection === 'rtl';
24
27
  const rootRef = useExternRef(getRootRef);
25
28
  const viewportRef = useExternRef(getRef);
26
29
  const layerRef = React.useRef(null);
@@ -33,33 +36,19 @@ export const CarouselBase = ({ bullets = false, getRootRef, children, slideWidth
33
36
  const [controlElementsState, setControlElementsState] = React.useState(CONTROL_ELEMENTS_STATE);
34
37
  const hasPointer = useAdaptivityHasPointer();
35
38
  const isCenterAlign = align === 'center';
36
- /*
37
- * Считает отступ слоя галереи во время драга
38
- * Используется только для looped=false галереи
39
- * так как только у нее есть пределы по краям
40
- */ const calculateDragIndent = ()=>{
41
- const localMax = slidesManager.current.max ?? 0;
42
- const localMin = slidesManager.current.min ?? 0;
43
- const indent = shiftXCurrentRef.current + shiftXDeltaRef.current;
44
- if (indent > localMax) {
45
- return localMax + Number((indent - localMax) / 3);
46
- } else if (indent < localMin) {
47
- return localMin + Number((indent - localMin) / 3);
48
- }
49
- return indent;
50
- };
51
39
  const calculateCanSlideLeft = ()=>{
52
40
  if (looped) {
53
41
  return !slidesManager.current.isFullyVisible;
54
42
  }
55
- return !slidesManager.current.isFullyVisible && shiftXCurrentRef.current < 0;
43
+ const isStartShiftX = isBiggerOrEqual(shiftXCurrentRef.current, 0, isRtl);
44
+ return !slidesManager.current.isFullyVisible && !isStartShiftX;
56
45
  };
57
46
  const calculateCanSlideRight = ()=>{
58
47
  if (looped) {
59
48
  return !slidesManager.current.isFullyVisible;
60
49
  }
61
50
  return !slidesManager.current.isFullyVisible && // we can't move right when gallery layer fully scrolled right, if gallery aligned by left side
62
- (align === 'left' && slidesManager.current.containerWidth - shiftXCurrentRef.current < (slidesManager.current.layerWidth ?? 0) || // otherwise we need to check current slide index (align = right or align = center)
51
+ (align === 'left' && slidesManager.current.containerWidth - revertRtlValue(shiftXCurrentRef.current, isRtl) < (slidesManager.current.layerWidth ?? 0) || // otherwise we need to check current slide index (align = right or align = center)
63
52
  align !== 'left' && slideIndex < slidesManager.current.slides.length - 1);
64
53
  };
65
54
  const transformCssStyles = (shiftX, animation = false)=>{
@@ -80,39 +69,64 @@ export const CarouselBase = ({ bullets = false, getRootRef, children, slideWidth
80
69
  });
81
70
  }
82
71
  if (layerRef.current) {
83
- const indent = isDragging.current && !looped ? calculateDragIndent() : shiftX;
72
+ const indent = isDragging.current && !looped ? validateIndent(slidesManager.current, shiftXCurrentRef.current + shiftXDeltaRef.current, isRtl, false) : shiftX;
84
73
  layerRef.current.style.transform = `translate3d(${indent}px, 0, 0)`;
85
74
  layerRef.current.style.transition = animation ? `transform ${ANIMATION_DURATION}ms cubic-bezier(.1, 0, .25, 1)` : '';
86
75
  }
87
76
  };
77
+ const checkShiftOutOfBoundsFromStart = (shiftX, snaps)=>isBigger(shiftX, snaps[0], isRtl);
78
+ const checkShiftOutOfBoundsFromEnd = (shiftX, slides)=>{
79
+ /**
80
+ * Поскольку при `align="center"` слайды сдвинуты, прежде чем рассчитать крайнюю правую точку,
81
+ * нужно вычесть сдвиг слайдов
82
+ */ const firstSlideShift = align === 'center' ? (slidesManager.current.containerWidth - slidesManager.current.slides[0].width) / 2 : 0;
83
+ const lastPoint = slides[slides.length - 1].width + slides[slides.length - 1].coordX - firstSlideShift;
84
+ return isRtl ? shiftX >= lastPoint : shiftX <= -lastPoint;
85
+ };
88
86
  const requestTransform = (shiftX, animation = false)=>{
89
87
  const { snaps, contentSize, slides } = slidesManager.current;
90
88
  if (animationFrameRef.current !== null) {
91
89
  cancelAnimationFrame(animationFrameRef.current);
92
90
  }
93
91
  animationFrameRef.current = requestAnimationFrame(()=>{
94
- if (looped && shiftX > snaps[0]) {
95
- shiftXCurrentRef.current = -contentSize + snaps[0];
92
+ /**
93
+ * Для бесконечной галереи проверяем, что при dnd мы прокрутили левее, чем первый слайд,
94
+ * чтобы сбросить `shiftXCurrentRef`
95
+ */ if (looped && checkShiftOutOfBoundsFromStart(shiftX, snaps)) {
96
+ const firstSnap = revertRtlValue(snaps[0], isRtl);
97
+ shiftXCurrentRef.current = revertRtlValue(-contentSize + firstSnap, isRtl);
96
98
  shiftX = shiftXCurrentRef.current + shiftXDeltaRef.current;
97
99
  }
98
- const lastPoint = slides[slides.length - 1].width + slides[slides.length - 1].coordX;
99
- if (looped && shiftX <= -lastPoint) {
100
+ /**
101
+ * Для бесконечной галереи проверяем, что при dnd мы прокрутили правее, чем последний слайд,
102
+ * чтобы правильно пересчитать `shiftXCurrentRef`
103
+ */ if (looped && checkShiftOutOfBoundsFromEnd(shiftX, slides)) {
100
104
  shiftXCurrentRef.current = Math.abs(shiftXDeltaRef.current) + snaps[0];
101
105
  }
102
106
  transformCssStyles(shiftX, animation);
103
107
  });
104
108
  };
105
109
  const initializeSlides = ()=>{
106
- if (!rootRef.current || !viewportRef.current) {
110
+ if (!rootRef.current || !viewportRef.current || !layerRef.current) {
107
111
  return;
108
112
  }
113
+ const layerOffsetWidth = layerRef.current.offsetWidth;
114
+ const calcRtlCoord = (element)=>{
115
+ const offsetLeft = element.offsetLeft;
116
+ const offsetWidth = element.offsetWidth;
117
+ return layerOffsetWidth - offsetLeft - offsetWidth;
118
+ };
109
119
  let localSlides = React.Children.map(children, (_item, i)=>{
110
- const elem = slidesStore.current[i] || {
111
- offsetLeft: 0,
112
- offsetWidth: 0
113
- };
120
+ const elem = slidesStore.current[i];
121
+ if (!elem) {
122
+ return {
123
+ coordX: 0,
124
+ width: 0
125
+ };
126
+ }
127
+ const coordX = isRtl ? calcRtlCoord(elem) : elem.offsetLeft;
114
128
  return {
115
- coordX: elem.offsetLeft,
129
+ coordX,
116
130
  width: elem.offsetWidth
117
131
  };
118
132
  }) || [];
@@ -147,7 +161,8 @@ export const CarouselBase = ({ bullets = false, getRootRef, children, slideWidth
147
161
  max: looped || onlyOneSlide ? null : calcMax({
148
162
  slides: localSlides,
149
163
  containerWidth,
150
- isCenterAlign
164
+ isCenterAlign,
165
+ isRtl
151
166
  }),
152
167
  min: looped || onlyOneSlide ? null : calcMin({
153
168
  containerWidth,
@@ -155,19 +170,26 @@ export const CarouselBase = ({ bullets = false, getRootRef, children, slideWidth
155
170
  slides: localSlides,
156
171
  viewportOffsetWidth,
157
172
  isFullyVisible,
158
- align
173
+ align,
174
+ isRtl
159
175
  })
160
176
  };
161
- const snaps = localSlides.map((_, index)=>calculateIndent(index, slidesManager.current, isCenterAlign, looped));
162
- let contentSize = -snaps[snaps.length - 1] + localSlides[localSlides.length - 1].width;
177
+ const snaps = localSlides.map((_, index)=>calculateIndent({
178
+ targetIndex: index,
179
+ slidesManager: slidesManager.current,
180
+ isCenter: isCenterAlign,
181
+ looped,
182
+ isRtl
183
+ }));
184
+ let contentSize = Math.abs(snaps[snaps.length - 1]) + localSlides[localSlides.length - 1].width;
163
185
  if (align === 'center') {
164
- contentSize += snaps[0];
186
+ contentSize += revertRtlValue(snaps[0], isRtl);
165
187
  }
166
188
  slidesManager.current.snaps = snaps;
167
189
  slidesManager.current.contentSize = contentSize;
168
190
  // Если галерея не зациклена и слайд всего один, то рассчитывать loopPoints тоже не надо
169
191
  if (looped && !onlyOneSlide && !isFullyVisible) {
170
- slidesManager.current.loopPoints = getLoopPoints(slidesManager.current, containerWidth);
192
+ slidesManager.current.loopPoints = getLoopPoints(slidesManager.current, containerWidth, isRtl);
171
193
  }
172
194
  shiftXCurrentRef.current = snaps[slideIndex];
173
195
  initialized.current = true;
@@ -189,12 +211,14 @@ export const CarouselBase = ({ bullets = false, getRootRef, children, slideWidth
189
211
  const { snaps, slides } = slidesManager.current;
190
212
  const indent = snaps[slideIndex];
191
213
  let startPoint = shiftXCurrentRef.current;
214
+ const fromLastToFirst = isLowerOrEqual(shiftXCurrentRef.current, snaps[snaps.length - 1], isRtl);
192
215
  /**
193
216
  * Переключаемся с последнего элемента на первый
194
217
  * Для корректной анимации мы прокручиваем последний слайд на всю длину (shiftX) "вперед"
195
218
  * В конце анимации при отрисовке следующего кадра задаем всем слайдам начальные значения
196
- */ if (indent === snaps[0] && shiftXCurrentRef.current <= snaps[snaps.length - 1]) {
197
- const distance = Math.abs(snaps[snaps.length - 1]) + slides[slides.length - 1].width + startPoint;
219
+ */ if (indent === snaps[0] && fromLastToFirst) {
220
+ const endEdge = revertRtlValue(Math.abs(snaps[snaps.length - 1]) + slides[slides.length - 1].width, isRtl);
221
+ const distance = endEdge + startPoint;
198
222
  addToAnimationQueue(getAnimateFunction((progress)=>{
199
223
  const shiftX = startPoint + progress * distance * -1;
200
224
  transformCssStyles(shiftX);
@@ -210,13 +234,14 @@ export const CarouselBase = ({ bullets = false, getRootRef, children, slideWidth
210
234
  * Для корректной анимации сначала задаем первым видимым слайдам смещение
211
235
  * В следующем кадре начинаем анимация прокрутки "назад"
212
236
  */ } else if (indent === snaps[snaps.length - 1] && shiftXCurrentRef.current === snaps[0]) {
213
- startPoint = indent - slides[slides.length - 1].width;
237
+ startPoint = indent - revertRtlValue(slides[slides.length - 1].width, isRtl);
214
238
  addToAnimationQueue(()=>{
215
239
  requestAnimationFrame(()=>{
216
- const shiftX = indent - slides[slides.length - 1].width;
240
+ const shiftX = indent - revertRtlValue(slides[slides.length - 1].width, isRtl);
217
241
  transformCssStyles(shiftX);
218
242
  getAnimateFunction((progress)=>{
219
- transformCssStyles(startPoint + progress * slides[slides.length - 1].width);
243
+ const diff = revertRtlValue(progress * slides[slides.length - 1].width, isRtl);
244
+ transformCssStyles(startPoint + diff);
220
245
  })();
221
246
  });
222
247
  });
@@ -270,21 +295,22 @@ export const CarouselBase = ({ bullets = false, getRootRef, children, slideWidth
270
295
  useIsomorphicLayoutEffect(initializeSlides, [
271
296
  align,
272
297
  slideWidth,
273
- looped
298
+ looped,
299
+ isRtl
274
300
  ]);
275
301
  const calculateMinDeltaXToSlide = ()=>{
276
302
  return slidesManager.current.slides[slideIndex].width * SLIDE_THRESHOLD;
277
303
  };
278
304
  const slideLeft = (event)=>{
279
305
  if (slideIndex > 0) {
280
- shiftXCurrentRef.current += calculateMinDeltaXToSlide();
306
+ shiftXCurrentRef.current += revertRtlValue(calculateMinDeltaXToSlide(), isRtl);
281
307
  }
282
308
  onChange?.((slideIndex - 1 + slidesManager.current.slides.length) % slidesManager.current.slides.length);
283
309
  onPrevClick?.(event);
284
310
  };
285
311
  const slideRight = (event)=>{
286
312
  if (slideIndex < slidesManager.current.slides.length - 1) {
287
- shiftXCurrentRef.current -= calculateMinDeltaXToSlide();
313
+ shiftXCurrentRef.current -= revertRtlValue(calculateMinDeltaXToSlide(), isRtl);
288
314
  }
289
315
  onChange?.((slideIndex + 1) % slidesManager.current.slides.length);
290
316
  onNextClick?.(event);
@@ -320,7 +346,8 @@ export const CarouselBase = ({ bullets = false, getRootRef, children, slideWidth
320
346
  currentShiftX: shiftXCurrentRef.current,
321
347
  currentShiftXDelta: shiftXDeltaRef.current,
322
348
  max: slidesManager.current.max,
323
- looped
349
+ looped,
350
+ isRtl
324
351
  });
325
352
  }
326
353
  onDragEnd?.(e, targetIndex);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CarouselBase/CarouselBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMutationObserver } from '../../hooks/useMutationObserver';\nimport { useResizeObserver } from '../../hooks/useResizeObserver';\nimport { useDOM } from '../../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { type CustomTouchEvent } from '../Touch/Touch';\nimport { Bullets } from './Bullets';\nimport { CarouselViewPort } from './CarouselViewPort';\nimport { ScrollArrows } from './ScrollArrows';\nimport {\n ANIMATION_DURATION,\n CONTROL_ELEMENTS_STATE,\n SLIDE_THRESHOLD,\n SLIDES_MANAGER_STATE,\n} from './constants';\nimport { calcMax, calcMin, calculateIndent, getLoopPoints, getTargetIndex } from './helpers';\nimport { useSlideAnimation } from './hooks';\nimport {\n type BaseGalleryProps,\n type ControlElementsState,\n type GallerySlidesState,\n type SlidesManagerState,\n} from './types';\nimport styles from './CarouselBase.module.css';\n\nconst warn = warnOnce('Gallery');\n\nexport const CarouselBase = ({\n bullets = false,\n getRootRef,\n children,\n slideWidth = '100%',\n slideIndex = 0,\n dragDisabled = false,\n resizeSource = 'window',\n onDragStart,\n onDragEnd,\n onChange,\n onPrevClick,\n onNextClick,\n align = 'left',\n showArrows,\n getRef,\n arrowSize,\n arrowAreaHeight,\n slideTestId,\n bulletTestId,\n nextArrowTestId,\n prevArrowTestId,\n looped = false,\n ...restProps\n}: BaseGalleryProps): React.ReactNode => {\n const slidesStore = React.useRef<Record<string, HTMLDivElement | null>>({});\n const slidesManager = React.useRef<SlidesManagerState>(SLIDES_MANAGER_STATE);\n\n const rootRef = useExternRef(getRootRef);\n const viewportRef = useExternRef(getRef);\n const layerRef = React.useRef<HTMLDivElement>(null);\n const animationFrameRef = React.useRef<ReturnType<typeof requestAnimationFrame> | null>(null);\n const shiftXCurrentRef = React.useRef<number>(0);\n const shiftXDeltaRef = React.useRef<number>(0);\n const initialized = React.useRef<boolean>(false);\n const { addToAnimationQueue, getAnimateFunction, startAnimation } = useSlideAnimation();\n const isDragging = React.useRef(false);\n\n const [controlElementsState, setControlElementsState] =\n React.useState<ControlElementsState>(CONTROL_ELEMENTS_STATE);\n\n const hasPointer = useAdaptivityHasPointer();\n\n const isCenterAlign = align === 'center';\n\n /*\n * Считает отступ слоя галереи во время драга\n * Используется только для looped=false галереи\n * так как только у нее есть пределы по краям\n */\n const calculateDragIndent = () => {\n const localMax = slidesManager.current.max ?? 0;\n const localMin = slidesManager.current.min ?? 0;\n const indent = shiftXCurrentRef.current + shiftXDeltaRef.current;\n\n if (indent > localMax) {\n return localMax + Number((indent - localMax) / 3);\n } else if (indent < localMin) {\n return localMin + Number((indent - localMin) / 3);\n }\n\n return indent;\n };\n\n const calculateCanSlideLeft = () => {\n if (looped) {\n return !slidesManager.current.isFullyVisible;\n }\n return !slidesManager.current.isFullyVisible && shiftXCurrentRef.current < 0;\n };\n\n const calculateCanSlideRight = () => {\n if (looped) {\n return !slidesManager.current.isFullyVisible;\n }\n return (\n !slidesManager.current.isFullyVisible &&\n // we can't move right when gallery layer fully scrolled right, if gallery aligned by left side\n ((align === 'left' &&\n slidesManager.current.containerWidth - shiftXCurrentRef.current <\n (slidesManager.current.layerWidth ?? 0)) ||\n // otherwise we need to check current slide index (align = right or align = center)\n (align !== 'left' && slideIndex < slidesManager.current.slides.length - 1))\n );\n };\n\n const transformCssStyles = (shiftX: number, animation = false) => {\n shiftX = Math.round(shiftX);\n if (looped) {\n slidesManager.current.loopPoints.forEach((loopPoint) => {\n const { target, index } = loopPoint;\n const slide = slidesStore.current[index];\n if (slide) {\n slide.style.transform = `translate3d(${target(shiftX)}px, 0, 0)`;\n }\n });\n } else {\n Object.values(slidesStore.current).forEach((slide) => {\n if (slide) {\n slide.style.transform = '';\n }\n });\n }\n\n if (layerRef.current) {\n const indent = isDragging.current && !looped ? calculateDragIndent() : shiftX;\n\n layerRef.current.style.transform = `translate3d(${indent}px, 0, 0)`;\n layerRef.current.style.transition = animation\n ? `transform ${ANIMATION_DURATION}ms cubic-bezier(.1, 0, .25, 1)`\n : '';\n }\n };\n\n const requestTransform = (shiftX: number, animation = false) => {\n const { snaps, contentSize, slides } = slidesManager.current;\n\n if (animationFrameRef.current !== null) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n animationFrameRef.current = requestAnimationFrame(() => {\n if (looped && shiftX > snaps[0]) {\n shiftXCurrentRef.current = -contentSize + snaps[0];\n shiftX = shiftXCurrentRef.current + shiftXDeltaRef.current;\n }\n const lastPoint = slides[slides.length - 1].width + slides[slides.length - 1].coordX;\n\n if (looped && shiftX <= -lastPoint) {\n shiftXCurrentRef.current = Math.abs(shiftXDeltaRef.current) + snaps[0];\n }\n transformCssStyles(shiftX, animation);\n });\n };\n\n const initializeSlides = () => {\n if (!rootRef.current || !viewportRef.current) {\n return;\n }\n let localSlides =\n React.Children.map(children, (_item, i): GallerySlidesState => {\n const elem = slidesStore.current[i] || { offsetLeft: 0, offsetWidth: 0 };\n return { coordX: elem.offsetLeft, width: elem.offsetWidth };\n }) || [];\n\n if (localSlides.length === 0) {\n initialized.current = false;\n return;\n }\n\n const containerWidth = rootRef.current.offsetWidth;\n const viewportOffsetWidth = viewportRef.current.offsetWidth;\n const layerWidth = localSlides.reduce((val, slide) => slide.width + val, 0);\n\n if (process.env.NODE_ENV === 'development' && looped) {\n let remainingWidth = containerWidth;\n let slideIndex = 0;\n\n while (remainingWidth > 0 && slideIndex < localSlides.length) {\n remainingWidth -= localSlides[slideIndex].width;\n slideIndex++;\n }\n if (remainingWidth <= 0 && slideIndex === localSlides.length) {\n warn(\n 'Ширины слайдов недостаточно для корректной работы свойства \"looped\". Пожалуйста, сделайте её больше.',\n );\n }\n }\n\n const currentSlideOffsetOnCenterAlignment =\n (containerWidth - (localSlides[slideIndex]?.width ?? 0)) / 2;\n const isFullyVisible =\n align === 'center'\n ? layerWidth + currentSlideOffsetOnCenterAlignment <= containerWidth\n : layerWidth <= containerWidth;\n\n const onlyOneSlide = localSlides.length === 1;\n\n slidesManager.current = {\n ...slidesManager.current,\n layerWidth,\n containerWidth,\n viewportOffsetWidth,\n slides: localSlides,\n isFullyVisible,\n max:\n looped || onlyOneSlide\n ? null\n : calcMax({\n slides: localSlides,\n containerWidth,\n isCenterAlign,\n }),\n min:\n looped || onlyOneSlide\n ? null\n : calcMin({\n containerWidth,\n layerWidth,\n slides: localSlides,\n viewportOffsetWidth,\n isFullyVisible,\n align,\n }),\n };\n const snaps = localSlides.map((_, index) =>\n calculateIndent(index, slidesManager.current, isCenterAlign, looped),\n );\n\n let contentSize = -snaps[snaps.length - 1] + localSlides[localSlides.length - 1].width;\n if (align === 'center') {\n contentSize += snaps[0];\n }\n\n slidesManager.current.snaps = snaps;\n slidesManager.current.contentSize = contentSize;\n // Если галерея не зациклена и слайд всего один, то рассчитывать loopPoints тоже не надо\n if (looped && !onlyOneSlide && !isFullyVisible) {\n slidesManager.current.loopPoints = getLoopPoints(slidesManager.current, containerWidth);\n }\n\n shiftXCurrentRef.current = snaps[slideIndex];\n initialized.current = true;\n\n setControlElementsState({\n canSlideLeft: calculateCanSlideLeft(),\n canSlideRight: calculateCanSlideRight(),\n isDraggable: !(dragDisabled || slidesManager.current.isFullyVisible),\n });\n requestTransform(shiftXCurrentRef.current);\n };\n\n const onResize = () => {\n if (initialized.current) {\n initializeSlides();\n }\n };\n const { window } = useDOM();\n useResizeObserver(resizeSource === 'element' ? rootRef : window, onResize);\n\n const loopedSlideChangePerform = () => {\n const { snaps, slides } = slidesManager.current;\n const indent = snaps[slideIndex];\n let startPoint = shiftXCurrentRef.current;\n\n /**\n * Переключаемся с последнего элемента на первый\n * Для корректной анимации мы прокручиваем последний слайд на всю длину (shiftX) \"вперед\"\n * В конце анимации при отрисовке следующего кадра задаем всем слайдам начальные значения\n */\n if (indent === snaps[0] && shiftXCurrentRef.current <= snaps[snaps.length - 1]) {\n const distance =\n Math.abs(snaps[snaps.length - 1]) + slides[slides.length - 1].width + startPoint;\n\n addToAnimationQueue(\n getAnimateFunction((progress) => {\n const shiftX = startPoint + progress * distance * -1;\n\n transformCssStyles(shiftX);\n\n if (shiftX <= snaps[snaps.length - 1] - slides[slides.length - 1].width) {\n requestAnimationFrame(() => {\n shiftXCurrentRef.current = indent;\n transformCssStyles(snaps[0]);\n });\n }\n }),\n );\n /**\n * Переключаемся с первого слайда на последний\n * Для корректной анимации сначала задаем первым видимым слайдам смещение\n * В следующем кадре начинаем анимация прокрутки \"назад\"\n */\n } else if (indent === snaps[snaps.length - 1] && shiftXCurrentRef.current === snaps[0]) {\n startPoint = indent - slides[slides.length - 1].width;\n\n addToAnimationQueue(() => {\n requestAnimationFrame(() => {\n const shiftX = indent - slides[slides.length - 1].width;\n transformCssStyles(shiftX);\n\n getAnimateFunction((progress) => {\n transformCssStyles(startPoint + progress * slides[slides.length - 1].width);\n })();\n });\n });\n /**\n * Если не обработаны `corner`-кейсы выше, то просто проигрываем анимацию смещения\n */\n } else {\n addToAnimationQueue(() => {\n const distance = Math.abs(indent - startPoint);\n let direction = startPoint <= indent ? 1 : -1;\n\n getAnimateFunction((progress) => {\n const shiftX = startPoint + progress * distance * direction;\n transformCssStyles(shiftX);\n })();\n });\n }\n };\n\n const simpleSlideChangePerform = () => {\n const { snaps } = slidesManager.current;\n requestTransform(snaps[slideIndex], true);\n };\n\n useIsomorphicLayoutEffect(\n function performSlideChange() {\n if (!initialized.current) {\n return;\n }\n const { snaps } = slidesManager.current;\n const indent = snaps[slideIndex];\n\n if (looped) {\n loopedSlideChangePerform();\n } else {\n simpleSlideChangePerform();\n }\n\n startAnimation();\n\n shiftXCurrentRef.current = indent;\n\n setControlElementsState((v) => ({\n ...v,\n canSlideLeft: calculateCanSlideLeft(),\n canSlideRight: calculateCanSlideRight(),\n }));\n },\n [slideIndex],\n );\n\n useIsomorphicLayoutEffect(\n function updateIsDraggable() {\n setControlElementsState((v) => ({\n ...v,\n isDraggable: !(dragDisabled || slidesManager.current.isFullyVisible),\n }));\n },\n [dragDisabled],\n );\n\n useMutationObserver(layerRef, initializeSlides);\n\n useIsomorphicLayoutEffect(initializeSlides, [align, slideWidth, looped]);\n\n const calculateMinDeltaXToSlide = () => {\n return slidesManager.current.slides[slideIndex].width * SLIDE_THRESHOLD;\n };\n\n const slideLeft = (event: React.MouseEvent) => {\n if (slideIndex > 0) {\n shiftXCurrentRef.current += calculateMinDeltaXToSlide();\n }\n onChange?.(\n (slideIndex - 1 + slidesManager.current.slides.length) % slidesManager.current.slides.length,\n );\n onPrevClick?.(event);\n };\n\n const slideRight = (event: React.MouseEvent) => {\n if (slideIndex < slidesManager.current.slides.length - 1) {\n shiftXCurrentRef.current -= calculateMinDeltaXToSlide();\n }\n onChange?.((slideIndex + 1) % slidesManager.current.slides.length);\n onNextClick?.(event);\n };\n\n const onStart = (e: CustomTouchEvent) => {\n e.originalEvent.stopPropagation();\n if (controlElementsState.isDraggable) {\n onDragStart?.(e);\n shiftXCurrentRef.current = slidesManager.current.snaps[slideIndex];\n shiftXDeltaRef.current = 0;\n }\n };\n\n const onMoveX = (e: CustomTouchEvent) => {\n if (controlElementsState.isDraggable) {\n e.originalEvent.preventDefault();\n\n if (e.isSlideX) {\n isDragging.current = true;\n if (shiftXDeltaRef.current !== e.shiftX) {\n shiftXDeltaRef.current = e.shiftX;\n requestTransform(shiftXCurrentRef.current + shiftXDeltaRef.current);\n }\n }\n }\n };\n\n const onEnd = (e: CustomTouchEvent) => {\n if (controlElementsState.isDraggable) {\n isDragging.current = false;\n let targetIndex = slideIndex;\n if (e.isSlide) {\n targetIndex = getTargetIndex({\n slides: slidesManager.current.slides,\n slideIndex,\n currentShiftX: shiftXCurrentRef.current,\n currentShiftXDelta: shiftXDeltaRef.current,\n max: slidesManager.current.max,\n looped,\n });\n }\n onDragEnd?.(e, targetIndex);\n\n if (targetIndex !== slideIndex) {\n shiftXCurrentRef.current = shiftXCurrentRef.current + shiftXDeltaRef.current;\n onChange?.(targetIndex);\n } else {\n const initialShiftX = slidesManager.current.snaps[targetIndex];\n requestTransform(initialShiftX, true);\n }\n }\n };\n\n const setSlideRef = (slideRef: HTMLDivElement | null, slideIndex: number) => {\n slidesStore.current[slideIndex] = slideRef;\n };\n\n const { isDraggable, canSlideRight, canSlideLeft } = controlElementsState;\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles.host,\n slideWidth === 'custom' && styles.customWidth,\n isDraggable && styles.draggable,\n )}\n getRootRef={rootRef}\n >\n <CarouselViewPort\n slideWidth={slideWidth}\n slideTestId={slideTestId}\n onStart={onStart}\n onMoveX={onMoveX}\n onEnd={onEnd}\n getRootRef={viewportRef}\n layerRef={layerRef}\n setSlideRef={setSlideRef}\n >\n {children}\n </CarouselViewPort>\n\n {bullets && (\n <Bullets\n bullets={bullets}\n slideIndex={slideIndex}\n count={React.Children.count(children)}\n bulletTestId={bulletTestId}\n />\n )}\n <ScrollArrows\n hasPointer={hasPointer}\n canSlideLeft={canSlideLeft}\n canSlideRight={canSlideRight}\n onSlideRight={slideRight}\n onSlideLeft={slideLeft}\n showArrows={showArrows}\n arrowSize={arrowSize}\n arrowAreaHeight={arrowAreaHeight}\n prevArrowTestId={prevArrowTestId}\n nextArrowTestId={nextArrowTestId}\n />\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useAdaptivityHasPointer","useExternRef","useMutationObserver","useResizeObserver","useDOM","useIsomorphicLayoutEffect","warnOnce","RootComponent","Bullets","CarouselViewPort","ScrollArrows","ANIMATION_DURATION","CONTROL_ELEMENTS_STATE","SLIDE_THRESHOLD","SLIDES_MANAGER_STATE","calcMax","calcMin","calculateIndent","getLoopPoints","getTargetIndex","useSlideAnimation","styles","warn","CarouselBase","bullets","getRootRef","children","slideWidth","slideIndex","dragDisabled","resizeSource","onDragStart","onDragEnd","onChange","onPrevClick","onNextClick","align","showArrows","getRef","arrowSize","arrowAreaHeight","slideTestId","bulletTestId","nextArrowTestId","prevArrowTestId","looped","restProps","slidesStore","useRef","slidesManager","rootRef","viewportRef","layerRef","animationFrameRef","shiftXCurrentRef","shiftXDeltaRef","initialized","addToAnimationQueue","getAnimateFunction","startAnimation","isDragging","controlElementsState","setControlElementsState","useState","hasPointer","isCenterAlign","calculateDragIndent","localMax","current","max","localMin","min","indent","Number","calculateCanSlideLeft","isFullyVisible","calculateCanSlideRight","containerWidth","layerWidth","slides","length","transformCssStyles","shiftX","animation","Math","round","loopPoints","forEach","loopPoint","target","index","slide","style","transform","Object","values","transition","requestTransform","snaps","contentSize","cancelAnimationFrame","requestAnimationFrame","lastPoint","width","coordX","abs","initializeSlides","localSlides","Children","map","_item","i","elem","offsetLeft","offsetWidth","viewportOffsetWidth","reduce","val","process","env","NODE_ENV","remainingWidth","currentSlideOffsetOnCenterAlignment","onlyOneSlide","_","canSlideLeft","canSlideRight","isDraggable","onResize","window","loopedSlideChangePerform","startPoint","distance","progress","direction","simpleSlideChangePerform","performSlideChange","v","updateIsDraggable","calculateMinDeltaXToSlide","slideLeft","event","slideRight","onStart","e","originalEvent","stopPropagation","onMoveX","preventDefault","isSlideX","onEnd","targetIndex","isSlide","currentShiftX","currentShiftXDelta","initialShiftX","setSlideRef","slideRef","baseClassName","host","customWidth","draggable","count","onSlideRight","onSlideLeft"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,uBAAuB,QAAQ,yCAAsC;AAC9E,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,mBAAmB,QAAQ,qCAAkC;AACtE,SAASC,iBAAiB,QAAQ,mCAAgC;AAClE,SAASC,MAAM,QAAQ,mBAAgB;AACvC,SAASC,yBAAyB,QAAQ,yCAAsC;AAChF,SAASC,QAAQ,QAAQ,wBAAqB;AAC9C,SAASC,aAAa,QAAQ,oCAAiC;AAE/D,SAASC,OAAO,QAAQ,eAAY;AACpC,SAASC,gBAAgB,QAAQ,wBAAqB;AACtD,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SACEC,kBAAkB,EAClBC,sBAAsB,EACtBC,eAAe,EACfC,oBAAoB,QACf,iBAAc;AACrB,SAASC,OAAO,EAAEC,OAAO,EAAEC,eAAe,EAAEC,aAAa,EAAEC,cAAc,QAAQ,eAAY;AAC7F,SAASC,iBAAiB,QAAQ,aAAU;AAO5C,OAAOC,YAAY,4BAA4B;AAE/C,MAAMC,OAAOhB,SAAS;AAEtB,OAAO,MAAMiB,eAAe,CAAC,EAC3BC,UAAU,KAAK,EACfC,UAAU,EACVC,QAAQ,EACRC,aAAa,MAAM,EACnBC,aAAa,CAAC,EACdC,eAAe,KAAK,EACpBC,eAAe,QAAQ,EACvBC,WAAW,EACXC,SAAS,EACTC,QAAQ,EACRC,WAAW,EACXC,WAAW,EACXC,QAAQ,MAAM,EACdC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,eAAe,EACfC,WAAW,EACXC,YAAY,EACZC,eAAe,EACfC,eAAe,EACfC,SAAS,KAAK,EACd,GAAGC,WACc;IACjB,MAAMC,cAAcjD,MAAMkD,MAAM,CAAwC,CAAC;IACzE,MAAMC,gBAAgBnD,MAAMkD,MAAM,CAAqBlC;IAEvD,MAAMoC,UAAUjD,aAAawB;IAC7B,MAAM0B,cAAclD,aAAaqC;IACjC,MAAMc,WAAWtD,MAAMkD,MAAM,CAAiB;IAC9C,MAAMK,oBAAoBvD,MAAMkD,MAAM,CAAkD;IACxF,MAAMM,mBAAmBxD,MAAMkD,MAAM,CAAS;IAC9C,MAAMO,iBAAiBzD,MAAMkD,MAAM,CAAS;IAC5C,MAAMQ,cAAc1D,MAAMkD,MAAM,CAAU;IAC1C,MAAM,EAAES,mBAAmB,EAAEC,kBAAkB,EAAEC,cAAc,EAAE,GAAGvC;IACpE,MAAMwC,aAAa9D,MAAMkD,MAAM,CAAC;IAEhC,MAAM,CAACa,sBAAsBC,wBAAwB,GACnDhE,MAAMiE,QAAQ,CAAuBnD;IAEvC,MAAMoD,aAAahE;IAEnB,MAAMiE,gBAAgB7B,UAAU;IAEhC;;;;GAIC,GACD,MAAM8B,sBAAsB;QAC1B,MAAMC,WAAWlB,cAAcmB,OAAO,CAACC,GAAG,IAAI;QAC9C,MAAMC,WAAWrB,cAAcmB,OAAO,CAACG,GAAG,IAAI;QAC9C,MAAMC,SAASlB,iBAAiBc,OAAO,GAAGb,eAAea,OAAO;QAEhE,IAAII,SAASL,UAAU;YACrB,OAAOA,WAAWM,OAAO,AAACD,CAAAA,SAASL,QAAO,IAAK;QACjD,OAAO,IAAIK,SAASF,UAAU;YAC5B,OAAOA,WAAWG,OAAO,AAACD,CAAAA,SAASF,QAAO,IAAK;QACjD;QAEA,OAAOE;IACT;IAEA,MAAME,wBAAwB;QAC5B,IAAI7B,QAAQ;YACV,OAAO,CAACI,cAAcmB,OAAO,CAACO,cAAc;QAC9C;QACA,OAAO,CAAC1B,cAAcmB,OAAO,CAACO,cAAc,IAAIrB,iBAAiBc,OAAO,GAAG;IAC7E;IAEA,MAAMQ,yBAAyB;QAC7B,IAAI/B,QAAQ;YACV,OAAO,CAACI,cAAcmB,OAAO,CAACO,cAAc;QAC9C;QACA,OACE,CAAC1B,cAAcmB,OAAO,CAACO,cAAc,IACrC,+FAA+F;QAC9F,CAAA,AAACvC,UAAU,UACVa,cAAcmB,OAAO,CAACS,cAAc,GAAGvB,iBAAiBc,OAAO,GAC5DnB,CAAAA,cAAcmB,OAAO,CAACU,UAAU,IAAI,CAAA,KACvC,mFAAmF;QAClF1C,UAAU,UAAUR,aAAaqB,cAAcmB,OAAO,CAACW,MAAM,CAACC,MAAM,GAAG,CAAC;IAE/E;IAEA,MAAMC,qBAAqB,CAACC,QAAgBC,YAAY,KAAK;QAC3DD,SAASE,KAAKC,KAAK,CAACH;QACpB,IAAIrC,QAAQ;YACVI,cAAcmB,OAAO,CAACkB,UAAU,CAACC,OAAO,CAAC,CAACC;gBACxC,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAGF;gBAC1B,MAAMG,QAAQ5C,YAAYqB,OAAO,CAACsB,MAAM;gBACxC,IAAIC,OAAO;oBACTA,MAAMC,KAAK,CAACC,SAAS,GAAG,CAAC,YAAY,EAAEJ,OAAOP,QAAQ,SAAS,CAAC;gBAClE;YACF;QACF,OAAO;YACLY,OAAOC,MAAM,CAAChD,YAAYqB,OAAO,EAAEmB,OAAO,CAAC,CAACI;gBAC1C,IAAIA,OAAO;oBACTA,MAAMC,KAAK,CAACC,SAAS,GAAG;gBAC1B;YACF;QACF;QAEA,IAAIzC,SAASgB,OAAO,EAAE;YACpB,MAAMI,SAASZ,WAAWQ,OAAO,IAAI,CAACvB,SAASqB,wBAAwBgB;YAEvE9B,SAASgB,OAAO,CAACwB,KAAK,CAACC,SAAS,GAAG,CAAC,YAAY,EAAErB,OAAO,SAAS,CAAC;YACnEpB,SAASgB,OAAO,CAACwB,KAAK,CAACI,UAAU,GAAGb,YAChC,CAAC,UAAU,EAAExE,mBAAmB,8BAA8B,CAAC,GAC/D;QACN;IACF;IAEA,MAAMsF,mBAAmB,CAACf,QAAgBC,YAAY,KAAK;QACzD,MAAM,EAAEe,KAAK,EAAEC,WAAW,EAAEpB,MAAM,EAAE,GAAG9B,cAAcmB,OAAO;QAE5D,IAAIf,kBAAkBe,OAAO,KAAK,MAAM;YACtCgC,qBAAqB/C,kBAAkBe,OAAO;QAChD;QACAf,kBAAkBe,OAAO,GAAGiC,sBAAsB;YAChD,IAAIxD,UAAUqC,SAASgB,KAAK,CAAC,EAAE,EAAE;gBAC/B5C,iBAAiBc,OAAO,GAAG,CAAC+B,cAAcD,KAAK,CAAC,EAAE;gBAClDhB,SAAS5B,iBAAiBc,OAAO,GAAGb,eAAea,OAAO;YAC5D;YACA,MAAMkC,YAAYvB,MAAM,CAACA,OAAOC,MAAM,GAAG,EAAE,CAACuB,KAAK,GAAGxB,MAAM,CAACA,OAAOC,MAAM,GAAG,EAAE,CAACwB,MAAM;YAEpF,IAAI3D,UAAUqC,UAAU,CAACoB,WAAW;gBAClChD,iBAAiBc,OAAO,GAAGgB,KAAKqB,GAAG,CAAClD,eAAea,OAAO,IAAI8B,KAAK,CAAC,EAAE;YACxE;YACAjB,mBAAmBC,QAAQC;QAC7B;IACF;IAEA,MAAMuB,mBAAmB;QACvB,IAAI,CAACxD,QAAQkB,OAAO,IAAI,CAACjB,YAAYiB,OAAO,EAAE;YAC5C;QACF;QACA,IAAIuC,cACF7G,MAAM8G,QAAQ,CAACC,GAAG,CAACnF,UAAU,CAACoF,OAAOC;YACnC,MAAMC,OAAOjE,YAAYqB,OAAO,CAAC2C,EAAE,IAAI;gBAAEE,YAAY;gBAAGC,aAAa;YAAE;YACvE,OAAO;gBAAEV,QAAQQ,KAAKC,UAAU;gBAAEV,OAAOS,KAAKE,WAAW;YAAC;QAC5D,MAAM,EAAE;QAEV,IAAIP,YAAY3B,MAAM,KAAK,GAAG;YAC5BxB,YAAYY,OAAO,GAAG;YACtB;QACF;QAEA,MAAMS,iBAAiB3B,QAAQkB,OAAO,CAAC8C,WAAW;QAClD,MAAMC,sBAAsBhE,YAAYiB,OAAO,CAAC8C,WAAW;QAC3D,MAAMpC,aAAa6B,YAAYS,MAAM,CAAC,CAACC,KAAK1B,QAAUA,MAAMY,KAAK,GAAGc,KAAK;QAEzE,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBAAiB3E,QAAQ;YACpD,IAAI4E,iBAAiB5C;YACrB,IAAIjD,aAAa;YAEjB,MAAO6F,iBAAiB,KAAK7F,aAAa+E,YAAY3B,MAAM,CAAE;gBAC5DyC,kBAAkBd,WAAW,CAAC/E,WAAW,CAAC2E,KAAK;gBAC/C3E;YACF;YACA,IAAI6F,kBAAkB,KAAK7F,eAAe+E,YAAY3B,MAAM,EAAE;gBAC5D1D,KACE;YAEJ;QACF;QAEA,MAAMoG,sCACJ,AAAC7C,CAAAA,iBAAkB8B,CAAAA,WAAW,CAAC/E,WAAW,EAAE2E,SAAS,CAAA,CAAC,IAAK;QAC7D,MAAM5B,iBACJvC,UAAU,WACN0C,aAAa4C,uCAAuC7C,iBACpDC,cAAcD;QAEpB,MAAM8C,eAAehB,YAAY3B,MAAM,KAAK;QAE5C/B,cAAcmB,OAAO,GAAG;YACtB,GAAGnB,cAAcmB,OAAO;YACxBU;YACAD;YACAsC;YACApC,QAAQ4B;YACRhC;YACAN,KACExB,UAAU8E,eACN,OACA5G,QAAQ;gBACNgE,QAAQ4B;gBACR9B;gBACAZ;YACF;YACNM,KACE1B,UAAU8E,eACN,OACA3G,QAAQ;gBACN6D;gBACAC;gBACAC,QAAQ4B;gBACRQ;gBACAxC;gBACAvC;YACF;QACR;QACA,MAAM8D,QAAQS,YAAYE,GAAG,CAAC,CAACe,GAAGlC,QAChCzE,gBAAgByE,OAAOzC,cAAcmB,OAAO,EAAEH,eAAepB;QAG/D,IAAIsD,cAAc,CAACD,KAAK,CAACA,MAAMlB,MAAM,GAAG,EAAE,GAAG2B,WAAW,CAACA,YAAY3B,MAAM,GAAG,EAAE,CAACuB,KAAK;QACtF,IAAInE,UAAU,UAAU;YACtB+D,eAAeD,KAAK,CAAC,EAAE;QACzB;QAEAjD,cAAcmB,OAAO,CAAC8B,KAAK,GAAGA;QAC9BjD,cAAcmB,OAAO,CAAC+B,WAAW,GAAGA;QACpC,wFAAwF;QACxF,IAAItD,UAAU,CAAC8E,gBAAgB,CAAChD,gBAAgB;YAC9C1B,cAAcmB,OAAO,CAACkB,UAAU,GAAGpE,cAAc+B,cAAcmB,OAAO,EAAES;QAC1E;QAEAvB,iBAAiBc,OAAO,GAAG8B,KAAK,CAACtE,WAAW;QAC5C4B,YAAYY,OAAO,GAAG;QAEtBN,wBAAwB;YACtB+D,cAAcnD;YACdoD,eAAelD;YACfmD,aAAa,CAAElG,CAAAA,gBAAgBoB,cAAcmB,OAAO,CAACO,cAAc,AAAD;QACpE;QACAsB,iBAAiB3C,iBAAiBc,OAAO;IAC3C;IAEA,MAAM4D,WAAW;QACf,IAAIxE,YAAYY,OAAO,EAAE;YACvBsC;QACF;IACF;IACA,MAAM,EAAEuB,MAAM,EAAE,GAAG7H;IACnBD,kBAAkB2B,iBAAiB,YAAYoB,UAAU+E,QAAQD;IAEjE,MAAME,2BAA2B;QAC/B,MAAM,EAAEhC,KAAK,EAAEnB,MAAM,EAAE,GAAG9B,cAAcmB,OAAO;QAC/C,MAAMI,SAAS0B,KAAK,CAACtE,WAAW;QAChC,IAAIuG,aAAa7E,iBAAiBc,OAAO;QAEzC;;;;KAIC,GACD,IAAII,WAAW0B,KAAK,CAAC,EAAE,IAAI5C,iBAAiBc,OAAO,IAAI8B,KAAK,CAACA,MAAMlB,MAAM,GAAG,EAAE,EAAE;YAC9E,MAAMoD,WACJhD,KAAKqB,GAAG,CAACP,KAAK,CAACA,MAAMlB,MAAM,GAAG,EAAE,IAAID,MAAM,CAACA,OAAOC,MAAM,GAAG,EAAE,CAACuB,KAAK,GAAG4B;YAExE1E,oBACEC,mBAAmB,CAAC2E;gBAClB,MAAMnD,SAASiD,aAAaE,WAAWD,WAAW,CAAC;gBAEnDnD,mBAAmBC;gBAEnB,IAAIA,UAAUgB,KAAK,CAACA,MAAMlB,MAAM,GAAG,EAAE,GAAGD,MAAM,CAACA,OAAOC,MAAM,GAAG,EAAE,CAACuB,KAAK,EAAE;oBACvEF,sBAAsB;wBACpB/C,iBAAiBc,OAAO,GAAGI;wBAC3BS,mBAAmBiB,KAAK,CAAC,EAAE;oBAC7B;gBACF;YACF;QAEF;;;;OAIC,GACH,OAAO,IAAI1B,WAAW0B,KAAK,CAACA,MAAMlB,MAAM,GAAG,EAAE,IAAI1B,iBAAiBc,OAAO,KAAK8B,KAAK,CAAC,EAAE,EAAE;YACtFiC,aAAa3D,SAASO,MAAM,CAACA,OAAOC,MAAM,GAAG,EAAE,CAACuB,KAAK;YAErD9C,oBAAoB;gBAClB4C,sBAAsB;oBACpB,MAAMnB,SAASV,SAASO,MAAM,CAACA,OAAOC,MAAM,GAAG,EAAE,CAACuB,KAAK;oBACvDtB,mBAAmBC;oBAEnBxB,mBAAmB,CAAC2E;wBAClBpD,mBAAmBkD,aAAaE,WAAWtD,MAAM,CAACA,OAAOC,MAAM,GAAG,EAAE,CAACuB,KAAK;oBAC5E;gBACF;YACF;QACA;;OAEC,GACH,OAAO;YACL9C,oBAAoB;gBAClB,MAAM2E,WAAWhD,KAAKqB,GAAG,CAACjC,SAAS2D;gBACnC,IAAIG,YAAYH,cAAc3D,SAAS,IAAI,CAAC;gBAE5Cd,mBAAmB,CAAC2E;oBAClB,MAAMnD,SAASiD,aAAaE,WAAWD,WAAWE;oBAClDrD,mBAAmBC;gBACrB;YACF;QACF;IACF;IAEA,MAAMqD,2BAA2B;QAC/B,MAAM,EAAErC,KAAK,EAAE,GAAGjD,cAAcmB,OAAO;QACvC6B,iBAAiBC,KAAK,CAACtE,WAAW,EAAE;IACtC;IAEAvB,0BACE,SAASmI;QACP,IAAI,CAAChF,YAAYY,OAAO,EAAE;YACxB;QACF;QACA,MAAM,EAAE8B,KAAK,EAAE,GAAGjD,cAAcmB,OAAO;QACvC,MAAMI,SAAS0B,KAAK,CAACtE,WAAW;QAEhC,IAAIiB,QAAQ;YACVqF;QACF,OAAO;YACLK;QACF;QAEA5E;QAEAL,iBAAiBc,OAAO,GAAGI;QAE3BV,wBAAwB,CAAC2E,IAAO,CAAA;gBAC9B,GAAGA,CAAC;gBACJZ,cAAcnD;gBACdoD,eAAelD;YACjB,CAAA;IACF,GACA;QAAChD;KAAW;IAGdvB,0BACE,SAASqI;QACP5E,wBAAwB,CAAC2E,IAAO,CAAA;gBAC9B,GAAGA,CAAC;gBACJV,aAAa,CAAElG,CAAAA,gBAAgBoB,cAAcmB,OAAO,CAACO,cAAc,AAAD;YACpE,CAAA;IACF,GACA;QAAC9C;KAAa;IAGhB3B,oBAAoBkD,UAAUsD;IAE9BrG,0BAA0BqG,kBAAkB;QAACtE;QAAOT;QAAYkB;KAAO;IAEvE,MAAM8F,4BAA4B;QAChC,OAAO1F,cAAcmB,OAAO,CAACW,MAAM,CAACnD,WAAW,CAAC2E,KAAK,GAAG1F;IAC1D;IAEA,MAAM+H,YAAY,CAACC;QACjB,IAAIjH,aAAa,GAAG;YAClB0B,iBAAiBc,OAAO,IAAIuE;QAC9B;QACA1G,WACE,AAACL,CAAAA,aAAa,IAAIqB,cAAcmB,OAAO,CAACW,MAAM,CAACC,MAAM,AAAD,IAAK/B,cAAcmB,OAAO,CAACW,MAAM,CAACC,MAAM;QAE9F9C,cAAc2G;IAChB;IAEA,MAAMC,aAAa,CAACD;QAClB,IAAIjH,aAAaqB,cAAcmB,OAAO,CAACW,MAAM,CAACC,MAAM,GAAG,GAAG;YACxD1B,iBAAiBc,OAAO,IAAIuE;QAC9B;QACA1G,WAAW,AAACL,CAAAA,aAAa,CAAA,IAAKqB,cAAcmB,OAAO,CAACW,MAAM,CAACC,MAAM;QACjE7C,cAAc0G;IAChB;IAEA,MAAME,UAAU,CAACC;QACfA,EAAEC,aAAa,CAACC,eAAe;QAC/B,IAAIrF,qBAAqBkE,WAAW,EAAE;YACpChG,cAAciH;YACd1F,iBAAiBc,OAAO,GAAGnB,cAAcmB,OAAO,CAAC8B,KAAK,CAACtE,WAAW;YAClE2B,eAAea,OAAO,GAAG;QAC3B;IACF;IAEA,MAAM+E,UAAU,CAACH;QACf,IAAInF,qBAAqBkE,WAAW,EAAE;YACpCiB,EAAEC,aAAa,CAACG,cAAc;YAE9B,IAAIJ,EAAEK,QAAQ,EAAE;gBACdzF,WAAWQ,OAAO,GAAG;gBACrB,IAAIb,eAAea,OAAO,KAAK4E,EAAE9D,MAAM,EAAE;oBACvC3B,eAAea,OAAO,GAAG4E,EAAE9D,MAAM;oBACjCe,iBAAiB3C,iBAAiBc,OAAO,GAAGb,eAAea,OAAO;gBACpE;YACF;QACF;IACF;IAEA,MAAMkF,QAAQ,CAACN;QACb,IAAInF,qBAAqBkE,WAAW,EAAE;YACpCnE,WAAWQ,OAAO,GAAG;YACrB,IAAImF,cAAc3H;YAClB,IAAIoH,EAAEQ,OAAO,EAAE;gBACbD,cAAcpI,eAAe;oBAC3B4D,QAAQ9B,cAAcmB,OAAO,CAACW,MAAM;oBACpCnD;oBACA6H,eAAenG,iBAAiBc,OAAO;oBACvCsF,oBAAoBnG,eAAea,OAAO;oBAC1CC,KAAKpB,cAAcmB,OAAO,CAACC,GAAG;oBAC9BxB;gBACF;YACF;YACAb,YAAYgH,GAAGO;YAEf,IAAIA,gBAAgB3H,YAAY;gBAC9B0B,iBAAiBc,OAAO,GAAGd,iBAAiBc,OAAO,GAAGb,eAAea,OAAO;gBAC5EnC,WAAWsH;YACb,OAAO;gBACL,MAAMI,gBAAgB1G,cAAcmB,OAAO,CAAC8B,KAAK,CAACqD,YAAY;gBAC9DtD,iBAAiB0D,eAAe;YAClC;QACF;IACF;IAEA,MAAMC,cAAc,CAACC,UAAiCjI;QACpDmB,YAAYqB,OAAO,CAACxC,WAAW,GAAGiI;IACpC;IAEA,MAAM,EAAE9B,WAAW,EAAED,aAAa,EAAED,YAAY,EAAE,GAAGhE;IAErD,qBACE,MAACtD;QACE,GAAGuC,SAAS;QACbgH,eAAe/J,WACbsB,OAAO0I,IAAI,EACXpI,eAAe,YAAYN,OAAO2I,WAAW,EAC7CjC,eAAe1G,OAAO4I,SAAS;QAEjCxI,YAAYyB;;0BAEZ,KAACzC;gBACCkB,YAAYA;gBACZc,aAAaA;gBACbsG,SAASA;gBACTI,SAASA;gBACTG,OAAOA;gBACP7H,YAAY0B;gBACZC,UAAUA;gBACVwG,aAAaA;0BAEZlI;;YAGFF,yBACC,KAAChB;gBACCgB,SAASA;gBACTI,YAAYA;gBACZsI,OAAOpK,MAAM8G,QAAQ,CAACsD,KAAK,CAACxI;gBAC5BgB,cAAcA;;0BAGlB,KAAChC;gBACCsD,YAAYA;gBACZ6D,cAAcA;gBACdC,eAAeA;gBACfqC,cAAcrB;gBACdsB,aAAaxB;gBACbvG,YAAYA;gBACZE,WAAWA;gBACXC,iBAAiBA;gBACjBI,iBAAiBA;gBACjBD,iBAAiBA;;;;AAIzB,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/CarouselBase/CarouselBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMutationObserver } from '../../hooks/useMutationObserver';\nimport { useResizeObserver } from '../../hooks/useResizeObserver';\nimport { useDOM } from '../../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { type CustomTouchEvent } from '../Touch/Touch';\nimport { Bullets } from './Bullets';\nimport { CarouselViewPort } from './CarouselViewPort';\nimport { ScrollArrows } from './ScrollArrows';\nimport {\n ANIMATION_DURATION,\n CONTROL_ELEMENTS_STATE,\n SLIDE_THRESHOLD,\n SLIDES_MANAGER_STATE,\n} from './constants';\nimport {\n calcMax,\n calcMin,\n calculateIndent,\n getLoopPoints,\n getTargetIndex,\n isBigger,\n isBiggerOrEqual,\n isLowerOrEqual,\n revertRtlValue,\n validateIndent,\n} from './helpers';\nimport { useSlideAnimation } from './hooks';\nimport {\n type BaseGalleryProps,\n type ControlElementsState,\n type GallerySlidesState,\n type SlidesManagerState,\n} from './types';\nimport styles from './CarouselBase.module.css';\n\nconst warn = warnOnce('Gallery');\n\nexport const CarouselBase = ({\n bullets = false,\n getRootRef,\n children,\n slideWidth = '100%',\n slideIndex = 0,\n dragDisabled = false,\n resizeSource = 'window',\n onDragStart,\n onDragEnd,\n onChange,\n onPrevClick,\n onNextClick,\n align = 'left',\n showArrows,\n getRef,\n arrowSize,\n arrowAreaHeight,\n slideTestId,\n bulletTestId,\n nextArrowTestId,\n prevArrowTestId,\n looped = false,\n ...restProps\n}: BaseGalleryProps): React.ReactNode => {\n const slidesStore = React.useRef<Record<string, HTMLDivElement | null>>({});\n const slidesManager = React.useRef<SlidesManagerState>(SLIDES_MANAGER_STATE);\n const textDirection = useConfigDirection();\n const isRtl = textDirection === 'rtl';\n\n const rootRef = useExternRef(getRootRef);\n const viewportRef = useExternRef(getRef);\n const layerRef = React.useRef<HTMLDivElement>(null);\n const animationFrameRef = React.useRef<ReturnType<typeof requestAnimationFrame> | null>(null);\n const shiftXCurrentRef = React.useRef<number>(0);\n const shiftXDeltaRef = React.useRef<number>(0);\n const initialized = React.useRef<boolean>(false);\n const { addToAnimationQueue, getAnimateFunction, startAnimation } = useSlideAnimation();\n const isDragging = React.useRef(false);\n\n const [controlElementsState, setControlElementsState] =\n React.useState<ControlElementsState>(CONTROL_ELEMENTS_STATE);\n\n const hasPointer = useAdaptivityHasPointer();\n\n const isCenterAlign = align === 'center';\n\n const calculateCanSlideLeft = () => {\n if (looped) {\n return !slidesManager.current.isFullyVisible;\n }\n const isStartShiftX = isBiggerOrEqual(shiftXCurrentRef.current, 0, isRtl);\n return !slidesManager.current.isFullyVisible && !isStartShiftX;\n };\n\n const calculateCanSlideRight = () => {\n if (looped) {\n return !slidesManager.current.isFullyVisible;\n }\n return (\n !slidesManager.current.isFullyVisible &&\n // we can't move right when gallery layer fully scrolled right, if gallery aligned by left side\n ((align === 'left' &&\n slidesManager.current.containerWidth - revertRtlValue(shiftXCurrentRef.current, isRtl) <\n (slidesManager.current.layerWidth ?? 0)) ||\n // otherwise we need to check current slide index (align = right or align = center)\n (align !== 'left' && slideIndex < slidesManager.current.slides.length - 1))\n );\n };\n\n const transformCssStyles = (shiftX: number, animation = false) => {\n shiftX = Math.round(shiftX);\n if (looped) {\n slidesManager.current.loopPoints.forEach((loopPoint) => {\n const { target, index } = loopPoint;\n const slide = slidesStore.current[index];\n if (slide) {\n slide.style.transform = `translate3d(${target(shiftX)}px, 0, 0)`;\n }\n });\n } else {\n Object.values(slidesStore.current).forEach((slide) => {\n if (slide) {\n slide.style.transform = '';\n }\n });\n }\n\n if (layerRef.current) {\n const indent =\n isDragging.current && !looped\n ? validateIndent(\n slidesManager.current,\n shiftXCurrentRef.current + shiftXDeltaRef.current,\n isRtl,\n false,\n )\n : shiftX;\n\n layerRef.current.style.transform = `translate3d(${indent}px, 0, 0)`;\n layerRef.current.style.transition = animation\n ? `transform ${ANIMATION_DURATION}ms cubic-bezier(.1, 0, .25, 1)`\n : '';\n }\n };\n\n const checkShiftOutOfBoundsFromStart = (shiftX: number, snaps: number[]) =>\n isBigger(shiftX, snaps[0], isRtl);\n\n const checkShiftOutOfBoundsFromEnd = (shiftX: number, slides: GallerySlidesState[]) => {\n /**\n * Поскольку при `align=\"center\"` слайды сдвинуты, прежде чем рассчитать крайнюю правую точку,\n * нужно вычесть сдвиг слайдов\n */\n const firstSlideShift =\n align === 'center'\n ? (slidesManager.current.containerWidth - slidesManager.current.slides[0].width) / 2\n : 0;\n\n const lastPoint =\n slides[slides.length - 1].width + slides[slides.length - 1].coordX - firstSlideShift;\n return isRtl ? shiftX >= lastPoint : shiftX <= -lastPoint;\n };\n\n const requestTransform = (shiftX: number, animation = false) => {\n const { snaps, contentSize, slides } = slidesManager.current;\n\n if (animationFrameRef.current !== null) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n animationFrameRef.current = requestAnimationFrame(() => {\n /**\n * Для бесконечной галереи проверяем, что при dnd мы прокрутили левее, чем первый слайд,\n * чтобы сбросить `shiftXCurrentRef`\n */\n if (looped && checkShiftOutOfBoundsFromStart(shiftX, snaps)) {\n const firstSnap = revertRtlValue(snaps[0], isRtl);\n shiftXCurrentRef.current = revertRtlValue(-contentSize + firstSnap, isRtl);\n shiftX = shiftXCurrentRef.current + shiftXDeltaRef.current;\n }\n\n /**\n * Для бесконечной галереи проверяем, что при dnd мы прокрутили правее, чем последний слайд,\n * чтобы правильно пересчитать `shiftXCurrentRef`\n */\n if (looped && checkShiftOutOfBoundsFromEnd(shiftX, slides)) {\n shiftXCurrentRef.current = Math.abs(shiftXDeltaRef.current) + snaps[0];\n }\n transformCssStyles(shiftX, animation);\n });\n };\n\n const initializeSlides = () => {\n if (!rootRef.current || !viewportRef.current || !layerRef.current) {\n return;\n }\n const layerOffsetWidth = layerRef.current.offsetWidth;\n\n const calcRtlCoord = (element: HTMLDivElement) => {\n const offsetLeft = element.offsetLeft;\n const offsetWidth = element.offsetWidth;\n return layerOffsetWidth - offsetLeft - offsetWidth;\n };\n\n let localSlides =\n React.Children.map(children, (_item, i): GallerySlidesState => {\n const elem = slidesStore.current[i];\n if (!elem) {\n return { coordX: 0, width: 0 };\n }\n const coordX = isRtl ? calcRtlCoord(elem) : elem.offsetLeft;\n return { coordX, width: elem.offsetWidth };\n }) || [];\n\n if (localSlides.length === 0) {\n initialized.current = false;\n return;\n }\n\n const containerWidth = rootRef.current.offsetWidth;\n const viewportOffsetWidth = viewportRef.current.offsetWidth;\n const layerWidth = localSlides.reduce((val, slide) => slide.width + val, 0);\n\n if (process.env.NODE_ENV === 'development' && looped) {\n let remainingWidth = containerWidth;\n let slideIndex = 0;\n\n while (remainingWidth > 0 && slideIndex < localSlides.length) {\n remainingWidth -= localSlides[slideIndex].width;\n slideIndex++;\n }\n if (remainingWidth <= 0 && slideIndex === localSlides.length) {\n warn(\n 'Ширины слайдов недостаточно для корректной работы свойства \"looped\". Пожалуйста, сделайте её больше.',\n );\n }\n }\n\n const currentSlideOffsetOnCenterAlignment =\n (containerWidth - (localSlides[slideIndex]?.width ?? 0)) / 2;\n const isFullyVisible =\n align === 'center'\n ? layerWidth + currentSlideOffsetOnCenterAlignment <= containerWidth\n : layerWidth <= containerWidth;\n\n const onlyOneSlide = localSlides.length === 1;\n\n slidesManager.current = {\n ...slidesManager.current,\n layerWidth,\n containerWidth,\n viewportOffsetWidth,\n slides: localSlides,\n isFullyVisible,\n max:\n looped || onlyOneSlide\n ? null\n : calcMax({\n slides: localSlides,\n containerWidth,\n isCenterAlign,\n isRtl,\n }),\n min:\n looped || onlyOneSlide\n ? null\n : calcMin({\n containerWidth,\n layerWidth,\n slides: localSlides,\n viewportOffsetWidth,\n isFullyVisible,\n align,\n isRtl,\n }),\n };\n const snaps = localSlides.map((_, index) =>\n calculateIndent({\n targetIndex: index,\n slidesManager: slidesManager.current,\n isCenter: isCenterAlign,\n looped,\n isRtl,\n }),\n );\n\n let contentSize = Math.abs(snaps[snaps.length - 1]) + localSlides[localSlides.length - 1].width;\n if (align === 'center') {\n contentSize += revertRtlValue(snaps[0], isRtl);\n }\n\n slidesManager.current.snaps = snaps;\n slidesManager.current.contentSize = contentSize;\n // Если галерея не зациклена и слайд всего один, то рассчитывать loopPoints тоже не надо\n if (looped && !onlyOneSlide && !isFullyVisible) {\n slidesManager.current.loopPoints = getLoopPoints(\n slidesManager.current,\n containerWidth,\n isRtl,\n );\n }\n\n shiftXCurrentRef.current = snaps[slideIndex];\n initialized.current = true;\n\n setControlElementsState({\n canSlideLeft: calculateCanSlideLeft(),\n canSlideRight: calculateCanSlideRight(),\n isDraggable: !(dragDisabled || slidesManager.current.isFullyVisible),\n });\n requestTransform(shiftXCurrentRef.current);\n };\n\n const onResize = () => {\n if (initialized.current) {\n initializeSlides();\n }\n };\n const { window } = useDOM();\n useResizeObserver(resizeSource === 'element' ? rootRef : window, onResize);\n\n const loopedSlideChangePerform = () => {\n const { snaps, slides } = slidesManager.current;\n const indent = snaps[slideIndex];\n let startPoint = shiftXCurrentRef.current;\n\n const fromLastToFirst = isLowerOrEqual(\n shiftXCurrentRef.current,\n snaps[snaps.length - 1],\n isRtl,\n );\n /**\n * Переключаемся с последнего элемента на первый\n * Для корректной анимации мы прокручиваем последний слайд на всю длину (shiftX) \"вперед\"\n * В конце анимации при отрисовке следующего кадра задаем всем слайдам начальные значения\n */\n if (indent === snaps[0] && fromLastToFirst) {\n const endEdge = revertRtlValue(\n Math.abs(snaps[snaps.length - 1]) + slides[slides.length - 1].width,\n isRtl,\n );\n const distance = endEdge + startPoint;\n addToAnimationQueue(\n getAnimateFunction((progress) => {\n const shiftX = startPoint + progress * distance * -1;\n\n transformCssStyles(shiftX);\n\n if (shiftX <= snaps[snaps.length - 1] - slides[slides.length - 1].width) {\n requestAnimationFrame(() => {\n shiftXCurrentRef.current = indent;\n transformCssStyles(snaps[0]);\n });\n }\n }),\n );\n /**\n * Переключаемся с первого слайда на последний\n * Для корректной анимации сначала задаем первым видимым слайдам смещение\n * В следующем кадре начинаем анимация прокрутки \"назад\"\n */\n } else if (indent === snaps[snaps.length - 1] && shiftXCurrentRef.current === snaps[0]) {\n startPoint = indent - revertRtlValue(slides[slides.length - 1].width, isRtl);\n\n addToAnimationQueue(() => {\n requestAnimationFrame(() => {\n const shiftX = indent - revertRtlValue(slides[slides.length - 1].width, isRtl);\n transformCssStyles(shiftX);\n\n getAnimateFunction((progress) => {\n const diff = revertRtlValue(progress * slides[slides.length - 1].width, isRtl);\n transformCssStyles(startPoint + diff);\n })();\n });\n });\n /**\n * Если не обработаны `corner`-кейсы выше, то просто проигрываем анимацию смещения\n */\n } else {\n addToAnimationQueue(() => {\n const distance = Math.abs(indent - startPoint);\n let direction = startPoint <= indent ? 1 : -1;\n\n getAnimateFunction((progress) => {\n const shiftX = startPoint + progress * distance * direction;\n transformCssStyles(shiftX);\n })();\n });\n }\n };\n\n const simpleSlideChangePerform = () => {\n const { snaps } = slidesManager.current;\n requestTransform(snaps[slideIndex], true);\n };\n\n useIsomorphicLayoutEffect(\n function performSlideChange() {\n if (!initialized.current) {\n return;\n }\n const { snaps } = slidesManager.current;\n const indent = snaps[slideIndex];\n\n if (looped) {\n loopedSlideChangePerform();\n } else {\n simpleSlideChangePerform();\n }\n\n startAnimation();\n\n shiftXCurrentRef.current = indent;\n\n setControlElementsState((v) => ({\n ...v,\n canSlideLeft: calculateCanSlideLeft(),\n canSlideRight: calculateCanSlideRight(),\n }));\n },\n [slideIndex],\n );\n\n useIsomorphicLayoutEffect(\n function updateIsDraggable() {\n setControlElementsState((v) => ({\n ...v,\n isDraggable: !(dragDisabled || slidesManager.current.isFullyVisible),\n }));\n },\n [dragDisabled],\n );\n\n useMutationObserver(layerRef, initializeSlides);\n\n useIsomorphicLayoutEffect(initializeSlides, [align, slideWidth, looped, isRtl]);\n\n const calculateMinDeltaXToSlide = () => {\n return slidesManager.current.slides[slideIndex].width * SLIDE_THRESHOLD;\n };\n\n const slideLeft = (event: React.MouseEvent) => {\n if (slideIndex > 0) {\n shiftXCurrentRef.current += revertRtlValue(calculateMinDeltaXToSlide(), isRtl);\n }\n onChange?.(\n (slideIndex - 1 + slidesManager.current.slides.length) % slidesManager.current.slides.length,\n );\n onPrevClick?.(event);\n };\n\n const slideRight = (event: React.MouseEvent) => {\n if (slideIndex < slidesManager.current.slides.length - 1) {\n shiftXCurrentRef.current -= revertRtlValue(calculateMinDeltaXToSlide(), isRtl);\n }\n onChange?.((slideIndex + 1) % slidesManager.current.slides.length);\n onNextClick?.(event);\n };\n\n const onStart = (e: CustomTouchEvent) => {\n e.originalEvent.stopPropagation();\n if (controlElementsState.isDraggable) {\n onDragStart?.(e);\n shiftXCurrentRef.current = slidesManager.current.snaps[slideIndex];\n shiftXDeltaRef.current = 0;\n }\n };\n\n const onMoveX = (e: CustomTouchEvent) => {\n if (controlElementsState.isDraggable) {\n e.originalEvent.preventDefault();\n\n if (e.isSlideX) {\n isDragging.current = true;\n if (shiftXDeltaRef.current !== e.shiftX) {\n shiftXDeltaRef.current = e.shiftX;\n requestTransform(shiftXCurrentRef.current + shiftXDeltaRef.current);\n }\n }\n }\n };\n\n const onEnd = (e: CustomTouchEvent) => {\n if (controlElementsState.isDraggable) {\n isDragging.current = false;\n let targetIndex = slideIndex;\n if (e.isSlide) {\n targetIndex = getTargetIndex({\n slides: slidesManager.current.slides,\n slideIndex,\n currentShiftX: shiftXCurrentRef.current,\n currentShiftXDelta: shiftXDeltaRef.current,\n max: slidesManager.current.max,\n looped,\n isRtl,\n });\n }\n onDragEnd?.(e, targetIndex);\n\n if (targetIndex !== slideIndex) {\n shiftXCurrentRef.current = shiftXCurrentRef.current + shiftXDeltaRef.current;\n onChange?.(targetIndex);\n } else {\n const initialShiftX = slidesManager.current.snaps[targetIndex];\n requestTransform(initialShiftX, true);\n }\n }\n };\n\n const setSlideRef = (slideRef: HTMLDivElement | null, slideIndex: number) => {\n slidesStore.current[slideIndex] = slideRef;\n };\n\n const { isDraggable, canSlideRight, canSlideLeft } = controlElementsState;\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles.host,\n slideWidth === 'custom' && styles.customWidth,\n isDraggable && styles.draggable,\n )}\n getRootRef={rootRef}\n >\n <CarouselViewPort\n slideWidth={slideWidth}\n slideTestId={slideTestId}\n onStart={onStart}\n onMoveX={onMoveX}\n onEnd={onEnd}\n getRootRef={viewportRef}\n layerRef={layerRef}\n setSlideRef={setSlideRef}\n >\n {children}\n </CarouselViewPort>\n\n {bullets && (\n <Bullets\n bullets={bullets}\n slideIndex={slideIndex}\n count={React.Children.count(children)}\n bulletTestId={bulletTestId}\n />\n )}\n <ScrollArrows\n hasPointer={hasPointer}\n canSlideLeft={canSlideLeft}\n canSlideRight={canSlideRight}\n onSlideRight={slideRight}\n onSlideLeft={slideLeft}\n showArrows={showArrows}\n arrowSize={arrowSize}\n arrowAreaHeight={arrowAreaHeight}\n prevArrowTestId={prevArrowTestId}\n nextArrowTestId={nextArrowTestId}\n />\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useAdaptivityHasPointer","useConfigDirection","useExternRef","useMutationObserver","useResizeObserver","useDOM","useIsomorphicLayoutEffect","warnOnce","RootComponent","Bullets","CarouselViewPort","ScrollArrows","ANIMATION_DURATION","CONTROL_ELEMENTS_STATE","SLIDE_THRESHOLD","SLIDES_MANAGER_STATE","calcMax","calcMin","calculateIndent","getLoopPoints","getTargetIndex","isBigger","isBiggerOrEqual","isLowerOrEqual","revertRtlValue","validateIndent","useSlideAnimation","styles","warn","CarouselBase","bullets","getRootRef","children","slideWidth","slideIndex","dragDisabled","resizeSource","onDragStart","onDragEnd","onChange","onPrevClick","onNextClick","align","showArrows","getRef","arrowSize","arrowAreaHeight","slideTestId","bulletTestId","nextArrowTestId","prevArrowTestId","looped","restProps","slidesStore","useRef","slidesManager","textDirection","isRtl","rootRef","viewportRef","layerRef","animationFrameRef","shiftXCurrentRef","shiftXDeltaRef","initialized","addToAnimationQueue","getAnimateFunction","startAnimation","isDragging","controlElementsState","setControlElementsState","useState","hasPointer","isCenterAlign","calculateCanSlideLeft","current","isFullyVisible","isStartShiftX","calculateCanSlideRight","containerWidth","layerWidth","slides","length","transformCssStyles","shiftX","animation","Math","round","loopPoints","forEach","loopPoint","target","index","slide","style","transform","Object","values","indent","transition","checkShiftOutOfBoundsFromStart","snaps","checkShiftOutOfBoundsFromEnd","firstSlideShift","width","lastPoint","coordX","requestTransform","contentSize","cancelAnimationFrame","requestAnimationFrame","firstSnap","abs","initializeSlides","layerOffsetWidth","offsetWidth","calcRtlCoord","element","offsetLeft","localSlides","Children","map","_item","i","elem","viewportOffsetWidth","reduce","val","process","env","NODE_ENV","remainingWidth","currentSlideOffsetOnCenterAlignment","onlyOneSlide","max","min","_","targetIndex","isCenter","canSlideLeft","canSlideRight","isDraggable","onResize","window","loopedSlideChangePerform","startPoint","fromLastToFirst","endEdge","distance","progress","diff","direction","simpleSlideChangePerform","performSlideChange","v","updateIsDraggable","calculateMinDeltaXToSlide","slideLeft","event","slideRight","onStart","e","originalEvent","stopPropagation","onMoveX","preventDefault","isSlideX","onEnd","isSlide","currentShiftX","currentShiftXDelta","initialShiftX","setSlideRef","slideRef","baseClassName","host","customWidth","draggable","count","onSlideRight","onSlideLeft"],"mappings":"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"}